@@ -1148,3 +1148,98 @@ func TestSetDeployImage(t *testing.T) {
11481148 })
11491149 }
11501150}
1151+
1152+ func TestSetExternalURL (t * testing.T ) {
1153+ host := makeHost ()
1154+ host .Spec .BMC .Address = "redfish-virtualmedia://[fe80::fc33:62ff:fe83:8a76]:6233"
1155+
1156+ ironic := testserver .NewIronic (t ).Ready ().
1157+ Node (nodes.Node {
1158+ Name : host .Namespace + nameSeparator + host .Name ,
1159+ UUID : host .Status .Provisioning .ID ,
1160+ }).NodeUpdate (nodes.Node {
1161+ UUID : host .Status .Provisioning .ID ,
1162+ })
1163+
1164+ ironic .Start ()
1165+ defer ironic .Stop ()
1166+
1167+ auth := clients.AuthConfig {Type : clients .NoAuth }
1168+ prov , err := newProvisionerWithSettings (host , bmc.Credentials {}, nil ,
1169+ ironic .Endpoint (), auth , testserver .NewInspector (t ).Endpoint (), auth ,
1170+ )
1171+
1172+ if err != nil {
1173+ t .Fatalf ("could not create provisioner: %s" , err )
1174+ }
1175+
1176+ prov .config .externalURL = "XXX"
1177+
1178+ driverInfo := make (map [string ]interface {}, 0 )
1179+ updatedDriverInfo := setExternalURL (prov , driverInfo )
1180+
1181+ assert .Equal (t , "XXX" , updatedDriverInfo ["external_http_url" ])
1182+ }
1183+
1184+ func TestSetExternalURLIPv4 (t * testing.T ) {
1185+ host := makeHost ()
1186+ host .Spec .BMC .Address = "redfish-virtualmedia://1.1.1.1:1111"
1187+
1188+ ironic := testserver .NewIronic (t ).Ready ().
1189+ Node (nodes.Node {
1190+ Name : host .Namespace + nameSeparator + host .Name ,
1191+ UUID : host .Status .Provisioning .ID ,
1192+ }).NodeUpdate (nodes.Node {
1193+ UUID : host .Status .Provisioning .ID ,
1194+ })
1195+
1196+ ironic .Start ()
1197+ defer ironic .Stop ()
1198+
1199+ auth := clients.AuthConfig {Type : clients .NoAuth }
1200+ prov , err := newProvisionerWithSettings (host , bmc.Credentials {}, nil ,
1201+ ironic .Endpoint (), auth , testserver .NewInspector (t ).Endpoint (), auth ,
1202+ )
1203+
1204+ if err != nil {
1205+ t .Fatalf ("could not create provisioner: %s" , err )
1206+ }
1207+
1208+ prov .config .externalURL = "XXX"
1209+
1210+ driverInfo := make (map [string ]interface {}, 0 )
1211+ updatedDriverInfo := setExternalURL (prov , driverInfo )
1212+
1213+ assert .Equal (t , nil , updatedDriverInfo ["external_http_url" ])
1214+ }
1215+
1216+ func TestSetExternalURLRemoving (t * testing.T ) {
1217+ host := makeHost ()
1218+ host .Spec .BMC .Address = "redfish-virtualmedia://1.1.1.1:1111"
1219+
1220+ ironic := testserver .NewIronic (t ).Ready ().
1221+ Node (nodes.Node {
1222+ Name : host .Namespace + nameSeparator + host .Name ,
1223+ UUID : host .Status .Provisioning .ID ,
1224+ }).NodeUpdate (nodes.Node {
1225+ UUID : host .Status .Provisioning .ID ,
1226+ })
1227+
1228+ ironic .Start ()
1229+ defer ironic .Stop ()
1230+
1231+ auth := clients.AuthConfig {Type : clients .NoAuth }
1232+ prov , err := newProvisionerWithSettings (host , bmc.Credentials {}, nil ,
1233+ ironic .Endpoint (), auth , testserver .NewInspector (t ).Endpoint (), auth ,
1234+ )
1235+
1236+ if err != nil {
1237+ t .Fatalf ("could not create provisioner: %s" , err )
1238+ }
1239+
1240+ driverInfo := make (map [string ]interface {}, 0 )
1241+ driverInfo ["external_http_url" ] = "non-empty"
1242+ updatedDriverInfo := setExternalURL (prov , driverInfo )
1243+
1244+ assert .Equal (t , nil , updatedDriverInfo ["external_http_url" ])
1245+ }
0 commit comments