1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-02-26 09:57:23 +03:00

F #3440: fix errors in NSX form credentials (#3760)

Signed-off-by: Jorge Lobo <jlobo@opennebula.systems>
This commit is contained in:
Jorge Lobo 2019-09-23 16:51:22 +02:00 committed by Tino Vázquez
parent 1a25988948
commit c7a3d7a74d
3 changed files with 42 additions and 12 deletions

View File

@ -23,6 +23,7 @@ define(function(require) {
var OpenNebulaCluster = require('opennebula/cluster');
var OpenNebulaAction = require('opennebula/action');
var CommonActions = require('utils/common-actions');
var OpenNebulaError = require('../../opennebula/error');
var TAB_ID = require('./tabId');
var XML_ROOT = "HOST"
@ -45,7 +46,24 @@ define(function(require) {
"Host.disable": _commonActions.multipleAction('disable'),
"Host.offline": _commonActions.multipleAction('offline'),
"Host.rename" : _commonActions.singleAction('rename'),
"Host.validateCredentials": {
call: function(params, extra_param){
var defaultSuccess = function(response){
Notifier.onError({}, OpenNebulaError(response));
};
var success = extra_param && extra_param.success && typeof extra_param.success === "function"? extra_param.success : defaultSuccess;
$.ajax({
url: "/nsx/auth",
type: "POST",
data: {NSX_MANAGER: params.nsxmngr, nsxuser: params.user, nsxpassword: params.pass, NSX_TYPE: params.nsxtype},
success: success,
error: function(response){
Notifier.onError({}, {error:{message: Locale.tr("Error NSX data credentials, check and try again")}});
}
});
}
},
"Host.addtocluster" : {
type: "multiple",
call: function(params){

View File

@ -21,6 +21,8 @@ define(function(require) {
var Sunstone = require('sunstone');
var TemplateUtils = require('utils/template-utils');
var Tips = require('utils/tips');
var Notifier = require('utils/notifier');
var Locale = require('utils/locale');
/*
TEMPLATES
@ -66,7 +68,7 @@ define(function(require) {
function _html() {
showForm = true;
if(this && this.element && this.element.TEMPLATE && this.element.TEMPLATE.NSX_STATUS && this.element.TEMPLATE.NSX_STATUS.trim() === 'OK'){
if(this && this.element && this.element.IM_MAD && this.element.IM_MAD !== "vcenter"){
showForm=false;
}
return TemplateNsx();
@ -97,7 +99,7 @@ define(function(require) {
var label = $("<label />");
var input = $("<input />",{type: 'text'});
var form = $("#nsx-form").empty();
var button = $("<button>")
var button = $("<button>");
var userValue = (that && that.element && that.element.TEMPLATE && that.element.TEMPLATE.NSX_USER) || "";
var passValue = (that && that.element && that.element.TEMPLATE && that.element.TEMPLATE.NSX_PASSWORD) || "";
displayTab(showForm);
@ -126,15 +128,25 @@ define(function(require) {
//action
$("#"+submit).off().on('click',function(){
if($('#'+user.toLowerCase()).val() && $('#'+pass.toLowerCase()).val()){
var template = that.element.TEMPLATE;
template[user] = $('#'+user.toLowerCase()).val();
template[pass] = $('#'+pass.toLowerCase()).val();
template_str = TemplateUtils.templateToString(template);
Sunstone.runAction(RESOURCE + ".update_template", that.element.ID, template_str);
var template = that.element.TEMPLATE;
if($('#'+user.toLowerCase()).val() && $('#'+pass.toLowerCase()).val() && template && template.NSX_MANAGER && template.NSX_TYPE){
var sendUser = $('#'+user.toLowerCase()).val();
var sendPass = $('#'+pass.toLowerCase()).val();
Sunstone.runAction(RESOURCE + ".validateCredentials", {
user:sendUser,
pass: sendPass,
nsxmngr: template.NSX_MANAGER,
nsxtype: template.NSX_TYPE
},{
success: function(response){
template[user] = sendUser;
template[pass] = sendPass;
template_str = TemplateUtils.templateToString(template);
Sunstone.runAction(RESOURCE + ".update_template", that.element.ID,template_str);
Notifier.notifyMessage(Locale.tr("NSX information valid"));
}
});
}
});
}
})
});

View File

@ -16,7 +16,7 @@
{{#if searchDropdownHTML}}
<div id="{{dataTableSearchId}}-wrapper" class="input-group">
<input class="input-group-field" id="{{dataTableSearchId}}" type="search" placeholder="{{tr "Search"}}" />
<input class="input-group-field" id="{{dataTableSearchId}}" name="{{dataTableSearchId}}" type="search" placeholder="{{tr "Search"}}" />
<div class="input-group-button">
<i class="fas fa-filter search-button" data-toggle="{{dataTableSearchId}}-dropdown"></i>
</div>