Exemplo n.º 1
0
    def execute(self,
                package,
                category,
                subdir,
                version,
                category_origin,
                subdir_origin,
                version_origin,
                from_install=False):
        config_package_name = 'package_install' if from_install else 'package_runtime'

        pkg_cfg_origin = copy.deepcopy(
            self._config[config_package_name].package_config(
                category_origin, subdir_origin, package,
                version_origin)['config_origin'])
        pkg_cfg_origin['version'] = version

        pkg_path = package_path(self._config['app'], self._config['category'],
                                category, subdir, package, version)

        ctg_cf, sd_cf, pkg_cf, ver_cf = check_conflict_package(
            pkg_path['main_dir'], self._config['package_runtime'])
        if ctg_cf:
            raise InstallPackageConfigError(
                'Package path conflicts with package "{0}", category "{1}", subdir "{2}", version "{3}"'
                .format(pkg_cf, ctg_cf, sd_cf, ver_cf))

        safe_mkdir(pkg_path['config_dir'])
        dump_config(pkg_cfg_origin, pkg_path['config_file'])

        self._config.reset()
Exemplo n.º 2
0
    def save_release_status(self, end_time):
        if not self['category'].get('install'):
            _logger.warn('Will not save release status for: {0}'.format(
                self['name']))
            return

        release_status = self.__load_status(self.__release_status_file())

        if 'version' not in release_status:
            release_status['version'] = []
        release_version = self.__config_release.get('version')
        if release_version and release_version not in release_status['version']:
            release_status['version'].append(release_version)

        safe_mkdir(self['dir']['status'])
        dump_config(release_status, self.__release_status_file())
Exemplo n.º 3
0
    def save_action_status(self, action, start, end):
        if not self['category'].get('install'):
            _logger.warn('Will not save install status for: {0}.{1}'.format(
                self['name'], action))
            return

        install_status = self.__load_status(self.__install_status_file())

        if 'steps' not in install_status:
            install_status['steps'] = {}
        if action not in install_status['steps']:
            install_status['steps'][action] = {}
        install_status['steps'][action]['finished'] = True
        install_status['steps'][action]['start'] = start
        install_status['steps'][action]['end'] = end

        safe_mkdir(self['dir']['status'])
        dump_config(install_status, self.__install_status_file())
Exemplo n.º 4
0
 def save_package_config(self, category, subdir, name, version):
     pkg_install_cfg = self.package_config(category, subdir, name, version)
     safe_mkdir(pkg_install_cfg['package_path']['config_dir'])
     dump_config(pkg_install_cfg['config_origin'],
                 pkg_install_cfg['package_path']['config_file'])
Exemplo n.º 5
0
 def save_install_status(self, category, subdir, name, version):
     pkg_install_cfg = self.package_config(category, subdir, name, version)
     safe_mkdir(pkg_install_cfg['package_path']['status_dir'])
     dump_config(pkg_install_cfg['install_status'],
                 pkg_install_cfg['package_path']['status_install_file'])
Exemplo n.º 6
0
 def save_to_file(self, config_file):
     dump_config(self.__data, config_file)