Switch to using isolated collect_all
Also Fix some niggles introduced in last patch.
This commit is contained in:
parent
ec371c4421
commit
0c7f4dfb43
|
@ -62,7 +62,6 @@ def collect_all(collectors, store=False, requests_impl_map=None):
|
||||||
paths_or_content = {}
|
paths_or_content = {}
|
||||||
|
|
||||||
for collector in collectors:
|
for collector in collectors:
|
||||||
print [store, any_changed, collector]
|
|
||||||
if requests_impl_map and collector.name in requests_impl_map:
|
if requests_impl_map and collector.name in requests_impl_map:
|
||||||
requests_impl = requests_impl_map[collector.name]
|
requests_impl = requests_impl_map[collector.name]
|
||||||
else:
|
else:
|
||||||
|
@ -84,27 +83,12 @@ def __main__(requests_impl_map=None):
|
||||||
CONF(prog="os-collect-config")
|
CONF(prog="os-collect-config")
|
||||||
log.setup("os-collect-config")
|
log.setup("os-collect-config")
|
||||||
|
|
||||||
final_content = {}
|
(any_changed, content) = collect_all(COLLECTORS, store=bool(CONF.command),
|
||||||
paths = []
|
requests_impl_map=requests_impl_map)
|
||||||
for collector in COLLECTORS:
|
|
||||||
if requests_impl_map and collector.name in requests_impl_map:
|
|
||||||
requests_impl = requests_impl_map[collector.name]
|
|
||||||
else:
|
|
||||||
requests_impl = common.requests
|
|
||||||
content = collector.Collector(requests_impl=requests_impl).collect()
|
|
||||||
|
|
||||||
any_changed = False
|
|
||||||
if CONF.command:
|
|
||||||
(changed, path) = cache.store(collector.name, content)
|
|
||||||
any_changed |= changed
|
|
||||||
paths.append(path)
|
|
||||||
else:
|
|
||||||
final_content[collector.name] = content
|
|
||||||
|
|
||||||
if CONF.command:
|
if CONF.command:
|
||||||
if any_changed:
|
if any_changed:
|
||||||
env = dict(os.environ)
|
env = dict(os.environ)
|
||||||
env["OS_CONFIG_FILES"] = ':'.join(paths)
|
env["OS_CONFIG_FILES"] = ':'.join(content)
|
||||||
logger.info("Executing %s" % CONF.command)
|
logger.info("Executing %s" % CONF.command)
|
||||||
subprocess.call(CONF.command, env=env, shell=True)
|
subprocess.call(CONF.command, env=env, shell=True)
|
||||||
for collector in COLLECTORS:
|
for collector in COLLECTORS:
|
||||||
|
@ -112,7 +96,7 @@ def __main__(requests_impl_map=None):
|
||||||
else:
|
else:
|
||||||
logger.debug("No changes detected.")
|
logger.debug("No changes detected.")
|
||||||
else:
|
else:
|
||||||
print json.dumps(final_content, indent=1)
|
print json.dumps(content, indent=1)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
@ -117,6 +117,10 @@ class TestCollectAll(testtools.TestCase):
|
||||||
cfg.CONF.cfn.path = ['foo.Metadata']
|
cfg.CONF.cfn.path = ['foo.Metadata']
|
||||||
self.addCleanup(cfg.CONF.reset)
|
self.addCleanup(cfg.CONF.reset)
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
cfg.CONF.reset()
|
||||||
|
super(TestCollectAll, self).tearDown()
|
||||||
|
|
||||||
def _call_collect_all(self, store):
|
def _call_collect_all(self, store):
|
||||||
requests_impl_map = {'ec2': test_ec2.FakeRequests,
|
requests_impl_map = {'ec2': test_ec2.FakeRequests,
|
||||||
'cfn': test_cfn.FakeRequests(self)}
|
'cfn': test_cfn.FakeRequests(self)}
|
||||||
|
|
Loading…
Reference in New Issue