function getNext() { // Update the template if (disks_and_nets.length == index) { var template_json = { "extra_param": template }; Sunstone.runAction('Template.append_template', template_id, template); VCenterCommon.importSuccess({ context : row_context, message : Locale.tr("Template created successfully. ID: %1$s", template_id) }); } else { if (disks_and_nets[index].type === "NEW_DISK") { var image_json = { "image": { "image_raw": disks_and_nets[index].image_tmpl }, "ds_id" : disks_and_nets[index].ds_id }; OpenNebulaImage.create({ timeout: true, data: image_json, success: function(request, response) { var image_id = response.IMAGE.ID; var image_uname = response.IMAGE.UNAME; ++index; template += "DISK=[\n"; template += "IMAGE_ID=\"" + image_id + "\",\n"; template += "OPENNEBULA_MANAGED=\"NO\"\n"; template += "]\n"; var rollback_info = { type: "IMAGE", id: image_id}; rollback.push(rollback_info); getNext(); }, error: function (request, error_json) { var error_message_str = error_json.error.message; // Rollback VCenterCommon.importFailure({ context : row_context, message : (error_json.error.message || Locale.tr("Cannot contact server: is it running and reachable?")) }); rollback_nics_and_disk(error_json.error.message, template_id, rollback, row_context); } }); } if (disks_and_nets[index].type === "EXISTING_DISK") { template += disks_and_nets[index].image_tmpl; ++index; getNext(); } if (disks_and_nets[index].type === "NEW_NIC") { var vnet_json = { "vnet": { "vnet_raw": disks_and_nets[index].network_tmpl } }; var one_cluster_id = disks_and_nets[index].one_cluster_id; OpenNebulaNetwork.create({ timeout: true, data: vnet_json, success: function(request, response) { var network_id = response.VNET.ID; if (one_cluster_id != -1) { Sunstone.runAction("Cluster.addvnet",one_cluster_id,response.VNET.ID); //Remove bnet from default datastore Sunstone.runAction("Cluster.delvnet",0,response.VNET.ID); } duplicated_nics[disks_and_nets[index].network_name]=network_id; ++index; template += "NIC=[\n"; template += "NETWORK_ID=\"" + network_id + "\",\n"; template += "OPENNEBULA_MANAGED=\"NO\"\n"; template += "]\n"; var rollback_info = { type: "NETWORK", id: network_id}; rollback.push(rollback_info); getNext(); }, error: function (request, error_json) { // Rollback VCenterCommon.importFailure({ context : row_context, message : (error_json.error.message || Locale.tr("Cannot contact server: is it running and reachable?")) }); rollback_nics_and_disk(error_json.error.message, template_id, rollback, row_context); } }); } if (disks_and_nets[index] != undefined && disks_and_nets[index].type == "EXISTING_NIC") { template += disks_and_nets[index].network_tmpl; ++index; getNext(); } if (disks_and_nets[index] != undefined && disks_and_nets[index].type == "DUPLICATED_NIC") { var network_id = duplicated_nics[disks_and_nets[index].network_name]; template += "NIC=[\n"; template += "NETWORK_ID=\"" + network_id + "\",\n"; template += "OPENNEBULA_MANAGED=\"NO\"\n"; template += "]\n"; ++index; getNext(); } } }
$.each($(this).DataTable().$(".check_item:checked"), function() { var row_context = $(this).closest("tr"); VCenterCommon.importLoading({context : row_context}); var network_size = $(".netsize", row_context).val(); var network_tmpl = $(this).data("import_data").one; var type = $('.type_select', row_context).val(); var ar_array = []; ar_array.push("TYPE=" + type); ar_array.push("SIZE=" + network_size); switch (type) { case 'ETHER': var mac = $('.eth_mac_net', row_context).val(); if (mac) { ar_array.push("MAC=" + mac); } break; case 'IP4': var mac = $('.four_mac_net', row_context).val(); var ip = $('.four_ip_net', row_context).val(); if (mac) { ar_array.push("MAC=" + mac); } if (ip) { ar_array.push("IP=" + ip); } break; case 'IP6': var mac = $('.six_mac_net', row_context).val(); var gp = $('.six_global_net', row_context).val(); var ula = $('.six_mac_net', row_context).val(); if (mac) { ar_array.push("MAC=" + mac); } if (gp) { ar_array.push("GLOBAL_PREFIX=" + gp); } if (ula) { ar_array.push("ULA_PREFIX=" + ula); } break; case 'IP6_STATIC': var mac = $('.six_mac_net', row_context).val(); var ip6_static = $('.six_static_net', row_context).val(); var prefix = $('.six_prefix_net', row_context).val(); if (mac) { ar_array.push("MAC=" + mac); } if (ip6_static) { ar_array.push("IP6=" + ip6_static); } if (prefix) { ar_array.push("PREFIX_LENGTH=" + prefix); } break; } network_tmpl += "\nAR=[" network_tmpl += ar_array.join(",\n") network_tmpl += "]" var vlaninfo = $(".vlaninfo", row_context).text(); if ( vlaninfo != undefined && vlaninfo != "" ) { network_tmpl += "\nVLAN_TAGGED_ID=" + vlaninfo + "\n"; } var vnet_json = { "vnet": { "vnet_raw": network_tmpl } }; var one_cluster_id = $(this).data("import_data").one_cluster_id; OpenNebulaNetwork.create({ timeout: true, data: vnet_json, success: function(request, response) { VCenterCommon.importSuccess({ context : row_context, message : Locale.tr("Virtual Network created successfully. ID: %1$s", response.VNET.ID) }); if (one_cluster_id != -1) { Sunstone.runAction("Cluster.addvnet",one_cluster_id,response.VNET.ID); } }, error: function (request, error_json) { VCenterCommon.importFailure({ context : row_context, message : (error_json.error.message || Locale.tr("Cannot contact server: is it running and reachable?")) }); } }); });
$.each($(this).DataTable().$(".check_item:checked"), function() { var network_context = $(this).closest(".vcenter_network"); $(".vcenter_network_result:not(.success)", network_context).html( '<span class="fa-stack fa-2x" style="color: #dfdfdf">' + '<i class="fa fa-cloud fa-stack-2x"></i>' + '<i class="fa fa-spinner fa-spin fa-stack-1x fa-inverse"></i>' + '</span>'); var network_size = $(".netsize", network_context).val(); var network_tmpl = $(this).data("one_network"); var type = $('.type_select', network_context).val(); var ar_array = []; ar_array.push("TYPE=" + type); ar_array.push("SIZE=" + network_size); switch (type) { case 'ETHER': var mac = $('.eth_mac_net', network_context).val(); if (mac) { ar_array.push("MAC=" + mac); } break; case 'IP4': var mac = $('.four_mac_net', network_context).val(); var ip = $('.four_ip_net', network_context).val(); if (mac) { ar_array.push("MAC=" + mac); } if (ip) { ar_array.push("IP=" + ip); } break; case 'IP6': var mac = $('.six_mac_net', network_context).val(); var gp = $('.six_global_net', network_context).val(); var ula = $('.six_mac_net', network_context).val(); if (mac) { ar_array.push("MAC=" + mac); } if (gp) { ar_array.push("GLOBAL_PREFIX=" + gp); } if (ula) { ar_array.push("ULA_PREFIX=" + ula); } break; } network_tmpl += "\nAR=[" network_tmpl += ar_array.join(",\n") network_tmpl += "]" if ($(".vlaninfo", network_context)) { network_tmpl += "VLAN=\"YES\"\n"; network_tmpl += "VLAN_ID=" + $(".vlaninfo", network_context).val() + "\n"; } var vnet_json = { "vnet": { "vnet_raw": network_tmpl } }; OpenNebulaNetwork.create({ timeout: true, data: vnet_json, success: function(request, response) { $(".vcenter_network_result", network_context).addClass("success").html( '<span class="fa-stack fa-2x" style="color: #dfdfdf">' + '<i class="fa fa-cloud fa-stack-2x"></i>' + '<i class="fa fa-check fa-stack-1x fa-inverse"></i>' + '</span>'); $(".vcenter_network_response", network_context).html('<p style="font-size:12px" class="running-color">' + Locale.tr("Virtual Network created successfully") + ' ID:' + response.VNET.ID + '</p>'); }, error: function (request, error_json) { $(".vcenter_network_result", network_context).html('<span class="fa-stack fa-2x" style="color: #dfdfdf">' + '<i class="fa fa-cloud fa-stack-2x"></i>' + '<i class="fa fa-warning fa-stack-1x fa-inverse"></i>' + '</span>'); $(".vcenter_network_response", network_context).html('<p style="font-size:12px" class="error-color">' + (error_json.error.message || Locale.tr("Cannot contact server: is it running and reachable?")) + '</p>'); } }); });