Upgrade OVS in undercloud 65/65665/4
authorTim Rozet <trozet@redhat.com>
Fri, 7 Dec 2018 21:09:50 +0000 (16:09 -0500)
committerTim Rozet <trozet@redhat.com>
Fri, 7 Dec 2018 22:13:11 +0000 (17:13 -0500)
The OVS in the frozen undercloud disk image for Gambia is no longer
working (perhaps due to kernel upgrade or package changes during
deployment). This patch builds OVS the same way as is done for the SFC
scenario in the undercloud disk image.

JIRA: APEX-655

Change-Id: I6fa3e009a25806e299c7be88d6d3ee8db4c2648b
Signed-off-by: Tim Rozet <trozet@redhat.com>
apex/deploy.py
apex/tests/test_apex_deploy.py

index bc35e91..64374a9 100644 (file)
@@ -394,6 +394,14 @@ def main():
         # prep undercloud with required packages
         uc_builder.add_upstream_packages(uc_image)
         uc_builder.inject_calipso_installer(APEX_TEMP_DIR, uc_image)
+        # upgrade OVS in undercloud
+        shutil.copyfile(os.path.join(args.deploy_dir, 'build_ovs_nsh.sh'),
+                        os.path.join(APEX_TEMP_DIR, 'build_ovs_nsh.sh'))
+        virt_utils.virt_customize(
+            [{constants.VIRT_RUN_CMD: 'yum -y upgrade kernel'}],
+            uc_image
+        )
+        oc_builder.inject_ovs_nsh(uc_image, APEX_TEMP_DIR)
         # add patches from upstream to undercloud and overcloud
         logging.info('Adding patches to undercloud')
         patches = deployment.determine_patches()
@@ -435,9 +443,6 @@ def main():
         else:
             net_data = False
 
-        shutil.copyfile(os.path.join(args.deploy_dir, 'build_ovs_nsh.sh'),
-                        os.path.join(APEX_TEMP_DIR, 'build_ovs_nsh.sh'))
-
         # TODO(trozet): Either fix opnfv env or default to use upstream env
         if args.env_file == 'opnfv-environment.yaml':
             # Override the env_file if it is defaulted to opnfv
index be52c27..8cb5576 100644 (file)
@@ -118,6 +118,7 @@ class TestDeploy(unittest.TestCase):
         args.snapshot = False
         assert_raises(ApexDeployException, validate_deploy_args, args)
 
+    @patch('apex.deploy.oc_builder')
     @patch('apex.deploy.ApexDeployment')
     @patch('apex.deploy.uc_builder')
     @patch('apex.deploy.network_data.create_network_data')
@@ -146,7 +147,7 @@ class TestDeploy(unittest.TestCase):
                   mock_utils, mock_parsers, mock_oc_cfg,
                   mock_virt_utils, mock_inv, mock_build_vms, mock_uc_lib,
                   mock_oc_deploy, mock_shutil, mock_network_data,
-                  mock_uc_builder, mock_deployment):
+                  mock_uc_builder, mock_deployment, mock_oc_builder):
         net_sets_dict = {'networks': MagicMock(),
                          'dns_servers': 'test'}
         ds_opts_dict = {'global_params': MagicMock(),
@@ -197,6 +198,7 @@ class TestDeploy(unittest.TestCase):
         main()
         mock_snap_deployment.assert_called()
 
+    @patch('apex.deploy.oc_builder')
     @patch('apex.deploy.ApexDeployment')
     @patch('apex.deploy.uc_builder')
     @patch('apex.deploy.network_data.create_network_data')
@@ -225,7 +227,7 @@ class TestDeploy(unittest.TestCase):
                        mock_utils, mock_parsers, mock_oc_cfg,
                        mock_virt_utils, mock_inv, mock_build_vms, mock_uc_lib,
                        mock_oc_deploy, mock_shutil, mock_network_data,
-                       mock_uc_builder, mock_deployment):
+                       mock_uc_builder, mock_deployment, mock_oc_builder):
         # didn't work yet line 412
         # net_sets_dict = {'networks': {'admin': {'cidr': MagicMock()}},
         #                 'dns_servers': 'test'}
@@ -329,6 +331,7 @@ class TestDeploy(unittest.TestCase):
         # TODO(trozet) add assertions here with arguments for functions in
         # deploy main
 
+    @patch('apex.deploy.oc_builder')
     @patch('apex.deploy.ApexDeployment')
     @patch('apex.deploy.uc_builder')
     @patch('apex.deploy.network_data.create_network_data')
@@ -358,7 +361,8 @@ class TestDeploy(unittest.TestCase):
                       mock_utils, mock_parsers, mock_oc_cfg,
                       mock_virt_utils, mock_inv, mock_build_vms, mock_uc_lib,
                       mock_oc_deploy, mock_git, mock_shutil,
-                      mock_network_data, mock_uc_builder, mock_deployment):
+                      mock_network_data, mock_uc_builder, mock_deployment,
+                      mock_oc_builder):
         net_sets_dict = {'networks': MagicMock(),
                          'dns_servers': 'test'}
         ds_opts_dict = {'global_params': MagicMock(),