Remove obsolete Ceph tags
[apex.git] / apex / tests / test_apex_overcloud_deploy.py
index b69c44d..17911d5 100644 (file)
@@ -104,7 +104,8 @@ class TestOvercloudDeploy(unittest.TestCase):
                'containers': False,
                'barometer': True,
                'ceph': False,
-               'sriov': False
+               'sriov': False,
+               'vim': 'openstack'
                },
               'global_params': MagicMock()}
 
@@ -135,7 +136,8 @@ class TestOvercloudDeploy(unittest.TestCase):
                'ceph': True,
                'sdn_controller': 'opendaylight',
                'sriov': False,
-               'os_version': 'queens'
+               'os_version': 'queens',
+               'vim': 'openstack'
                },
               'global_params': MagicMock()}
 
@@ -158,7 +160,7 @@ class TestOvercloudDeploy(unittest.TestCase):
         assert_in('/usr/share/openstack-tripleo-heat-templates/environments/'
                   'storage-environment.yaml', result_cmd)
         assert_in('/usr/share/openstack-tripleo-heat-templates/environments'
-                  '/services-docker/neutron-opendaylight.yaml', result_cmd)
+                  '/services/neutron-opendaylight.yaml', result_cmd)
         ds['deploy_options']['os_version'] = 'master'
         result_cmd = create_deploy_cmd(ds, ns, inv, '/tmp', virt)
         assert_in('/usr/share/openstack-tripleo-heat-templates/environments'
@@ -207,11 +209,13 @@ class TestOvercloudDeploy(unittest.TestCase):
         assert_raises(ApexDeployException, create_deploy_cmd,
                       ds, ns, inv, '/tmp', virt)
 
+    @patch('apex.builders.overcloud_builder.inject_opendaylight')
     @patch('apex.overcloud.deploy.virt_utils')
     @patch('apex.overcloud.deploy.shutil')
     @patch('apex.overcloud.deploy.os.path')
     @patch('builtins.open', mock_open())
-    def test_prep_image(self, mock_os_path, mock_shutil, mock_virt_utils):
+    def test_prep_image(self, mock_os_path, mock_shutil, mock_virt_utils,
+                        mock_inject_odl):
         ds_opts = {'dataplane': 'fdio',
                    'sdn_controller': 'opendaylight',
                    'odl_version': 'master',
@@ -223,6 +227,7 @@ class TestOvercloudDeploy(unittest.TestCase):
         ns = MagicMock()
         prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test')
         mock_virt_utils.virt_customize.assert_called()
+        mock_inject_odl.assert_called()
 
     @patch('apex.overcloud.deploy.virt_utils')
     @patch('apex.overcloud.deploy.shutil')
@@ -240,12 +245,13 @@ class TestOvercloudDeploy(unittest.TestCase):
         prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test')
         mock_virt_utils.virt_customize.assert_called()
 
+    @patch('apex.builders.overcloud_builder.inject_opendaylight')
     @patch('apex.overcloud.deploy.virt_utils')
     @patch('apex.overcloud.deploy.shutil')
     @patch('apex.overcloud.deploy.os.path')
     @patch('builtins.open', mock_open())
     def test_prep_image_sdn_odl(self, mock_os_path, mock_shutil,
-                                mock_virt_utils):
+                                mock_virt_utils, mock_inject_odl):
         ds_opts = {'dataplane': 'ovs',
                    'sdn_controller': 'opendaylight',
                    'odl_version': con.DEFAULT_ODL_VERSION,
@@ -259,6 +265,7 @@ class TestOvercloudDeploy(unittest.TestCase):
         ns = MagicMock()
         prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test')
         mock_virt_utils.virt_customize.assert_called()
+        mock_inject_odl.assert_called()
 
     @patch('apex.overcloud.deploy.c_builder')
     @patch('apex.overcloud.deploy.oc_builder')
@@ -283,18 +290,20 @@ class TestOvercloudDeploy(unittest.TestCase):
         mock_c_builder.add_upstream_patches.return_value = ['nova-api']
         patches = ['dummy_nova_patch']
         rv = prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test',
-                        docker_tag='latest', patches=patches, upstream=True)
-        mock_oc_builder.inject_opendaylight.assert_called
+                        docker_tag='latest', patches=patches)
+        mock_oc_builder.inject_opendaylight.assert_called()
         mock_virt_utils.virt_customize.assert_called()
