diff --git a/fuel_plugin_builder/actions/build.py b/fuel_plugin_builder/actions/build.py index 7e91fb0..ca9a9bc 100644 --- a/fuel_plugin_builder/actions/build.py +++ b/fuel_plugin_builder/actions/build.py @@ -32,9 +32,14 @@ from fuel_plugin_builder import version_mapping logger = logging.getLogger(__name__) +def get_template_path(file_name): + return os.path.abspath(join_path( + os.path.dirname(__file__), '..', 'templates', file_name)) + + class BaseBuildPlugin(BaseAction): - release_tmpl_src_path = None + release_tmpl_src_path = get_template_path('base/build/Release.mako') @abc.abstractproperty def requires(self): @@ -109,13 +114,12 @@ class BaseBuildPlugin(BaseAction): utils.exec_piped_cmds( ['dpkg-scanpackages -m .', 'gzip -c9 > Packages.gz'], cwd=repo_path) - if self.release_tmpl_src_path: - release_path = join_path(repo_path, 'Release') - utils.render_to_file( - self.release_tmpl_src_path, - release_path, - {'plugin_name': self.meta['name'], - 'major_version': self.plugin_version}) + release_path = join_path(repo_path, 'Release') + utils.render_to_file( + self.release_tmpl_src_path, + release_path, + {'plugin_name': self.meta['name'], + 'major_version': self.plugin_version}) @classmethod def build_centos_repos(cls, releases_paths): @@ -147,10 +151,6 @@ class BaseBuildPlugin(BaseAction): class BuildPluginV1(BaseBuildPlugin): requires = ['rpm', 'createrepo', 'dpkg-scanpackages'] - release_tmpl_src_path = os.path.abspath(join_path( - os.path.dirname(__file__), - '..', - 'templates/v1/build/Release.mako')) @property def result_package_mask(self): @@ -171,7 +171,7 @@ class BuildPluginV2(BuildPluginV1): requires = ['rpmbuild', 'rpm', 'createrepo', 'dpkg-scanpackages'] - rpm_spec_src_path = 'templates/v2/build/plugin_rpm.spec.mako' + rpm_spec_src_path = get_template_path('v2/build/plugin_rpm.spec.mako') def __init__(self, *args, **kwargs): super(BuildPluginV2, self).__init__(*args, **kwargs) @@ -186,11 +186,6 @@ class BuildPluginV2(BuildPluginV1): tar_name = '{0}.fp'.format(self.full_name) self.tar_path = join_path(self.rpm_src_path, tar_name) - fpb_dir = join_path(os.path.dirname(__file__), '..') - - self.spec_src = os.path.abspath(join_path( - fpb_dir, self.rpm_spec_src_path)) - self.spec_dst = join_path(self.rpm_path, 'plugin_rpm.spec') self.rpm_packages_mask = join_path( @@ -208,7 +203,7 @@ class BuildPluginV2(BuildPluginV1): utils.make_tar_gz(self.build_src_dir, self.tar_path, self.full_name) utils.render_to_file( - self.spec_src, + self.rpm_spec_src_path, self.spec_dst, self._make_data_for_template()) @@ -235,7 +230,7 @@ class BuildPluginV2(BuildPluginV1): class BuildPluginV3(BuildPluginV2): - rpm_spec_src_path = 'templates/v3/build/plugin_rpm.spec.mako' + rpm_spec_src_path = get_template_path('v3/build/plugin_rpm.spec.mako') def _make_data_for_template(self): data = super(BuildPluginV3, self)._make_data_for_template() diff --git a/fuel_plugin_builder/templates/v1/build/Release.mako b/fuel_plugin_builder/templates/base/build/Release.mako similarity index 100% rename from fuel_plugin_builder/templates/v1/build/Release.mako rename to fuel_plugin_builder/templates/base/build/Release.mako diff --git a/fuel_plugin_builder/templates/base/LICENSE b/fuel_plugin_builder/templates/base/plugin_data/LICENSE similarity index 100% rename from fuel_plugin_builder/templates/base/LICENSE rename to fuel_plugin_builder/templates/base/plugin_data/LICENSE diff --git a/fuel_plugin_builder/templates/base/README.md.mako b/fuel_plugin_builder/templates/base/plugin_data/README.md.mako similarity index 100% rename from fuel_plugin_builder/templates/base/README.md.mako rename to fuel_plugin_builder/templates/base/plugin_data/README.md.mako diff --git a/fuel_plugin_builder/templates/base/deployment_scripts/deploy.sh.mako b/fuel_plugin_builder/templates/base/plugin_data/deployment_scripts/deploy.sh.mako similarity index 100% rename from fuel_plugin_builder/templates/base/deployment_scripts/deploy.sh.mako rename to fuel_plugin_builder/templates/base/plugin_data/deployment_scripts/deploy.sh.mako diff --git a/fuel_plugin_builder/templates/base/environment_config.yaml.mako b/fuel_plugin_builder/templates/base/plugin_data/environment_config.yaml.mako similarity index 100% rename from fuel_plugin_builder/templates/base/environment_config.yaml.mako rename to fuel_plugin_builder/templates/base/plugin_data/environment_config.yaml.mako diff --git a/fuel_plugin_builder/templates/base/pre_build_hook b/fuel_plugin_builder/templates/base/plugin_data/pre_build_hook similarity index 100% rename from fuel_plugin_builder/templates/base/pre_build_hook rename to fuel_plugin_builder/templates/base/plugin_data/pre_build_hook diff --git a/fuel_plugin_builder/templates/base/repositories/centos/.gitkeep b/fuel_plugin_builder/templates/base/plugin_data/repositories/centos/.gitkeep similarity index 100% rename from fuel_plugin_builder/templates/base/repositories/centos/.gitkeep rename to fuel_plugin_builder/templates/base/plugin_data/repositories/centos/.gitkeep diff --git a/fuel_plugin_builder/templates/base/repositories/ubuntu/.gitkeep b/fuel_plugin_builder/templates/base/plugin_data/repositories/ubuntu/.gitkeep similarity index 100% rename from fuel_plugin_builder/templates/base/repositories/ubuntu/.gitkeep rename to fuel_plugin_builder/templates/base/plugin_data/repositories/ubuntu/.gitkeep diff --git a/fuel_plugin_builder/templates/v1/metadata.yaml.mako b/fuel_plugin_builder/templates/v1/plugin_data/metadata.yaml.mako similarity index 100% rename from fuel_plugin_builder/templates/v1/metadata.yaml.mako rename to fuel_plugin_builder/templates/v1/plugin_data/metadata.yaml.mako diff --git a/fuel_plugin_builder/templates/v1/tasks.yaml b/fuel_plugin_builder/templates/v1/plugin_data/tasks.yaml similarity index 100% rename from fuel_plugin_builder/templates/v1/tasks.yaml rename to fuel_plugin_builder/templates/v1/plugin_data/tasks.yaml diff --git a/fuel_plugin_builder/tests/test_version_mapping.py b/fuel_plugin_builder/tests/test_version_mapping.py index 9f7b529..ccbf453 100644 --- a/fuel_plugin_builder/tests/test_version_mapping.py +++ b/fuel_plugin_builder/tests/test_version_mapping.py @@ -31,7 +31,7 @@ class TestVersionMapping(BaseTestCase): self.assertEqual(result['version'], '1.0.0') self.assertEqual( result['templates'], - ['templates/base', 'templates/v1/']) + ['templates/base/plugin_data', 'templates/v1/plugin_data/']) self.assertEqual(result['validator'], ValidatorV1) def test_get_plugin_for_version_2(self): @@ -39,7 +39,7 @@ class TestVersionMapping(BaseTestCase): self.assertEqual(result['version'], '2.0.0') self.assertEqual( result['templates'], - ['templates/base', 'templates/v2/plugin_data/']) + ['templates/base/plugin_data', 'templates/v2/plugin_data/']) self.assertEqual(result['validator'], ValidatorV2) def test_get_plugin_for_version_3(self): @@ -47,7 +47,7 @@ class TestVersionMapping(BaseTestCase): self.assertEqual(result['version'], '3.0.0') self.assertEqual( result['templates'], - ['templates/base', 'templates/v3/plugin_data/']) + ['templates/base/plugin_data', 'templates/v3/plugin_data/']) self.assertEqual(result['validator'], ValidatorV3) def test_get_plugin_for_version_4(self): @@ -56,7 +56,7 @@ class TestVersionMapping(BaseTestCase): self.assertEqual( result['templates'], [ - 'templates/base', + 'templates/base/plugin_data', 'templates/v3/plugin_data/', 'templates/v4/plugin_data/']) self.assertEqual(result['validator'], ValidatorV4) @@ -67,7 +67,7 @@ class TestVersionMapping(BaseTestCase): self.assertEqual( result['templates'], [ - 'templates/base', + 'templates/base/plugin_data', 'templates/v3/plugin_data/', 'templates/v4/plugin_data/', 'templates/v5/plugin_data/']) diff --git a/fuel_plugin_builder/version_mapping.py b/fuel_plugin_builder/version_mapping.py index 0b109d2..61533ba 100644 --- a/fuel_plugin_builder/version_mapping.py +++ b/fuel_plugin_builder/version_mapping.py @@ -30,27 +30,30 @@ def get_mapping(): return [ {'version': '1.0.0', - 'templates': ['templates/base', 'templates/v1/'], + 'templates': ['templates/base/plugin_data', + 'templates/v1/plugin_data/'], 'validator': validators.ValidatorV1, 'builder': build.BuildPluginV1}, {'version': '2.0.0', - 'templates': ['templates/base', 'templates/v2/plugin_data/'], + 'templates': ['templates/base/plugin_data', + 'templates/v2/plugin_data/'], 'validator': validators.ValidatorV2, 'builder': build.BuildPluginV2}, {'version': '3.0.0', - 'templates': ['templates/base', 'templates/v3/plugin_data/'], + 'templates': ['templates/base/plugin_data', + 'templates/v3/plugin_data/'], 'validator': validators.ValidatorV3, 'builder': build.BuildPluginV3}, {'version': '4.0.0', 'templates': [ - 'templates/base', + 'templates/base/plugin_data', 'templates/v3/plugin_data/', 'templates/v4/plugin_data/'], 'validator': validators.ValidatorV4, 'builder': build.BuildPluginV4}, {'version': '5.0.0', 'templates': [ - 'templates/base', + 'templates/base/plugin_data', 'templates/v3/plugin_data/', 'templates/v4/plugin_data/', 'templates/v5/plugin_data/'],