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']