-        mock_c_builder.add_upstream_patches.assert_called
+        mock_c_builder.add_upstream_patches.assert_called()
         self.assertListEqual(sorted(rv), ['nova-api', 'opendaylight'])
 
+    @patch('apex.overcloud.deploy.oc_builder')
     @patch('apex.overcloud.deploy.virt_utils')
     @patch('apex.overcloud.deploy.shutil')
     @patch('apex.overcloud.deploy.os.path')
     @patch('builtins.open', mock_open())
     def test_prep_image_sdn_odl_not_def(self, mock_os_path,
-                                        mock_shutil, mock_virt_utils):
+                                        mock_shutil, mock_virt_utils,
+                                        mock_oc_builder):
         ds_opts = {'dataplane': 'ovs',
                    'sdn_controller': 'opendaylight',
                    'odl_version': 'uncommon'}
@@ -305,6 +314,7 @@ class TestOvercloudDeploy(unittest.TestCase):
         ns = MagicMock()
         prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test')
         mock_virt_utils.virt_customize.assert_called()
+        mock_oc_builder.inject_opendaylight.assert_called()
 
     @patch('apex.overcloud.deploy.virt_utils')
     @patch('apex.overcloud.deploy.shutil')
@@ -352,24 +362,27 @@ class TestOvercloudDeploy(unittest.TestCase):
                                            'ovs': {'dpdk_cores': 'test'},
                                            'kernel': {'test': 'test'}},
                                'Controller': {'vpp': 'test'}}}}
-        ns = {'domain_name': 'test.domain',
-              'networks':
-              {'tenant':
-               {'nic_mapping': {'controller':
-                                {'members': ['tenant_nic']},
-                                'compute':
-                                {'members': ['tenant_nic']}}},
-               'external':
-               [{'nic_mapping': {'controller':
-                                 {'members': ['ext_nic']},
-                                 'compute':
-                                 {'members': ['ext_nic']}}}]}}
+        ns_dict = {'domain_name': 'test.domain',
+                   'networks':
+                   {'tenant':
+                    {'nic_mapping': {'controller':
+                                     {'members': ['tenant_nic']},
+                                     'compute':
+                                     {'members': ['tenant_nic']}}},
+                    'external':
+                    [{'nic_mapping': {'controller':
+                                      {'members': ['ext_nic']},
+                                      'compute':
+                                      {'members': ['ext_nic']}}}]}}
         inv = None
         try:
             # Swap stdout
             saved_stdout = sys.stdout
             out = StringIO()
             sys.stdout = out
+            ns = MagicMock()
+            ns.enabled_network_list = ['external', 'tenant']
+            ns.__getitem__.side_effect = lambda i: ns_dict.get(i, MagicMock())
             # run test
             prep_env(ds, ns, inv, 'opnfv-env.yml', '/net-env.yml', '/tmp')
             output = out.getvalue().strip()
@@ -392,24 +405,27 @@ class TestOvercloudDeploy(unittest.TestCase):
                'sriov': 'xxx',
                'performance': {'Compute': {},
                                'Controller': {}}}}
