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())

Reply via email to