
godep restore pushd $GOPATH/src/github.com/appc/spec git co master popd go get go4.org/errorutil rm -rf Godeps godep save ./... git add vendor git add -f $(git ls-files --other vendor/) git co -- Godeps/LICENSES Godeps/.license_file_state Godeps/OWNERS
30 lines
780 B
Go
30 lines
780 B
Go
package scheduler
|
|
|
|
import (
|
|
"github.com/mesos/mesos-go/auth/callback"
|
|
mesos "github.com/mesos/mesos-go/mesosproto"
|
|
"github.com/mesos/mesos-go/upid"
|
|
)
|
|
|
|
type CredentialHandler struct {
|
|
pid *upid.UPID // the process to authenticate against (master)
|
|
client *upid.UPID // the process to be authenticated (slave / framework)
|
|
credential *mesos.Credential
|
|
}
|
|
|
|
func (h *CredentialHandler) Handle(callbacks ...callback.Interface) error {
|
|
for _, cb := range callbacks {
|
|
switch cb := cb.(type) {
|
|
case *callback.Name:
|
|
cb.Set(h.credential.GetPrincipal())
|
|
case *callback.Password:
|
|
cb.Set(([]byte)(h.credential.GetSecret()))
|
|
case *callback.Interprocess:
|
|
cb.Set(*(h.pid), *(h.client))
|
|
default:
|
|
return &callback.Unsupported{Callback: cb}
|
|
}
|
|
}
|
|
return nil
|
|
}
|