refactor build job to know only configFile

Docker-DCO-1.1-Signed-off-by: Victor Vieux <victor.vieux@docker.com> (github: vieux)
This commit is contained in:
Victor Vieux
2014-04-10 22:29:03 +00:00
parent 28e7e81479
commit b9731bccf2
4 changed files with 26 additions and 28 deletions
+3 -15
View File
@@ -49,7 +49,6 @@ type buildFile struct {
utilizeCache bool
rm bool
authConfig *registry.AuthConfig
configFile *registry.ConfigFile
tmpContainers map[string]struct{}
@@ -80,20 +79,10 @@ func (b *buildFile) CmdFrom(name string) error {
if err != nil {
if b.runtime.Graph().IsNotExist(err) {
remote, tag := utils.ParseRepositoryTag(name)
pullRegistryAuth := b.authConfig
if len(b.configFile.Configs) > 0 {
// The request came with a full auth config file, we prefer to use that
endpoint, _, err := registry.ResolveRepositoryName(remote)
if err != nil {
return err
}
resolvedAuth := b.configFile.ResolveAuthConfig(endpoint)
pullRegistryAuth = &resolvedAuth
}
job := b.srv.Eng.Job("pull", remote, tag)
job.SetenvBool("json", b.sf.Json())
job.SetenvBool("parallel", true)
job.SetenvJson("authConfig", pullRegistryAuth)
job.SetenvJson("configFile", b.configFile)
job.Stdout.Add(b.outOld)
if err := job.Run(); err != nil {
return err
@@ -832,7 +821,7 @@ func stripComments(raw []byte) string {
return strings.Join(out, "\n")
}
func NewBuildFile(srv *Server, outStream, errStream io.Writer, verbose, utilizeCache, rm bool, outOld io.Writer, sf *utils.StreamFormatter, auth *registry.AuthConfig, authConfigFile *registry.ConfigFile) BuildFile {
func NewBuildFile(srv *Server, outStream, errStream io.Writer, verbose, utilizeCache, rm bool, outOld io.Writer, sf *utils.StreamFormatter, configFile *registry.ConfigFile) BuildFile {
return &buildFile{
runtime: srv.runtime,
srv: srv,
@@ -845,8 +834,7 @@ func NewBuildFile(srv *Server, outStream, errStream io.Writer, verbose, utilizeC
utilizeCache: utilizeCache,
rm: rm,
sf: sf,
authConfig: auth,
configFile: authConfigFile,
configFile: configFile,
outOld: outOld,
}
}
+12 -7
View File
@@ -448,12 +448,10 @@ func (srv *Server) Build(job *engine.Job) engine.Status {
suppressOutput = job.GetenvBool("q")
noCache = job.GetenvBool("nocache")
rm = job.GetenvBool("rm")
authConfig = &registry.AuthConfig{}
configFile = &registry.ConfigFile{}
tag string
context io.ReadCloser
)
job.GetenvJson("authConfig", authConfig)
job.GetenvJson("configFile", configFile)
repoName, tag = utils.ParseRepositoryTag(repoName)
@@ -506,7 +504,7 @@ func (srv *Server) Build(job *engine.Job) engine.Status {
Writer: job.Stdout,
StreamFormatter: sf,
},
!suppressOutput, !noCache, rm, job.Stdout, sf, authConfig, configFile)
!suppressOutput, !noCache, rm, job.Stdout, sf, configFile)
id, err := b.Build(context)
if err != nil {
return job.Error(err)
@@ -1386,16 +1384,23 @@ func (srv *Server) ImagePull(job *engine.Job) engine.Status {
localName = job.Args[0]
tag string
sf = utils.NewStreamFormatter(job.GetenvBool("json"))
authConfig = &registry.AuthConfig{}
authConfig registry.AuthConfig
configFile = &registry.ConfigFile{}
metaHeaders map[string][]string
)
if len(job.Args) > 1 {
tag = job.Args[1]
}
job.GetenvJson("authConfig", authConfig)
job.GetenvJson("configFile", configFile)
job.GetenvJson("metaHeaders", metaHeaders)
endpoint, _, err := registry.ResolveRepositoryName(localName)
if err != nil {
return job.Error(err)
}
authConfig = configFile.ResolveAuthConfig(endpoint)
c, err := srv.poolAdd("pull", localName+":"+tag)
if err != nil {
if c != nil {
@@ -1414,12 +1419,12 @@ func (srv *Server) ImagePull(job *engine.Job) engine.Status {
return job.Error(err)
}
endpoint, err := registry.ExpandAndVerifyRegistryUrl(hostname)
endpoint, err = registry.ExpandAndVerifyRegistryUrl(hostname)
if err != nil {
return job.Error(err)
}
r, err := registry.NewRegistry(authConfig, srv.HTTPRequestFactory(metaHeaders), endpoint)
r, err := registry.NewRegistry(&authConfig, srv.HTTPRequestFactory(metaHeaders), endpoint)
if err != nil {
return job.Error(err)
}