[wip] composer nsd
[osm/LW-UI.git] / lib / osm / osm_util.py
1 class OsmUtil():
2
3 @staticmethod
4 def remove_node(descriptor_type, descriptor, node_type, element_id, args):
5 if descriptor_type == 'nsd':
6 if 'nsd-catalog' in descriptor:
7 nsd = descriptor['nsd-catalog']['nsd'][0]
8 elif 'nsd:nsd-catalog' in descriptor:
9 nsd = descriptor['nsd:nsd-catalog']['nsd'][0]
10
11 if node_type == 'ns_vl':
12 for k, v in enumerate(nsd['vld']):
13 if v['id'] == args['id']:
14 nsd['vld'].pop(k)
15 elif node_type == 'vnf':
16 for k, v in enumerate(nsd['constituent-vnfd']):
17 if str(v['member-vnf-index']) == str(args['member-vnf-index']) and str(v['vnfd-id-ref']) == str(
18 args['vnfd-id-ref']):
19 nsd['constituent-vnfd'].pop(k)
20 for j, vld in enumerate(nsd['vld']):
21 vld['vnfd-connection-point-ref'] = [item for item in vld['vnfd-connection-point-ref'] if
22 str(item['member-vnf-index-ref']) != str(
23 args['member-vnf-index']) or str(
24 item['vnfd-id-ref']) != str(args['vnfd-id-ref'])]
25 elif node_type == 'cp':
26 for vld in nsd['vld']:
27 if vld['id'] == args['vld_id']:
28 vld['vnfd-connection-point-ref'] = [item for item in vld['vnfd-connection-point-ref'] if
29 str(item['member-vnf-index-ref']) != str(
30 args['member-vnf-index-ref']) or str(
31 item['vnfd-id-ref']) != str(args['vnfd-id-ref'])]
32
33 return descriptor
34
35 @staticmethod
36 def update_node(descriptor_type, descriptor, node_type, old, updated):
37 if descriptor_type == 'nsd':
38 if 'nsd-catalog' in descriptor:
39 nsd = descriptor['nsd-catalog']['nsd'][0]
40 elif 'nsd:nsd-catalog' in descriptor:
41 nsd = descriptor['nsd:nsd-catalog']['nsd'][0]
42
43 if node_type == 'ns_vl':
44 for k, v in enumerate(nsd['vld']):
45 if v['id'] == old['id']:
46 nsd['vld'][k].update(updated)
47 print 'update here'
48 print old
49 elif node_type == 'vnf':
50 for k, v in enumerate(nsd['constituent-vnfd']):
51 if str(v['member-vnf-index']) == str(old['member-vnf-index']) and str(v['vnfd-id-ref']) == str(
52 old['vnfd-id-ref']):
53 print 'update here'
54 print old
55
56 return descriptor
57
58 @staticmethod
59 def add_base_node(descriptor_type, descriptor, node_type, element_id, args):
60 if descriptor_type == 'nsd':
61 if 'nsd-catalog' in descriptor:
62 nsd = descriptor['nsd-catalog']['nsd'][0]
63 elif 'nsd:nsd-catalog' in descriptor:
64 nsd = descriptor['nsd:nsd-catalog']['nsd'][0]
65 if node_type == 'ns_vl':
66 nsd['vld'].append({
67 "vim-network-name": "PUBLIC",
68 "name": element_id,
69 "vnfd-connection-point-ref": [],
70 "mgmt-network": "true",
71 "type": "ELAN",
72 "id": element_id
73 })
74 if node_type == 'vnf':
75 indexes = []
76 for cvnfd in nsd['constituent-vnfd']:
77 indexes.append(int(cvnfd["member-vnf-index"]))
78 memberindex = max(indexes) + 1
79 nsd['constituent-vnfd'].append({
80 "member-vnf-index": memberindex,
81 "vnfd-id-ref": element_id
82 })
83 if node_type == 'cp':
84 for vld in nsd['vld']:
85 if vld['id'] == args['vld_id']:
86 if'vnfd-connection-point-ref' not in vld:
87 vld['vnfd-connection-point-ref'] = []
88 vld['vnfd-connection-point-ref'].append(
89 {
90 "vnfd-connection-point-ref": args['vnfd-connection-point-ref'],
91 "member-vnf-index-ref": args['member-vnf-index-ref'],
92 "vnfd-id-ref": args['vnfd-id-ref']
93 },
94 )
95 return descriptor
96
97 @staticmethod
98 def update_graph_params(descriptor_type, descriptor, updated):
99 if descriptor_type == 'nsd':
100 if 'nsd-catalog' in descriptor:
101 nsd = descriptor['nsd-catalog']['nsd'][0]
102 elif 'nsd:nsd-catalog' in descriptor:
103 nsd = descriptor['nsd:nsd-catalog']['nsd'][0]
104 nsd.update(updated)
105
106 return descriptor