unit test and documentation for deploy uncustomised server
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/8d52e9f6 Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/8d52e9f6 Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/8d52e9f6 Branch: refs/heads/trunk Commit: 8d52e9f66924bbc8317dcf74b4c9c0eec2e0c7f3 Parents: 419c694 Author: Samuel Chong <[email protected]> Authored: Wed Jan 4 14:36:27 2017 +1100 Committer: Anthony Shaw <[email protected]> Committed: Tue Feb 21 17:17:27 2017 +0100 ---------------------------------------------------------------------- libcloud/compute/drivers/dimensiondata.py | 60 ++++++++++++++++++++ .../2.4/deploy_customised_server.xml | 7 +++ .../test/compute/test_dimensiondata_v2_4.py | 48 ++++++++++++++++ 3 files changed, 115 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/8d52e9f6/libcloud/compute/drivers/dimensiondata.py ---------------------------------------------------------------------- diff --git a/libcloud/compute/drivers/dimensiondata.py b/libcloud/compute/drivers/dimensiondata.py index c47eedd..e172958 100644 --- a/libcloud/compute/drivers/dimensiondata.py +++ b/libcloud/compute/drivers/dimensiondata.py @@ -3830,6 +3830,66 @@ class DimensionDataNodeDriver(NodeDriver): Create Node in MCP2 Data Center + >>> from pprint import pprint + >>> from libcloud.compute.types import Provider + >>> from libcloud.compute.providers import get_driver + >>> import libcloud.security + >>> + >>> # Get dimension data driver + >>> libcloud.security.VERIFY_SSL_CERT = True + >>> cls = get_driver(Provider.DIMENSIONDATA) + >>> driver = cls('schong_platcaas', 'T3stst@r!', region='dd-au') + >>> # driver = cls('myusername','mypassword', region='dd-au') + >>> + >>> # Get location + >>> location = driver.ex_get_location_by_id(id='AU9') + >>> + >>> # Get network domain by location + >>> networkDomainName = "Test Apache Libcloud" + >>> network_domains = driver.ex_list_network_domains(location=location) + >>> my_network_domain = [d for d in network_domains if d.name == + >>> networkDomainName][0] + >>> + >>> vlan = driver.ex_list_vlans(name='Libcloud Test VLAN')[0] + >>> + >>> # Get Image + >>> images = driver.ex_list_customer_images(location=location) + >>> image = images[1] + >>> + >>> tags = driver.ex_list_tags() + >>> pprint(tags) + >>> + >>> ex_tagname_value_pairs = {} + >>> ex_tagname_value_pairs['AA_Tag1'] = 'demo 1' + >>> ex_tagname_value_pairs['AA_Tag2'] = 'demo 2' + >>> + >>> ex_tagid_value_pairs = {} + >>> ex_tagid_value_pairs['4927c8fd-7f41-4206-a7d5-c5def927c6d2'] = + >>> 'demo 1' + >>> ex_tagid_value_pairs['2579fc7c-a89c-47cd-ac3b-67999dded93b'] = + >>> 'demo 2' + >>> + >>> + >>> # Create node using vlan instead of private IPv4 + >>> node = driver.ex_create_node_uncustomized( + >>> name='test_server_05', + >>> image=image, + >>> ex_network_domain=my_network_domain, + >>> ex_is_started=False, + >>> ex_description=None, + >>> ex_cluster_id=None, + >>> ex_cpu_specification=None, + >>> ex_memory_gb=None, + >>> ex_primary_nic_private_ipv4=None, + >>> ex_primary_nic_vlan=vlan, + >>> ex_primary_nic_network_adapter=None, + >>> ex_additional_nics=None, + >>> ex_disks=None, + >>> ex_tagid_value_pairs=ex_tagid_value_pairs, + >>> ex_tagname_value_pairs=None + >>> ) + >>> + >>> pprint(node) :keyword name: (required) String with a name for this new node :type name: ``str`` http://git-wip-us.apache.org/repos/asf/libcloud/blob/8d52e9f6/libcloud/test/compute/fixtures/dimensiondata/2.4/deploy_customised_server.xml ---------------------------------------------------------------------- diff --git a/libcloud/test/compute/fixtures/dimensiondata/2.4/deploy_customised_server.xml b/libcloud/test/compute/fixtures/dimensiondata/2.4/deploy_customised_server.xml new file mode 100644 index 0000000..d849494 --- /dev/null +++ b/libcloud/test/compute/fixtures/dimensiondata/2.4/deploy_customised_server.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<response xmlns="urn:didata.com:api:cloud:types" requestId="na9_20160321T074626030- 0400_7e9fffe7-190b-46f2-9107-9d52fe57d0ad"> + <operation>DEPLOY_UNCUSTOMIZED_SERVER</operation> + <responseCode>IN_PROGRESS</responseCode> + <message>Request to deploy uncustomized Server 'Production Server' has been accepted and is being processed.</message> + <info name="serverId" value="e75ead52-692f-4314-8725-c8a4f4d13a87"/> +</response> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/libcloud/blob/8d52e9f6/libcloud/test/compute/test_dimensiondata_v2_4.py ---------------------------------------------------------------------- diff --git a/libcloud/test/compute/test_dimensiondata_v2_4.py b/libcloud/test/compute/test_dimensiondata_v2_4.py index 22ae407..12e4b63 100644 --- a/libcloud/test/compute/test_dimensiondata_v2_4.py +++ b/libcloud/test/compute/test_dimensiondata_v2_4.py @@ -2077,6 +2077,47 @@ class DimensionData_v2_4_Tests(unittest.TestCase, TestCaseMixin): network_adapter_name='E1000') self.assertTrue(success) + def test_ex_create_node_uncustomized_mcp2_using_vlan(self): + # Get VLAN + vlan = self.driver.ex_get_vlan('0e56433f-d808-4669-821d-812769517ff8') + + # Create node using vlan instead of private IPv4 + node = self.driver.ex_create_node_uncustomized( + name='test_server_05', + image='fake_customer_image', + ex_network_domain='fakenetworkdomain', + ex_is_started=False, + ex_description=None, + ex_cluster_id=None, + ex_cpu_specification=None, + ex_memory_gb=None, + ex_primary_nic_private_ipv4=None, + ex_primary_nic_vlan=vlan, + ex_primary_nic_network_adapter=None, + ex_additional_nics=None, + ex_disks = None, + ex_tagid_value_pairs = None, + ex_tagname_value_pairs = None) + self.assertEqual(node.id, 'e75ead52-692f-4314-8725-c8a4f4d13a87') + + def test_ex_create_node_uncustomized_mcp2_using_ipv4(self): + node = self.driver.ex_create_node_uncustomized( + name='test_server_05', + image='fake_customer_image', + ex_network_domain='fakenetworkdomain', + ex_is_started=False, + ex_description=None, + ex_cluster_id=None, + ex_cpu_specification=None, + ex_memory_gb=None, + ex_primary_nic_private_ipv4='10.0.0.1', + ex_primary_nic_vlan=None, + ex_primary_nic_network_adapter=None, + ex_additional_nics=None, + ex_disks = None, + ex_tagid_value_pairs = None, + ex_tagname_value_pairs = None) + self.assertEqual(node.id, 'e75ead52-692f-4314-8725-c8a4f4d13a87') class InvalidRequestError(Exception): def __init__(self, tag): @@ -3355,5 +3396,12 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp): ) return httplib.OK, body, {}, httplib.responses[httplib.OK] + def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_deployUncustomizedServer( + self, method, url, body, headers): + body = self.fixtures.load( + '2.4/deploy_customised_server.xml' + ) + return httplib.OK, body, {}, httplib.responses[httplib.OK] + if __name__ == '__main__': sys.exit(unittest.main())
