@@ -26,6 +26,7 @@ import (
26
26
"strconv"
27
27
"strings"
28
28
29
+ "github.com/equinix/equinix-sdk-go/services/metalv1"
29
30
"github.com/spf13/cobra"
30
31
)
31
32
@@ -53,52 +54,49 @@ func (c *Client) Retrieve() *cobra.Command {
53
54
}
54
55
cmd .SilenceUsage = true
55
56
57
+ devices := make ([]metalv1.Device , 0 )
58
+
56
59
if deviceID != "" {
57
60
device , _ , err := c .Service .FindDeviceById (context .Background (), deviceID ).Include (c .Servicer .Includes (nil )).Exclude (c .Servicer .Excludes (nil )).Execute ()
58
61
if err != nil {
59
62
return fmt .Errorf ("Could not get Devices: %w" , err )
60
63
}
61
- header := [] string { "ID" , "Hostname" , "OS" , "State" , "Created" }
62
-
63
- data := make ([][] string , 1 )
64
- data [ 0 ] = [] string { device . GetId (), device . GetHostname (), device . OperatingSystem . GetName (), fmt . Sprintf ( "%v" , device . GetState ()), device . GetCreatedAt (). String ()}
65
-
66
- return c . Out . Output ( device , header , & data )
67
- }
64
+ devices = append ( devices , * device )
65
+ } else {
66
+ request := c . Service . FindProjectDevices ( context . Background (), projectID ). Include ( c . Servicer . Includes ( nil )). Exclude ( c . Servicer . Excludes ( nil ) )
67
+ filters := c . Servicer . Filters ()
68
+ if filters [ "type" ] != "" {
69
+ request = request . Type_ ( filters [ "type" ] )
70
+ }
68
71
69
- request := c .Service .FindProjectDevices (context .Background (), projectID ).Include (c .Servicer .Includes (nil )).Exclude (c .Servicer .Excludes (nil ))
70
- filters := c .Servicer .Filters ()
71
- if filters ["type" ] != "" {
72
- request = request .Type_ (filters ["type" ])
73
- }
72
+ if filters ["facility" ] != "" {
73
+ request = request .Facility (filters ["facility" ])
74
+ }
74
75
75
- if filters ["facility " ] != "" {
76
- request = request .Facility (filters ["facility " ])
77
- }
76
+ if filters ["hostname " ] != "" {
77
+ request = request .Hostname (filters ["hostname " ])
78
+ }
78
79
79
- if filters ["hostname" ] != "" {
80
- request = request .Hostname (filters ["hostname" ])
81
- }
80
+ if filters ["reserved" ] != "" {
81
+ value := filters ["reserved" ]
82
+ reserve , rerr := strconv .ParseBool (value )
83
+ if rerr != nil {
84
+ request = request .Reserved (reserve )
85
+ }
86
+ }
82
87
83
- if filters ["reserved" ] != "" {
84
- value := filters ["reserved" ]
85
- reserve , rerr := strconv .ParseBool (value )
86
- if rerr != nil {
87
- request = request .Reserved (reserve )
88
+ if filters ["tag" ] != "" {
89
+ request = request .Tag (filters ["tag" ])
88
90
}
89
- }
90
91
91
- if filters ["tag" ] != "" {
92
- request = request .Tag (filters ["tag" ])
92
+ resp , err := request .ExecuteWithPagination ()
93
+ if err != nil {
94
+ return fmt .Errorf ("Could not list Devices: %w" , err )
95
+ }
96
+ devices = append (devices , resp .Devices ... )
93
97
}
94
98
95
- resp , err := request .ExecuteWithPagination ()
96
- if err != nil {
97
- return fmt .Errorf ("Could not list Devices: %w" , err )
98
- }
99
- devices := resp .Devices
100
99
data := make ([][]string , len (devices ))
101
-
102
100
for i , dc := range devices {
103
101
ips := make ([]string , 0 )
104
102
for _ , ip := range dc .GetIpAddresses () {
0 commit comments