ssh/api: Use host tags instead of groups

Tags are more flexible and what we use in the managed offering.
This commit is contained in:
David Cowden 2020-04-01 23:02:10 -07:00
parent 1d9edcd48f
commit eb42ea90db
2 changed files with 11 additions and 9 deletions

View File

@ -570,8 +570,8 @@ func Test_caHandler_SSHCheckHost(t *testing.T) {
func Test_caHandler_SSHGetHosts(t *testing.T) { func Test_caHandler_SSHGetHosts(t *testing.T) {
hosts := []sshutil.Host{ hosts := []sshutil.Host{
{HostID: "1", HostGroups: []sshutil.HostGroup{{ID: "1", Name: "group 1"}}, Hostname: "host1"}, {HostID: "1", HostTags: []sshutil.HostTag{{ID: "1", Name: "group", Value: "1"}}, Hostname: "host1"},
{HostID: "2", HostGroups: []sshutil.HostGroup{{ID: "1", Name: "group 1"}, {ID: "2", Name: "group 2"}}, Hostname: "host2"}, {HostID: "2", HostTags: []sshutil.HostTag{{ID: "1", Name: "group", Value: "1"}, {ID: "2", Name: "group", Value: "2"}}, Hostname: "host2"},
} }
hostsJSON, err := json.Marshal(hosts) hostsJSON, err := json.Marshal(hosts)
assert.FatalError(t, err) assert.FatalError(t, err)

View File

@ -1,14 +1,16 @@
package sshutil package sshutil
// HostGroup defines expected attributes for a host group that a host might belong to. // Hosts are tagged with k,v pairs. These tags are how a user is ultimately
type HostGroup struct { // associated with a host.
ID string type HostTag struct {
Name string ID string
Name string
Value string
} }
// Host defines expected attributes for an ssh host. // Host defines expected attributes for an ssh host.
type Host struct { type Host struct {
HostID string `json:"hid"` HostID string `json:"hid"`
HostGroups []HostGroup `json:"host_groups"` HostTags []HostTag `json:"host_tags"`
Hostname string `json:"hostname"` Hostname string `json:"hostname"`
} }