Merge "Cherry-pick of L2GW environment file"
[apex.git] / apex / tests / test_apex_overcloud_deploy.py
index 1df10e4..420a70d 100644 (file)
@@ -7,6 +7,7 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+import os
 import sys
 import unittest
 
@@ -26,6 +27,7 @@ from apex.overcloud.deploy import generate_ceph_key
 from apex.overcloud.deploy import prep_storage_env
 from apex.overcloud.deploy import external_network_cmds
 from apex.overcloud.deploy import create_congress_cmds
+from apex.overcloud.deploy import SDN_FILE_MAP
 
 from nose.tools import (
     assert_regexp_matches,
@@ -70,6 +72,14 @@ class TestOvercloudDeploy(unittest.TestCase):
         res = '/usr/share/openstack-tripleo-heat-templates/environments/test'
         assert_equal(build_sdn_env_list(ds, sdn_map), [res])
 
+    def test_build_sdn_env_list_with_default(self):
+        ds = {'sdn_controller': 'opendaylight',
+              'vpn': True}
+        prefix = '/usr/share/openstack-tripleo-heat-templates/environments'
+        res = [os.path.join(prefix, 'neutron-opendaylight.yaml'),
+               os.path.join(prefix, 'neutron-bgpvpn-opendaylight.yaml')]
+        assert_equal(build_sdn_env_list(ds, SDN_FILE_MAP), res)
+
     @patch('apex.overcloud.deploy.prep_storage_env')
     @patch('apex.overcloud.deploy.build_sdn_env_list')
     @patch('builtins.open', mock_open())
@@ -144,7 +154,8 @@ class TestOvercloudDeploy(unittest.TestCase):
               'global_params': MagicMock()}
         ds['deploy_options'].__getitem__.side_effect = \
             lambda i: ds_opts.get(i, MagicMock())
-        prep_image(ds, 'undercloud.qcow2', '/tmp', root_pw='test')
+        ns = MagicMock()
+        prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test')
         mock_virt_utils.virt_customize.assert_called()
 
     @patch('apex.overcloud.deploy.virt_utils')
@@ -159,7 +170,8 @@ class TestOvercloudDeploy(unittest.TestCase):
               'global_params': MagicMock()}
         ds['deploy_options'].__getitem__.side_effect = \
             lambda i: ds_opts.get(i, MagicMock())
-        prep_image(ds, 'undercloud.qcow2', '/tmp', root_pw='test')
+        ns = MagicMock()
+        prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test')
         mock_virt_utils.virt_customize.assert_called()
 
     @patch('apex.overcloud.deploy.virt_utils')
@@ -178,7 +190,8 @@ class TestOvercloudDeploy(unittest.TestCase):
             lambda i: ds_opts.get(i, MagicMock())
         ds['deploy_options'].__contains__.side_effect = \
             lambda i: True if i in ds_opts else MagicMock()
-        prep_image(ds, 'undercloud.qcow2', '/tmp', root_pw='test')
+        ns = MagicMock()
+        prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test')
         mock_virt_utils.virt_customize.assert_called()
 
     @patch('apex.overcloud.deploy.virt_utils')
@@ -194,7 +207,8 @@ class TestOvercloudDeploy(unittest.TestCase):
               'global_params': MagicMock()}
         ds['deploy_options'].__getitem__.side_effect = \
             lambda i: ds_opts.get(i, MagicMock())
-        prep_image(ds, 'undercloud.qcow2', '/tmp', root_pw='test')
+        ns = MagicMock()
+        prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test')
         mock_virt_utils.virt_customize.assert_called()
 
     @patch('apex.overcloud.deploy.virt_utils')
@@ -209,14 +223,15 @@ class TestOvercloudDeploy(unittest.TestCase):
               'global_params': MagicMock()}
         ds['deploy_options'].__getitem__.side_effect = \
             lambda i: ds_opts.get(i, MagicMock())
-        prep_image(ds, 'undercloud.qcow2', '/tmp', root_pw='test')
+        ns = MagicMock()
+        prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test')
         mock_virt_utils.virt_customize.assert_called()
 
     @patch('apex.overcloud.deploy.os.path.isfile')
     def test_prep_image_no_image(self, mock_isfile):
         mock_isfile.return_value = False
         assert_raises(ApexDeployException, prep_image,
-                      {}, 'undercloud.qcow2', '/tmp')
+                      {}, {}, 'undercloud.qcow2', '/tmp')
 
     def test_make_ssh_key(self):
         priv, pub = make_ssh_key()
@@ -245,9 +260,14 @@ class TestOvercloudDeploy(unittest.TestCase):
               'networks':
               {'tenant':
                {'nic_mapping': {'controller':
-                                {'members': ['test']},
+                                {'members': ['tenant_nic']},
                                 'compute':
-                                {'members': ['test']}}}}}
+                                {'members': ['tenant_nic']}}},
+               'external':
+               [{'nic_mapping': {'controller':
+                                 {'members': ['ext_nic']},
+                                 'compute':
+                                 {'members': ['ext_nic']}}}]}}
         inv = None
         try:
             # Swap stdout
@@ -279,9 +299,14 @@ class TestOvercloudDeploy(unittest.TestCase):
               'networks':
               {'tenant':
                {'nic_mapping': {'controller':
-                                {'members': ['test']},
+                                {'members': ['tenant_nic']},
                                 'compute':
-                                {'members': ['test']}}}}}
+                                {'members': ['tenant_nic']}}},
+               'external':
+               [{'nic_mapping': {'controller':
+                                 {'members': ['ext_nic']},
+                                 'compute':
+                                 {'members': ['ext_nic']}}}]}}
         inv = None
         try:
             # Swap stdout
@@ -291,7 +316,8 @@ class TestOvercloudDeploy(unittest.TestCase):
             # run test
             prep_env(ds, ns, inv, 'opnfv-env.yml', '/net-env.yml', '/tmp')
             output = out.getvalue().strip()
-            assert_in('NeutronVPPAgentPhysnets: \'datacentre:test\'', output)
+            assert_in('NeutronVPPAgentPhysnets: \'datacentre:tenant_nic\'',
+                      output)
             assert_in('NeutronVPPAgentPhysnets', output)
         finally:
             # put stdout back
@@ -311,9 +337,14 @@ class TestOvercloudDeploy(unittest.TestCase):
               'networks':
               {'tenant':
                {'nic_mapping': {'controller':
-                                {'members': ['test']},
+                                {'members': ['tenant_nic']},
                                 'compute':
-                                {'members': ['test']}}}}}
+                                {'members': ['tenant_nic']}}},
+               'external':
+               [{'nic_mapping': {'controller':
+                                 {'members': ['ext_nic']},
+                                 'compute':
+                                 {'members': ['ext_nic']}}}]}}
         inv = MagicMock()
         inv.get_node_counts.return_value = (3, 2)
         try: