cli: show provider in rack list (#98)

* cli: show provider in rack list

* update tests
This commit is contained in:
David Dollar 2020-01-30 10:44:46 -05:00 committed by GitHub
parent 302cae8e98
commit 2cd665f967
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 17 deletions

View File

@ -224,6 +224,10 @@ func localRacks(c *stdcli.Context) ([]rack, error) {
status = "running"
}
if _, err := os.Stat(".terraform.tfstate.lock.info"); !os.IsNotExist(err) {
status = "updating"
}
if o, ok := output["provider"]; ok {
provider = o.Value
}
@ -353,7 +357,7 @@ func remoteRacks(c *stdcli.Context) ([]rack, error) {
for _, r := range rs {
racks = append(racks, rack{
Name: fmt.Sprintf("%s/%s", r.Organization.Name, r.Name),
Provider: r.Provider,
Provider: coalesce(r.Provider, "unknown"),
Remote: true,
Status: r.Status,
Url: remote,

View File

@ -17,10 +17,10 @@ func Racks(rack sdk.Interface, c *stdcli.Context) error {
return err
}
t := c.Table("NAME", "STATUS")
t := c.Table("NAME", "PROVIDER", "STATUS")
for _, r := range rs {
t.AddRow(r.Name, r.Status)
t.AddRow(r.Name, r.Provider, r.Status)
}
return t.Print()

View File

@ -23,7 +23,7 @@ func TestRacksNone(t *testing.T) {
require.Equal(t, 0, res.Code)
res.RequireStderr(t, []string{""})
res.RequireStdout(t, []string{
"NAME STATUS",
"NAME PROVIDER STATUS",
})
})
}
@ -37,8 +37,8 @@ func TestRacksLocal(t *testing.T) {
require.Equal(t, 0, res.Code)
res.RequireStderr(t, []string{""})
res.RequireStdout(t, []string{
"NAME STATUS ",
"dev1 running",
"NAME PROVIDER STATUS ",
"dev1 local running",
})
})
}
@ -49,8 +49,8 @@ func TestRacksRemote(t *testing.T) {
r.HandleFunc("/racks", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte(`[
{"name":"foo","organization":{"name":"test"},"status":"running"},
{"name":"other","organization":{"name":"test"},"status":"updating"}
{"name":"foo","organization":{"name":"test"},"provider":"prov1","status":"running"},
{"name":"other","organization":{"name":"test"},"provider":"prov2","status":"updating"}
]`))
}).Methods("GET")
@ -67,9 +67,9 @@ func TestRacksRemote(t *testing.T) {
require.Equal(t, 0, res.Code)
res.RequireStderr(t, []string{""})
res.RequireStdout(t, []string{
"NAME STATUS ",
"test/foo running ",
"test/other updating",
"NAME PROVIDER STATUS ",
"test/foo prov1 running ",
"test/other prov2 updating",
})
})
}
@ -82,7 +82,7 @@ func TestRacksLocalAndRemote(t *testing.T) {
r.HandleFunc("/racks", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte(`[
{"name":"foo","organization":{"name":"test"},"status":"running"},
{"name":"foo","organization":{"name":"test"},"provider":"prov1","status":"running"},
{"name":"other","organization":{"name":"test"},"status":"updating"}
]`))
}).Methods("GET")
@ -100,10 +100,10 @@ func TestRacksLocalAndRemote(t *testing.T) {
require.Equal(t, 0, res.Code)
res.RequireStderr(t, []string{""})
res.RequireStdout(t, []string{
"NAME STATUS ",
"dev1 running ",
"test/foo running ",
"test/other updating",
"NAME PROVIDER STATUS ",
"dev1 local running ",
"test/foo prov1 running ",
"test/other unknown updating",
})
})
}
@ -134,7 +134,7 @@ func TestRacksError(t *testing.T) {
require.Equal(t, 0, res.Code)
res.RequireStderr(t, []string{""})
res.RequireStdout(t, []string{
"NAME STATUS",
"NAME PROVIDER STATUS",
})
})
}