21
21
package ips
22
22
23
23
import (
24
+ "context"
24
25
"fmt"
25
26
"strconv"
26
27
28
+ pager "github.com/equinix/metal-cli/internal/pagination"
27
29
"github.com/spf13/cobra"
28
30
)
29
31
@@ -59,41 +61,46 @@ func (c *Client) Retrieve() *cobra.Command {
59
61
}
60
62
61
63
cmd .SilenceUsage = true
62
- listOpts := c .Servicer .ListOptions (nil , nil )
64
+ inc := []string {}
65
+ exc := []string {}
66
+ types := []string {}
67
+
63
68
if assignmentID != "" {
64
- ip , _ , err := c .ProjectService . Get ( assignmentID , listOpts )
69
+ ip , _ , err := c .IPService . FindIPAddressById ( context . Background (), assignmentID ). Include ( inc ). Exclude ( exc ). Execute ( )
65
70
if err != nil {
66
71
return fmt .Errorf ("Could not get Device IP address: %w" , err )
67
72
}
68
73
69
74
data := make ([][]string , 1 )
70
75
71
- data [0 ] = []string {ip .ID , ip .Address , strconv .FormatBool (ip .Public ) , ip .Created }
76
+ data [0 ] = []string {ip .IPAssignment . GetId () , ip .IPAssignment . GetAddress () , strconv .FormatBool (ip .IPAssignment . GetPublic ()) , ip .IPAssignment . CreatedAt . String () }
72
77
header := []string {"ID" , "Address" , "Public" , "Created" }
73
78
74
79
return c .Out .Output (ip , header , & data )
75
80
} else if reservationID != "" {
76
- ip , _ , err := c .ProjectService . Get ( reservationID , listOpts )
81
+ ip , _ , err := c .IPService . FindIPAddressById ( context . Background (), reservationID ). Include ( inc ). Exclude ( exc ). Execute ( )
77
82
if err != nil {
78
83
return fmt .Errorf ("Could not get Reservation IP address: %w" , err )
79
84
}
80
85
81
86
data := make ([][]string , 1 )
82
87
code := ""
83
88
metro := ""
84
- if ip .Facility != nil {
85
- code = ip .Facility .Code
89
+ if ip .IPReservation . Facility != nil {
90
+ code = ip .IPReservation . Facility .GetCode ()
86
91
}
87
- if ip .Metro != nil {
88
- metro = ip .Metro .Code
92
+
93
+ if ip .IPReservation .Metro != nil {
94
+ metro = ip .IPReservation .Metro .GetCode ()
89
95
}
90
- data [0 ] = []string {ip .ID , ip .Address , metro , code , strconv .FormatBool (ip .Public ), ip .Created }
96
+
97
+ data [0 ] = []string {ip .IPReservation .GetId (), ip .IPReservation .GetAddress (), metro , code , strconv .FormatBool (ip .IPReservation .GetPublic ()), ip .IPReservation .CreatedAt .String ()}
91
98
header := []string {"ID" , "Address" , "Metro" , "Facility" , "Public" , "Created" }
92
99
93
100
return c .Out .Output (ip , header , & data )
94
101
}
95
102
96
- ips , _ , err := c . ProjectService . List ( projectID , listOpts )
103
+ ips , err := pager . GetAllIPReservations ( c . IPService , projectID , inc , exc , types )
97
104
if err != nil {
98
105
return fmt .Errorf ("Could not list Project IP addresses: %w" , err )
99
106
}
@@ -103,13 +110,13 @@ func (c *Client) Retrieve() *cobra.Command {
103
110
for i , ip := range ips {
104
111
code := ""
105
112
metro := ""
106
- if ip .Facility != nil {
107
- code = ip .Facility .Code
113
+ if ip .IPReservation . Facility != nil {
114
+ code = ip .IPReservation . Facility .GetCode ()
108
115
}
109
- if ip .Metro != nil {
110
- metro = ip .Metro .Code
116
+ if ip .IPReservation . Metro != nil {
117
+ metro = ip .IPReservation . Metro .GetCode ()
111
118
}
112
- data [i ] = []string {ip .ID , ip .Address , metro , code , strconv .FormatBool (ip .Public ) , ip .Created }
119
+ data [i ] = []string {ip .IPReservation . GetId () , ip .IPReservation . GetAddress () , metro , code , strconv .FormatBool (ip .IPReservation . GetPublic ()) , ip .IPReservation . CreatedAt . String () }
113
120
}
114
121
header := []string {"ID" , "Address" , "Metro" , "Facility" , "Public" , "Created" }
115
122
0 commit comments