blob: 8d076ffd703f9cacc65b9d428e2f83e05495b7bf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
#!/usr/bin/python
##############################################################################
# Copyright (c) 2015 Ericsson AB and others.
# stefan.k.berg@ericsson.com
# jonas.bjurel@ericsson.com
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
import yaml
import re
import sys
import os
if len(sys.argv) != 3:
sys.stderr.write("Usage: "+sys.argv[0]+" <infile> <deafile>\n")
sys.exit(1)
infile = sys.argv[1]
if not os.path.exists(infile):
sys.stderr.write("ERROR: The file "+infile+" could not be opened\n")
sys.exit(1)
deafile = sys.argv[2]
if not os.path.exists(deafile):
sys.stderr.write("ERROR: The file "+deafile+" could not be opened\n")
sys.exit(1)
deafile = sys.argv[2]
namespace = "interfaces"
f1 = open(infile, 'r')
doc1 = yaml.load(f1)
f1.close()
f2 = open(deafile, 'r')
doc2 = yaml.load(f2)
f2.close()
# Create lookup table network name -> id for current setup
nwlookup = {}
for interface in doc1:
iface = {}
networks = []
for network in interface["assigned_networks"]:
nwlookup[network["name"]] = network["id"]
out = {}
out["interfaces"] = {}
for interface in doc1:
assigned = []
nw = {}
interface["assigned_networks"] = []
for nwname in doc2["interfaces"][interface["name"]]:
iface = {}
iface["id"] = nwlookup[nwname]
iface["name"] = nwname
interface["assigned_networks"].append(iface)
f3 = open(infile, 'w')
f3.write(yaml.dump(doc1, default_flow_style=False))
f3.close()
|