diff --git a/src/sunstone/public/app/tabs/hosts-tab/form-panels/create.js b/src/sunstone/public/app/tabs/hosts-tab/form-panels/create.js index 98cf0ed0b9..d5c0b01c0f 100644 --- a/src/sunstone/public/app/tabs/hosts-tab/form-panels/create.js +++ b/src/sunstone/public/app/tabs/hosts-tab/form-panels/create.js @@ -11,8 +11,8 @@ define(function(require) { var ResourceSelect = require('utils/resource-select'); var OpenNebulaError = require('opennebula/error'); var OpenNebulaHost = require('opennebula/host'); - var OpenNebulaTemplate = require('opennebula/template'); var OpenNebulaVM = require('opennebula/vm'); + var VCenterTemplates = require('utils/vcenter/templates'); var VCenterNetworks = require('utils/vcenter/networks'); /* @@ -44,6 +44,7 @@ define(function(require) { } this.vCenterNetworks = new VCenterNetworks(); + this.vCenterTemplates = new VCenterTemplates(); BaseFormPanel.call(this); }; @@ -65,7 +66,8 @@ define(function(require) { function _htmlWizard() { return TemplateWizardHTML({ 'formPanelId': this.formPanelId, - 'vcenterNetworksHTML': this.vCenterNetworks.html() + 'vCenterTemplatesHTML': this.vCenterTemplates.html(), + 'vCenterNetworksHTML': this.vCenterNetworks.html() }); } @@ -174,19 +176,18 @@ define(function(require) { } }); - var templates_container = $(".vcenter_templates", context); var vms_container = $(".vcenter_vms", context); var vcenter_user = $("#vcenter_user", context).val(); var vcenter_password = $("#vcenter_password", context).val(); var vcenter_host = $("#vcenter_host", context).val(); - fillVCenterTemplates({ - container: templates_container, - vcenter_user: vcenter_user, - vcenter_password: vcenter_password, - vcenter_host: vcenter_host - }); + that.vCenterTemplates.insert({ + container: context, + vcenter_user: vcenter_user, + vcenter_password: vcenter_password, + vcenter_host: vcenter_host + }); that.vCenterNetworks.insert({ container: context, @@ -262,48 +263,6 @@ define(function(require) { }); }); - $.each($(".template_name:checked", context), function() { - var template_context = $(this).closest(".vcenter_template"); - - $(".vcenter_template_result:not(.success)", template_context).html( - '' + - '' + - '' + - ''); - - var template_json = { - "vmtemplate": { - "template_raw": $(this).data("one_template") - } - }; - - OpenNebulaTemplate.create({ - timeout: true, - data: template_json, - success: function(request, response) { - $(".vcenter_template_result", template_context).addClass("success").html( - '' + - '' + - '' + - ''); - - $(".vcenter_template_response", template_context).html('

' + - Locale.tr("Template created successfully") + ' ID:' + response.VMTEMPLATE.ID + - '

'); - }, - error: function (request, error_json) { - $(".vcenter_template_result", template_context).html('' + - '' + - '' + - ''); - - $(".vcenter_template_response", template_context).html('

' + - (error_json.error.message || Locale.tr("Cannot contact server: is it running and reachable?")) + - '

'); - } - }); - }); - $.each($(".vm_name:checked", context), function() { var vm_context = $(this).closest(".vcenter_vm"); @@ -356,6 +315,8 @@ define(function(require) { }); }); + that.vCenterTemplates.import(); + that.vCenterNetworks.import(); return false; @@ -442,91 +403,4 @@ define(function(require) { ResourceSelect.insert('#host_cluster_id', context, "Cluster", cluster_id, false); return false; } - - /* - Retrieve the list of templates from vCenter and fill the container with them - - opts = { - datacenter: "Datacenter Name", - cluster: "Cluster Name", - container: Jquery div to inject the html, - vcenter_user: vCenter Username, - vcenter_password: vCenter Password, - vcenter_host: vCenter Host - } - */ - function fillVCenterTemplates(opts) { - var path = '/vcenter/templates'; - - opts.container.show(); - - $(".accordion_advanced_toggle", opts.container).trigger("click"); - - $.ajax({ - url: path, - type: "GET", - data: {timeout: false}, - dataType: "json", - headers: { - "X_VCENTER_USER": opts.vcenter_user, - "X_VCENTER_PASSWORD": opts.vcenter_password, - "X_VCENTER_HOST": opts.vcenter_host - }, - success: function(response){ - $(".content", opts.container).html(""); - - $('
' + - '
' + - '

' + Locale.tr("Please select the vCenter Templates to be imported to OpenNebula.") + '

' + - '
' + - '
').appendTo($(".content", opts.container)) - - $.each(response, function(datacenter_name, templates){ - $('
' + - '
' + - '
' + - datacenter_name + ' ' + Locale.tr("DataCenter") + - '
' + - '
' + - '
').appendTo($(".content", opts.container)) - - if (templates.length == 0) { - $('
' + - '
' + - '' + - '
' + - '
').appendTo($(".content", opts.container)) - } else { - $.each(templates, function(id, template){ - var trow = $('
' + - '
' + - '
' + - '' + - '
'+ - '
'+ - '
' + - '
'+ - '
'+ - '
'+ - '
').appendTo($(".content", opts.container)) - - $(".template_name", trow).data("template_name", template.name) - $(".template_name", trow).data("one_template", template.one) - }); - }; - }); - }, - error: function(response){ - opts.container.hide(); - Notifier.onError({}, OpenNebulaError(response)); - } - }); - - return false; - } }); diff --git a/src/sunstone/public/app/tabs/hosts-tab/form-panels/create/wizard.hbs b/src/sunstone/public/app/tabs/hosts-tab/form-panels/create/wizard.hbs index 8a074158ed..6c251e9fbc 100644 --- a/src/sunstone/public/app/tabs/hosts-tab/form-panels/create/wizard.hbs +++ b/src/sunstone/public/app/tabs/hosts-tab/form-panels/create/wizard.hbs @@ -129,20 +129,15 @@ {{/advancedSection}}
-