"""
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:
"""
self.name = kwargs.get('name')
self.id = kwargs.get('id')
+ self.network_id = kwargs.get('network_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.network_id == other.network_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:
Constructor
:param name: the security group's name
:param id: the security group's id
- :param ips: a list of IP addresses
+ :param description: description
+ :param ips|fixed_ips: a list of IP addresses
+ :param mac_address: the port's MAC addresses
+ :param allowed_address_pairs: the port's allowed_address_pairs value
+ :param admin_state_up: T|F whether or not the port is up
+ :param device_id: device's ID
+ :param device_owner: device's owner
+ :param network_id: associated network ID
+ :param port_security_enabled: T|F whether or not the port security is
+ enabled
+ :param security_groups: the security group IDs associated with port
+ :param project_id: the associated project/tenant ID
"""
self.name = kwargs.get('name')
self.id = kwargs.get('id')
- self.ips = kwargs.get('ips')
+ self.description = kwargs.get('description')
+ self.ips = kwargs.get('ips', kwargs.get('fixed_ips'))
self.mac_address = kwargs.get('mac_address')
self.allowed_address_pairs = kwargs.get('allowed_address_pairs')
+ self.admin_state_up = kwargs.get('admin_state_up')
+ self.device_id = kwargs.get('device_id')
+ self.device_owner = kwargs.get('device_owner')
+ self.network_id = kwargs.get('network_id')
+ self.port_security_enabled = kwargs.get('port_security_enabled')
+ self.security_groups = kwargs.get('security_groups')
+ self.project_id = kwargs.get('tenant_id', kwargs.get('project_id'))
def __eq__(self, other):
return (self.name == other.name and self.id == other.id and
Constructor
:param name: the router's name
:param id: the router's id
+ :param status: the router's status
+ :param tenant_id: the router's project/tenant ID
+ :param admin_state_up: Router is up when True
+ :param external_gateway_info: dict() for populating external_network_id
+ and external_fixed_ips
+ external_network_id: ID of the external network to route
+ in dict under key 'external_fixed_ips'
+ external_fixed_ips: List IP addresses associated with the
+ external_network_id found in dict under
+ key 'network_id'
+ :param port_subnets: list of tuples where #1 is the Port domain object
+ and #2 is a list of associated Subnet domain
+ objects
"""
self.name = kwargs.get('name')
self.id = kwargs.get('id')
self.status = kwargs.get('status')
self.tenant_id = kwargs.get('tenant_id')
self.admin_state_up = kwargs.get('admin_state_up')
- self.external_gateway_info = kwargs.get('external_gateway_info')
+ self.port_subnets = kwargs.get('port_subnets')
+
+ if (kwargs.get('external_gateway_info') and
+ isinstance(kwargs.get('external_gateway_info'), dict) and
+ kwargs.get('external_gateway_info').get('external_fixed_ips')):
+ gateway_info = kwargs.get('external_gateway_info')
+
+ self.external_network_id = gateway_info.get('network_id')
+ self.external_fixed_ips = gateway_info.get('external_fixed_ips')
+ else:
+ self.external_fixed_ips = kwargs.get('external_fixed_ips', None)
+ self.external_network_id = kwargs.get('external_network_id', None)
def __eq__(self, other):
return (self.name == other.name and self.id == other.id and
self.status == other.status and
self.tenant_id == other.tenant_id and
self.admin_state_up == other.admin_state_up and
- self.external_gateway_info == other.external_gateway_info)
+ self.external_network_id == other.external_network_id and
+ self.external_fixed_ips == other.external_fixed_ips and
+ self.port_subnets == other.port_subnets)
class InterfaceRouter: