summaryrefslogtreecommitdiffstats
path: root/snaps/domain
diff options
context:
space:
mode:
authorspisarski <s.pisarski@cablelabs.com>2017-07-13 14:34:01 -0600
committerspisarski <s.pisarski@cablelabs.com>2017-07-13 14:34:01 -0600
commitde6536ff2ba4faa1a3d4ed27e93d692cae20e5d2 (patch)
tree659107105d40072d6da40d6db94c60a21171976d /snaps/domain
parentb490e8dc9fb01c6f9c44dd9a585ca1a1ae00bf19 (diff)
Created domain classes for networks and subnets.
Created Network and Subnet domain classes so neutron_utils.py functions returning these types of objects will not be leaking out implementation details as each API version can change these data structures which is now being handled by the SNAPS neutron utility. JIRA: SNAPS-113 Change-Id: Id95dd0f8c2618c20a1a73a428abb95686dfa8251 Signed-off-by: spisarski <s.pisarski@cablelabs.com>
Diffstat (limited to 'snaps/domain')
-rw-r--r--snaps/domain/network.py36
-rw-r--r--snaps/domain/test/network_tests.py85
2 files changed, 98 insertions, 23 deletions
diff --git a/snaps/domain/network.py b/snaps/domain/network.py
index 0ba9e99..68889f1 100644
--- a/snaps/domain/network.py
+++ b/snaps/domain/network.py
@@ -14,6 +14,42 @@
# limitations under the License.
+class Network:
+ """
+ SNAPS domain object for interface routers. Should contain attributes that
+ are shared amongst cloud providers
+ """
+ def __init__(self, **kwargs):
+ """
+ Constructor
+ """
+ self.name = kwargs.get('name')
+ self.id = kwargs.get('id')
+ self.type = kwargs.get('provider:network_type')
+
+ def __eq__(self, other):
+ return (self.name == other.name and self.id == other.id and
+ self.type == other.type)
+
+
+class Subnet:
+ """
+ SNAPS domain object for interface routers. Should contain attributes that
+ are shared amongst cloud providers
+ """
+ def __init__(self, **kwargs):
+ """
+ Constructor
+ """
+ self.name = kwargs.get('name')
+ self.id = kwargs.get('id')
+ self.cidr = kwargs.get('cidr')
+
+ def __eq__(self, other):
+ return (self.name == other.name and self.id == other.id and
+ self.cidr == other.cidr)
+
+
class Port:
"""
SNAPS domain object for ports. Should contain attributes that
diff --git a/snaps/domain/test/network_tests.py b/snaps/domain/test/network_tests.py
index c394b4a..592090b 100644
--- a/snaps/domain/test/network_tests.py
+++ b/snaps/domain/test/network_tests.py
@@ -15,7 +15,46 @@
import unittest
from snaps.domain.network import (
- Port, SecurityGroup, SecurityGroupRule, Router, InterfaceRouter)
+ Port, SecurityGroup, SecurityGroupRule, Router, InterfaceRouter, Network,
+ Subnet)
+
+
+class NetworkObjectTests(unittest.TestCase):
+ """
+ Tests the construction of the snaps.domain.network.Network class
+ """
+
+ def test_construction_kwargs(self):
+ network = Network(
+ **{'name': 'name', 'id': 'id', 'provider:network_type': 'flat'})
+ self.assertEqual('name', network.name)
+ self.assertEqual('id', network.id)
+ self.assertEqual('flat', network.type)
+
+ def test_construction_named(self):
+ network = Network(id='id', name='name')
+ self.assertEqual('name', network.name)
+ self.assertEqual('id', network.id)
+ self.assertIsNone(network.type)
+
+
+class SubnetObjectTests(unittest.TestCase):
+ """
+ Tests the construction of the snaps.domain.network.Subnet class
+ """
+
+ def test_construction_kwargs(self):
+ subnet = Subnet(
+ **{'name': 'name', 'id': 'id', 'cidr': '10.0.0.0/24'})
+ self.assertEqual('name', subnet.name)
+ self.assertEqual('id', subnet.id)
+ self.assertEqual('10.0.0.0/24', subnet.cidr)
+
+ def test_construction_named(self):
+ subnet = Subnet(cidr='10.0.0.0/24', id='id', name='name')
+ self.assertEqual('name', subnet.name)
+ self.assertEqual('id', subnet.id)
+ self.assertEqual('10.0.0.0/24', subnet.cidr)
class PortDomainObjectTests(unittest.TestCase):
@@ -45,27 +84,27 @@ class RouterDomainObjectTests(unittest.TestCase):
"""
def test_construction_kwargs(self):
- sec_grp = Router(
+ router = Router(
**{'name': 'name', 'id': 'id', 'status': 'hello',
'tenant_id': '1234', 'admin_state_up': 'yes',
'external_gateway_info': 'no'})
- self.assertEqual('name', sec_grp.name)
- self.assertEqual('id', sec_grp.id)
- self.assertEqual('hello', sec_grp.status)
- self.assertEqual('1234', sec_grp.tenant_id)
- self.assertEqual('yes', sec_grp.admin_state_up)
- self.assertEqual('no', sec_grp.external_gateway_info)
+ self.assertEqual('name', router.name)
+ self.assertEqual('id', router.id)
+ self.assertEqual('hello', router.status)
+ self.assertEqual('1234', router.tenant_id)
+ self.assertEqual('yes', router.admin_state_up)
+ self.assertEqual('no', router.external_gateway_info)
def test_construction_named(self):
- sec_grp = Router(
+ router = Router(
external_gateway_info='no', admin_state_up='yes', tenant_id='1234',
status='hello', id='id', name='name')
- self.assertEqual('name', sec_grp.name)
- self.assertEqual('id', sec_grp.id)
- self.assertEqual('hello', sec_grp.status)
- self.assertEqual('1234', sec_grp.tenant_id)
- self.assertEqual('yes', sec_grp.admin_state_up)
- self.assertEqual('no', sec_grp.external_gateway_info)
+ self.assertEqual('name', router.name)
+ self.assertEqual('id', router.id)
+ self.assertEqual('hello', router.status)
+ self.assertEqual('1234', router.tenant_id)
+ self.assertEqual('yes', router.admin_state_up)
+ self.assertEqual('no', router.external_gateway_info)
class InterfaceRouterDomainObjectTests(unittest.TestCase):
@@ -74,17 +113,17 @@ class InterfaceRouterDomainObjectTests(unittest.TestCase):
"""
def test_construction_kwargs(self):
- sec_grp = InterfaceRouter(
+ intf_router = InterfaceRouter(
**{'id': 'id', 'subnet_id': 'foo', 'port_id': 'bar'})
- self.assertEqual('id', sec_grp.id)
- self.assertEqual('foo', sec_grp.subnet_id)
- self.assertEqual('bar', sec_grp.port_id)
+ self.assertEqual('id', intf_router.id)
+ self.assertEqual('foo', intf_router.subnet_id)
+ self.assertEqual('bar', intf_router.port_id)
def test_construction_named(self):
- sec_grp = InterfaceRouter(port_id='bar', subnet_id='foo', id='id')
- self.assertEqual('id', sec_grp.id)
- self.assertEqual('foo', sec_grp.subnet_id)
- self.assertEqual('bar', sec_grp.port_id)
+ intf_router = InterfaceRouter(port_id='bar', subnet_id='foo', id='id')
+ self.assertEqual('id', intf_router.id)
+ self.assertEqual('foo', intf_router.subnet_id)
+ self.assertEqual('bar', intf_router.port_id)
class SecurityGroupDomainObjectTests(unittest.TestCase):