@@ -47,6 +47,12 @@ var lonTopology = Topology{
47
47
Status : "DRAFT" ,
48
48
}
49
49
50
+ var westmereEvcMode = EvcMode {
51
+ Id : "WESTMERE" ,
52
+ Name : "Westmere" ,
53
+ DisplayOrder : 1 ,
54
+ }
55
+
50
56
var linuxOsFamily = OsFamily {
51
57
Id : "LINUX" ,
52
58
Name : "Linux" ,
@@ -110,6 +116,7 @@ var inventoryVm = InventoryVm{
110
116
OriginalDescription : "Collab-mssql1" ,
111
117
CpuQty : 4 ,
112
118
MemoryMb : 8192 ,
119
+ EvcMode : evcModeWestmere ,
113
120
NetworkInterfaces : []InventoryVmNic {
114
121
// TODO - contract needs to specify additional fields
115
122
{
@@ -127,6 +134,8 @@ var inventoryVm = InventoryVm{
127
134
}
128
135
129
136
var nestedHypervisor = false
137
+ var evcModeHaswell = "HASWELL"
138
+ var evcModeWestmere = "WESTMERE"
130
139
131
140
var vm = Vm {
132
141
Uid : "lonvm1" ,
@@ -174,17 +183,45 @@ var vm = Vm{
174
183
},
175
184
},
176
185
{
177
- Uid : "lonvm1natnic " ,
178
- IpAddress : "198.18.131.201 " ,
179
- Name : "Network adapter 2 " ,
180
- MacAddress : "00:50:56:00:00:08 " ,
186
+ Uid : "lonvm1natnic1 " ,
187
+ IpAddress : "198.18.131.211 " ,
188
+ Name : "Network adapter 11 " ,
189
+ MacAddress : "00:50:56:00:00:11 " ,
181
190
Type : "VIRTUAL_E1000" ,
191
+ InUse : true ,
192
+ AssignDhcp : false ,
193
+ Network : & Network {
194
+ // Contract is missing 'inventoryNetwork' field
195
+ Uid : lonDefaultNetwork .Uid ,
196
+ Name : lonDefaultNetwork .Name ,
197
+ },
198
+ },
199
+ {
200
+ Uid : "lonvm1natnic2" ,
201
+ IpAddress : "198.18.131.212" ,
202
+ Name : "Network adapter 12" ,
203
+ MacAddress : "00:50:56:00:00:12" ,
204
+ Type : "VIRTUAL_E1000" ,
205
+ InUse : true ,
182
206
AssignDhcp : false ,
183
207
Network : & Network {
184
208
// Contract is missing 'description' field
185
- Uid : lonDefaultNetwork .Uid ,
186
- Name : lonDefaultNetwork .Name ,
187
- InventoryNetwork : lonDefaultNetwork .InventoryNetwork ,
209
+ Uid : lonDefaultNetwork .Uid ,
210
+ Name : lonDefaultNetwork .Name ,
211
+ },
212
+ },
213
+ {
214
+ Uid : "lonvm1natnic3" ,
215
+ IpAddress : "198.18.131.213" ,
216
+ Name : "Network adapter 13" ,
217
+ MacAddress : "00:50:56:00:00:13" ,
218
+ Type : "VIRTUAL_E1000" ,
219
+ InUse : true ,
220
+ AssignDhcp : false ,
221
+ Network : & Network {
222
+ // Contract is missing 'description' field
223
+ Uid : lonDefaultNetwork .Uid ,
224
+ Name : lonDefaultNetwork .Name ,
188
225
},
189
226
},
190
227
},
@@ -193,6 +230,10 @@ var vm = Vm{
193
230
BiosUuid : "61 62 63 64 65 66 67 68-69 6a 6b 6c 6d 6e 6f 70" ,
194
231
NotStarted : false ,
195
232
AllDisksNonPersistent : false ,
233
+ EvcMode : evcModeHaswell ,
234
+ },
235
+ DhcpConfig : & VmDhcpConfig {
236
+ DefaultGatewayIp : "198.18.130.2" ,
196
237
},
197
238
GuestAutomation : & VmGuestAutomation {
198
239
Command : "cd /var/; sh script.sh" ,
@@ -245,6 +286,7 @@ var createVm = Vm{
245
286
BiosUuid : "61 62 63 64 65 66 67 68-69 6a 6b 6c 6d 6e 6f 70" ,
246
287
NotStarted : false ,
247
288
AllDisksNonPersistent : false ,
289
+ EvcMode : evcModeWestmere ,
248
290
},
249
291
Topology : & Topology {Uid : lonTopology .Uid },
250
292
}
@@ -416,12 +458,12 @@ var ipNatRule = IpNatRule{
416
458
}
417
459
418
460
var vmNatRule = VmNatRule {
419
- Uid : "lonvmnatrule1 " ,
461
+ Uid : "lonvmpublicnat " ,
420
462
EastWest : false ,
421
463
Scope : & publicScope ,
422
464
Target : VmNatTarget {
423
- VmNic : & VmNic {Uid : "lonvm1natnic " },
424
- IpAddress : "198.18.131.201 " ,
465
+ VmNic : & VmNic {Uid : "lonvm1natnic1 " },
466
+ IpAddress : "198.18.131.211 " ,
425
467
Name : "Mail Server 1" ,
426
468
},
427
469
Topology : & Topology {Uid : lonTopology .Uid },
@@ -462,7 +504,7 @@ var externalDnsRecord = ExternalDnsRecord{
462
504
Hostname : "lonhost" ,
463
505
ARecord : "lonhost.<subdomain>.dc-03.com" ,
464
506
InventoryDnsAsset : & inventoryDnsAsset ,
465
- NatRule : & ExternalDnsNatRule {Uid : "lonvmnatrule1 " },
507
+ NatRule : & ExternalDnsNatRule {Uid : "lonvmpublicnat " },
466
508
SrvRecords : []ExternalDnsSrvRecord {
467
509
{
468
510
Service : "_sip" ,
@@ -683,11 +725,6 @@ func (suite *ContractTestSuite) TestGetVm() {
683
725
684
726
// Given
685
727
expectedVm := vm
686
- // Work around contract data inconsistencies
687
- nic := vm .VmNetworkInterfaces [1 ]
688
- nic .InUse = true
689
- nic .Network .InventoryNetwork = nil
690
- expectedVm .VmNetworkInterfaces [1 ] = nic
691
728
692
729
// When
693
730
actualVm , err := suite .tbClient .GetVm (vm .Uid )
@@ -702,6 +739,8 @@ func (suite *ContractTestSuite) TestUpdateVm() {
702
739
// Given
703
740
expectedVm := vm
704
741
expectedVm .DhcpConfig = & VmDhcpConfig {DefaultGatewayIp : "198.18.130.1" } // Match Contract
742
+ expectedVm .DhcpConfig .PrimaryDnsIp = & primaryDnsIp
743
+ expectedVm .DhcpConfig .SecondaryDnsIp = & secondaryDnsIp
705
744
706
745
// Change Value
707
746
expectedVm .Name = "New Name"
@@ -713,21 +752,20 @@ func (suite *ContractTestSuite) TestUpdateVm() {
713
752
// Then
714
753
715
754
// Work around contract data inconsistencies
716
- nic0 := vm .VmNetworkInterfaces [0 ]
717
- nic0 .Uid = ""
718
- nic0 .Name = ""
719
- nic0 .Network .InventoryNetwork = nil
720
- expectedVm .VmNetworkInterfaces [0 ] = nic0
721
-
722
- nic1 := vm .VmNetworkInterfaces [1 ]
723
- nic1 .Uid = ""
724
- nic1 .Name = ""
725
- nic1 .Network .InventoryNetwork = nil
726
- nic1 .InUse = true
727
- expectedVm .VmNetworkInterfaces [1 ] = nic1
755
+ expectedNics := expectedVm .VmNetworkInterfaces
756
+
757
+ for i := range expectedNics {
758
+ expectedNics [i ].Uid = ""
759
+ expectedNics [i ].Name = ""
760
+ }
761
+ expectedNics [0 ].Network .InventoryNetwork = nil
762
+
728
763
suite .Equal (expectedVm , * actualVm )
729
764
}
730
765
766
+ var primaryDnsIp = "198.18.130.111"
767
+ var secondaryDnsIp = "198.18.130.112"
768
+
731
769
func (suite * ContractTestSuite ) TestCreateVm () {
732
770
// Given
733
771
expectedVm := createVm
@@ -1105,8 +1143,9 @@ func (suite *ContractTestSuite) TestGetAllVmNatRules() {
1105
1143
suite .handleError (err )
1106
1144
1107
1145
// Then
1108
- suite .Equal (1 , len (vmNatRules ))
1109
- suite .Contains (vmNatRules , vmNatRule )
1146
+ suite .Equal (2 , len (vmNatRules ))
1147
+ expected := vmNatRule
1148
+ suite .Contains (vmNatRules , expected )
1110
1149
}
1111
1150
1112
1151
// TODO - "Get One" Tests when Contracts are updated
@@ -1156,10 +1195,10 @@ func (suite *ContractTestSuite) TestCreateInboundProxyRule() {
1156
1195
expectedInboundProxyRule .Uid = "newloninboundproxy"
1157
1196
expectedInboundProxyRule .VmNicTarget = & TrafficVmNicTarget {
1158
1197
Uid : inboundProxyRule .VmNicTarget .Uid ,
1159
- IpAddress : "192.168.0.8 " ,
1198
+ IpAddress : "192.168.0.9 " ,
1160
1199
Vm : & Vm {
1161
- Uid : "pcVmayo2nx7fQr8V21xO " ,
1162
- Name : "MWRGFTMMILZNATVKXRSM " ,
1200
+ Uid : "HIahoglmRva1DNeuYAII " ,
1201
+ Name : "MHJOGANCZJKHQFWFVSXD " ,
1163
1202
},
1164
1203
}
1165
1204
suite .Equal (expectedInboundProxyRule , * actualInboundProxyRule )
@@ -1262,10 +1301,10 @@ func (suite *ContractTestSuite) TestCreateMailServer() {
1262
1301
expectedMailServer := mailServer
1263
1302
expectedMailServer .VmNicTarget = & TrafficVmNicTarget {
1264
1303
Uid : expectedMailServer .VmNicTarget .Uid ,
1265
- IpAddress : "192.168.0.3 " ,
1304
+ IpAddress : "192.168.0.9 " ,
1266
1305
Vm : & Vm {
1267
- Uid : "LDU9tBp7g5Zd4nZE2aNj " ,
1268
- Name : "HFDJPRCCGOZGHOMYSZGX " ,
1306
+ Uid : "INLc0eWy1do3Xlk5GOdj " ,
1307
+ Name : "UZARRCZGMJSBXUAGLOLJ " ,
1269
1308
},
1270
1309
}
1271
1310
expectedMailServer .InventoryDnsAsset = & InventoryDnsAsset {
@@ -1373,6 +1412,17 @@ func (suite *ContractTestSuite) TestGetAllOsFamilies() {
1373
1412
suite .Contains (osFamilies , linuxOsFamily )
1374
1413
}
1375
1414
1415
+ func (suite * ContractTestSuite ) TestGetAllEvcModes () {
1416
+
1417
+ // When
1418
+ evcModes , err := suite .tbClient .GetAllEvcModes ()
1419
+ suite .handleError (err )
1420
+
1421
+ // Then
1422
+ suite .Equal (3 , len (evcModes ))
1423
+ suite .Contains (evcModes , westmereEvcMode )
1424
+ }
1425
+
1376
1426
func (suite * ContractTestSuite ) TestGetAllNicTypes () {
1377
1427
1378
1428
// When
@@ -1424,7 +1474,7 @@ func (suite *ContractTestSuite) TestGetAllInventoryVms() {
1424
1474
suite .handleError (err )
1425
1475
1426
1476
// Then
1427
- suite .Equal (4 , len (inventoryVms ))
1477
+ suite .Equal (3 , len (inventoryVms ))
1428
1478
suite .Equal (inventoryVms [2 ], inventoryVm )
1429
1479
suite .Contains (inventoryVms , inventoryVm )
1430
1480
}
@@ -1558,8 +1608,8 @@ func createTbClient(suite *ContractTestSuite) Client {
1558
1608
suite .T ().Log ("Timeout starting wiremock" )
1559
1609
suite .handleError (err )
1560
1610
}
1561
- fmt .Println ("Waiting another 5s for wiremock..." )
1562
- time .Sleep (5 * time .Second )
1611
+ fmt .Println ("Waiting another 2s for wiremock..." )
1612
+ time .Sleep (2 * time .Second )
1563
1613
}
1564
1614
1565
1615
return c
0 commit comments