Merge "Separate create and build templates"
This commit is contained in:
commit
b34e005b96
|
@ -32,9 +32,14 @@ from fuel_plugin_builder import version_mapping
|
||||||
logger = logging.getLogger(__name__)
|
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):
|
class BaseBuildPlugin(BaseAction):
|
||||||
|
|
||||||
release_tmpl_src_path = None
|
release_tmpl_src_path = get_template_path('base/build/Release.mako')
|
||||||
|
|
||||||
@abc.abstractproperty
|
@abc.abstractproperty
|
||||||
def requires(self):
|
def requires(self):
|
||||||
|
@ -109,13 +114,12 @@ class BaseBuildPlugin(BaseAction):
|
||||||
utils.exec_piped_cmds(
|
utils.exec_piped_cmds(
|
||||||
['dpkg-scanpackages -m .', 'gzip -c9 > Packages.gz'],
|
['dpkg-scanpackages -m .', 'gzip -c9 > Packages.gz'],
|
||||||
cwd=repo_path)
|
cwd=repo_path)
|
||||||
if self.release_tmpl_src_path:
|
release_path = join_path(repo_path, 'Release')
|
||||||
release_path = join_path(repo_path, 'Release')
|
utils.render_to_file(
|
||||||
utils.render_to_file(
|
self.release_tmpl_src_path,
|
||||||
self.release_tmpl_src_path,
|
release_path,
|
||||||
release_path,
|
{'plugin_name': self.meta['name'],
|
||||||
{'plugin_name': self.meta['name'],
|
'major_version': self.plugin_version})
|
||||||
'major_version': self.plugin_version})
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def build_centos_repos(cls, releases_paths):
|
def build_centos_repos(cls, releases_paths):
|
||||||
|
@ -147,10 +151,6 @@ class BaseBuildPlugin(BaseAction):
|
||||||
class BuildPluginV1(BaseBuildPlugin):
|
class BuildPluginV1(BaseBuildPlugin):
|
||||||
|
|
||||||
requires = ['rpm', 'createrepo', 'dpkg-scanpackages']
|
requires = ['rpm', 'createrepo', 'dpkg-scanpackages']
|
||||||
release_tmpl_src_path = os.path.abspath(join_path(
|
|
||||||
os.path.dirname(__file__),
|
|
||||||
'..',
|
|
||||||
'templates/v1/build/Release.mako'))
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def result_package_mask(self):
|
def result_package_mask(self):
|
||||||
|
@ -171,7 +171,7 @@ class BuildPluginV2(BuildPluginV1):
|
||||||
|
|
||||||
requires = ['rpmbuild', 'rpm', 'createrepo', 'dpkg-scanpackages']
|
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):
|
def __init__(self, *args, **kwargs):
|
||||||
super(BuildPluginV2, self).__init__(*args, **kwargs)
|
super(BuildPluginV2, self).__init__(*args, **kwargs)
|
||||||
|
@ -186,11 +186,6 @@ class BuildPluginV2(BuildPluginV1):
|
||||||
tar_name = '{0}.fp'.format(self.full_name)
|
tar_name = '{0}.fp'.format(self.full_name)
|
||||||
self.tar_path = join_path(self.rpm_src_path, tar_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.spec_dst = join_path(self.rpm_path, 'plugin_rpm.spec')
|
||||||
|
|
||||||
self.rpm_packages_mask = join_path(
|
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.make_tar_gz(self.build_src_dir, self.tar_path, self.full_name)
|
||||||
utils.render_to_file(
|
utils.render_to_file(
|
||||||
self.spec_src,
|
self.rpm_spec_src_path,
|
||||||
self.spec_dst,
|
self.spec_dst,
|
||||||
self._make_data_for_template())
|
self._make_data_for_template())
|
||||||
|
|
||||||
|
@ -235,7 +230,7 @@ class BuildPluginV2(BuildPluginV1):
|
||||||
|
|
||||||
class BuildPluginV3(BuildPluginV2):
|
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):
|
def _make_data_for_template(self):
|
||||||
data = super(BuildPluginV3, self)._make_data_for_template()
|
data = super(BuildPluginV3, self)._make_data_for_template()
|
||||||
|
|
|
@ -31,7 +31,7 @@ class TestVersionMapping(BaseTestCase):
|
||||||
self.assertEqual(result['version'], '1.0.0')
|
self.assertEqual(result['version'], '1.0.0')
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
result['templates'],
|
result['templates'],
|
||||||
['templates/base', 'templates/v1/'])
|
['templates/base/plugin_data', 'templates/v1/plugin_data/'])
|
||||||
self.assertEqual(result['validator'], ValidatorV1)
|
self.assertEqual(result['validator'], ValidatorV1)
|
||||||
|
|
||||||
def test_get_plugin_for_version_2(self):
|
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['version'], '2.0.0')
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
result['templates'],
|
result['templates'],
|
||||||
['templates/base', 'templates/v2/plugin_data/'])
|
['templates/base/plugin_data', 'templates/v2/plugin_data/'])
|
||||||
self.assertEqual(result['validator'], ValidatorV2)
|
self.assertEqual(result['validator'], ValidatorV2)
|
||||||
|
|
||||||
def test_get_plugin_for_version_3(self):
|
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['version'], '3.0.0')
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
result['templates'],
|
result['templates'],
|
||||||
['templates/base', 'templates/v3/plugin_data/'])
|
['templates/base/plugin_data', 'templates/v3/plugin_data/'])
|
||||||
self.assertEqual(result['validator'], ValidatorV3)
|
self.assertEqual(result['validator'], ValidatorV3)
|
||||||
|
|
||||||
def test_get_plugin_for_version_4(self):
|
def test_get_plugin_for_version_4(self):
|
||||||
|
@ -56,7 +56,7 @@ class TestVersionMapping(BaseTestCase):
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
result['templates'],
|
result['templates'],
|
||||||
[
|
[
|
||||||
'templates/base',
|
'templates/base/plugin_data',
|
||||||
'templates/v3/plugin_data/',
|
'templates/v3/plugin_data/',
|
||||||
'templates/v4/plugin_data/'])
|
'templates/v4/plugin_data/'])
|
||||||
self.assertEqual(result['validator'], ValidatorV4)
|
self.assertEqual(result['validator'], ValidatorV4)
|
||||||
|
@ -67,7 +67,7 @@ class TestVersionMapping(BaseTestCase):
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
result['templates'],
|
result['templates'],
|
||||||
[
|
[
|
||||||
'templates/base',
|
'templates/base/plugin_data',
|
||||||
'templates/v3/plugin_data/',
|
'templates/v3/plugin_data/',
|
||||||
'templates/v4/plugin_data/',
|
'templates/v4/plugin_data/',
|
||||||
'templates/v5/plugin_data/'])
|
'templates/v5/plugin_data/'])
|
||||||
|
|
|
@ -30,27 +30,30 @@ def get_mapping():
|
||||||
|
|
||||||
return [
|
return [
|
||||||
{'version': '1.0.0',
|
{'version': '1.0.0',
|
||||||
'templates': ['templates/base', 'templates/v1/'],
|
'templates': ['templates/base/plugin_data',
|
||||||
|
'templates/v1/plugin_data/'],
|
||||||
'validator': validators.ValidatorV1,
|
'validator': validators.ValidatorV1,
|
||||||
'builder': build.BuildPluginV1},
|
'builder': build.BuildPluginV1},
|
||||||
{'version': '2.0.0',
|
{'version': '2.0.0',
|
||||||
'templates': ['templates/base', 'templates/v2/plugin_data/'],
|
'templates': ['templates/base/plugin_data',
|
||||||
|
'templates/v2/plugin_data/'],
|
||||||
'validator': validators.ValidatorV2,
|
'validator': validators.ValidatorV2,
|
||||||
'builder': build.BuildPluginV2},
|
'builder': build.BuildPluginV2},
|
||||||
{'version': '3.0.0',
|
{'version': '3.0.0',
|
||||||
'templates': ['templates/base', 'templates/v3/plugin_data/'],
|
'templates': ['templates/base/plugin_data',
|
||||||
|
'templates/v3/plugin_data/'],
|
||||||
'validator': validators.ValidatorV3,
|
'validator': validators.ValidatorV3,
|
||||||
'builder': build.BuildPluginV3},
|
'builder': build.BuildPluginV3},
|
||||||
{'version': '4.0.0',
|
{'version': '4.0.0',
|
||||||
'templates': [
|
'templates': [
|
||||||
'templates/base',
|
'templates/base/plugin_data',
|
||||||
'templates/v3/plugin_data/',
|
'templates/v3/plugin_data/',
|
||||||
'templates/v4/plugin_data/'],
|
'templates/v4/plugin_data/'],
|
||||||
'validator': validators.ValidatorV4,
|
'validator': validators.ValidatorV4,
|
||||||
'builder': build.BuildPluginV4},
|
'builder': build.BuildPluginV4},
|
||||||
{'version': '5.0.0',
|
{'version': '5.0.0',
|
||||||
'templates': [
|
'templates': [
|
||||||
'templates/base',
|
'templates/base/plugin_data',
|
||||||
'templates/v3/plugin_data/',
|
'templates/v3/plugin_data/',
|
||||||
'templates/v4/plugin_data/',
|
'templates/v4/plugin_data/',
|
||||||
'templates/v5/plugin_data/'],
|
'templates/v5/plugin_data/'],
|
||||||
|
|
Loading…
Reference in New Issue