-        ns = {'domain_name': 'test.domain',
-              'networks':
-              {'tenant':
-               {'nic_mapping': {'controller':
-                                {'members': ['tenant_nic']},
-                                'compute':
-                                {'members': ['tenant_nic']}}},
-               'external':
-               [{'nic_mapping': {'controller':
-                                 {'members': ['ext_nic']},
-                                 'compute':
-                                 {'members': ['ext_nic']}}}]}}
+        ns_dict = {'domain_name': 'test.domain',
+                   'networks':
+                   {'tenant':
+                    {'nic_mapping': {'controller':
+                                     {'members': ['tenant_nic']},
+                                     'compute':
+                                     {'members': ['tenant_nic']}}},
+                    'external':
+                    [{'nic_mapping': {'controller':
+                                      {'members': ['ext_nic']},
+                                      'compute':
+                                      {'members': ['ext_nic']}}}]}}
         inv = None
         try:
             # Swap stdout
             saved_stdout = sys.stdout
             out = StringIO()
             sys.stdout = out
+            ns = MagicMock()
+            ns.enabled_network_list = ['external', 'tenant']
+            ns.__getitem__.side_effect = lambda i: ns_dict.get(i, MagicMock())
             # run test
             prep_env(ds, ns, inv, 'opnfv-env.yml', '/net-env.yml', '/tmp')
             output = out.getvalue().strip()
@@ -432,18 +448,18 @@ class TestOvercloudDeploy(unittest.TestCase):
                'dataplane': 'fdio',
                'sriov': 'xxx',
                'dvr': True}}
