VLAN has an attribute for the owning network domain, since you really would 
want to know what that is!

Closes #631

Signed-off-by: Tomaz Muraus <to...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/02a0224c
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/02a0224c
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/02a0224c

Branch: refs/heads/trunk
Commit: 02a0224c6f9b7ff7a073d896c7ab8273a9e4ed7e
Parents: e0be279
Author: Anthony Shaw <anthony.p.s...@gmail.com>
Authored: Thu Nov 12 16:26:22 2015 +1100
Committer: Tomaz Muraus <to...@apache.org>
Committed: Thu Nov 12 23:45:59 2015 +0100

----------------------------------------------------------------------
 libcloud/common/dimensiondata.py                | 10 +++++---
 libcloud/compute/drivers/dimensiondata.py       |  6 +++++
 ...2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan.xml | 26 ++------------------
 ...lan_0e56433f_d808_4669_821d_812769517ff8.xml |  2 +-
 libcloud/test/compute/test_dimensiondata.py     |  1 -
 5 files changed, 16 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/02a0224c/libcloud/common/dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/common/dimensiondata.py b/libcloud/common/dimensiondata.py
index e5476e2..3e608fd 100644
--- a/libcloud/common/dimensiondata.py
+++ b/libcloud/common/dimensiondata.py
@@ -407,8 +407,8 @@ class DimensionDataVlan(object):
     DimensionData VLAN.
     """
 
-    def __init__(self, id, name, description, location, status,
-                 private_ipv4_range_address, private_ipv4_range_size):
+    def __init__(self, id, name, description, location, network_domain,
+                 status, private_ipv4_range_address, private_ipv4_range_size):
         """
         Initialize an instance of ``DimensionDataVlan``
 
@@ -424,8 +424,11 @@ class DimensionDataVlan(object):
         :param location: The location (data center) of the VLAN
         :type  location: ``NodeLocation``
 
+        :param network_domain: The Network Domain that owns this VLAN
+        :type  network_domain: :class:`DimensionDataNetworkDomain`
+
         :param status: The status of the VLAN
-        :type  status: ``DimensionDataStatus``
+        :type  status: :class:`DimensionDataStatus`
 
         :param private_ipv4_range_address: The host address of the VLAN
                                             IP space
@@ -439,6 +442,7 @@ class DimensionDataVlan(object):
         self.name = name
         self.location = location
         self.description = description
+        self.network_domain = network_domain
         self.status = status
         self.private_ipv4_range_address = private_ipv4_range_address
         self.private_ipv4_range_size = private_ipv4_range_size

http://git-wip-us.apache.org/repos/asf/libcloud/blob/02a0224c/libcloud/compute/drivers/dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/dimensiondata.py 
b/libcloud/compute/drivers/dimensiondata.py
index 39bbb1c..97350b2 100644
--- a/libcloud/compute/drivers/dimensiondata.py
+++ b/libcloud/compute/drivers/dimensiondata.py
@@ -538,6 +538,7 @@ class DimensionDataNodeDriver(NodeDriver):
             id=vlan_id,
             name=name,
             description=description,
+            network_domain=network_domain,
             location=network_domain.location,
             status=NodeState.RUNNING,
             private_ipv4_range_address=private_ipv4_base_address,
@@ -980,11 +981,16 @@ class DimensionDataNodeDriver(NodeDriver):
         location = list(filter(lambda x: x.id == location_id,
                                locations))[0]
         ip_range = element.find(fixxpath('privateIpv4Range', TYPES_URN))
