diff options
author | spisarski <s.pisarski@cablelabs.com> | 2017-08-09 14:17:26 -0600 |
---|---|---|
committer | spisarski <s.pisarski@cablelabs.com> | 2017-08-09 14:37:41 -0600 |
commit | 2b9b2d64c5be98405aaaf98db58f06b35b8af983 (patch) | |
tree | 7eac6cb5a5182371b5602e53bb613234c5eff11c /snaps/domain/network.py | |
parent | 430905e7f76e4a074167a49ca2bfbf727eebcefd (diff) |
SNAPS Stack creators can now return SNAPS network creators.
As Heat Stacks are responsible for spawning objects in OpenStack,
the class OpenStackHeatStack which is responsible for applying and
managing the state of a stack now can retrieve OpenStackNetwork
objects for the networks created in the stack for clients who would
like to query the networks and subnets or update them outside of
Heat.
JIRA: SNAPS-171
Change-Id: I9bf0b81d4f7bfeb1b6392f345022c7d9a57d0415
Signed-off-by: spisarski <s.pisarski@cablelabs.com>
Diffstat (limited to 'snaps/domain/network.py')
-rw-r--r-- | snaps/domain/network.py | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/snaps/domain/network.py b/snaps/domain/network.py index 2c71db8..0b56c43 100644 --- a/snaps/domain/network.py +++ b/snaps/domain/network.py @@ -25,11 +25,16 @@ class Network: """ self.name = kwargs.get('name') self.id = kwargs.get('id') - self.type = kwargs.get('provider:network_type') + self.admin_state_up = kwargs.get('admin_state_up') + self.shared = kwargs.get('shared') + self.external = kwargs.get('router:external', kwargs.get('external')) + self.type = kwargs.get('provider:network_type', kwargs.get('type')) def __eq__(self, other): return (self.name == other.name and self.id == other.id and - self.type == other.type) + self.admin_state_up == other.admin_state_up and + self.shared == other.shared and + self.external == other.external and self.type == other.type) class Subnet: @@ -44,10 +49,37 @@ class Subnet: self.name = kwargs.get('name') self.id = kwargs.get('id') self.cidr = kwargs.get('cidr') + self.ip_version = kwargs.get('ip_version') + self.gateway_ip = kwargs.get('gateway_ip') + self.enable_dhcp = kwargs.get('enable_dhcp') + self.dns_nameservers = kwargs.get('dns_nameservers') + self.host_routes = kwargs.get('host_routes') + self.ipv6_ra_mode = kwargs.get('ipv6_ra_mode') + self.ipv6_address_mode = kwargs.get('ipv6_address_mode') + + self.start = None + self.end = None + if ('allocation_pools' in kwargs and + len(kwargs['allocation_pools']) > 0): + # Will need to ultimately support a list of pools + pools = kwargs['allocation_pools'][0] + if 'start' in pools: + self.start = pools['start'] + if 'end' in pools: + self.end = pools['end'] def __eq__(self, other): - return (self.name == other.name and self.id == other.id and - self.cidr == other.cidr) + return (self.name == other.name and + self.id == other.id and + self.cidr == other.cidr and + self.ip_version == other.ip_version and + self.gateway_ip == other.gateway_ip and + self.enable_dhcp == other.enable_dhcp and + self.dns_nameservers == other.dns_nameservers and + self.host_routes == other.host_routes and + self.ipv6_ra_mode == other.ipv6_ra_mode and + self.ipv6_address_mode == other.ipv6_address_mode and + self.start == other.start and self.end == other.end) class Port: |