Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #4
0
    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)
Beispiel #6
0
    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)
Beispiel #7
0
    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)
Beispiel #8
0
    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)
Beispiel #10
0
    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)
Beispiel #11
0
    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)
Beispiel #12
0
    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)
Beispiel #13
0
    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)
Beispiel #14
0
    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)
Beispiel #15
0
    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)
Beispiel #16
0
    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()
Beispiel #17
0
    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()
Beispiel #18
0
    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)