From 5e664db29e892b0e675b29125ae415873a02d1b4 Mon Sep 17 00:00:00 2001 From: Jindrich Luza Date: Mon, 6 Jun 2016 17:02:18 +0200 Subject: [PATCH] - added packages_directory option for yum_distributor --- plugins/pulp_rpm/plugins/distributors/yum/configuration.py | 12 +++++++++++- plugins/pulp_rpm/plugins/distributors/yum/publish.py | 4 ++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/plugins/pulp_rpm/plugins/distributors/yum/configuration.py b/plugins/pulp_rpm/plugins/distributors/yum/configuration.py index 983620e..5503988 100644 --- a/plugins/pulp_rpm/plugins/distributors/yum/configuration.py +++ b/plugins/pulp_rpm/plugins/distributors/yum/configuration.py @@ -21,7 +21,8 @@ REQUIRED_CONFIG_KEYS = ('relative_url', 'http', 'https') OPTIONAL_CONFIG_KEYS = ('gpgkey', 'auth_ca', 'auth_cert', 'https_ca', 'checksum_type', 'http_publish_dir', 'https_publish_dir', 'protected', - 'skip', 'skip_pkg_tags', 'generate_sqlite', 'force_full') + 'skip', 'skip_pkg_tags', 'generate_sqlite', 'force_full', + 'packages_directory') ROOT_PUBLISH_DIR = '/var/lib/pulp/published/yum' MASTER_PUBLISH_DIR = os.path.join(ROOT_PUBLISH_DIR, 'master') @@ -111,6 +112,7 @@ def validate_config(repo, config, config_conduit): 'skip': _validate_skip, 'skip_pkg_tags': _validate_skip_pkg_tags, 'generate_sqlite': _validate_generate_sqlite, + 'packages_directory': _validate_packages_directory } # iterate through the options that have validation methods and validate them @@ -439,6 +441,14 @@ def _validate_generate_sqlite(use_createrepo, error_messages): _validate_boolean('generate_sqlite', use_createrepo, error_messages, False) +def _validate_packages_directory(packages_directory, error_messages): + if packages_directory is None: + return + + if not isinstance(packages_directory, basestring): + msg = _('Configuration value for [relative_url] must be a string, but is a %(t)s') + error_messages.append(msg % {'t': str(type(packages_directory))}) + # -- generalized validation methods -------------------------------------------- diff --git a/plugins/pulp_rpm/plugins/distributors/yum/publish.py b/plugins/pulp_rpm/plugins/distributors/yum/publish.py index a9e7ada..00c976c 100644 --- a/plugins/pulp_rpm/plugins/distributors/yum/publish.py +++ b/plugins/pulp_rpm/plugins/distributors/yum/publish.py @@ -834,8 +834,8 @@ class PublishDistributionStep(platform_steps.UnitModelPluginStep): # a package path exists as a symlink we are going to remove it since # the _create_symlink will create a real directory os.unlink(package_path) - - default_packages_symlink = os.path.join(symlink_dir, 'Packages') + default_dir = self.get_config().get('packages_directory', 'Packages') + default_packages_symlink = os.path.join(symlink_dir, default_dir) if package_path != default_packages_symlink: # Add the Packages directory to the content directory self.package_dirs.append(default_packages_symlink) -- 2.4.0