copy_ifaces.py copies assignments with new IDs
This commit is contained in:
parent
1f462af9a8
commit
fedafe6284
|
@ -9,6 +9,16 @@ def main():
|
|||
yield (iface['name'],
|
||||
iface['assigned_networks'])
|
||||
|
||||
def merge(src, dst):
|
||||
mapping = dict((a['name'], a['id']) for _, ns in dst for a in ns)
|
||||
for name, networks in src:
|
||||
yield (name,
|
||||
[{
|
||||
'id': mapping[n['name']],
|
||||
'name': n['name'],
|
||||
}
|
||||
for n in networks])
|
||||
|
||||
def push(ifaces, assignments):
|
||||
for iface in ifaces:
|
||||
networks = assignments.get(iface['name'], [])
|
||||
|
@ -19,8 +29,10 @@ def main():
|
|||
src = yaml.load(open(sys.argv[1]))
|
||||
dst = yaml.load(open(sys.argv[2]))
|
||||
|
||||
assignments = pull(src)
|
||||
ifaces = push(dst, dict(assignments))
|
||||
src_assign = pull(src)
|
||||
dst_assign = pull(dst)
|
||||
assign = merge(src_assign, dst_assign)
|
||||
ifaces = push(dst, dict(assign))
|
||||
|
||||
yaml.dump(list(ifaces), stream=sys.stdout, default_flow_style=False)
|
||||
|
||||
|
|
Loading…
Reference in New Issue