Skip to content

Commit 094a9e3

Browse files
[migrateVolume API method] Filter disk offerings based on storage pool selected
After using the feature introduced by #2486 in production, we felt the need for an improvement in the UI. It is interesting to filter the displayed disk offerings according to the type of storage selected (local/shared) to migrate the volume to.
1 parent e4537e9 commit 094a9e3

File tree

4 files changed

+138
-142
lines changed

4 files changed

+138
-142
lines changed

ui/scripts/autoscaler.js

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -414,27 +414,20 @@
414414
isHidden: true,
415415
dependsOn: 'isAdvanced',
416416
select: function(args) {
417-
$.ajax({
418-
url: createURL("listDiskOfferings&listAll=true"),
419-
dataType: "json",
420-
async: true,
421-
success: function(json) {
422-
var diskofferings = json.listdiskofferingsresponse.diskoffering;
423-
var items = [];
424-
items.push({
425-
id: "",
426-
description: ""
427-
});
428-
$(diskofferings).each(function() {
429-
items.push({
430-
id: this.id,
431-
description: this.name
432-
});
433-
});
434-
args.response.success({
435-
data: items
436-
});
437-
}
417+
var diskOfferings = cloudStack.listDiskOfferings({listAll: true});
418+
var items = [];
419+
items.push({
420+
id: "",
421+
description: ""
422+
});
423+
$(diskOfferings).each(function() {
424+
items.push({
425+
id: this.id,
426+
description: this.name
427+
});
428+
});
429+
args.response.success({
430+
data: items
438431
});
439432
}
440433
},

ui/scripts/configuration.js

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1683,19 +1683,16 @@
16831683
dataProvider: function(args) {
16841684
var data = {};
16851685
listViewDataProvider(args, data);
1686-
1687-
$.ajax({
1688-
url: createURL('listDiskOfferings&isrecursive=true'),
1686+
var listDiskOfferingsOptions = {
1687+
isRecursive: true,
16891688
data: data,
1690-
success: function(json) {
1691-
var items = json.listdiskofferingsresponse.diskoffering;
1692-
args.response.success({
1693-
data: items
1694-
});
1695-
},
16961689
error: function(data) {
16971690
args.response.error(parseXMLHttpResponse(data));
16981691
}
1692+
};
1693+
var diskOfferings = cloudStack.listDiskOfferings(listDiskOfferingsOptions);
1694+
args.response.success({
1695+
data: diskOfferings
16991696
});
17001697
},
17011698

@@ -2297,16 +2294,14 @@
22972294
var data = {
22982295
id: args.context.diskOfferings[0].id
22992296
};
2300-
$.ajax({
2301-
url: createURL('listDiskOfferings&isrecursive=true'),
2302-
data: data,
2303-
success: function(json) {
2304-
var item = json.listdiskofferingsresponse.diskoffering[0];
2305-
args.response.success({
2306-
actionFilter: diskOfferingActionfilter,
2307-
data: item
2308-
});
2309-
}
2297+
var listDiskOfferingsOptions = {
2298+
isRecursive: true,
2299+
data: data
2300+
};
2301+
var diskOfferings = cloudStack.listDiskOfferings(listDiskOfferingsOptions);
2302+
args.response.success({
2303+
actionFilter: diskOfferingActionfilter,
2304+
data: diskOfferings[0]
23102305
});
23112306
}
23122307
}

ui/scripts/sharedFunctions.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2851,3 +2851,34 @@ cloudStack.createArrayOfParametersForCreatePodCommand = function (zoneId, data){
28512851
cloudStack.addParameterToCommandUrlParameterArrayIfValueIsNotEmpty(array, "endIp", data.podEndIp);
28522852
return array;
28532853
}
2854+
2855+
cloudStack.listDiskOfferings = function(options){
2856+
var defaultOptions = {
2857+
listAll: false,
2858+
isRecursive: false,
2859+
error: function(data) {
2860+
args.response.error(data);
2861+
}
2862+
};
2863+
var mergedOptions = $.extend({}, defaultOptions, options);
2864+
2865+
var listDiskOfferingsUrl = "listDiskOfferings";
2866+
if(mergedOptions.listAll){
2867+
listDiskOfferingsUrl = listDiskOfferingsUrl + "&listall=true";
2868+
}
2869+
if(mergedOptions.isRecursive){
2870+
listDiskOfferingsUrl = listDiskOfferingsUrl + "&isrecursive=true";
2871+
}
2872+
var diskOfferings = undefined;
2873+
$.ajax({
2874+
url: createURL(listDiskOfferingsUrl),
2875+
data: mergedOptions.data,
2876+
dataType: "json",
2877+
async: false,
2878+
success: function(json) {
2879+
diskOfferings = json.listdiskofferingsresponse.diskoffering;
2880+
},
2881+
error: mergedOptions.error
2882+
});
2883+
return diskOfferings;
2884+
};

0 commit comments

Comments
 (0)