diff --git a/command/push.go b/command/push.go index 8d85a9c99..5aead1f89 100644 --- a/command/push.go +++ b/command/push.go @@ -7,8 +7,8 @@ import ( "path/filepath" "strings" - "github.com/hashicorp/harmony-go" - "github.com/hashicorp/harmony-go/archive" + "github.com/hashicorp/atlas-go/v1" + "github.com/hashicorp/atlas-go/archive" "github.com/mitchellh/packer/packer" ) @@ -18,7 +18,7 @@ const archiveTemplateEntry = ".packer-template" type PushCommand struct { Meta - client *harmony.Client + client *atlas.Client // For tests: uploadFn func(io.Reader, *uploadOpts) (<-chan struct{}, <-chan error, error) @@ -64,9 +64,9 @@ func (c *PushCommand) Run(args []string) int { // Build our client defer func() { c.client = nil }() - c.client = harmony.DefaultClient() + c.client = atlas.DefaultClient() if tpl.Push.Address != "" { - c.client, err = harmony.NewClient(tpl.Push.Address) + c.client, err = atlas.NewClient(tpl.Push.Address) if err != nil { c.Ui.Error(fmt.Sprintf( "Error setting up API client: %s", err)) @@ -110,7 +110,7 @@ func (c *PushCommand) Run(args []string) int { } // Start the archiving process - r, archiveErrCh, err := archive.Archive(path, &opts) + r, err := archive.CreateArchive(path, &opts) if err != nil { c.Ui.Error(fmt.Sprintf("Error archiving: %s", err)) return 1 @@ -126,8 +126,6 @@ func (c *PushCommand) Run(args []string) int { err = nil select { - case err = <-archiveErrCh: - err = fmt.Errorf("Error archiving: %s", err) case err = <-uploadErrCh: err = fmt.Errorf("Error uploading: %s", err) case <-doneCh: @@ -138,6 +136,7 @@ func (c *PushCommand) Run(args []string) int { return 1 } + c.Ui.Output(fmt.Sprintf("Push successful to '%s'", tpl.Push.Name)) return 0 } @@ -173,7 +172,7 @@ func (c *PushCommand) create(name string, create bool) error { } // Separate the slug into the user and name components - user, name, err := harmony.ParseSlug(name) + user, name, err := atlas.ParseSlug(name) if err != nil { return fmt.Errorf("Malformed push name: %s", err) } @@ -181,7 +180,7 @@ func (c *PushCommand) create(name string, create bool) error { // Check if it exists. If so, we're done. if _, err := c.client.BuildConfig(user, name); err == nil { return nil - } else if err != harmony.ErrNotFound { + } else if err != atlas.ErrNotFound { return err } @@ -201,13 +200,13 @@ func (c *PushCommand) create(name string, create bool) error { } func (c *PushCommand) upload( - r io.Reader, opts *uploadOpts) (<-chan struct{}, <-chan error, error) { + r *archive.Archive, opts *uploadOpts) (<-chan struct{}, <-chan error, error) { if c.uploadFn != nil { return c.uploadFn(r, opts) } // Separate the slug into the user and name components - user, name, err := harmony.ParseSlug(opts.Slug) + user, name, err := atlas.ParseSlug(opts.Slug) if err != nil { return nil, nil, fmt.Errorf("upload: %s", err) } @@ -219,13 +218,13 @@ func (c *PushCommand) upload( } // Build the version to send up - version := harmony.BuildConfigVersion{ + version := atlas.BuildConfigVersion{ User: bc.User, Name: bc.Name, - Builds: make([]harmony.BuildConfigBuild, 0, len(opts.Builds)), + Builds: make([]atlas.BuildConfigBuild, 0, len(opts.Builds)), } for name, t := range opts.Builds { - version.Builds = append(version.Builds, harmony.BuildConfigBuild{ + version.Builds = append(version.Builds, atlas.BuildConfigBuild{ Name: name, Type: t, }) @@ -234,7 +233,7 @@ func (c *PushCommand) upload( // Start the upload doneCh, errCh := make(chan struct{}), make(chan error) go func() { - err := c.client.UploadBuildConfigVersion(&version, r) + err := c.client.UploadBuildConfigVersion(&version, r, r.Size) if err != nil { errCh <- err return