-        ns = {'domain_name': 'test.domain',
-              'networks':
-              {'tenant':
-               {'nic_mapping': {'controller':
-                                {'members': ['tenant_nic']},
-                                'compute':
-                                {'members': ['tenant_nic']}}},
-               'external':
-               [{'nic_mapping': {'controller':
-                                 {'members': ['ext_nic']},
-                                 'compute':
-                                 {'members': ['ext_nic']}}}]}}
+        ns_dict = {'domain_name': 'test.domain',
+                   'networks':
+                   {'tenant':
+                    {'nic_mapping': {'controller':
+                                     {'members': ['tenant_nic']},
+                                     'compute':
+                                     {'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:
@@ -451,6 +467,9 @@ class TestOvercloudDeploy(unittest.TestCase):
             saved_stdout = sys.stdout
             out = StringIO()
             sys.stdout = out
+            ns = MagicMock()
+            ns.enabled_network_list = ['external', 'tenant']
+            ns.__getitem__.side_effect = lambda i: ns_dict.get(i, MagicMock())
             # run test
             prep_env(ds, ns, inv, 'opnfv-env.yml', '/net-env.yml', '/tmp')
             output = out.getvalue().strip()
@@ -459,6 +478,107 @@ class TestOvercloudDeploy(unittest.TestCase):
             # put stdout back
             sys.stdout = saved_stdout
 
+    @patch('apex.overcloud.deploy.fileinput')
+    @patch('apex.overcloud.deploy.shutil')
+    def test_prep_env_tenant_vlan(self, mock_shutil, mock_fileinput):
+        mock_fileinput.input.return_value = \
+            ['NeutronNetworkVLANRanges',
+             'NeutronNetworkType', 'NeutronBridgeMappings']
+        ds = {'deploy_options':
+              {'sdn_controller': False,
+               'dataplane': 'ovs',
+               'sriov': 'xxx',
+               'dvr': True}}
+        ns_dict = {'domain_name': 'test.domain',
+                   'networks':
+                   {'tenant':
+                    {'nic_mapping': {'controller':
+                                     {'members': ['tenant_nic']},
+                                     'compute':
+                                     {'members': ['tenant_nic']}},
+                     'segmentation_type': 'vlan',
+                     'overlay_id_range': 'vlan:500:600'
+                     },
+                    'external':
+                    [{'nic_mapping': {'controller':
+                                      {'members': ['ext_nic']},
+                                      'compute':
+                                      {'members': ['ext_nic']}}}]}}
+        inv = MagicMock()
+        inv.get_node_counts.return_value = (3, 2)
+        try:
+            # Swap stdout
+            saved_stdout = sys.stdout
+            out = StringIO()
+            sys.stdout = out
+            ns = MagicMock()
+            ns.enabled_network_list = ['external', 'tenant']
+            ns.__getitem__.side_effect = lambda i: ns_dict.get(i, MagicMock())
+            # run test
+            prep_env(ds, ns, inv, 'opnfv-env.yml', '/net-env.yml', '/tmp')
+            output = out.getvalue().strip()
+            assert_in('NeutronNetworkVLANRanges: '
+                      'vlan:500:600,datacentre:1:1000', output)
+            assert_in('NeutronNetworkType: vlan', output)
+            assert_in('NeutronBridgeMappings: '
+                      'vlan:br-vlan,datacentre:br-ex', output)
+            assert_not_in('OpenDaylightProviderMappings', output)
+        finally:
+            # put stdout back
+            sys.stdout = saved_stdout
+
+    @patch('apex.overcloud.deploy.fileinput')
+    @patch('apex.overcloud.deploy.shutil')
+    def test_prep_env_tenant_vlan_odl(self, mock_shutil, mock_fileinput):
+        mock_fileinput.input.return_value = \
+            ['NeutronNetworkVLANRanges',
+             'NeutronNetworkType',
+             'NeutronBridgeMappings',
+             'OpenDaylightProviderMappings']
+        ds = {'deploy_options':
+              {'sdn_controller': 'opendaylight',
+               'dataplane': 'ovs',
+               'sriov': 'xxx',
+               'dvr': True}}
+        ns_dict = {'domain_name': 'test.domain',
+                   'networks':
+                   {'tenant':
+                    {'nic_mapping': {'controller':
+                                     {'members': ['tenant_nic']},
+                                     'compute':
+                                     {'members': ['tenant_nic']}},
+                     'segmentation_type': 'vlan',
+                     'overlay_id_range': 'vlan:500:600'
+                     },
+                    'external':
+                    [{'nic_mapping': {'controller':
+                                      {'members': ['ext_nic']},
+                                      'compute':
+                                      {'members': ['ext_nic']}}}]}}
+        inv = MagicMock()
+        inv.get_node_counts.return_value = (3, 2)
+        try:
+            # Swap stdout
+            saved_stdout = sys.stdout
+            out = StringIO()
+            sys.stdout = out
+            ns = MagicMock()
+            ns.enabled_network_list = ['external', 'tenant']
+            ns.__getitem__.side_effect = lambda i: ns_dict.get(i, MagicMock())
+            # run test
+            prep_env(ds, ns, inv, 'opnfv-env.yml', '/net-env.yml', '/tmp')
+            output = out.getvalue().strip()
+            assert_in('NeutronNetworkVLANRanges: '
+                      'vlan:500:600,datacentre:1:1000', output)
+            assert_in('NeutronNetworkType: vlan', output)
+            assert_in('NeutronBridgeMappings: '
+                      'vlan:br-vlan,datacentre:br-ex', output)
+            assert_in('OpenDaylightProviderMappings: '
+                      'vlan:br-vlan,datacentre:br-ex', output)
+        finally:
+            # put stdout back
+            sys.stdout = saved_stdout
+
     def test_generate_ceph_key(self):
         assert_equal(len(generate_ceph_key()), 40)
 
@@ -496,10 +616,7 @@ class TestOvercloudDeploy(unittest.TestCase):
               }
         prep_storage_env(ds, ns, virtual=True, tmp_dir='/tmp')
         ceph_params = {
-            'DockerCephDaemonImage':
-                '192.0.2.1:8787/ceph/daemon:tag-build-master-luminous-centos'
-                '-7',
-            'CephPoolDefaultSize': 1,
+            'CephPoolDefaultSize': 2,
             'CephAnsibleExtraConfig': {
                 'centos_package_dependencies': [],
                 'ceph_osd_docker_memory_limit': '1g',
@@ -663,6 +780,6 @@ class TestOvercloudDeploy(unittest.TestCase):
         output = get_docker_sdn_file(ds_opts)
         self.assertEqual(output,
                          ('/usr/share/openstack-tripleo-heat-templates'
-                          '/environments/services-docker/neutron-opendaylight'
+                          '/environments/services/neutron-opendaylight'
                           '.yaml')
                          )