summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Kraynev <skraynev@mirantis.com>2015-03-27 10:21:50 -0400
committerSergey Kraynev <skraynev@mirantis.com>2015-03-27 10:21:50 -0400
commit715f768275906c12024e4f01f9c93162fd48655e (patch)
tree025610c091e0a2f3d07d236c3eb003de9c16584d
parentca070c73752d890243a003d39251e14480b9531a (diff)
downloadheat-715f768275906c12024e4f01f9c93162fd48655e.tar.gz
Move provider_net test to separate file
Also template were updated in tests. Change-Id: I5dc8db849829e3e5ea0b5f942ac25fc5e2b7149b
-rw-r--r--heat/tests/neutron/test_neutron_provider_net.py175
-rw-r--r--heat/tests/neutron/test_neutron_resources.py155
2 files changed, 175 insertions, 155 deletions
diff --git a/heat/tests/neutron/test_neutron_provider_net.py b/heat/tests/neutron/test_neutron_provider_net.py
new file mode 100644
index 000000000..f440c1dbc
--- /dev/null
+++ b/heat/tests/neutron/test_neutron_provider_net.py
@@ -0,0 +1,175 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import copy
+
+from neutronclient.common import exceptions as qe
+from neutronclient.v2_0 import client as neutronclient
+
+from heat.common import exception
+from heat.common import template_format
+from heat.engine.resources.openstack.neutron import provider_net
+from heat.engine import rsrc_defn
+from heat.engine import scheduler
+from heat.tests import common
+from heat.tests import utils
+
+
+provider_network_template = '''
+heat_template_version: 2015-04-30
+description: Template to test provider_net Neutron resources
+resources:
+ provider_network_vlan:
+ type: OS::Neutron::ProviderNet
+ properties:
+ name: the_provider_network
+ network_type: vlan
+ physical_network: physnet_1
+ segmentation_id: 101
+ shared: true
+'''
+
+stpna = {
+ "network": {
+ "status": "ACTIVE",
+ "subnets": [],
+ "name": "the_provider_network",
+ "admin_state_up": True,
+ "shared": True,
+ "provider:network_type": "vlan",
+ "provider:physical_network": "physnet_1",
+ "provider:segmentation_id": "101",
+ "tenant_id": "c1210485b2424d48804aad5d39c61b8f",
+ "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766"
+ }
+}
+
+stpnb = copy.deepcopy(stpna)
+stpnb['network']['status'] = "BUILD"
+
+
+class NeutronProviderNetTest(common.HeatTestCase):
+
+ def setUp(self):
+ super(NeutronProviderNetTest, self).setUp()
+ self.m.StubOutWithMock(neutronclient.Client, 'create_network')
+ self.m.StubOutWithMock(neutronclient.Client, 'show_network')
+ self.m.StubOutWithMock(neutronclient.Client, 'delete_network')
+ self.m.StubOutWithMock(neutronclient.Client, 'update_network')
+
+ def create_provider_net(self):
+ # Create script
+ neutronclient.Client.create_network({
+ 'network': {
+ 'name': u'the_provider_network',
+ 'admin_state_up': True,
+ 'provider:network_type': 'vlan',
+ 'provider:physical_network': 'physnet_1',
+ 'provider:segmentation_id': '101',
+ 'shared': True}
+ }).AndReturn(stpnb)
+
+ neutronclient.Client.show_network(
+ 'fc68ea2c-b60b-4b4f-bd82-94ec81110766'
+ ).AndReturn(stpnb)
+
+ neutronclient.Client.show_network(
+ 'fc68ea2c-b60b-4b4f-bd82-94ec81110766'
+ ).AndReturn(stpna)
+
+ t = template_format.parse(provider_network_template)
+ stack = utils.parse_stack(t)
+ resource_defns = stack.t.resource_definitions(stack)
+ rsrc = provider_net.ProviderNet(
+ 'provider_net', resource_defns['provider_network_vlan'], stack)
+
+ return rsrc
+
+ def test_create_provider_net(self):
+ rsrc = self.create_provider_net()
+
+ neutronclient.Client.show_network(
+ 'fc68ea2c-b60b-4b4f-bd82-94ec81110766'
+ ).AndRaise(qe.NetworkNotFoundClient(status_code=404))
+
+ # Delete script
+ neutronclient.Client.delete_network(
+ 'fc68ea2c-b60b-4b4f-bd82-94ec81110766'
+ ).AndReturn(None)
+
+ neutronclient.Client.show_network(
+ 'fc68ea2c-b60b-4b4f-bd82-94ec81110766'
+ ).AndReturn(stpna)
+
+ neutronclient.Client.show_network(
+ 'fc68ea2c-b60b-4b4f-bd82-94ec81110766'
+ ).AndRaise(qe.NetworkNotFoundClient(status_code=404))
+
+ neutronclient.Client.delete_network(
+ 'fc68ea2c-b60b-4b4f-bd82-94ec81110766'
+ ).AndRaise(qe.NetworkNotFoundClient(status_code=404))
+
+ self.m.ReplayAll()
+
+ rsrc.validate()
+ scheduler.TaskRunner(rsrc.create)()
+ self.assertEqual((rsrc.CREATE, rsrc.COMPLETE), rsrc.state)
+
+ ref_id = rsrc.FnGetRefId()
+ self.assertEqual('fc68ea2c-b60b-4b4f-bd82-94ec81110766', ref_id)
+
+ self.assertIsNone(rsrc.FnGetAtt('status'))
+ self.assertEqual('ACTIVE', rsrc.FnGetAtt('status'))
+ self.assertRaises(
+ exception.InvalidTemplateAttribute, rsrc.FnGetAtt, 'Foo')
+
+ self.assertIsNone(scheduler.TaskRunner(rsrc.delete)())
+ self.assertEqual((rsrc.DELETE, rsrc.COMPLETE), rsrc.state)
+ rsrc.state_set(rsrc.CREATE, rsrc.COMPLETE, 'to delete again')
+ scheduler.TaskRunner(rsrc.delete)()
+ self.assertEqual((rsrc.DELETE, rsrc.COMPLETE), rsrc.state)
+ self.m.VerifyAll()
+
+ def test_update_provider_net(self):
+ rsrc = self.create_provider_net()
+
+ neutronclient.Client.update_network(
+ 'fc68ea2c-b60b-4b4f-bd82-94ec81110766',
+ {'network': {
+ 'shared': True,
+ 'name': 'prov_net',
+ 'admin_state_up': True,
+ 'provider:network_type': 'vlan',
+ 'provider:physical_network': 'physnet_1',
+ 'provider:segmentation_id': '102'
+ }}).AndReturn(None)
+
+ self.m.ReplayAll()
+
+ rsrc.validate()
+
+ scheduler.TaskRunner(rsrc.create)()
+ self.assertEqual((rsrc.CREATE, rsrc.COMPLETE), rsrc.state)
+
+ props = {
+ "name": "prov_net",
+ "shared": True,
+ "admin_state_up": True,
+ "network_type": "vlan",
+ "physical_network": "physnet_1",
+ "segmentation_id": "102"
+ }
+ update_snippet = rsrc_defn.ResourceDefinition(rsrc.name, rsrc.type(),
+ props)
+ self.assertIsNone(rsrc.handle_update(update_snippet, {}, {}))
+ self.m.VerifyAll()
diff --git a/heat/tests/neutron/test_neutron_resources.py b/heat/tests/neutron/test_neutron_resources.py
index efe71db39..9692282cf 100644
--- a/heat/tests/neutron/test_neutron_resources.py
+++ b/heat/tests/neutron/test_neutron_resources.py
@@ -23,7 +23,6 @@ from heat.common import exception
from heat.common import template_format
from heat.engine.cfn import functions as cfn_funcs
from heat.engine.resources.openstack.neutron import net
-from heat.engine.resources.openstack.neutron import provider_net
from heat.engine.resources.openstack.neutron import subnet
from heat.engine import rsrc_defn
from heat.engine import scheduler
@@ -192,43 +191,6 @@ neutron_template_deprecated = '''
}
'''
-provider_network_template = '''
-{
- "AWSTemplateFormatVersion" : "2010-09-09",
- "Description" : "Template to test Neutron resources",
- "Resources" : {
- "provider_network_vlan": {
- "Type": "OS::Neutron::ProviderNet",
- "Properties": {
- "name": "the_provider_network",
- "network_type": "vlan",
- "physical_network": "physnet_1",
- "segmentation_id": "101",
- "shared": true
- }
- }
- }
-}
-'''
-
-stpna = {
- "network": {
- "status": "ACTIVE",
- "subnets": [],
- "name": "the_provider_network",
- "admin_state_up": True,
- "shared": True,
- "provider:network_type": "vlan",
- "provider:physical_network": "physnet_1",
- "provider:segmentation_id": "101",
- "tenant_id": "c1210485b2424d48804aad5d39c61b8f",
- "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766"
- }
-}
-
-stpnb = copy.deepcopy(stpna)
-stpnb['network']['status'] = "BUILD"
-
class NeutronNetTest(common.HeatTestCase):
@@ -428,123 +390,6 @@ class NeutronNetTest(common.HeatTestCase):
self.m.VerifyAll()
-class NeutronProviderNetTest(common.HeatTestCase):
-
- def setUp(self):
- super(NeutronProviderNetTest, self).setUp()
- self.m.StubOutWithMock(neutronclient.Client, 'create_network')
- self.m.StubOutWithMock(neutronclient.Client, 'show_network')
- self.m.StubOutWithMock(neutronclient.Client, 'delete_network')
- self.m.StubOutWithMock(neutronclient.Client, 'update_network')
-
- def create_provider_net(self):
- # Create script
- neutronclient.Client.create_network({
- 'network': {
- 'name': u'the_provider_network',
- 'admin_state_up': True,
- 'provider:network_type': 'vlan',
- 'provider:physical_network': 'physnet_1',
- 'provider:segmentation_id': '101',
- 'shared': True}
- }).AndReturn(stpnb)
-
- neutronclient.Client.show_network(
- 'fc68ea2c-b60b-4b4f-bd82-94ec81110766'
- ).AndReturn(stpnb)
-
- neutronclient.Client.show_network(
- 'fc68ea2c-b60b-4b4f-bd82-94ec81110766'
- ).AndReturn(stpna)
-
- t = template_format.parse(provider_network_template)
- stack = utils.parse_stack(t)
- resource_defns = stack.t.resource_definitions(stack)
- rsrc = provider_net.ProviderNet(
- 'provider_net', resource_defns['provider_network_vlan'], stack)
-
- return rsrc
-
- def test_create_provider_net(self):
- rsrc = self.create_provider_net()
-
- neutronclient.Client.show_network(
- 'fc68ea2c-b60b-4b4f-bd82-94ec81110766'
- ).AndRaise(qe.NetworkNotFoundClient(status_code=404))
-
- # Delete script
- neutronclient.Client.delete_network(
- 'fc68ea2c-b60b-4b4f-bd82-94ec81110766'
- ).AndReturn(None)
-
- neutronclient.Client.show_network(
- 'fc68ea2c-b60b-4b4f-bd82-94ec81110766'
- ).AndReturn(stpna)
-
- neutronclient.Client.show_network(
- 'fc68ea2c-b60b-4b4f-bd82-94ec81110766'
- ).AndRaise(qe.NetworkNotFoundClient(status_code=404))
-
- neutronclient.Client.delete_network(
- 'fc68ea2c-b60b-4b4f-bd82-94ec81110766'
- ).AndRaise(qe.NetworkNotFoundClient(status_code=404))
-
- self.m.ReplayAll()
-
- rsrc.validate()
- scheduler.TaskRunner(rsrc.create)()
- self.assertEqual((rsrc.CREATE, rsrc.COMPLETE), rsrc.state)
-
- ref_id = rsrc.FnGetRefId()
- self.assertEqual('fc68ea2c-b60b-4b4f-bd82-94ec81110766', ref_id)
-
- self.assertIsNone(rsrc.FnGetAtt('status'))
- self.assertEqual('ACTIVE', rsrc.FnGetAtt('status'))
- self.assertRaises(
- exception.InvalidTemplateAttribute, rsrc.FnGetAtt, 'Foo')
-
- self.assertIsNone(scheduler.TaskRunner(rsrc.delete)())
- self.assertEqual((rsrc.DELETE, rsrc.COMPLETE), rsrc.state)
- rsrc.state_set(rsrc.CREATE, rsrc.COMPLETE, 'to delete again')
- scheduler.TaskRunner(rsrc.delete)()
- self.assertEqual((rsrc.DELETE, rsrc.COMPLETE), rsrc.state)
- self.m.VerifyAll()
-
- def test_update_provider_net(self):
- rsrc = self.create_provider_net()
-
- neutronclient.Client.update_network(
- 'fc68ea2c-b60b-4b4f-bd82-94ec81110766',
- {'network': {
- 'shared': True,
- 'name': 'prov_net',
- 'admin_state_up': True,
- 'provider:network_type': 'vlan',
- 'provider:physical_network': 'physnet_1',
- 'provider:segmentation_id': '102'
- }}).AndReturn(None)
-
- self.m.ReplayAll()
-
- rsrc.validate()
-
- scheduler.TaskRunner(rsrc.create)()
- self.assertEqual((rsrc.CREATE, rsrc.COMPLETE), rsrc.state)
-
- props = {
- "name": "prov_net",
- "shared": True,
- "admin_state_up": True,
- "network_type": "vlan",
- "physical_network": "physnet_1",
- "segmentation_id": "102"
- }
- update_snippet = rsrc_defn.ResourceDefinition(rsrc.name, rsrc.type(),
- props)
- self.assertIsNone(rsrc.handle_update(update_snippet, {}, {}))
- self.m.VerifyAll()
-
-
class NeutronSubnetTest(common.HeatTestCase):
def setUp(self):