예제 #1
0
 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)
예제 #2
0
 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)
예제 #3
0
 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)
예제 #4
0
 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)
예제 #5
0
 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)
예제 #6
0
 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)
예제 #7
0
 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)
예제 #8
0
 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)
예제 #9
0
 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)
예제 #10
0
 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)
예제 #11
0
 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)
예제 #12
0
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)