55 "strconv"
66 "strings"
77
8- "github.com/softlayer/softlayer-go/datatypes"
98 bmxErr "github.ibm.com/SoftLayer/softlayer-cli/plugin/errors"
109 slErrors "github.ibm.com/SoftLayer/softlayer-cli/plugin/errors"
1110
@@ -29,6 +28,7 @@ func NewInterfaceAddCommand(sl *metadata.SoftlayerCommand) (cmd *InterfaceAddCom
2928 thisCmd := & InterfaceAddCommand {
3029 SoftlayerCommand : sl ,
3130 NetworkManager : managers .NewNetworkManager (sl .Session ),
31+ VSManager : managers .NewVirtualServerManager (sl .Session ),
3232 }
3333
3434 cobraCmd := & cobra.Command {
@@ -90,26 +90,27 @@ func ValidateArgs(networkComponent int, serverId int, serverInterface string) er
9090
9191func GetComponentId (vsManager managers.VirtualServerManager , networkComponent int , serverId int , serverInterface string ) (int , error ) {
9292 useServer := networkComponent == 0 && (serverId != 0 && serverInterface != "" )
93+
9394 if useServer {
94- vs , err := vsManager .GetInstance (serverId , "networkComponents [id,port]" )
95+ vs , err := vsManager .GetInstance (serverId , "primaryBackendNetworkComponent[id,port], primaryNetworkComponent [id,port]" )
9596 if err != nil {
9697 return 0 , err
9798 }
98- port := 0
99+
99100 if strings .ToLower (serverInterface ) == "public" {
100- port = 1
101- }
102- var component []datatypes. Virtual_Guest_Network_Component
103- for _ , c := range vs . NetworkComponents {
104- if c . Port != nil && * c . Port == port {
105- component = append ( component , c )
101+ if vs . PrimaryNetworkComponent != nil && vs . PrimaryNetworkComponent . Id != nil {
102+ return * vs . PrimaryNetworkComponent . Id , nil
103+ }
104+ } else {
105+ if vs . PrimaryBackendNetworkComponent != nil && vs . PrimaryBackendNetworkComponent . Id != nil {
106+ return * vs . PrimaryBackendNetworkComponent . Id , nil
106107 }
107108 }
108- if len ( component ) != 1 {
109- return 0 , errors .New (T ( "Instance {{.ServerID}} has {{.Count}} {{.Interface}} interface." ,
110- map [ string ] interface {}{ " ServerID" : serverId , "Interface" : serverInterface , " Count" : len ( component )}))
111- }
112- return * component [ 0 ]. Id , nil
109+
110+ return 0 , errors .New (
111+ T ( "Instance {{. ServerID}} has {{. Count}} {{.Interface}} interface." ,
112+ map [ string ] interface {}{ "ServerID" : serverId , "Interface" : serverInterface , "Count" : 0 }))
113+
113114 }
114115 return networkComponent , nil
115116}
0 commit comments