mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
move auth to a job
Docker-DCO-1.1-Signed-off-by: Victor Vieux <victor.vieux@docker.com> (github: vieux)
This commit is contained in:
parent
e2003fea3a
commit
1f8b1bb84e
4 changed files with 28 additions and 12 deletions
16
api.go
16
api.go
|
@ -122,17 +122,23 @@ func matchesContentType(contentType, expectedType string) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func postAuth(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
|
func postAuth(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
|
||||||
authConfig := &auth.AuthConfig{}
|
var (
|
||||||
err := json.NewDecoder(r.Body).Decode(authConfig)
|
authConfig, err = ioutil.ReadAll(r.Body)
|
||||||
|
job = srv.Eng.Job("auth")
|
||||||
|
status string
|
||||||
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
status, err := auth.Login(authConfig, srv.HTTPRequestFactory(nil))
|
job.Setenv("authConfig", string(authConfig))
|
||||||
if err != nil {
|
job.Stdout.AddString(&status)
|
||||||
|
if err = job.Run(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if status != "" {
|
if status != "" {
|
||||||
return writeJSON(w, http.StatusOK, &APIAuth{Status: status})
|
var env engine.Env
|
||||||
|
env.Set("Status", status)
|
||||||
|
return writeJSON(w, http.StatusOK, env)
|
||||||
}
|
}
|
||||||
w.WriteHeader(http.StatusNoContent)
|
w.WriteHeader(http.StatusNoContent)
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -31,10 +31,6 @@ type (
|
||||||
StatusCode int
|
StatusCode int
|
||||||
}
|
}
|
||||||
|
|
||||||
APIAuth struct {
|
|
||||||
Status string
|
|
||||||
}
|
|
||||||
|
|
||||||
APIImageConfig struct {
|
APIImageConfig struct {
|
||||||
ID string `json:"Id"`
|
ID string `json:"Id"`
|
||||||
*Config
|
*Config
|
||||||
|
|
|
@ -345,15 +345,15 @@ func (cli *DockerCli) CmdLogin(args ...string) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
var out2 APIAuth
|
var out2 engine.Env
|
||||||
err = json.Unmarshal(body, &out2)
|
err = json.Unmarshal(body, &out2)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
cli.configFile, _ = auth.LoadConfig(os.Getenv("HOME"))
|
cli.configFile, _ = auth.LoadConfig(os.Getenv("HOME"))
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
auth.SaveConfig(cli.configFile)
|
auth.SaveConfig(cli.configFile)
|
||||||
if out2.Status != "" {
|
if out2.Get("Status") != "" {
|
||||||
fmt.Fprintf(cli.out, "%s\n", out2.Status)
|
fmt.Fprintf(cli.out, "%s\n", out2.Get("Status"))
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
14
server.go
14
server.go
|
@ -104,6 +104,7 @@ func jobInitApi(job *engine.Job) engine.Status {
|
||||||
"events": srv.Events,
|
"events": srv.Events,
|
||||||
"push": srv.ImagePush,
|
"push": srv.ImagePush,
|
||||||
"containers": srv.Containers,
|
"containers": srv.Containers,
|
||||||
|
"auth": srv.Auth,
|
||||||
} {
|
} {
|
||||||
if err := job.Eng.Register(name, handler); err != nil {
|
if err := job.Eng.Register(name, handler); err != nil {
|
||||||
job.Error(err)
|
job.Error(err)
|
||||||
|
@ -243,6 +244,19 @@ func (srv *Server) ContainerKill(job *engine.Job) engine.Status {
|
||||||
}
|
}
|
||||||
return engine.StatusOK
|
return engine.StatusOK
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (srv *Server) Auth(job *engine.Job) engine.Status {
|
||||||
|
authConfig := &auth.AuthConfig{}
|
||||||
|
job.GetenvJson("authConfig", authConfig)
|
||||||
|
status, err := auth.Login(authConfig, srv.HTTPRequestFactory(nil))
|
||||||
|
if err != nil {
|
||||||
|
job.Error(err)
|
||||||
|
return engine.StatusErr
|
||||||
|
}
|
||||||
|
job.Printf("%s\n", status)
|
||||||
|
return engine.StatusOK
|
||||||
|
}
|
||||||
|
|
||||||
func (srv *Server) Events(job *engine.Job) engine.Status {
|
func (srv *Server) Events(job *engine.Job) engine.Status {
|
||||||
if len(job.Args) != 1 {
|
if len(job.Args) != 1 {
|
||||||
job.Errorf("Usage: %s FROM", job.Name)
|
job.Errorf("Usage: %s FROM", job.Name)
|
||||||
|
|
Loading…
Add table
Reference in a new issue