コード例 #1
0
ファイル: templates.js プロジェクト: hydro-b/one
    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();
          }
      }
    }
コード例 #2
0
ファイル: networks.js プロジェクト: unistra/one
      $.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?"))
            });
          }
        });
      });
コード例 #3
0
ファイル: networks.js プロジェクト: digideskio/one
      $.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>');
          }
        });
      });