diff options
author | Tim Rozet <trozet@redhat.com> | 2018-10-26 14:03:17 -0400 |
---|---|---|
committer | Tim Rozet <trozet@redhat.com> | 2018-11-01 08:46:58 -0400 |
commit | d38e8a91c1a0e3f94d2a19876956ade48d1a8ed2 (patch) | |
tree | 9fa6ea0446ad7341e67d1b5ed2c0cf352db219e5 /apex/tests | |
parent | f20730a6633a9f910a804d5205fbdbff17e622d0 (diff) |
Fixes Docker image upload for master/rocky
The API has changed to create/upload the docker container images to be
used for deployment. In the past the prepare commands would read the THT
environment files passed, to determine which docker images to render
into an environment file. The new behavior uses a new
"containers-prepare-parameter.yaml" format (included in this patch),
which Apex will now configure for deployment. By default docker images
will be rendered for all TripleO services identified in the
roles_data.yaml file. Therefore we must use several excludes patterns to
only pull the docker images needed for a default deployment.
JIRA: APEX-642
Change-Id: Iab00fcb874554bb98540dc9a4c3051e58ea68a3b
Signed-off-by: Tim Rozet <trozet@redhat.com>
Diffstat (limited to 'apex/tests')
-rw-r--r-- | apex/tests/test_apex_common_builder.py | 52 | ||||
-rw-r--r-- | apex/tests/test_apex_deploy.py | 10 | ||||
-rw-r--r-- | apex/tests/test_apex_overcloud_deploy.py | 1 |
3 files changed, 59 insertions, 4 deletions
diff --git a/apex/tests/test_apex_common_builder.py b/apex/tests/test_apex_common_builder.py index 09bd2545..dede55a2 100644 --- a/apex/tests/test_apex_common_builder.py +++ b/apex/tests/test_apex_common_builder.py @@ -24,6 +24,8 @@ DOCKER_YAML = { } } +a_mock_open = mock_open(read_data=None) + class TestCommonBuilder(unittest.TestCase): @classmethod @@ -249,3 +251,53 @@ class TestCommonBuilder(unittest.TestCase): self.assertRaises(exceptions.ApexCommonBuilderException, c_builder.project_to_docker_image, 'nova') + + def test_get_neutron_driver(self): + ds_opts = {'dataplane': 'fdio', + 'sdn_controller': 'opendaylight', + 'odl_version': 'master', + 'vpn': False, + 'sriov': False} + self.assertEquals(c_builder.get_neutron_driver(ds_opts), + 'opendaylight') + ds_opts['sdn_controller'] = None + ds_opts['vpp'] = True + self.assertEquals(c_builder.get_neutron_driver(ds_opts), + 'vpp') + ds_opts['sdn_controller'] = 'ovn' + self.assertEquals(c_builder.get_neutron_driver(ds_opts), + 'ovn') + + @patch('apex.builders.common_builder.yaml') + @patch('apex.overcloud.deploy.os.path.isfile') + @patch('builtins.open', a_mock_open, create=True) + def test_prepare_container_images(self, mock_is_file, mock_yaml): + mock_yaml.safe_load.return_value = { + 'parameter_defaults': { + 'ContainerImagePrepare': [ + {'set': + {'namespace': 'blah', + 'neutron_driver': 'null', + } + } + ] + } + } + expected_output = { + 'parameter_defaults': { + 'ContainerImagePrepare': [ + {'set': + {'namespace': 'docker.io/tripleoqueens', + 'neutron_driver': 'opendaylight', + } + } + ] + } + } + + c_builder.prepare_container_images('dummy.yaml', 'queens', + 'opendaylight') + mock_yaml.safe_dump.assert_called_with( + expected_output, + a_mock_open.return_value, + default_flow_style=False) diff --git a/apex/tests/test_apex_deploy.py b/apex/tests/test_apex_deploy.py index be52c276..004c21c1 100644 --- a/apex/tests/test_apex_deploy.py +++ b/apex/tests/test_apex_deploy.py @@ -118,6 +118,7 @@ class TestDeploy(unittest.TestCase): args.snapshot = False assert_raises(ApexDeployException, validate_deploy_args, args) + @patch('apex.deploy.c_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_c_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.c_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_c_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.c_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_c_builder): net_sets_dict = {'networks': MagicMock(), 'dns_servers': 'test'} ds_opts_dict = {'global_params': MagicMock(), diff --git a/apex/tests/test_apex_overcloud_deploy.py b/apex/tests/test_apex_overcloud_deploy.py index a70057b9..402ecebf 100644 --- a/apex/tests/test_apex_overcloud_deploy.py +++ b/apex/tests/test_apex_overcloud_deploy.py @@ -156,7 +156,6 @@ class TestOvercloudDeploy(unittest.TestCase): assert_in('--control-scale 3', result_cmd) assert_in('--compute-scale 2', result_cmd) assert_in('docker-images.yaml', result_cmd) - assert_in('sdn-images.yaml', result_cmd) assert_in('/usr/share/openstack-tripleo-heat-templates/environments' '/docker.yaml', result_cmd) assert_in('/usr/share/openstack-tripleo-heat-templates/environments/' |