fix vnfd composer creation link between nodes
[osm/LW-UI.git] / static / src / descriptorhandler / controller.js
1 if (typeof TCD3 === 'undefined') {
2 var TCD3 = {};
3 }
4
5 TCD3.OsmController = (function (global) {
6 'use strict';
7
8 var DEBUG = true;
9
10 OsmController.prototype.constructor = OsmController;
11
12 /**
13 * Constructor
14 */
15 function OsmController() {
16
17
18 }
19
20
21 OsmController.prototype.addNode = function (graph_editor, node, success, error) {
22 log('addNode');
23 var element_type = node.info.type;
24 var desc_id = node.info.desc_id;
25 var desc_type = node.info.desc_type;
26 var data_form = new FormData();
27 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
28 for (var key in node) {
29 data_form.append(key, node[key]);
30 }
31 $.ajax({
32 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/addElement/' + element_type,
33 type: 'POST',
34 data: data_form,
35 cache: false,
36 contentType: false,
37 processData: false,
38 success: success,
39 error: error
40 });
41 };
42
43 OsmController.prototype.addLink = function (graph_editor, link, success, error) {
44 log('addLink');
45
46 var data_to_send = {
47 'desc_id': link.desc_id,
48 'source': link.source.id,
49 'source_type': link.source.info.type,
50 'target': link.target.id,
51 'target_type': link.target.info.type,
52 'view': link.view,
53 'group': link.group
54 };
55
56 var desc_id = getUrlParameter('id');
57 var desc_type = getUrlParameter('type');
58 if (desc_type === 'nsd') {
59 var element_type = 'cp';
60 var data_form = new FormData();
61
62 var vnfd_node = (link.source.info.type === 'vnf') ? link.source : link.target;
63 var vld_node = (link.source.info.type === 'ns_vl') ? link.source : link.target;
64
65 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
66 data_form.append('vnfd-connection-point-ref', 'cp_temp');
67 data_form.append('member-vnf-index-ref', vnfd_node.info.osm['member-vnf-index']);
68 data_form.append('vnfd-id-ref', vnfd_node.info.osm['vnfd-id-ref']);
69 data_form.append('vld_id', vld_node.info.osm['id']);
70
71 $.ajax({
72 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/addElement/' + element_type,
73 type: 'POST',
74 data: data_form,
75 cache: false,
76 contentType: false,
77 processData: false,
78 success: success,
79 error: error
80 });
81 }
82 else if (desc_type === 'vnfd') {
83 if (['vdu', 'cp'].indexOf(link.source.info.type) > -1 && ['vdu', 'cp'].indexOf(link.target.info.type) > -1) {
84 var vdu_node = (link.source.info.type === 'vdu') ? link.source : link.target;
85 var cp_node = (link.source.info.type === 'cp') ? link.source : link.target;
86
87 var data_form = new FormData();
88 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
89 data_form.append('vdu-id', vdu_node.info.osm.id);
90 data_form.append('external-connection-point-ref', cp_node.info.osm.name);
91 $.ajax({
92 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/addElement/interface',
93 type: 'POST',
94 data: data_form,
95 cache: false,
96 contentType: false,
97 processData: false,
98 success: success,
99 error: error
100 });
101 }
102 else if (['vdu', 'vnf_vl'].indexOf(link.source.info.type) > -1 && ['vdu', 'vnf_vl'].indexOf(link.target.info.type) > -1) {
103
104 console.log("link tra vdu e vl");
105 /*var element_type = 'cp';
106 var data_form = new FormData();
107
108 var vdu_node = (link.source.info.type === 'vdu') ? link.source : link.target;
109 var vld_node = (link.source.info.type === 'vnf_vl') ? link.source : link.target;
110
111 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
112 data_form.append('vnfd-connection-point-ref', 'cp_temp');
113 data_form.append('member-vnf-index-ref', vnfd_node.info.osm['member-vnf-index']);
114 data_form.append('vnfd-id-ref', vnfd_node.info.osm['vnfd-id-ref']);
115 data_form.append('vld_id', vld_node.info.osm['id']);
116
117 $.ajax({
118 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/addElement/' + element_type,
119 type: 'POST',
120 data: data_form,
121 cache: false,
122 contentType: false,
123 processData: false,
124 success: success,
125 error: error
126 });*/
127 }
128
129 }
130
131
132 };
133
134 OsmController.prototype.removeNode = function (graph_editor, node, success, error) {
135 log('removeNode');
136 var desc_id = getUrlParameter('id');
137 var desc_type = getUrlParameter('type');
138 var element_type = node['info']['type'];
139 var data_form = new FormData();
140 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
141 for (var key in node.info.osm) {
142 data_form.append(key, node.info.osm[key]);
143 }
144
145 $.ajax({
146 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/removeElement/' + element_type,
147 type: 'POST',
148 data: data_form,
149 cache: false,
150 contentType: false,
151 processData: false,
152 success: success,
153 error: error
154 });
155
156 };
157
158 OsmController.prototype.updateNode = function (graph_editor, node, args, success, error) {
159 log('updateNode');
160 var desc_id = getUrlParameter('id');
161 var desc_type = getUrlParameter('type');
162 var element_type = node['info']['type'];
163 console.log(args)
164 var data_form = new FormData();
165 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
166 data_form.append('old', JSON.stringify(node.info.osm));
167 data_form.append('update', JSON.stringify(args));
168 /*for (var key in node.info.osm) {
169 data_form.append(key, node.info.osm[key]);
170 }
171 */
172
173 $.ajax({
174 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/updateElement/' + element_type,
175 type: 'POST',
176 data: data_form,
177 cache: false,
178 contentType: false,
179 processData: false,
180 success: success,
181 error: error
182 });
183
184 };
185
186 OsmController.prototype.updateGraphParams = function (args, success, error) {
187 var desc_id = getUrlParameter('id');
188 var desc_type = getUrlParameter('type');
189 var data_form = new FormData();
190 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
191 data_form.append('update', JSON.stringify(args));
192 $.ajax({
193 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/updateElement/graph_params',
194 type: 'POST',
195 data: data_form,
196 cache: false,
197 contentType: false,
198 processData: false,
199 success: success,
200 error: error
201 });
202 };
203
204 OsmController.prototype.removeLink = function (graph_editor, link, success, error) {
205 log('removeLink');
206 var data_to_send = {
207 'desc_id': link.desc_id,
208 'source': link.source.id,
209 'source_type': link.source.info.type,
210 'target': link.target.id,
211 'target_type': link.target.info.type,
212 'view': link.view,
213 'group': link.group
214 };
215
216 var desc_id = getUrlParameter('id');
217 var desc_type = getUrlParameter('type');
218
219 if (desc_type === 'nsd') {
220 var element_type = 'cp';
221 var data_form = new FormData();
222
223 var vnfd_node = (link.source.info.type === 'vnf') ? link.source : link.target;
224 var vld_node = (link.source.info.type === 'ns_vl') ? link.source : link.target;
225
226 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
227 data_form.append('vnfd-connection-point-ref', 'cp_temp');
228 data_form.append('member-vnf-index-ref', vnfd_node.info.osm['member-vnf-index']);
229 data_form.append('vnfd-id-ref', vnfd_node.info.osm['vnfd-id-ref']);
230 data_form.append('vld_id', vld_node.info.osm['id']);
231
232 $.ajax({
233 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/removeElement/' + element_type,
234 type: 'POST',
235 data: data_form,
236 cache: false,
237 contentType: false,
238 processData: false,
239 success: success,
240 error: error
241 });
242 }
243 };
244
245 /**
246 * Log utility
247 */
248 function log(text) {
249 if (DEBUG)
250 console.log("::OsmController::", text);
251 }
252
253 return OsmController;
254 }(this));
255
256 if (typeof module === 'object') {
257 module.exports = TCD3.OsmController;
258 }