fix error handling nsd/vnd composer; promt for cp-ref
[osm/LW-UI.git] / static / src / descriptorhandler / controller.js
index 3a96ea2..fd22411 100644 (file)
@@ -43,16 +43,6 @@ TCD3.OsmController = (function (global) {
     OsmController.prototype.addLink = function (graph_editor, link, success, error) {
         log('addLink');
 
-        var data_to_send = {
-            'desc_id': link.desc_id,
-            'source': link.source.id,
-            'source_type': link.source.info.type,
-            'target': link.target.id,
-            'target_type': link.target.info.type,
-            'view': link.view,
-            'group': link.group
-        };
-
         var desc_id = getUrlParameter('id');
         var desc_type = getUrlParameter('type');
         if (desc_type === 'nsd') {
@@ -61,24 +51,76 @@ TCD3.OsmController = (function (global) {
 
             var vnfd_node = (link.source.info.type === 'vnf') ? link.source : link.target;
             var vld_node = (link.source.info.type === 'ns_vl') ? link.source : link.target;
+            bootbox.prompt("Please insert the vnfd-connection-point-ref:", function(result){
+                if (result){
+                    data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
+                    data_form.append('vnfd-connection-point-ref', result);
+                    data_form.append('member-vnf-index-ref', vnfd_node.info.osm['member-vnf-index']);
+                    data_form.append('vnfd-id-ref', vnfd_node.info.osm['vnfd-id-ref']);
+                    data_form.append('vld_id', vld_node.info.osm['id']);
+
+                    $.ajax({
+                        url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/addElement/' + element_type,
+                        type: 'POST',
+                        data: data_form,
+                        cache: false,
+                        contentType: false,
+                        processData: false,
+                        success: success,
+                        error: error
+                    });
+                }
 
-            data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
-            data_form.append('vnfd-connection-point-ref', 'cp_temp');
-            data_form.append('member-vnf-index-ref', vnfd_node.info.osm['member-vnf-index']);
-            data_form.append('vnfd-id-ref', vnfd_node.info.osm['vnfd-id-ref']);
-            data_form.append('vld_id', vld_node.info.osm['id']);
-
-            $.ajax({
-                url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/addElement/' + element_type,
-                type: 'POST',
-                data: data_form,
-                cache: false,
-                contentType: false,
-                processData: false,
-                success: success,
-                error: error
             });
+
+
         }
+        else if (desc_type === 'vnfd') {
+            if (['vdu', 'cp'].indexOf(link.source.info.type) > -1 && ['vdu', 'cp'].indexOf(link.target.info.type) > -1) {
+                var vdu_node = (link.source.info.type === 'vdu') ? link.source : link.target;
+                var cp_node = (link.source.info.type === 'cp') ? link.source : link.target;
+
+                var data_form = new FormData();
+                data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
+                data_form.append('vdu_id', vdu_node.info.osm.id);
+                data_form.append('external-connection-point-ref', cp_node.info.osm.name);
+                data_form.append('name',  "eth_" + generateUID());
+                $.ajax({
+                    url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/addElement/interface',
+                    type: 'POST',
+                    data: data_form,
+                    cache: false,
+                    contentType: false,
+                    processData: false,
+                    success: success,
+                    error: error
+                });
+            }
+            else if (['vdu', 'vnf_vl'].indexOf(link.source.info.type) > -1 && ['vdu', 'vnf_vl'].indexOf(link.target.info.type) > -1) {
+
+                var vdu_node = (link.source.info.type === 'vdu') ? link.source : link.target;
+                var vld_node = (link.source.info.type === 'vnf_vl') ? link.source : link.target;
+
+                var data_form = new FormData();
+                data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
+                data_form.append('vdu_id', vdu_node.info.osm.id);
+                data_form.append('vld_id', vld_node.info.osm.id);
+                data_form.append('id',  "intcp_" + generateUID());
+
+                $.ajax({
+                    url: '/projects/descriptors/' + desc_type + '/' + desc_id + '/addElement/int_cp',
+                    type: 'POST',
+                    data: data_form,
+                    cache: false,
+                    contentType: false,
+                    processData: false,
+                    success: success,
+                    error: error
+                });
+            }
+
+        }
+
 
     };
 
@@ -114,7 +156,7 @@ TCD3.OsmController = (function (global) {
         console.log(args)
         var data_form = new FormData();
         data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
-        data_form.append('old', JSON.stringify( node.info.osm));
+        data_form.append('old', JSON.stringify(node.info.osm));
         data_form.append('update', JSON.stringify(args));
         /*for (var key in node.info.osm) {
             data_form.append(key, node.info.osm[key]);
@@ -134,7 +176,7 @@ TCD3.OsmController = (function (global) {
 
     };
 
-    OsmController.prototype.updateGraphParams = function(args, success, error){
+    OsmController.prototype.updateGraphParams = function (args, success, error) {
         var desc_id = getUrlParameter('id');
         var desc_type = getUrlParameter('type');
         var data_form = new FormData();
@@ -175,7 +217,7 @@ TCD3.OsmController = (function (global) {
             var vld_node = (link.source.info.type === 'ns_vl') ? link.source : link.target;
 
             data_form.append('csrfmiddlewaretoken', getCookie('csrftoken'));
-            data_form.append('vnfd-connection-point-ref', 'cp_temp');
+            //data_form.append('vnfd-connection-point-ref', 'cp_temp');
             data_form.append('member-vnf-index-ref', vnfd_node.info.osm['member-vnf-index']);
             data_form.append('vnfd-id-ref', vnfd_node.info.osm['vnfd-id-ref']);
             data_form.append('vld_id', vld_node.info.osm['id']);