+        network_domain_el = element.find(
+            fixxpath('networkDomain', TYPES_URN))
+        network_domain = self.ex_get_network_domain(
+            network_domain_el.get('id'))
         return DimensionDataVlan(
             id=element.get('id'),
             name=findtext(element, 'name', TYPES_URN),
             description=findtext(element, 'description',
                                  TYPES_URN),
+            network_domain=network_domain,
             private_ipv4_range_address=ip_range.get('address'),
             private_ipv4_range_size=ip_range.get('prefixSize'),
             location=location,

http://git-wip-us.apache.org/repos/asf/libcloud/blob/02a0224c/libcloud/test/compute/fixtures/dimensiondata/caas_2_0_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan.xml
----------------------------------------------------------------------
diff --git 
a/libcloud/test/compute/fixtures/dimensiondata/caas_2_0_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan.xml
 
b/libcloud/test/compute/fixtures/dimensiondata/caas_2_0_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan.xml
index 9099fc4..4575d83 100644
--- 
a/libcloud/test/compute/fixtures/dimensiondata/caas_2_0_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan.xml
+++ 
b/libcloud/test/compute/fixtures/dimensiondata/caas_2_0_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <vlans xmlns="urn:didata.com:api:cloud:types" pageNumber="1" pageCount="4" 
totalCount="4" pageSize="250">
     <vlan id="55b236ad-9119-4b48-a1bb-cf5c76a7ac0f" datacenterId="NA9">
-        <networkDomain id="b30c224c-c95b-4cd9-bb8b-bfdfb5486abf" 
name="Aurora"/>
+        <networkDomain id="8cdfd607-f429-4df6-9352-162cfc0891be" 
name="Aurora"/>
         <name>Primary</name>
         <description></description>
         <privateIpv4Range address="10.0.0.0" prefixSize="24"/>
@@ -12,7 +12,7 @@
         <state>NORMAL</state>
     </vlan>
     <vlan id="7ede3b25-2222-4285-ab61-21ffb137a763" datacenterId="NA9">
-        <networkDomain id="d3320077-c2ce-4523-8c65-d417e766077b" 
name="Imports"/>
+        <networkDomain id="8cdfd607-f429-4df6-9352-162cfc0891be" 
name="Imports"/>
         <name>Wi-Fi</name>
         <description>Wi-Fi</description>
         <privateIpv4Range address="10.230.98.0" prefixSize="24"/>
@@ -22,26 +22,4 @@
         <createTime>2015-08-18T23:47:04.000Z</createTime>
         <state>NORMAL</state>
     </vlan>
-    <vlan id="ab2f6a8b-333e-4b73-8e55-390f0460b739" datacenterId="NA9">
-        <networkDomain id="68a60a3c-030d-4d4b-a8fd-4a6991afc27b" 
name="Platform R2.0 Lab (MCP 2.0)"/>
-        <name>Platform R2 Development</name>
-        <description>Development lab network for Platform R2.0.</description>
-        <privateIpv4Range address="10.0.1.0" prefixSize="24"/>
-        <ipv4GatewayAddress>10.0.1.1</ipv4GatewayAddress>
-        <ipv6Range address="2607:f480:111:1343:0:0:0:0" prefixSize="64"/>
-        <ipv6GatewayAddress>2607:f480:111:1343:0:0:0:1</ipv6GatewayAddress>
-        <createTime>2015-08-25T01:41:37.000Z</createTime>
-        <state>NORMAL</state>
-    </vlan>
-    <vlan id="b82803ce-eb6c-4059-961c-8727031d3ab7" datacenterId="NA9">
-        <networkDomain id="68a60a3c-030d-4d4b-a8fd-4a6991afc27b" 
name="Platform R2.0 Lab (MCP 2.0)"/>
-        <name>Lab Infrastructure</name>
-        <description>Lab infrastructure network for Platform 
R2.0.</description>
-        <privateIpv4Range address="10.0.0.0" prefixSize="24"/>
-        <ipv4GatewayAddress>10.0.0.1</ipv4GatewayAddress>
-        <ipv6Range address="2607:f480:111:1347:0:0:0:0" prefixSize="64"/>
-        <ipv6GatewayAddress>2607:f480:111:1347:0:0:0:1</ipv6GatewayAddress>
-        <createTime>2015-08-25T01:42:56.000Z</createTime>
-        <state>NORMAL</state>
-    </vlan>
 </vlans>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/02a0224c/libcloud/test/compute/fixtures/dimensiondata/caas_2_0_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan_0e56433f_d808_4669_821d_812769517ff8.xml
----------------------------------------------------------------------
diff --git 
a/libcloud/test/compute/fixtures/dimensiondata/caas_2_0_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan_0e56433f_d808_4669_821d_812769517ff8.xml
 
b/libcloud/test/compute/fixtures/dimensiondata/caas_2_0_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan_0e56433f_d808_4669_821d_812769517ff8.xml
index 1b64756..7dcd5cc 100644
--- 
a/libcloud/test/compute/fixtures/dimensiondata/caas_2_0_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan_0e56433f_d808_4669_821d_812769517ff8.xml
+++ 
b/libcloud/test/compute/fixtures/dimensiondata/caas_2_0_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan_0e56433f_d808_4669_821d_812769517ff8.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <vlan
 xmlns="urn:didata.com:api:cloud:types" 
id="0e56433f-d808-4669-821d-812769517ff8" datacenterId="NA9">
-<networkDomain id="484174a2-ae74-4658-9e56-50fc90e086cf" name="Production
+<networkDomain id="8cdfd607-f429-4df6-9352-162cfc0891be" name="Production
 Network Domain"/>
 <name>Production VLAN</name>
 <description>test2</description>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/02a0224c/libcloud/test/compute/test_dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_dimensiondata.py 
b/libcloud/test/compute/test_dimensiondata.py
index 07c160c..8841c7a 100644
--- a/libcloud/test/compute/test_dimensiondata.py
+++ b/libcloud/test/compute/test_dimensiondata.py
@@ -783,6 +783,5 @@ class DimensionDataMockHttp(MockHttp):
             
'caas_2_0_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_removeNic.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-
 if __name__ == '__main__':
     sys.exit(unittest.main())

Reply via email to