def test_delete_network_APIException(self, node_client): node_client.return_value.ex_delete_network.side_effect = DimensionDataAPIException( code='REASON 547', msg='Unable to delete network', driver=None) result = self.runner.invoke( cli, ['network', 'delete_network', '--networkId', 'fake_network']) self.assertTrue('REASON 547' in result.output) self.assertTrue(result.exit_code == 1)
def test_network_domain_list_APIException(self, node_client): node_client.return_value.ex_list_network_domains.side_effect = DimensionDataAPIException( code='REASON 543', msg='Unable to list network domains', driver=None) result = self.runner.invoke(cli, ['network', 'list_network_domains']) self.assertTrue('REASON 543' in result.output) self.assertTrue(result.exit_code == 1)
def test_delete_vlan_APIException(self, node_client): node_client.return_value.ex_delete_vlan.side_effect = DimensionDataAPIException( code='REASON 542', msg='Unable to delete vlan', driver=None) result = self.runner.invoke(cli, [ 'network', 'delete_vlan', '--vlanId', 'eee454f4-562a-4b23-ad57-4cb8b034c8c9' ]) self.assertTrue('REASON 542' in result.output) self.assertTrue(result.exit_code == 1)
def test_create_network_APIException(self, node_client): node_client.return_value.ex_create_network.side_effect = DimensionDataAPIException( code='REASON 546', msg='Unable to create network', driver=None) result = self.runner.invoke(cli, [ 'network', 'create_network', '--name', 'fake_network', '--servicePlan', 'ESSENTIALS', '--datacenterId', 'NA9' ]) self.assertTrue('REASON 546' in result.output) self.assertTrue(result.exit_code == 1)
def test_create_vlan_APIException(self, node_client): node_client.return_value.ex_create_vlan.side_effect = DimensionDataAPIException( code='REASON 540', msg='Unable to create vlan', driver=None) result = self.runner.invoke(cli, [ 'network', 'create_vlan', '--networkDomainId', '423c4386-87b4-43c4-9604-88ae237bfc7f', '--name', 'overlap_vlan', '--baseIpv4Address', '10.192.238.0' ]) self.assertTrue('REASON 540' in result.output) self.assertTrue(result.exit_code == 1)
def test_server_start_APIException(self, node_client): node_client.return_value.ex_get_node_by_id.return_value = load_dd_obj( 'node.json') node_client.return_value.ex_start_node.side_effect = DimensionDataAPIException( code='REASON 533', msg='Cannot start server', driver=None) result = self.runner.invoke(cli, [ 'server', 'start', '--serverId', '8aeff10c-c918-4021-b2ce-93e4a209418b' ]) self.assertTrue('REASON 533' in result.output) self.assertTrue(result.exit_code == 1)
def test_server_update_cpu_count_APIException(self, node_client): node_client.return_value.list_nodes.return_value = load_dd_obj( 'single_node_list.json') node_client.return_value.ex_reconfigure_node.side_effect = DimensionDataAPIException( code='REASON 539', msg='No CPU Left', driver=None) result = self.runner.invoke(cli, [ 'server', 'update_cpu_count', '--serverFilterIpv6', '::1', '--cpuCount', '4' ]) self.assertTrue('REASON 539' in result.output) self.assertTrue(result.exit_code == 1)
def test_server_create_node_APIException(self, node_client): node_client.return_value.create_node.side_effect = DimensionDataAPIException( code='REASON 541', msg='Unable to create node', driver=None) result = self.runner.invoke(cli, [ 'server', 'create', '--name', 'didata_cli_test', '--imageId', '294cad61-0857-4124-8ff6-45f4e6643646', '--administratorPassword', 'fakepassword', '--description', 'fakedescription', '--networkDomainId', 'b53b2ad4-ca8b-4abd-9140-72d6b137a6b4', '--vlanId', 'f04e4e2c-a52e-45d3-8037-9f1b1e234c05' ]) self.assertTrue('REASON 541' in result.output) self.assertTrue(result.exit_code == 1)
def test_server_add_disk_APIException(self, node_client): node_client.return_value.ex_get_node_by_id.return_value = load_dd_obj( 'node.json') node_client.return_value.ex_add_storage_to_node.side_effect = DimensionDataAPIException( code='REASON 534', msg='Cannot add disk to server', driver=None) result = self.runner.invoke(cli, [ 'server', 'add_disk', '--serverId', '8aeff10c-c918-4021-b2ce-93e4a209418b', '--size', '50', '--speed', 'ECONOMY' ]) self.assertTrue('REASON 534' in result.output) self.assertTrue(result.exit_code == 1)
def test_server_remove_disk_APIException(self, node_client): node_client.return_value.ex_get_node_by_id.return_value = load_dd_obj( 'node.json') node_client.return_value.ex_remove_storage_from_node.side_effect = DimensionDataAPIException( code='REASON 535', msg='Cannot remove disk from server', driver=None) result = self.runner.invoke(cli, [ 'server', 'remove_disk', '--serverId', '8aeff10c-c918-4021-b2ce-93e4a209418b', '--diskId', '0' ]) self.assertTrue('REASON 535' in result.output) self.assertTrue(result.exit_code == 1)
def test_create_firewall_rule_APIException(self, node_client): node_client.return_value.ex_create_firewall_rule.side_effect = DimensionDataAPIException( code='REASON 549', msg='Unable to create firewall rule', driver=None) result = self.runner.invoke(cli, [ 'network', 'create_firewall_rule', '--name', 'my_fake_rule', '--networkDomainId', 'fake_network_domain', '--ipVersion', 'IPV4', '--action', 'DROP', '--protocol', 'TCP', '--sourceIP', 'ANY', '--sourceStartPort', 'ANY', '--destinationIP', '10.1.1.15', '--destinationStartPort', 'ANY', '--position', 'LAST' ]) self.assertTrue('REASON 549' in result.output) self.assertTrue(result.exit_code == 1)
def wait_for_disk_state(client, module, node, disk): cnt = 0 timeout = module.params['wait_timeout'] poll_interval = module.params['wait_poll_interval'] state = module.params['state'] while cnt < timeout / poll_interval: node = client.ex_get_node_by_id(node.id) found_disk = find_disk_from_scsi_id(node, disk.scsi_id) if state == 'absent': if found_disk is None: return elif state == 'present': if found_disk.state == 'NORMAL': return time.sleep(poll_interval) cnt += 1 msg = 'Status check for object %s timed out' % (result) raise DimensionDataAPIException(code=object_state, msg=msg, driver=self.driver)