From 545ecfa013ad6a5e259638e58c1b81a501665457 Mon Sep 17 00:00:00 2001 From: Clint Byrum Date: Thu, 14 Aug 2014 20:51:21 -0700 Subject: [PATCH] Simulate o-c-c cfn deployments handling o-c-c has a special mode which explodes deployments into individual files. This will effectively do the same for local copies of server metadata. Change-Id: I505d02a190ac93f243aeaf6d05256e66e832c8bf --- playbooks/files/explode-deployments.py | 27 ++++++++++++++++++++++++++ playbooks/refresh_config.yml | 9 +++++++++ 2 files changed, 36 insertions(+) create mode 100644 playbooks/files/explode-deployments.py diff --git a/playbooks/files/explode-deployments.py b/playbooks/files/explode-deployments.py new file mode 100644 index 0000000..31d3ac5 --- /dev/null +++ b/playbooks/files/explode-deployments.py @@ -0,0 +1,27 @@ +#!/usr/bin/python + +import argparse +import json +import os + +parser = argparse.ArgumentParser() +parser.add_argument('path', default='/var/lib/os-collect-config/local-data') +parser.add_argument('--deployments-key', default='deployments') + +args = parser.parse_args() + +for fname in os.listdir(args.path): + f = os.path.join(args.path, fname) + with open(f) as infile: + x = json.loads(infile.read()) + dp = args.deployments_key + final_list = [] + if dp in x: + if isinstance(x[dp], list): + for d in x[dp]: + name = d['name'] + if d.get('group', 'Heat::Ungrouped') in ('os-apply-config', 'Heat::Ungrouped'): + final_list.append((name, d['config'])) + for oname, oconfig in final_list: + with open('%s%s' % (f, oname), 'w') as outfile: + outfile.write(json.dumps(oconfig)) diff --git a/playbooks/refresh_config.yml b/playbooks/refresh_config.yml index 27f0f46..b5594a1 100644 --- a/playbooks/refresh_config.yml +++ b/playbooks/refresh_config.yml @@ -18,8 +18,17 @@ - name: "Ensure heat local-data directory exists" sudo: yes file: path=/var/lib/os-collect-config/local-data state=directory +- name: "Copy deployments exploder script" + sudo: yes + copy: + src: files/explode-deployments.py + dest: /usr/local/bin/explode-deployments + mode: 0755 - name: "Write out metadata" sudo: yes template: src: templates/host_metadata.json.j2 dest: /var/lib/os-collect-config/local-data/host_metadata.json +- name: "Explode deployments" + sudo: yes + command: /usr/local/bin/explode-deployments /var/lib/os-collect-config/local-data