1313
1313
context = make_context()
1314
1314
url = driver.get_url(context)
1315
1315
headers = driver.make_auth_headers(**context)
1316
node_data = SAMPLE_JSON_NODE
1317
1316
discovered_machine = make_discovered_machine(block_devices=[])
1318
TARGET_CHANGED = deepcopy(SAMPLE_JSON_TARGET)
1319
TARGET_CHANGED['Addresses'][0]['iSCSI']['TargetLUN'].append({'LUN': 3})
1317
node_data = deepcopy(SAMPLE_JSON_NODE)
1318
node_data['Links']['RemoteDrives'].append({
1319
"@odata.id": "/redfish/v1/Services/1/Targets/3"})
1320
LV_CHANGED = deepcopy(SAMPLE_JSON_LV)
1321
LV_CHANGED['Links']['Targets'].append({
1322
"@odata.id": "/redfish/v1/Services/1/Targets/3"})
1323
TARGET_CHANGED_1 = deepcopy(SAMPLE_JSON_TARGET)
1324
TARGET_CHANGED_2 = deepcopy(SAMPLE_JSON_TARGET)
1325
TARGET_CHANGED_1['Addresses'][0]['iSCSI']['TargetLUN'].append(
1327
TARGET_CHANGED_2['Initiator'][0]['iSCSI']['InitiatorIQN'] = "ALL"
1328
remote_drives = set([
1329
"/redfish/v1/Services/1/Targets/1",
1330
"/redfish/v1/Services/1/Targets/2",
1331
"/redfish/v1/Services/1/Targets/3",
1320
1333
logical_drives = {
1321
1334
b"redfish/v1/Services/1/LogicalDrives/1": SAMPLE_JSON_LV,
1322
1335
b"redfish/v1/Services/1/LogicalDrives/2": SAMPLE_JSON_LVG,
1323
b"redfish/v1/Services/1/LogicalDrives/3": SAMPLE_JSON_LV
1336
b"redfish/v1/Services/1/LogicalDrives/3": LV_CHANGED,
1326
1339
b"redfish/v1/Services/1/Targets/1": SAMPLE_JSON_TARGET,
1327
b"redfish/v1/Services/1/Targets/2": TARGET_CHANGED,
1340
b"redfish/v1/Services/1/Targets/2": TARGET_CHANGED_1,
1341
b"redfish/v1/Services/1/Targets/3": TARGET_CHANGED_2,
1330
1344
driver.get_pod_machine_remote_storages(
1331
node_data, url, headers, logical_drives,
1345
node_data, url, headers, remote_drives, logical_drives,
1332
1346
targets, discovered_machine)
1349
"/redfish/v1/Services/1/Targets/1",
1350
"/redfish/v1/Services/1/Targets/2"]), remote_drives)
1353
b"redfish/v1/Services/1/LogicalDrives/1": SAMPLE_JSON_LV,
1354
b"redfish/v1/Services/1/LogicalDrives/2": SAMPLE_JSON_LVG
1358
b"redfish/v1/Services/1/Targets/1": SAMPLE_JSON_TARGET,
1359
b"redfish/v1/Services/1/Targets/2": TARGET_CHANGED_1
1333
1361
self.assertThat(
1334
1362
discovered_machine.block_devices, MatchesListwise([
1335
1363
MatchesStructure(
1368
1396
discovered_machine = make_discovered_machine(block_devices=[])
1369
1397
TARGET_CHANGED = deepcopy(SAMPLE_JSON_TARGET)
1370
1398
TARGET_CHANGED['Addresses'][0]['iSCSI']['TargetLUN'].append({'LUN': 3})
1399
remote_drives = set(
1400
b"/redfish/v1/Services/1/Targets/1")
1371
1401
logical_drives = {
1372
1402
b"redfish/v1/Services/1/LogicalDrives/1": SAMPLE_JSON_LV,
1373
1403
b"redfish/v1/Services/1/LogicalDrives/2": SAMPLE_JSON_LVG,
1381
1411
driver.get_pod_machine_remote_storages(
1382
node_data, url, headers, logical_drives,
1412
node_data, url, headers, remote_drives, logical_drives,
1383
1413
targets, discovered_machine, request)
1384
1414
self.assertThat(
1385
1415
discovered_machine.block_devices, MatchesListwise([
1481
1511
node_data = SAMPLE_JSON_NODE
1482
1512
TARGET_CHANGED = deepcopy(SAMPLE_JSON_TARGET)
1483
1513
TARGET_CHANGED['Addresses'][0]['iSCSI']['TargetLUN'].append({'LUN': 3})
1514
remote_drives = set(
1515
b"/redfish/v1/Services/1/Targets/1")
1484
1516
logical_drives = {
1485
1517
b"redfish/v1/Services/1/LogicalDrives/1": SAMPLE_JSON_LV,
1486
1518
b"redfish/v1/Services/1/LogicalDrives/2": SAMPLE_JSON_LVG,
1506
1538
driver, 'get_pod_machine_interfaces')
1508
1540
machine = yield driver.get_pod_machine(
1509
b"redfish/v1/Nodes/1", url, headers,
1541
b"redfish/v1/Nodes/1", url, headers, remote_drives,
1510
1542
logical_drives, targets, request)
1511
1543
self.assertEquals(node_data['Name'], machine.hostname)
1512
1544
self.assertEquals(
1523
1555
MockCalledOnceWith(node_data, url, headers, machine, request))
1524
1556
self.assertThat(
1525
1557
mock_get_pod_machine_remote_storages,
1526
MockCalledOnceWith(node_data, url, headers, logical_drives,
1527
targets, machine, request))
1558
MockCalledOnceWith(node_data, url, headers, remote_drives,
1559
logical_drives, targets, machine, request))
1528
1560
self.assertThat(
1529
1561
mock_get_pod_machine_interfaces,
1530
1562
MockCalledOnceWith(node_data, url, headers, machine))
1557
1591
mock_get_pod_machine.return_value = expected_machines
1559
1593
discovered_machines = yield driver.get_pod_machines(
1560
url, headers, logical_drives, targets)
1594
url, headers, remote_drives, logical_drives, targets)
1561
1595
self.assertEquals(1, len(discovered_machines))
1562
1596
self.assertThat(mock_get_pod_machine, MockCalledOnceWith(
1563
1597
b"redfish/v1/Nodes/1", url, headers,
1564
logical_drives, targets, None))
1598
remote_drives, logical_drives, targets, None))
1566
1600
def test__get_pod_hints(self):
1567
1601
driver = RSDPodDriver()
1638
1672
mock_get_pod_resources, MockCalledOnceWith(url, headers))
1639
1673
self.assertThat(
1640
1674
mock_get_pod_machines, MockCalledOnceWith(
1641
url, headers, logical_drives, targets))
1675
url, headers, remote_drives, logical_drives, targets))
1642
1676
self.assertThat(mock_get_pod_hints, MockCalledOnceWith(
1643
1677
mock_get_pod_resources.return_value))
2197
2231
mock_get_composed_node_state = self.patch(
2198
2232
driver, 'get_composed_node_state')
2199
2233
mock_get_composed_node_state.return_value = power_change
2234
mock_redfish_request = self.patch(driver, 'redfish_request')
2235
NODE_POWERED_ON = deepcopy(SAMPLE_JSON_NODE)
2236
NODE_POWERED_ON['PowerState'] = "On"
2237
mock_redfish_request.return_value = (NODE_POWERED_ON, None)
2201
2239
power_state = yield driver.power_query(system_id, context)
2202
2240
self.assertThat(
2220
2258
mock_get_composed_node_state = self.patch(
2221
2259
driver, 'get_composed_node_state')
2222
2260
mock_get_composed_node_state.return_value = power_change
2261
mock_redfish_request = self.patch(driver, 'redfish_request')
2262
mock_redfish_request.return_value = (SAMPLE_JSON_NODE, None)
2224
2264
power_state = yield driver.power_query(system_id, context)
2225
2265
self.assertThat(