1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-21 14:50:08 +03:00

B 5317: Add files to FILES_DS (#1279)

Co-authored-by: Jorge Lobo <jlobo@opennebula.systems>
(cherry picked from commit afe1bf0eab4e63302a023c957c29f96f835bd1a3)
This commit is contained in:
Jorge Miguel Lobo Escalona 2021-06-07 12:08:28 +02:00 committed by Tino Vazquez
parent 7f57431690
commit 9ebce37139
No known key found for this signature in database
GPG Key ID: 14201E424D02047E
3 changed files with 84 additions and 52 deletions

View File

@ -54,6 +54,7 @@ define(function(require) {
this.wizardTabId = WIZARD_TAB_ID + UniqueId.id();
this.icon = "fa-folder";
this.type = "VM_TEMPLATE";
this.title = Locale.tr("Context");
this.classes = "hypervisor";
this.templateVcenterCustomizationSpec = "";
@ -94,9 +95,12 @@ define(function(require) {
function _onShow(context, panelForm) {
}
function _setup(context) {
var that = this;
function _setup(context, type) {
if(type){
this.type = type;
}
var that = this;
$("input[name='context_type']", context).on("change", function() {
$(".context_type", context).hide();
$("."+$(this).val(), context).show();
@ -337,15 +341,38 @@ define(function(require) {
OpenNebula.Image.list({
timeout: true,
success: function(request, obj_files){
while (match = file_ds_regexp.exec(value.replace(/"/g, ""))) {
$.each(obj_files, function(key, value){
if(value.IMAGE.NAME.replace(/"/g, "") == match[1] && value.IMAGE.UNAME == match[2]){
files.push(value.IMAGE.ID);
return false;
if(that.type === "VM"){
if(value){
var pathFiles = value.split(" ");
if(Array.isArray(pathFiles)){
pathFiles.forEach(function(pathFile){
if(pathFile){
var nameFile = pathFile.split(/:'(\w+)'$/gi);
if(nameFile && nameFile[1]){
var find_id = obj_files.find(
function(element){
return element && element.IMAGE && element.IMAGE.NAME && element.IMAGE.NAME === nameFile[1];
}
);
if(find_id && find_id.IMAGE && find_id.IMAGE.ID){
files.push(find_id.IMAGE.ID);
}
}
}
});
}
});
}
}else{
while (match = file_ds_regexp.exec(value.replace(/"/g, ""))) {
$.each(obj_files, function(key, value){
if(value.IMAGE.NAME.replace(/"/g, "") == match[1] && value.IMAGE.UNAME == match[2]){
files.push(value.IMAGE.ID);
return false;
}
});
}
}
var selectedResources = {
ids : files
};
@ -370,6 +397,7 @@ define(function(require) {
}
function _generateContextFiles(context) {
var that = this;
var req_string=[];
var selected_files = this.contextFilesTable.retrieveResourceTableSelect();
if(selected_files.length != 0){

View File

@ -19,25 +19,26 @@ define(function(require) {
DEPENDENCIES
*/
var BaseFormPanel = require('utils/form-panels/form-panel');
var Locale = require('utils/locale');
var Sunstone = require('sunstone');
var TemplateUtils = require('utils/template-utils');
var BaseFormPanel = require("utils/form-panels/form-panel");
var Sunstone = require("sunstone");
var Locale = require("utils/locale");
var Tips = require("utils/tips");
var TemplateUtils = require("utils/template-utils");
/*
TEMPLATES
*/
var TemplateWizardHTML = require('hbs!./updateconf/wizard');
var TemplateAdvancedHTML = require('hbs!./updateconf/advanced');
var TemplateWizardHTML = require("hbs!./updateconf/wizard");
var TemplateAdvancedHTML = require("hbs!./updateconf/advanced");
/*
CONSTANTS
*/
var FORM_PANEL_ID = require('./updateconf/formPanelId');
var TAB_ID = require('../tabId');
var TEMPLATE_TAB_ID = require('tabs/templates-tab/tabId');
var FORM_PANEL_ID = require("./updateconf/formPanelId");
var TAB_ID = require("../tabId");
var TEMPLATE_TAB_ID = require("tabs/templates-tab/tabId");
var WIZARD_TABS = [
require('tabs/templates-tab/form-panels/create/wizard-tabs/os'),
require('tabs/templates-tab/form-panels/create/wizard-tabs/context'),
@ -52,10 +53,10 @@ define(function(require) {
this.formPanelId = FORM_PANEL_ID;
this.tabId = TAB_ID;
this.actions = {
'updateconf': {
'title': Locale.tr("Update VM Configuration"),
'buttonText': Locale.tr("Update"),
'resetButton': false
"updateconf": {
"title": Locale.tr("Update VM Configuration"),
"buttonText": Locale.tr("Update"),
"resetButton": false
}
};
@ -96,8 +97,8 @@ define(function(require) {
function _htmlWizard() {
return TemplateWizardHTML({
'formPanelId': this.formPanelId,
'wizardTabs': this.wizardTabs
"formPanelId": this.formPanelId,
"wizardTabs": this.wizardTabs
});
}
@ -107,21 +108,20 @@ define(function(require) {
function _setup(context) {
$.each(this.wizardTabs, function(index, wizardTab) {
wizardTab.setup($('#' + wizardTab.wizardTabId, context));
wizardTab.setup($("#" + wizardTab.wizardTabId, context), "VM");
});
$(".vm_updateconf_hide", context).remove();
Foundation.reflow(context, 'tabs');
Foundation.reflow(context, 'tooltip');
Foundation.reflow(context, "tabs");
Foundation.reflow(context, "tooltip");
Foundation.reflow(context, "tabs");
}
function _onShow(context) {
var that = this;
$('a[href="#'+ that.wizardTabs[0].wizardTabId +'"]', context).trigger("click");
$("a[href=\"#"+ that.wizardTabs[0].wizardTabId +"\"]", context).trigger("click");
$.each(that.wizardTabs, function(index, wizardTab) {
wizardTab.onShow($('#' + wizardTab.wizardTabId, context), that);
wizardTab.onShow($("#" + wizardTab.wizardTabId, context), that);
});
}
@ -130,10 +130,10 @@ define(function(require) {
var templateJSON = this.template;
$.each(this.wizardTabs, function(index, wizardTab) {
$.extend(
true,
templateJSON,
true,
templateJSON,
wizardTab.retrieve(
$('#' + wizardTab.wizardTabId, context)
$("#" + wizardTab.wizardTabId, context)
)
);
});
@ -143,7 +143,7 @@ define(function(require) {
}
function _submitAdvanced(context) {
var template = $('textarea#template', context).val();
var template = $("textarea#template", context).val();
Sunstone.runAction("VM.updateconf", this.resourceId, template);
return false;
@ -157,11 +157,11 @@ define(function(require) {
var templateJSON = element.TEMPLATE;
// Populates the Avanced mode Tab
$('#template', context).val(
$("#template", context).val(
TemplateUtils.templateToString(templateJSON));
$.each(this.wizardTabs, function(index, wizardTab) {
wizardTab.fill($('#' + wizardTab.wizardTabId, context), templateJSON);
wizardTab.fill($("#" + wizardTab.wizardTabId, context), templateJSON);
});
// After all tabs have been filled, perform a notify.
@ -169,7 +169,7 @@ define(function(require) {
// the disks and nics
$.each(this.wizardTabs, function(index, wizardTab) {
if (wizardTab.notify != undefined){
wizardTab.notify($('#' + wizardTab.wizardTabId, context), templateJSON);
wizardTab.notify($("#" + wizardTab.wizardTabId, context), templateJSON);
}
});
}

View File

@ -19,28 +19,28 @@ define(function(require) {
DEPENDENCIES
*/
var Locale = require('utils/locale');
var Sunstone = require('sunstone');
var Config = require('sunstone-config');
var TemplateUtils = require('utils/template-utils');
var StateActions = require('../utils/state-actions');
var Locale = require("utils/locale");
var Sunstone = require("sunstone");
var Config = require("sunstone-config");
var TemplateUtils = require("utils/template-utils");
var StateActions = require("../utils/state-actions");
/*
TEMPLATES
*/
var Template = require('hbs!./conf/html');
var Template = require("hbs!./conf/html");
/*
CONSTANTS
*/
var TAB_ID = require('../tabId');
var PANEL_ID = require('./conf/panelId');
var TAB_ID = require("../tabId");
var PANEL_ID = require("./conf/panelId");
var RESOURCE = "VM";
var XML_ROOT = "VM";
var UPDATECONF_FORM_ID = require('../form-panels/updateconf/formPanelId');
var UPDATECONF_FORM_ID = require("../form-panels/updateconf/formPanelId");
/*
CONSTRUCTOR
@ -51,7 +51,12 @@ define(function(require) {
this.title = Locale.tr("Conf");
this.icon = "fa-cog";
this.element = info[XML_ROOT];
this.element = $.extend(
true,
{},
info[XML_ROOT]
);
var conf = {};
var template = this.element.TEMPLATE;
@ -85,14 +90,13 @@ define(function(require) {
function _setup(context) {
var that = this;
if (Config.isTabActionEnabled("vms-tab", "VM.updateconf")) {
if (!StateActions.enabledStateAction("VM.updateconf", that.element.STATE, that.element.LCM_STATE)){
$('#vm_updateconf', context).attr("disabled", "disabled");
$("#vm_updateconf", context).attr("disabled", "disabled");
}
context.off('click', '#vm_updateconf');
context.on('click', '#vm_updateconf', function() {
context.off("click", "#vm_updateconf");
context.on("click", "#vm_updateconf", function() {
Sunstone.resetFormPanel(TAB_ID, UPDATECONF_FORM_ID);
Sunstone.showFormPanel(TAB_ID, UPDATECONF_FORM_ID, "updateconf",