From bfb65aa5aa16676de8cfe2b145b42f238ab5dc00 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Fri, 13 Dec 2013 15:50:21 -0800 Subject: [PATCH] CLOUDSTACK-5098: UI > VMware > during zone creation, after addVmwareDc succeeds, if addClsuter fails (e.g. because of wrong input value), zone detail page will show wrong button ("Add Vmware Datacenter") since listVmwareDcs is only called when a zone has a VMware cluster. To resolve this specific use case, change UI to use listApis instead of listClusters to determine whether to call listVmwareDcs. --- ui/scripts/system.js | 47 ++++++++++++++++++-------------------------- 1 file changed, 19 insertions(+), 28 deletions(-) diff --git a/ui/scripts/system.js b/ui/scripts/system.js index bcc677a2d27..dff647cdf47 100644 --- a/ui/scripts/system.js +++ b/ui/scripts/system.js @@ -6473,38 +6473,29 @@ }); $.ajax({ - url: createURL('listClusters'), + url: createURL('listApis'), //listVmwareDcs API only exists in non-oss bild, so have to check whether it exists before calling it. data: { - zoneid: args.context.physicalResources[0].id + name: 'listVmwareDcs' }, async: false, success: function(json) { - var clusters = json.listclustersresponse.cluster; - if (clusters != null) { - for (var i = 0; i < clusters.length; i++) { - if (clusters[i].hypervisortype == 'VMware') { - $.ajax({ - url: createURL('listVmwareDcs'), //listVmwareDcs API exists in only non-oss bild - data: { - zoneid: args.context.physicalResources[0].id - }, - async: false, - success: function(json) { //e.g. json == { "listvmwaredcsresponse" { "count":1 ,"VMwareDC" [ {"id":"c3c2562d-65e9-4fc7-92e2-773c2efe8f37","zoneid":1,"name":"datacenter","vcenter":"10.10.20.20"} ] } } - var vmwaredcs = json.listvmwaredcsresponse.VMwareDC; - if (vmwaredcs != null) { - selectedZoneObj.vmwaredcName = vmwaredcs[0].name; - selectedZoneObj.vmwaredcVcenter = vmwaredcs[0].vcenter; - selectedZoneObj.vmwaredcId = vmwaredcs[0].id; - } - } - //, error: function(XMLHttpResponse) {} //override default error handling: cloudStack.dialog.notice({ message: parseXMLHttpResponse(XMLHttpResponse)}); - }); - - break; - } - } - } - } + $.ajax({ + url: createURL('listVmwareDcs'), + data: { + zoneid: args.context.physicalResources[0].id + }, + async: false, + success: function (json) { //e.g. json == { "listvmwaredcsresponse" { "count":1 ,"VMwareDC" [ {"id":"c3c2562d-65e9-4fc7-92e2-773c2efe8f37","zoneid":1,"name":"datacenter","vcenter":"10.10.20.20"} ] } } + var vmwaredcs = json.listvmwaredcsresponse.VMwareDC; + if (vmwaredcs != null) { + selectedZoneObj.vmwaredcName = vmwaredcs[0].name; + selectedZoneObj.vmwaredcVcenter = vmwaredcs[0].vcenter; + selectedZoneObj.vmwaredcId = vmwaredcs[0].id; + } + } + }); + }, + error: function(XMLHttpResponse) {} //override default error handling: cloudStack.dialog.notice({ message: parseXMLHttpResponse(XMLHttpResponse)}); }); args.response.success({