def __init__(self, *args, **kwargs): super(DockerUpgrader, self).__init__(*args, **kwargs) self.working_directory = self.config.working_directory utils.create_dir_if_not_exists(self.working_directory) self.docker_client = docker.Client( base_url=self.config.docker['url'], version=self.config.docker['api_version'], timeout=self.config.docker['http_timeout']) self.new_release_images = self.make_new_release_images_list() self.new_release_containers = self.make_new_release_containers_list() self.pg_dump_path = os.path.join( self.working_directory, 'pg_dump_all.sql') self.cobbler_config_path = self.config.cobbler_config_path.format( working_directory=self.working_directory) self.upgrade_verifier = FuelUpgradeVerify(self.config) self.from_version_path = self.config.from_version_path self.save_current_version_file() self.from_version = from_fuel_version( self.from_version_path, self.config.current_fuel_version_path) self.supervisor = SupervisorClient(self.config, self.from_version)
def test_create_dir_if_not_exists(self, mock_makedirs): path = 'some_path' with mock.patch('fuel_upgrade.utils.os.path.isdir', return_value=False) as mock_isdir: create_dir_if_not_exists(path) mock_isdir.assert_called_once_with(path) mock_makedirs.assert_called_once_with(path)
def test_create_dir_if_not_exists(self, mock_makedirs): path = 'some_path' with mock.patch( 'fuel_upgrade.utils.os.path.isdir', return_value=False) as mock_isdir: create_dir_if_not_exists(path) mock_isdir.assert_called_once_with(path) mock_makedirs.assert_called_once_with(path)
def test_create_dir_if_not_exists_does_not_create_dir(self, mock_makedirs): path = 'some_path' with mock.patch('fuel_upgrade.utils.os.path.isdir', return_value=True) as mock_isdir: create_dir_if_not_exists(path) mock_isdir.assert_called_once_with(path) self.method_was_not_called(mock_makedirs)
def test_create_dir_if_not_exists_does_not_create_dir(self, mock_makedirs): path = 'some_path' with mock.patch( 'fuel_upgrade.utils.os.path.isdir', return_value=True) as mock_isdir: create_dir_if_not_exists(path) mock_isdir.assert_called_once_with(path) self.method_was_not_called(mock_makedirs)
def install_versions(self): """Copy openstack release versions """ logger.info('Copy openstack release versions...') release_versions_cfg = self.config.openstack['release_versions'] versions = glob.glob(release_versions_cfg['src']) utils.create_dir_if_not_exists(release_versions_cfg['dst']) for version_file in versions: dst = os.path.join(release_versions_cfg['dst'], os.path.basename(version_file)) utils.copy(version_file, dst)
def save_current(self): """Save current version in working directory if it was not saved before This action is important in case when upgrade script was interrupted after symlinking of version.yaml file. """ utils.create_dir_if_not_exists(os.path.dirname( self.store_version_file)) utils.copy_if_does_not_exist( self.current_version_file, self.store_version_file)
def install_versions(self): """Copy openstack release versions""" logger.info('Copy openstack release versions...') release_versions_cfg = self.config.openstack['release_versions'] versions = glob.glob(release_versions_cfg['src']) utils.create_dir_if_not_exists(release_versions_cfg['dst']) for version_file in versions: dst = os.path.join( release_versions_cfg['dst'], os.path.basename(version_file)) utils.copy(version_file, dst)
def run(self): """Copy version files""" utils.create_dir_if_not_exists(self.release_dir) utils.copy_if_exists(self.version_path_5_0, self.dst_version_path_5_0) # NOTE(eli): in case of failed upgrade # from 5.0 to 5.0.1 file for 5.0.1 can # be there, but in fact 5.0.1 was not # installed if self.config.from_version == '5.0.1': utils.copy_if_exists( self.version_path_5_0_1, self.dst_version_path_5_0_1)
def switch_version_to_new(self): """Switches version.yaml file to new version * creates new version yaml file * and creates symlink to /etc/fuel/version.yaml """ logger.info(u'Run post upgrade actions') version_yaml_from_upgrade = self.config.new_upgrade_version_path new_version_path = self.config.new_version_path utils.create_dir_if_not_exists(os.path.dirname(new_version_path)) utils.copy(version_yaml_from_upgrade, new_version_path) utils.symlink(new_version_path, self.config.current_fuel_version_path)
def run(self): """Copy version files """ utils.create_dir_if_not_exists(self.release_dir) utils.copy_if_exists(self.version_path_5_0, self.dst_version_path_5_0) # NOTE(eli): in case of failed upgrade # from 5.0 to 5.0.1 file for 5.0.1 can # be there, but in fact 5.0.1 was not # installed if self.config.from_version == '5.0.1': utils.copy_if_exists( self.version_path_5_0_1, self.dst_version_path_5_0_1)
def save_current(self): """Save current version in working directory if it was not saved during previous run. This action is important in case when upgrade script was interrupted after symlinking of version.yaml file. """ utils.create_dir_if_not_exists(os.path.dirname( self.store_version_file)) utils.copy_if_does_not_exist( self.current_version_file, self.store_version_file)
def switch_to_new(self): """Switche version file to new version * creates new version yaml file * and creates symlink to /etc/fuel/version.yaml """ logger.info('Switch version file to new version') utils.create_dir_if_not_exists(os.path.dirname( self.dst_new_version_file)) utils.copy( self.src_new_version_file, self.dst_new_version_file) utils.symlink( self.dst_new_version_file, self.current_version_file)
def __init__(self, *args, **kwargs): super(DockerUpgrader, self).__init__(*args, **kwargs) self.working_directory = self.config.working_directory utils.create_dir_if_not_exists(self.working_directory) self.docker_client = docker.Client( base_url=self.config.docker['url'], version=self.config.docker['api_version'], timeout=self.config.docker['http_timeout']) self.new_release_containers = self.make_new_release_containers_list() self.cobbler_config_path = self.config.cobbler_config_path.format( working_directory=self.working_directory) self.upgrade_verifier = FuelUpgradeVerify(self.config) self.from_version = self.config.from_version self.supervisor = SupervisorClient(self.config, self.from_version)
def __init__(self, config, from_version): """Create supervisor client :param config: config object """ self.config = config self.from_version = from_version self.supervisor_template_path = os.path.join(self.templates_dir, 'supervisor.conf') self.supervisor_common_template_path = os.path.join( self.templates_dir, 'common.conf') self.supervisor_config_dir = self.get_config_path( self.config.new_version) self.previous_supervisor_config_path = self.get_config_path( self.from_version) utils.create_dir_if_not_exists(self.supervisor_config_dir) self.supervisor = self.get_supervisor()
def __init__(self, config, from_version): """Create supervisor client :param config: config object """ self.config = config self.from_version = from_version self.supervisor_template_path = os.path.join( self.templates_dir, 'supervisor.conf') self.supervisor_common_template_path = os.path.join( self.templates_dir, 'common.conf') self.supervisor_config_dir = self.get_config_path( self.config.new_version) self.previous_supervisor_config_path = self.get_config_path( self.from_version) utils.create_dir_if_not_exists(self.supervisor_config_dir) self.supervisor = self.get_supervisor()