update to go-kit 0.4.0

This commit is contained in:
Victor Vrantchan
2017-03-17 19:10:32 +00:00
parent 75cc15e787
commit e6fa0b464f
11 changed files with 30 additions and 55 deletions

View File

@@ -1,11 +1,11 @@
package checkin
import (
"context"
"errors"
"github.com/go-kit/kit/endpoint"
"github.com/micromdm/mdm"
"golang.org/x/net/context"
)
// errInvalidMessageType is an invalid checking command.

View File

@@ -1,12 +1,12 @@
package checkin
import (
"context"
"io"
"net/http"
httptransport "github.com/go-kit/kit/transport/http"
"github.com/groob/plist"
"golang.org/x/net/context"
)
type HTTPHandlers struct {
@@ -17,7 +17,6 @@ type HTTPHandlers struct {
func MakeHTTPHandlers(ctx context.Context, endpoints Endpoints, opts ...httptransport.ServerOption) HTTPHandlers {
h := HTTPHandlers{
CheckinHandler: httptransport.NewServer(
ctx,
endpoints.CheckinEndpoint,
decodeRequest,
encodeResponse,

View File

@@ -1,6 +1,7 @@
package command
import (
"context"
"errors"
"fmt"
"net/http"
@@ -10,7 +11,6 @@ import (
"github.com/go-kit/kit/log"
"github.com/go-kit/kit/metrics"
"github.com/micromdm/mdm"
"golang.org/x/net/context"
)
var errEmptyRequest = errors.New("request must contain UDID of the device")

View File

@@ -1,13 +1,13 @@
package command
import (
"context"
"encoding/json"
"errors"
"io"
"net/http"
httptransport "github.com/go-kit/kit/transport/http"
"golang.org/x/net/context"
)
type HTTPHandlers struct {
@@ -17,7 +17,6 @@ type HTTPHandlers struct {
func MakeHTTPHandlers(ctx context.Context, endpoints Endpoints, opts ...httptransport.ServerOption) HTTPHandlers {
h := HTTPHandlers{
NewCommandHandler: httptransport.NewServer(
ctx,
endpoints.NewCommandEndpoint,
decodeRequest,
encodeResponse,
@@ -39,24 +38,9 @@ type statuser interface {
// The EncodeError should be passed to the Go-Kit httptransport as the
// ServerErrorEncoder to encode error responses with JSON.
func EncodeError(ctx context.Context, err error, w http.ResponseWriter) {
// unwrap Go-Kit Error
var domain string
if e, ok := err.(httptransport.Error); ok {
err = e.Err
domain = e.Domain
}
enc := json.NewEncoder(w)
enc.SetIndent("", " ")
switch domain {
case httptransport.DomainDecode:
w.WriteHeader(http.StatusBadRequest)
case httptransport.DomainDo:
w.WriteHeader(http.StatusServiceUnavailable)
default:
w.WriteHeader(codeFromErr(err))
}
enc.Encode(map[string]interface{}{
"error": err.Error(),
})

View File

@@ -1,8 +1,9 @@
package enroll
import (
"context"
"github.com/go-kit/kit/endpoint"
"golang.org/x/net/context"
)
type Endpoints struct {

View File

@@ -1,10 +1,9 @@
package enroll
import (
"context"
"net/http"
"golang.org/x/net/context"
"github.com/go-kit/kit/log"
httptransport "github.com/go-kit/kit/transport/http"
"github.com/gorilla/mux"
@@ -18,9 +17,7 @@ func ServiceHandler(ctx context.Context, svc Service, logger log.Logger) http.Ha
opts := []httptransport.ServerOption{
httptransport.ServerErrorLogger(logger),
}
r.Methods("GET").Path("/mdm/enroll").Handler(httptransport.NewServer(
ctx,
e.GetEnrollEndpoint,
decodeMDMEnrollRequest,
encodeResponse,

View File

@@ -1,5 +1,5 @@
{
"memo": "8ec26b54331ccbcbe914255b2e955a9f4aa1769f53accd011025f5ae2e986e4c",
"memo": "8f28fd12310c838617234aced70466223894111f2be4f1696581595e4403d1ae",
"projects": [
{
"name": "github.com/RobotsAndPencils/buford",
@@ -21,8 +21,8 @@
},
{
"name": "github.com/go-kit/kit",
"version": "v0.3.0",
"revision": "f66b0e13579bfc5a48b9e2a94b1209c107ea1f41",
"version": "v0.4.0",
"revision": "fadad6fffe0466b19df9efd9acde5c9a52df5fa4",
"packages": [
"endpoint",
"log",
@@ -105,7 +105,7 @@
{
"name": "github.com/micromdm/scep",
"branch": "master",
"revision": "576264a63d42bad5a423b870b3bde4f9f68320c1",
"revision": "a202afd5e358b857c95d048fc47432759db0d9bd",
"packages": [
"depot",
"depot/bolt",

View File

@@ -7,7 +7,7 @@
"version": "v1.3.0"
},
"github.com/go-kit/kit": {
"version": "v0.3.0"
"version": "v0.4.0"
},
"github.com/gorilla/mux": {
"version": "v1.3.0"

View File

@@ -1,10 +1,10 @@
package push
import (
"context"
"errors"
"github.com/go-kit/kit/endpoint"
"golang.org/x/net/context"
)
var errEmptyRequest = errors.New("request must contain UDID of the device")

View File

@@ -1,13 +1,13 @@
package push
import (
"context"
"encoding/json"
"errors"
"net/http"
httptransport "github.com/go-kit/kit/transport/http"
"github.com/gorilla/mux"
"golang.org/x/net/context"
)
type HTTPHandlers struct {
@@ -17,7 +17,6 @@ type HTTPHandlers struct {
func MakeHTTPHandlers(ctx context.Context, endpoints Endpoints, opts ...httptransport.ServerOption) HTTPHandlers {
h := HTTPHandlers{
PushHandler: httptransport.NewServer(
ctx,
endpoints.PushEndpoint,
decodeRequest,
encodeResponse,
@@ -39,24 +38,9 @@ type statuser interface {
// The EncodeError should be passed to the Go-Kit httptransport as the
// ServerErrorEncoder to encode error responses with JSON.
func EncodeError(ctx context.Context, err error, w http.ResponseWriter) {
// unwrap Go-Kit Error
var domain string
if e, ok := err.(httptransport.Error); ok {
err = e.Err
domain = e.Domain
}
enc := json.NewEncoder(w)
enc.SetIndent("", " ")
switch domain {
case httptransport.DomainDecode:
w.WriteHeader(http.StatusBadRequest)
case httptransport.DomainDo:
w.WriteHeader(http.StatusServiceUnavailable)
default:
w.WriteHeader(codeFromErr(err))
}
enc.Encode(map[string]interface{}{
"error": err.Error(),
})

View File

@@ -7,7 +7,6 @@ import (
"crypto/x509"
"encoding/asn1"
"encoding/pem"
"errors"
"flag"
"fmt"
"io/ioutil"
@@ -16,6 +15,7 @@ import (
"net/url"
"os"
"os/signal"
"path/filepath"
"strings"
"syscall"
"time"
@@ -29,6 +29,7 @@ import (
"github.com/go-kit/kit/log"
httptransport "github.com/go-kit/kit/transport/http"
"github.com/gorilla/mux"
"github.com/pkg/errors"
boltdepot "github.com/micromdm/scep/depot/bolt"
scep "github.com/micromdm/scep/server"
@@ -42,6 +43,8 @@ import (
nanopush "github.com/micromdm/nano/push"
)
const configDBPath = "/var/db/micromdm"
func serve(args []string) error {
flagset := flag.NewFlagSet("serve", flag.ExitOnError)
var (
@@ -60,7 +63,7 @@ func serve(args []string) error {
logger := log.NewLogfmtLogger(os.Stderr)
stdlog.SetOutput(log.NewStdlibAdapter(logger)) // force structured logs
mainLogger := log.NewContext(logger).With("component", "main")
mainLogger := log.With(logger, "component", "main")
mainLogger.Log("msg", "started")
sm := &config{
@@ -69,6 +72,9 @@ func serve(args []string) error {
APNSPrivateKeyPass: *flAPNSKeyPass,
APNSPrivateKeyPath: *flAPNSKeyPath,
}
if err := os.MkdirAll(configDBPath, 0755); err != nil {
return errors.Wrapf(err, "creating config directory %s", configDBPath)
}
sm.setupPubSub()
sm.setupBolt()
sm.loadPushCerts()
@@ -88,7 +94,7 @@ func serve(args []string) error {
}
ctx := context.Background()
httpLogger := log.NewContext(logger).With("transport", "http")
httpLogger := log.With(logger, "transport", "http")
var checkinEndpoint endpoint.Endpoint
{
checkinEndpoint = checkin.MakeCheckinEndpoint(sm.checkinService)
@@ -147,7 +153,7 @@ func serve(args []string) error {
}()
go func() {
logger := log.NewContext(logger).With("transport", "HTTP")
logger := log.With(logger, "transport", "HTTP")
if !*flTLS {
var httpAddr = "0.0.0.0:8080"
logger.Log("addr", httpAddr)
@@ -278,7 +284,8 @@ func (c *config) setupBolt() {
if c.err != nil {
return
}
c.db, c.err = bolt.Open("mdm.db", 0777, nil)
dbPath := filepath.Join(configDBPath, "micromdm.db")
c.db, c.err = bolt.Open(dbPath, 0644, nil)
if c.err != nil {
return
}
@@ -404,7 +411,10 @@ func topicFromCert(cert *x509.Certificate) (string, error) {
return "", errors.New("could not find Push Topic (UserID OID) in certificate")
}
const scepCACertName = "SCEPCACert.pem"
// TODO: refactor enroll service and remove the need to reference this cert.
// but it might be useful to keep the PEM around for anyone who will need to export
// the CA.
const scepCACertName = "/var/db/micromdm/SCEPCACert.pem"
func (c *config) setupSCEP(logger log.Logger) {
if c.err != nil {