diff --git a/services/compute/virtualmachine/client.go b/services/compute/virtualmachine/client.go index 9685111a..ba8670d5 100644 --- a/services/compute/virtualmachine/client.go +++ b/services/compute/virtualmachine/client.go @@ -28,7 +28,7 @@ type Service interface { RepairGuestAgent(context.Context, string, string) error RunCommand(context.Context, string, string, *compute.VirtualMachineRunCommandRequest) (*compute.VirtualMachineRunCommandResponse, error) Validate(context.Context, string, string) error - DiscoverVm(context.Context) (*[]compute.VirtualMachine, error) + DiscoverVm(context.Context) (*[]compute.VirtualMachineDiscovery, error) } type VirtualMachineClient struct { @@ -378,6 +378,6 @@ func (c *VirtualMachineClient) Validate(ctx context.Context, group, name string) return c.internal.Validate(ctx, group, name) } -func (c *VirtualMachineClient) DiscoverVm(ctx context.Context) (*[]compute.VirtualMachine, error) { +func (c *VirtualMachineClient) DiscoverVm(ctx context.Context) (*[]compute.VirtualMachineDiscovery, error) { return c.internal.DiscoverVm(ctx) } diff --git a/services/compute/virtualmachine/wssd.go b/services/compute/virtualmachine/wssd.go index 7bc2eb1c..5472e6d8 100644 --- a/services/compute/virtualmachine/wssd.go +++ b/services/compute/virtualmachine/wssd.go @@ -218,14 +218,28 @@ func (c *client) Validate(ctx context.Context, group, name string) error { } // Discover VMs on this cluster node -func (c *client) DiscoverVm(ctx context.Context) (*[]compute.VirtualMachine, error) { +func (c *client) DiscoverVm(ctx context.Context) (*[]compute.VirtualMachineDiscovery, error) { request, err := c.getVirtualMachineRequest(wssdcloudproto.Operation_DISCOVERVM, "", "", nil) if err != nil { return nil, err } response, err := c.VirtualMachineAgentClient.Invoke(ctx, request) - return c.getVirtualMachineFromResponse(response, ""), nil + vms := c.getVirtualMachineFromResponse(response, "") + + vmdiscoverys := []compute.VirtualMachineDiscovery{} + for _, vm := range *vms { + vmdiscovery := compute.VirtualMachineDiscovery{ + VmId: vm.ID, + VmName: vm.Name, + PowerState: vm.VirtualMachineProperties.Statuses["PowerState"], + } + + vmdiscoverys = append(vmdiscoverys, vmdiscovery) + } + + return &vmdiscoverys, nil + } // Private methods