command/push: output the name/version of the pushed configuration

This commit is contained in:
Mitchell Hashimoto 2015-03-09 11:09:50 -07:00
parent f857363aac
commit 1c0ffbd7bf
1 changed files with 11 additions and 6 deletions

View File

@ -146,12 +146,16 @@ func (c *PushCommand) Run(args []string) int {
Archive: archiveR, Archive: archiveR,
Variables: ctx.Variables(), Variables: ctx.Variables(),
} }
if err := c.client.Upsert(opts); err != nil { vsn, err := c.client.Upsert(opts)
if err != nil {
c.Ui.Error(fmt.Sprintf( c.Ui.Error(fmt.Sprintf(
"An error occurred while uploading the module:\n\n%s", err)) "An error occurred while uploading the module:\n\n%s", err))
return 1 return 1
} }
c.Ui.Output(c.Colorize().Color(fmt.Sprintf(
"[reset][bold][green]Configuration %s uploaded! (v%d)",
name, vsn)))
return 0 return 0
} }
@ -187,7 +191,7 @@ func (c *PushCommand) Synopsis() string {
// either to Atlas or a mock for testing. // either to Atlas or a mock for testing.
type pushClient interface { type pushClient interface {
Get(string) (map[string]string, error) Get(string) (map[string]string, error)
Upsert(*pushUpsertOptions) error Upsert(*pushUpsertOptions) (int, error)
} }
type pushUpsertOptions struct { type pushUpsertOptions struct {
@ -206,6 +210,7 @@ type mockPushClient struct {
UpsertCalled bool UpsertCalled bool
UpsertOptions *pushUpsertOptions UpsertOptions *pushUpsertOptions
UpsertVersion int
UpsertError error UpsertError error
} }
@ -215,20 +220,20 @@ func (c *mockPushClient) Get(name string) (map[string]string, error) {
return c.GetResult, c.GetError return c.GetResult, c.GetError
} }
func (c *mockPushClient) Upsert(opts *pushUpsertOptions) error { func (c *mockPushClient) Upsert(opts *pushUpsertOptions) (int, error) {
f, err := os.Create(c.File) f, err := os.Create(c.File)
if err != nil { if err != nil {
return err return 0, err
} }
defer f.Close() defer f.Close()
data := opts.Archive data := opts.Archive
size := opts.Archive.Size size := opts.Archive.Size
if _, err := io.CopyN(f, data, size); err != nil { if _, err := io.CopyN(f, data, size); err != nil {
return err return 0, err
} }
c.UpsertCalled = true c.UpsertCalled = true
c.UpsertOptions = opts c.UpsertOptions = opts
return c.UpsertError return c.UpsertVersion, c.UpsertError
} }