From 57476f32d3cc436dcd32d2ec0215aca371870cb0 Mon Sep 17 00:00:00 2001 From: Georgy Kibardin Date: Thu, 29 Dec 2016 14:34:41 +0300 Subject: [PATCH] Make ubuntu repo similar for all plugin versions Release file began to present in a plugin ubuntu repository only since version 2. This now conflicts with our new repo pinning code which expects Release file to be in place. Related-Bug: #1650551 Change-Id: I09b956555c3a6ab0944216d866739fb7f6dc66a0 --- fuel_plugin_builder/actions/build.py | 36 +++++++++---------- .../templates/{v2 => base}/build/Release.mako | 0 2 files changed, 16 insertions(+), 20 deletions(-) rename fuel_plugin_builder/templates/{v2 => base}/build/Release.mako (100%) diff --git a/fuel_plugin_builder/actions/build.py b/fuel_plugin_builder/actions/build.py index a70ad44..b039fc9 100644 --- a/fuel_plugin_builder/actions/build.py +++ b/fuel_plugin_builder/actions/build.py @@ -34,6 +34,8 @@ logger = logging.getLogger(__name__) class BaseBuildPlugin(BaseAction): + release_tmpl_src_path = 'templates/base/build/Release.mako' + @abc.abstractproperty def requires(self): """Should return a list of commands which @@ -62,6 +64,13 @@ class BaseBuildPlugin(BaseAction): self.checksums_path = join_path(self.build_src_dir, 'checksums.sha1') self.name = self.meta['name'] + self.plugin_version, self.full_version = utils.version_split_name_rpm( + self.meta['version']) + + fpb_dir = join_path(os.path.dirname(__file__), '..') + self.release_tmpl_src = os.path.abspath(join_path( + fpb_dir, self.release_tmpl_src_path)) + def run(self): logger.debug('Start plugin building "%s"', self.plugin_path) self.clean() @@ -99,11 +108,17 @@ class BaseBuildPlugin(BaseAction): self.build_ubuntu_repos(releases_paths.get('ubuntu', [])) self.build_centos_repos(releases_paths.get('centos', [])) - def build_ubuntu_repos(cls, releases_paths): + def build_ubuntu_repos(self, releases_paths): for repo_path in releases_paths: utils.exec_piped_cmds( ['dpkg-scanpackages -m .', 'gzip -c9 > Packages.gz'], cwd=repo_path) + release_path = join_path(repo_path, 'Release') + utils.render_to_file( + self.release_tmpl_src, + release_path, + {'plugin_name': self.meta['name'], + 'major_version': self.plugin_version}) @classmethod def build_centos_repos(cls, releases_paths): @@ -156,14 +171,10 @@ class BuildPluginV2(BaseBuildPlugin): requires = ['rpmbuild', 'rpm', 'createrepo', 'dpkg-scanpackages'] rpm_spec_src_path = 'templates/v2/build/plugin_rpm.spec.mako' - release_tmpl_src_path = 'templates/v2/build/Release.mako' def __init__(self, *args, **kwargs): super(BuildPluginV2, self).__init__(*args, **kwargs) - self.plugin_version, self.full_version = utils.version_split_name_rpm( - self.meta['version']) - self.rpm_path = os.path.abspath( join_path(self.plugin_path, '.build', 'rpm')) @@ -179,9 +190,6 @@ class BuildPluginV2(BaseBuildPlugin): self.spec_src = os.path.abspath(join_path( fpb_dir, self.rpm_spec_src_path)) - self.release_tmpl_src = os.path.abspath(join_path( - fpb_dir, self.release_tmpl_src_path)) - self.spec_dst = join_path(self.rpm_path, 'plugin_rpm.spec') self.rpm_packages_mask = join_path( @@ -223,18 +231,6 @@ class BuildPluginV2(BaseBuildPlugin): 'vendor': ', '.join(self.meta.get('authors', [])), 'year': utils.get_current_year()} - def build_ubuntu_repos(self, releases_paths): - for repo_path in releases_paths: - utils.exec_piped_cmds( - ['dpkg-scanpackages -m .', 'gzip -c9 > Packages.gz'], - cwd=repo_path) - release_path = join_path(repo_path, 'Release') - utils.render_to_file( - self.release_tmpl_src, - release_path, - {'plugin_name': self.meta['name'], - 'major_version': self.plugin_version}) - class BuildPluginV3(BuildPluginV2): diff --git a/fuel_plugin_builder/templates/v2/build/Release.mako b/fuel_plugin_builder/templates/base/build/Release.mako similarity index 100% rename from fuel_plugin_builder/templates/v2/build/Release.mako rename to fuel_plugin_builder/templates/base/build/Release.mako