Skip to content

Commit

Permalink
fixup context distiller to allow for beaker data
Browse files Browse the repository at this point in the history
  • Loading branch information
Clint Savage committed Apr 6, 2018
1 parent aff1ed2 commit e004607
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 37 deletions.
21 changes: 11 additions & 10 deletions linchpin/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -751,16 +751,17 @@ def get_run_data(self, tx_id, fields, targets=()):
field_data[field] = f
else:
data_array = {}
for k, v in f[0].iteritems():
if field == 'outputs':
values = []
for value in v:
values.append(value)
data_array[k] = values
else:
data_array[k] = v

field_data[field] = data_array
for fld in f:
for k, v in fld.iteritems():
if field == 'outputs':
values = []
for value in v:
values.append(value)
data_array[k] = values
else:
data_array[k] = v

field_data[field] = data_array

target_data[target] = field_data

Expand Down
57 changes: 31 additions & 26 deletions linchpin/cli/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -229,33 +229,38 @@ def _write_distilled_context(self, run_data):
fld.append(v)
fields[k] = fld

for res in resources:
for k, v in fields.iteritems():
res_data = {}
if not v:
dd = dist_data.get(target, {})
if len(dd):
for items in dd:
if k in items.keys():
items[k].extend(res.pop(k))
else:
res_data[k] = res.get(k)
else:
rsrc = res.get(k)[0]
for value in v:
if isinstance(value, dict):
for key, vals in value.iteritems():
sk = rsrc.get(key)
for val in vals:
res_data[val] = sk.get(val)
try:
for res in resources:
for k, v in fields.iteritems():
res_data = {}
if not v:
dd = dist_data.get(target, {})
if len(dd):
for items in dd:
if k in items.keys():
items[k].extend(res.get(k))
else:
items[k] = res.get(k)
else:
res_data[value] = rsrc.get(value)

if target not in dist_data.keys():
dist_data[target] = []

if len(res_data) and res_data not in dist_data[target]:
dist_data[target].append(res_data)
res_data[k] = res.get(k)
else:
rsrc = res.get(k)[0]
for value in v:
if isinstance(value, dict):
for key, vals in value.iteritems():
sk = rsrc.get(key)
for val in vals:
res_data[val] = sk.get(val)
else:
res_data[value] = rsrc.get(value)

if target not in dist_data.keys():
dist_data[target] = []

if len(res_data) and res_data not in dist_data[target]:
dist_data[target].append(res_data)
except Exception:
pass

with open(context_file, 'w+') as f:
f.write(json.dumps(dist_data))
Expand Down
2 changes: 1 addition & 1 deletion linchpin/linchpin.constants
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ source = templates/
pinfile = PinFile

[distiller]
bkr_server = test,happiness
bkr_server = id,url,system
dummy_node: hosts
aws_ec2 = instances.id,instances.public_ip,instances.private_ip,instances.public_dns_name,instances.private_dns_name,instances.tags:name
os_server = servers.id,servers.interface_ip,servers.name,servers.private_v4,servers.public_v4
Expand Down

0 comments on commit e004607

Please sign in to comment.