Sync /templates and /scripts dir from resource

This commit is contained in:
Jedrzej Nowak 2015-09-04 17:02:34 +02:00
parent 0366126cb4
commit 7d6790d312
11 changed files with 52 additions and 20 deletions

View File

@ -26,12 +26,12 @@
- file: path={{ config_dir.value['src'] }}/policy.json state=touch
- file: path={{ config_dir.value['src'] }}/schema-image.json state=touch
- file: path={{ config_dir.value['src'] }}/exports state=touch
- template: src={{ resource_dir }}/templates/glance-api.conf dest={{ config_dir.value['src'] }}/glance-api.conf
- template: src={{ resource_dir }}/templates/glance-api-paste.ini dest={{ config_dir.value['src'] }}/glance-api-paste.ini
- template: src={{ resource_dir }}/templates/glance-cache.conf dest={{ config_dir.value['src'] }}/glance-cache.conf
- template: src={{ resource_dir }}/templates/glance-registry.conf dest={{ config_dir.value['src'] }}/glance-registry.conf
- template: src={{ resource_dir }}/templates/glance-registry-paste.ini dest={{ config_dir.value['src'] }}/glance-registry-paste.ini
- template: src={{ resource_dir }}/templates/glance-scrubber.conf dest={{ config_dir.value['src'] }}/glance-scrubber.conf
- template: src={{ resource_dir }}/templates/policy.json dest={{ config_dir.value['src'] }}/policy.json
- template: src={{ resource_dir }}/templates/schema-image.json dest={{ config_dir.value['src'] }}/schema-image.json
- template: src={{ resource_dir }}/templates/exports dest={{ config_dir.value['src'] }}/glance-export
- template: src={{templates_dir}}/glance-api.conf dest={{ config_dir.value['src'] }}/glance-api.conf
- template: src={{templates_dir}}/glance-api-paste.ini dest={{ config_dir.value['src'] }}/glance-api-paste.ini
- template: src={{templates_dir}}/glance-cache.conf dest={{ config_dir.value['src'] }}/glance-cache.conf
- template: src={{templates_dir}}/glance-registry.conf dest={{ config_dir.value['src'] }}/glance-registry.conf
- template: src={{templates_dir}}/glance-registry-paste.ini dest={{ config_dir.value['src'] }}/glance-registry-paste.ini
- template: src={{templates_dir}}/glance-scrubber.conf dest={{ config_dir.value['src'] }}/glance-scrubber.conf
- template: src={{templates_dir}}/policy.json dest={{ config_dir.value['src'] }}/policy.json
- template: src={{templates_dir}}/schema-image.json dest={{ config_dir.value['src'] }}/schema-image.json
- template: src={{templates_dir}}/exports dest={{ config_dir.value['src'] }}/glance-export

View File

@ -19,4 +19,4 @@
tasks:
- file: path={{ config_dir.value['src'] }}/ state=directory
- file: path={{ config_dir.value['src'] }}/haproxy.cfg state=touch
- template: src={{ resource_dir }}/templates/haproxy.cfg dest=/etc/haproxy/haproxy.cfg
- template: src={{templates_dir}}/haproxy.cfg dest=/etc/haproxy/haproxy.cfg

View File

@ -19,4 +19,4 @@
tasks:
- file: path={{ config_dir.value['src'] }}/ state=directory
- file: path={{ config_dir.value['src'] }}/haproxy.cfg state=touch
- template: src={{ resource_dir }}/templates/haproxy.cfg dest=/etc/haproxy/haproxy.cfg
- template: src={{templates_dir}}/haproxy.cfg dest=/etc/haproxy/haproxy.cfg

View File

@ -10,8 +10,8 @@
db_name: {{db_name}}
tasks:
- file: path={{config_dir}} state=directory
- template: src={{resource_dir}}/templates/keystone.conf dest={{config_dir}}/keystone.conf
- template: src={{resource_dir}}/templates/default_catalog.templates dest={{config_dir}}/default_catalog.templates
- template: src={{resource_dir}}/templates/logging.conf dest={{config_dir}}/logging.conf
- template: src={{resource_dir}}/templates/policy.json dest={{config_dir}}/policy.json
- template: src={{resource_dir}}/templates/exports dest={{ config_dir }}/keystone-exports
- template: src={{templates_dir}}/keystone.conf dest={{config_dir}}/keystone.conf
- template: src={{templates_dir}}/default_catalog.templates dest={{config_dir}}/default_catalog.templates
- template: src={{templates_dir}}/logging.conf dest={{config_dir}}/logging.conf
- template: src={{templates_dir}}/policy.json dest={{config_dir}}/policy.json
- template: src={{templates_dir}}/exports dest={{ config_dir }}/keystone-exports

