From edbf34298851ac15dd545a8f086580697baa0afe Mon Sep 17 00:00:00 2001 From: Dmitry Shulyak Date: Wed, 7 Oct 2015 13:32:48 +0300 Subject: [PATCH] Use git provider to copy fuel-library --- solar/solar/core/handlers/puppet.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/solar/solar/core/handlers/puppet.py b/solar/solar/core/handlers/puppet.py index dcffe436..ec95e0fe 100644 --- a/solar/solar/core/handlers/puppet.py +++ b/solar/solar/core/handlers/puppet.py @@ -146,9 +146,31 @@ class Puppet(TempFileHandler): def upload_manifests(self, resource): if 'forge' in resource.args and resource.args['forge']: self.upload_manifests_forge(resource) + elif 'library' in resource.args and resource.args['library']: + self.upload_library(resource) else: self.upload_manifests_librarian(resource) + def upload_library(self, resource): + git = resource.args['library'] + p = GitProvider(git['repository'], branch=git['branch']) + modules_path = os.path.join(p.directory, git['puppet_modules']) + + fuel_modules = '/etc/fuel/modules' + self.transport_run.run( + resource, 'sudo', 'mkdir', '-p', fuel_modules + ) + + self.transport_sync.copy(resource, modules_path, '/tmp') + self.transport_sync.sync_all() + + self.transport_run.run( + resource, + 'sudo', 'mv', + '/tmp/{}/*'.format(os.path.split(modules_path)[1]), + fuel_modules + ) + def upload_manifests_forge(self, resource): forge = resource.args['forge']