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