6285f829ae038e34358ee28a844958433c0334d8
[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 desc_id = getUrlParameter('id');
47 var desc_type = getUrlParameter('type');
48 if (desc_type === 'nsd') {
49 var element_type = 'cp';
50 var data_form = new FormData();
51
52 var vnfd_node = (link.source.info.type === 'vnf') ? link.source : link.target;
53 var vld_node = (link.source.info.type === 'ns_vl') ? link.source : link.target;
54
55 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
56 data_form.append('vnfd-connection-point-ref', 'cp_temp');
57 data_form.append('member-vnf-index-ref', vnfd_node.info.osm['member-vnf-index']);
58 data_form.append('vnfd-id-ref', vnfd_node.info.osm['vnfd-id-ref']);
59 data_form.append('vld_id', vld_node.info.osm['id']);
60
61 $.ajax({
62 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/addElement/' + element_type,
63 type: 'POST',
64 data: data_form,
65 cache: false,
66 contentType: false,
67 processData: false,
68 success: success,
69 error: error
70 });
71 }
72 else if (desc_type === 'vnfd') {
73 if (['vdu', 'cp'].indexOf(link.source.info.type) > -1 && ['vdu', 'cp'].indexOf(link.target.info.type) > -1) {
74 var vdu_node = (link.source.info.type === 'vdu') ? link.source : link.target;
75 var cp_node = (link.source.info.type === 'cp') ? link.source : link.target;
76
77 var data_form = new FormData();
78 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
79 data_form.append('vdu_id', vdu_node.info.osm.id);
80 data_form.append('external-connection-point-ref', cp_node.info.osm.name);
81 $.ajax({
82 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/addElement/interface',
83 type: 'POST',
84 data: data_form,
85 cache: false,
86 contentType: false,
87 processData: false,
88 success: success,
89 error: error
90 });
91 }
92 else if (['vdu', 'vnf_vl'].indexOf(link.source.info.type) > -1 && ['vdu', 'vnf_vl'].indexOf(link.target.info.type) > -1) {
93
94 var vdu_node = (link.source.info.type === 'vdu') ? link.source : link.target;
95 var vld_node = (link.source.info.type === 'vnf_vl') ? link.source : link.target;
96
97 var data_form = new FormData();
98 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
99 data_form.append('vdu_id', vdu_node.info.osm.id);
100 data_form.append('vld_id', vld_node.info.osm.id);
101 data_form.append('id', "intcp_" + generateUID());
102
103 $.ajax({
104 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/addElement/int_cp',
105 type: 'POST',
106 data: data_form,
107 cache: false,
108 contentType: false,
109 processData: false,
110 success: success,
111 error: error
112 });
113 }
114
115 }
116
117
118 };
119
120 OsmController.prototype.removeNode = function (graph_editor, node, success, error) {
121 log('removeNode');
122 var desc_id = getUrlParameter('id');
123 var desc_type = getUrlParameter('type');
124 var element_type = node['info']['type'];
125 var data_form = new FormData();
126 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
127 for (var key in node.info.osm) {
128 data_form.append(key, node.info.osm[key]);
129 }
130
131 $.ajax({
132 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/removeElement/' + element_type,
133 type: 'POST',
134 data: data_form,
135 cache: false,
136 contentType: false,
137 processData: false,
138 success: success,
139 error: error
140 });
141
142 };
143
144 OsmController.prototype.updateNode = function (graph_editor, node, args, success, error) {
145 log('updateNode');
146 var desc_id = getUrlParameter('id');
147 var desc_type = getUrlParameter('type');
148 var element_type = node['info']['type'];
149 console.log(args)
150 var data_form = new FormData();
151 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
152 data_form.append('old', JSON.stringify(node.info.osm));
153 data_form.append('update', JSON.stringify(args));
154 /*for (var key in node.info.osm) {
155 data_form.append(key, node.info.osm[key]);
156 }
157 */
158
159 $.ajax({
160 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/updateElement/' + element_type,
161 type: 'POST',
162 data: data_form,
163 cache: false,
164 contentType: false,
165 processData: false,
166 success: success,
167 error: error
168 });
169
170 };
171
172 OsmController.prototype.updateGraphParams = function (args, success, error) {
173 var desc_id = getUrlParameter('id');
174 var desc_type = getUrlParameter('type');
175 var data_form = new FormData();
176 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
177 data_form.append('update', JSON.stringify(args));
178 $.ajax({
179 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/updateElement/graph_params',
180 type: 'POST',
181 data: data_form,
182 cache: false,
183 contentType: false,
184 processData: false,
185 success: success,
186 error: error
187 });
188 };
189
190 OsmController.prototype.removeLink = function (graph_editor, link, success, error) {
191 log('removeLink');
192 var data_to_send = {
193 'desc_id': link.desc_id,
194 'source': link.source.id,
195 'source_type': link.source.info.type,
196 'target': link.target.id,
197 'target_type': link.target.info.type,
198 'view': link.view,
199 'group': link.group
200 };
201
202 var desc_id = getUrlParameter('id');
203 var desc_type = getUrlParameter('type');
204
205 if (desc_type === 'nsd') {
206 var element_type = 'cp';
207 var data_form = new FormData();
208
209 var vnfd_node = (link.source.info.type === 'vnf') ? link.source : link.target;
210 var vld_node = (link.source.info.type === 'ns_vl') ? link.source : link.target;
211
212 data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
213 data_form.append('vnfd-connection-point-ref', 'cp_temp');
214 data_form.append('member-vnf-index-ref', vnfd_node.info.osm['member-vnf-index']);
215 data_form.append('vnfd-id-ref', vnfd_node.info.osm['vnfd-id-ref']);
216 data_form.append('vld_id', vld_node.info.osm['id']);
217
218 $.ajax({
219 url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/removeElement/' + element_type,
220 type: 'POST',
221 data: data_form,
222 cache: false,
223 contentType: false,
224 processData: false,
225 success: success,
226 error: error
227 });
228 }
229 };
230
231 /**
232 * Log utility
233 */
234 function log(text) {
235 if (DEBUG)
236 console.log("::OsmController::", text);
237 }
238
239 return OsmController;
240 }(this));
241
242 if (typeof module === 'object') {
243 module.exports = TCD3.OsmController;
244 }