View File

@ -7,4 +7,4 @@
keystone_host: {{keystone_host}}
keystone_port: {{keystone_port}}
tasks:
- template: src={{resource_dir}}/templates/openrc.template dest=/root/openrc
- template: src={{templates_dir}}/openrc.template dest=/root/openrc

View File

@ -5,4 +5,4 @@
admin_password: {{admin_password}}
tasks:
- file: path={{config_dir}} state=directory
- template: src={{resource_dir}}/templates/rabbitmq.conf dest={{config_dir}}/rabbitmq.conf
- template: src={{templates_dir}}/rabbitmq.conf dest={{config_dir}}/rabbitmq.conf

View File

@ -18,7 +18,7 @@
state: stopped
- file: path=/etc/riak/riak.conf state=touch
- template:
src: {{ resource_dir }}/templates/riak.conf
src: {{templates_dir}}/riak.conf
dest: /etc/riak/riak.conf
- shell: rm -fr /var/lib/riak/kv_vnode/*
- shell: rm -fr /var/lib/riak/ring/*

View File

@ -5,7 +5,7 @@
name: riak
state: stopped
- template:
src: {{ resource_dir }}/templates/riak.conf
src: {{templates_dir}}/riak.conf
dest: /etc/riak/riak.conf
- service:
name: riak

View File

@ -22,6 +22,7 @@ class AnsibleTemplate(TempFileHandler):
log.debug('playbook_file: %s', playbook_file)
# self.transport_sync.copy(resource, self.dirs[resource.name], self.dirs[resource.name])
self._copy_templates_and_scripts(resource, action_name)
self.transport_sync.copy(resource, self.dst, '/tmp')
self.transport_sync.copy(resource, '/vagrant/library', '/tmp')
self.transport_sync.sync_all()

View File

@ -67,9 +67,39 @@ class TempFileHandler(BaseHandler):
tpl = Template(f.read())
return tpl.render(str=str, zip=zip, **args)
def _copy_templates_and_scripts(self, resource, action):
# TODO: we might need to optimize it later, like provide list
# templates/scripts per action
log.debug("Adding templates for %s %s", resource.name, action)
trg_templates_dir = None
trg_scripts_dir = None
base_path = resource.metadata['base_path']
src_templates_dir = os.path.join(base_path, 'templates')
if os.path.exists(src_templates_dir):
trg_templates_dir = os.path.join(self.dirs[resource.name], 'templates')
shutil.copytree(src_templates_dir, trg_templates_dir)
src_scripts_dir = os.path.join(base_path, 'scripts')
if os.path.exists(src_scripts_dir):
trg_scripts_dir = os.path.join(self.dirs[resource.name], 'scripts')
shutil.copytree(src_scripts_dir, trg_scripts_dir)
return (trg_templates_dir, trg_scripts_dir)
def prepare_templates_and_scripts(self, resource, action, target_dir=None):
target_dir = target_dir or self.dirs[resource.name]
templates, scripts = self._copy_templates_and_scripts(resource, action)
if templates:
self.transport_sync.copy(resource, templates, target_dir)
if scripts:
self.transport_sync.copy(resource, scripts, target_dir)
def _make_args(self, resource):
args = {'resource_name': resource.name}
args['resource_dir'] = resource.metadata['base_path']
args['templates_dir'] = 'templates/'
args['scripts_dir'] = 'scripts/'
args.update(resource.args)
return args

View File

@ -155,6 +155,7 @@ class Puppet(TempFileHandler):
self.upload_manifests(resource)
self.prepare_templates_and_scripts(resource, action_file, '')
self.transport_sync.copy(resource, action_file, '/tmp/action.pp')
self.transport_sync.sync_all()