class TestHostSystemUpgrader(BaseTestCase): def setUp(self): self.upgrader = HostSystemUpgrader(self.fake_config) @mock.patch( 'fuel_upgrade.engines.host_system.HostSystemUpgrader.update_repo') @mock.patch( 'fuel_upgrade.engines.host_system.HostSystemUpgrader.run_puppet') @mock.patch( 'fuel_upgrade.engines.host_system.utils') def test_upgrade(self, mock_utils, run_puppet_mock, update_repo_mock): self.upgrader.upgrade() mock_utils.copy.assert_called_once_with( '/tmp/upgrade_path/repos/2014.1.1-5.1/centos/x86_64', '/var/www/nailgun/2014.1.1-5.1/centos/x86_64') self.called_once(run_puppet_mock) self.called_once(update_repo_mock) @mock.patch('fuel_upgrade.engines.host_system.utils') def test_update_repo(self, utils_mock): self.upgrader.update_repo() templates_path = os.path.abspath( os.path.join(os.path.dirname(__file__), '../templates')) utils_mock.render_template_to_file.assert_called_once_with( '{0}/nailgun.repo'.format(templates_path), '/etc/yum.repos.d/9999_nailgun.repo', {'version': '9999', 'repo_path': '/var/www/nailgun/2014.1.1-5.1/centos/x86_64'}) @mock.patch('fuel_upgrade.engines.host_system.utils') def test_run_puppet(self, utils_mock): self.upgrader.run_puppet() utils_mock.exec_cmd.assert_called_once_with( 'puppet apply -d -v ' '/tmp/upgrade_path/puppet/2014.1.1-5.1/modules/nailgun/examples' '/host-upgrade.pp ' '--modulepath=/tmp/upgrade_path/puppet/2014.1.1-5.1/modules') @mock.patch( 'fuel_upgrade.engines.host_system.' 'HostSystemUpgrader.remove_repo_config') def test_rollback(self, remove_repo_config_mock): self.upgrader.rollback() self.called_once(remove_repo_config_mock) def test_on_success_does_not_raise_exceptions(self): self.upgrader.on_success() @mock.patch('fuel_upgrade.engines.host_system.utils') def test_remove_repo_config(self, utils_mock): self.upgrader.remove_repo_config() utils_mock.remove_if_exists.assert_called_once_with( '/etc/yum.repos.d/9999_nailgun.repo') def test_required_free_space(self): self.assertEqual( self.upgrader.required_free_space, {'/etc/yum.repos.d/9999_nailgun.repo': 10})
def test_hostsystem_rollback_is_first(self, _): args = self.default_args() hostsystem = HostSystemUpgrader(args['config']) hostsystem.upgrade = mock.Mock() hostsystem.rollback = mock.Mock() def check_call(): hostsystem.rollback.assert_called_once_with() # there's no way to check call order of different mocks, so # let's use this trick - check that all mock calls were # after hostsystem rollback call. args['upgraders'] = [ hostsystem, mock.Mock(rollback=mock.Mock(side_effect=check_call)), mock.Mock(rollback=mock.Mock(side_effect=check_call))] upgrader = UpgradeManager(**args) upgrader._used_upgraders = args['upgraders'] upgrader.rollback()
def test_hostsystem_rollback_is_first(self, _): args = self.default_args() hostsystem = HostSystemUpgrader(args['config']) hostsystem.upgrade = mock.Mock() hostsystem.rollback = mock.Mock() def check_call(): hostsystem.rollback.assert_called_once_with() # there's no way to check call order of different mocks, so # let's use this trick - check that all mock calls were # after hostsystem rollback call. args['upgraders'] = [ hostsystem, mock.Mock(rollback=mock.Mock(side_effect=check_call)), mock.Mock(rollback=mock.Mock(side_effect=check_call)) ] upgrader = UpgradeManager(**args) upgrader._used_upgraders = args['upgraders'] upgrader.rollback()
class TestHostSystemUpgrader(BaseTestCase): def setUp(self): with mock.patch('fuel_upgrade.engines.host_system.SupervisorClient'): self.upgrader = HostSystemUpgrader(self.fake_config) self.upgrader.supervisor = mock.Mock() @mock.patch.multiple( 'fuel_upgrade.engines.host_system.HostSystemUpgrader', install_repos=mock.DEFAULT, update_repo=mock.DEFAULT, run_puppet=mock.DEFAULT, remove_repo_config=mock.DEFAULT ) @mock.patch('fuel_upgrade.engines.host_system.utils') def test_upgrade(self, mock_utils, install_repos, update_repo, run_puppet, remove_repo_config): self.upgrader.upgrade() self.called_once(install_repos) self.called_once(run_puppet) self.called_once(update_repo) self.called_once(remove_repo_config) self.called_once(self.upgrader.supervisor.stop_all_services) mock_utils.exec_cmd.assert_called_with( 'yum install -v -y fuel-9999.0.0') @mock.patch('fuel_upgrade.engines.host_system.utils') def test_update_repo(self, utils_mock): self.upgrader.update_repo() templates_path = os.path.abspath( os.path.join(os.path.dirname(__file__), '../templates')) utils_mock.render_template_to_file.assert_called_once_with( '{0}/nailgun.repo'.format(templates_path), '/etc/yum.repos.d/9999_nailgun.repo', { 'name': '9999_nailgun', 'baseurl': 'file:/var/www/nailgun/2014.1.1-5.1/centos/x86_64', 'gpgcheck': 0, 'skip_if_unavailable': 0, }) @mock.patch('fuel_upgrade.engines.host_system.utils') def test_run_puppet(self, utils_mock): self.upgrader.run_puppet() utils_mock.exec_cmd.assert_called_once_with( 'puppet apply -d -v ' '/etc/puppet/2014.1.1-5.1/modules/nailgun/examples' '/host-upgrade.pp ' '--modulepath=/etc/puppet/2014.1.1-5.1/modules') @mock.patch.multiple( 'fuel_upgrade.engines.host_system.HostSystemUpgrader', remove_repos=mock.DEFAULT, remove_repo_config=mock.DEFAULT, ) def test_rollback(self, remove_repos, remove_repo_config): self.upgrader.rollback() self.called_once(remove_repos) self.called_once(remove_repo_config) self.called_once(self.upgrader.supervisor.start_all_services) @mock.patch('fuel_upgrade.engines.host_system.utils.remove_if_exists') def test_remove_repo_config(self, remove_mock): self.upgrader.config.from_version = '6.0' self.upgrader.remove_repo_config() self.assertEqual(remove_mock.call_args_list, [ mock.call('/etc/yum.repos.d/9999_nailgun.repo'), mock.call('/etc/yum.repos.d/auxiliary.repo'), ]) @mock.patch('fuel_upgrade.engines.host_system.utils.remove_if_exists') def test_remove_repo_config_for_fuel_ge_61(self, remove_mock): self.upgrader.config.from_version = '6.1' self.upgrader.config.new_version = '7.0' self.upgrader.remove_repo_config() self.assertEqual(remove_mock.call_args_list, [ mock.call('/etc/yum.repos.d/9999_nailgun.repo'), mock.call('/etc/yum.repos.d/7.0_auxiliary.repo'), ]) @mock.patch('fuel_upgrade.engines.host_system.utils.copy') @mock.patch('fuel_upgrade.engines.host_system.glob.glob') def test_install_repos(self, glob, copy): glob.return_value = ['one', 'two'] self.upgrader.install_repos() self.called_times(copy, 2) copy.assert_has_calls([ mock.call('one', '/var/www/nailgun/one'), mock.call('two', '/var/www/nailgun/two')]) glob.assert_called_with('/tmp/upgrade_path/repos/[0-9.-]*') @mock.patch('fuel_upgrade.engines.host_system.utils.remove') @mock.patch('fuel_upgrade.engines.host_system.glob.glob') def test_remove_repos(self, glob, remove): glob.return_value = ['one', 'two'] self.upgrader.remove_repos() self.called_times(remove, 2) remove.assert_has_calls([ mock.call('/var/www/nailgun/one'), mock.call('/var/www/nailgun/two')]) glob.assert_called_with('/tmp/upgrade_path/repos/[0-9.-]*') @mock.patch( 'fuel_upgrade.engines.openstack.utils.os.path.isdir', return_value=True) @mock.patch( 'fuel_upgrade.engines.openstack.utils.dir_size', return_value=42) @mock.patch( 'fuel_upgrade.engines.openstack.glob.glob', return_value=['1', '2']) def test_required_free_space(self, glob, __, ___): self.assertEqual( self.upgrader.required_free_space, {'/etc/yum.repos.d/9999_nailgun.repo': 10, '/var/www/nailgun': 84}) glob.assert_called_with('/tmp/upgrade_path/repos/[0-9.-]*')
class TestHostSystemUpgrader(BaseTestCase): def setUp(self): with mock.patch('fuel_upgrade.engines.host_system.SupervisorClient'): self.upgrader = HostSystemUpgrader(self.fake_config) self.upgrader.supervisor = mock.Mock() @mock.patch( 'fuel_upgrade.engines.host_system.HostSystemUpgrader.install_repos') @mock.patch( 'fuel_upgrade.engines.host_system.HostSystemUpgrader.update_repo') @mock.patch( 'fuel_upgrade.engines.host_system.HostSystemUpgrader.run_puppet') @mock.patch( 'fuel_upgrade.engines.host_system.utils') def test_upgrade(self, mock_utils, run_puppet_mock, update_repo_mock, install_repos_mock): self.upgrader.upgrade() self.called_once(install_repos_mock) self.called_once(run_puppet_mock) self.called_once(update_repo_mock) self.called_once(self.upgrader.supervisor.stop_all_services) mock_utils.exec_cmd.assert_called_with( 'yum install -v -y fuel-9999.0.0') @mock.patch('fuel_upgrade.engines.host_system.utils') def test_update_repo(self, utils_mock): self.upgrader.update_repo() templates_path = os.path.abspath( os.path.join(os.path.dirname(__file__), '../templates')) utils_mock.render_template_to_file.assert_called_once_with( '{0}/nailgun.repo'.format(templates_path), '/etc/yum.repos.d/9999_nailgun.repo', { 'name': '9999_nailgun', 'baseurl': 'file:/var/www/nailgun/2014.1.1-5.1/centos/x86_64', 'gpgcheck': 0, 'skip_if_unavailable': 0, }) @mock.patch('fuel_upgrade.engines.host_system.utils') def test_run_puppet(self, utils_mock): self.upgrader.run_puppet() utils_mock.exec_cmd.assert_called_once_with( 'puppet apply -d -v ' '/etc/puppet/2014.1.1-5.1/modules/nailgun/examples' '/host-upgrade.pp ' '--modulepath=/etc/puppet/2014.1.1-5.1/modules') @mock.patch( 'fuel_upgrade.engines.host_system.HostSystemUpgrader.remove_repos') @mock.patch( 'fuel_upgrade.engines.host_system.' 'HostSystemUpgrader.remove_repo_config') def test_rollback(self, remove_repo_config_mock, remove_repos_mock): self.upgrader.rollback() self.called_once(remove_repo_config_mock) self.called_once(remove_repos_mock) self.called_once(self.upgrader.supervisor.start_all_services) @mock.patch('fuel_upgrade.engines.host_system.utils.remove_if_exists') def test_remove_repo_config(self, remove_mock): self.upgrader.config.from_version = '6.0' self.upgrader.remove_repo_config() self.assertEqual(remove_mock.call_args_list, [ mock.call('/etc/yum.repos.d/9999_nailgun.repo'), mock.call('/etc/yum.repos.d/auxiliary.repo'), ]) @mock.patch('fuel_upgrade.engines.host_system.utils.remove_if_exists') def test_remove_repo_config_for_fuel_ge_61(self, remove_mock): self.upgrader.config.from_version = '6.1' self.upgrader.config.new_version = '7.0' self.upgrader.remove_repo_config() self.assertEqual(remove_mock.call_args_list, [ mock.call('/etc/yum.repos.d/9999_nailgun.repo'), mock.call('/etc/yum.repos.d/7.0_auxiliary.repo'), ]) @mock.patch('fuel_upgrade.engines.host_system.utils.copy') @mock.patch('fuel_upgrade.engines.host_system.glob.glob') def test_install_repos(self, glob, copy): glob.return_value = ['one', 'two'] self.upgrader.install_repos() self.called_times(copy, 2) copy.assert_has_calls([ mock.call('one', '/var/www/nailgun/one'), mock.call('two', '/var/www/nailgun/two')]) glob.assert_called_with('/tmp/upgrade_path/repos/[0-9.-]*') @mock.patch('fuel_upgrade.engines.host_system.utils.remove') @mock.patch('fuel_upgrade.engines.host_system.glob.glob') def test_remove_repos(self, glob, remove): glob.return_value = ['one', 'two'] self.upgrader.remove_repos() self.called_times(remove, 2) remove.assert_has_calls([ mock.call('/var/www/nailgun/one'), mock.call('/var/www/nailgun/two')]) glob.assert_called_with('/tmp/upgrade_path/repos/[0-9.-]*') @mock.patch( 'fuel_upgrade.engines.openstack.utils.os.path.isdir', return_value=True) @mock.patch( 'fuel_upgrade.engines.openstack.utils.dir_size', return_value=42) @mock.patch( 'fuel_upgrade.engines.openstack.glob.glob', return_value=['1', '2']) def test_required_free_space(self, glob, __, ___): self.assertEqual( self.upgrader.required_free_space, {'/etc/yum.repos.d/9999_nailgun.repo': 10, '/var/www/nailgun': 84}) glob.assert_called_with('/tmp/upgrade_path/repos/[0-9.-]*')
class TestHostSystemUpgrader(BaseTestCase): def setUp(self): with mock.patch("fuel_upgrade.engines.host_system.SupervisorClient"): self.upgrader = HostSystemUpgrader(self.fake_config) self.upgrader.supervisor = mock.Mock() @mock.patch("fuel_upgrade.engines.host_system.HostSystemUpgrader.install_repos") @mock.patch("fuel_upgrade.engines.host_system.HostSystemUpgrader.update_repo") @mock.patch("fuel_upgrade.engines.host_system.HostSystemUpgrader.run_puppet") @mock.patch("fuel_upgrade.engines.host_system.utils") def test_upgrade(self, mock_utils, run_puppet_mock, update_repo_mock, install_repos_mock): self.upgrader.upgrade() self.called_once(install_repos_mock) self.called_once(run_puppet_mock) self.called_once(update_repo_mock) self.called_once(self.upgrader.supervisor.stop_all_services) mock_utils.exec_cmd.assert_called_with("yum install -v -y fuel-9999.0.0") @mock.patch("fuel_upgrade.engines.host_system.utils") def test_update_repo(self, utils_mock): self.upgrader.update_repo() templates_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "../templates")) utils_mock.render_template_to_file.assert_called_once_with( "{0}/nailgun.repo".format(templates_path), "/etc/yum.repos.d/9999_nailgun.repo", { "name": "9999_nailgun", "baseurl": "file:/var/www/nailgun/2014.1.1-5.1/centos/x86_64", "gpgcheck": 0, "skip_if_unavailable": 0, }, ) @mock.patch("fuel_upgrade.engines.host_system.utils") def test_run_puppet(self, utils_mock): self.upgrader.run_puppet() utils_mock.exec_cmd.assert_called_once_with( "puppet apply -d -v " "/etc/puppet/2014.1.1-5.1/modules/nailgun/examples" "/host-upgrade.pp " "--modulepath=/etc/puppet/2014.1.1-5.1/modules" ) @mock.patch("fuel_upgrade.engines.host_system.HostSystemUpgrader.remove_repos") @mock.patch("fuel_upgrade.engines.host_system." "HostSystemUpgrader.remove_repo_config") def test_rollback(self, remove_repo_config_mock, remove_repos_mock): self.upgrader.rollback() self.called_once(remove_repo_config_mock) self.called_once(remove_repos_mock) self.called_once(self.upgrader.supervisor.start_all_services) @mock.patch("fuel_upgrade.engines.host_system.utils.remove_if_exists") def test_remove_repo_config(self, remove_mock): self.upgrader.config.from_version = "6.0" self.upgrader.remove_repo_config() self.assertEqual( remove_mock.call_args_list, [mock.call("/etc/yum.repos.d/9999_nailgun.repo"), mock.call("/etc/yum.repos.d/auxiliary.repo")], ) @mock.patch("fuel_upgrade.engines.host_system.utils.remove_if_exists") def test_remove_repo_config_for_fuel_ge_61(self, remove_mock): self.upgrader.config.from_version = "6.1" self.upgrader.config.new_version = "7.0" self.upgrader.remove_repo_config() self.assertEqual( remove_mock.call_args_list, [mock.call("/etc/yum.repos.d/9999_nailgun.repo"), mock.call("/etc/yum.repos.d/7.0_auxiliary.repo")], ) @mock.patch("fuel_upgrade.engines.host_system.utils.copy") @mock.patch("fuel_upgrade.engines.host_system.glob.glob") def test_install_repos(self, glob, copy): glob.return_value = ["one", "two"] self.upgrader.install_repos() self.called_times(copy, 2) copy.assert_has_calls([mock.call("one", "/var/www/nailgun/one"), mock.call("two", "/var/www/nailgun/two")]) glob.assert_called_with("/tmp/upgrade_path/repos/[0-9.-]*") @mock.patch("fuel_upgrade.engines.host_system.utils.remove") @mock.patch("fuel_upgrade.engines.host_system.glob.glob") def test_remove_repos(self, glob, remove): glob.return_value = ["one", "two"] self.upgrader.remove_repos() self.called_times(remove, 2) remove.assert_has_calls([mock.call("/var/www/nailgun/one"), mock.call("/var/www/nailgun/two")]) glob.assert_called_with("/tmp/upgrade_path/repos/[0-9.-]*") @mock.patch("fuel_upgrade.engines.openstack.utils.os.path.isdir", return_value=True) @mock.patch("fuel_upgrade.engines.openstack.utils.dir_size", return_value=42) @mock.patch("fuel_upgrade.engines.openstack.glob.glob", return_value=["1", "2"]) def test_required_free_space(self, glob, __, ___): self.assertEqual( self.upgrader.required_free_space, {"/etc/yum.repos.d/9999_nailgun.repo": 10, "/var/www/nailgun": 84} ) glob.assert_called_with("/tmp/upgrade_path/repos/[0-9.-]*")