Summary: resizeVolume needs to be available in UI

Detail: Adds UI element for resizing a volume

BUG-ID: CLOUDSTACK-644
Reported-by: hongtu_zang@tcloudcomputing.com
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1360091087 -0700
This commit is contained in:
Marcus Sorensen 2013-02-05 12:04:47 -07:00
parent 750fb2c31e
commit 4f274d0b8e
9 changed files with 145 additions and 2 deletions

View File

@ -1545,3 +1545,9 @@ label.nicira.controller.address=Controller Address
label.nicira.transportzoneuuid=Transport Zone Uuid
label.nicira.l3gatewayserviceuuid=L3 Gateway Service Uuid
#resizeVolumes
label.resize.new.size=New Size(GB)
label.action.resize.volume=Resize Volume
label.action.resize.volume.processing=Resizing Volume....
label.resize.new.offering.id=New Offering
label.resize.shrink.ok=Shrink OK

View File

@ -1510,3 +1510,9 @@ error.menu.select=Echec de l\'action car il n\'y a aucun
error.mgmt.server.inaccessible=Le serveur de management est indisponible. Essayez plus tard.
error.session.expired=Votre session a expiré.
error.unresolved.internet.name=Votre nom internet ne peut pas être résolu.
#resizeVolumes
label.resize.new.size=New Size(GB)
label.action.resize.volume=Resize Volume
label.action.resize.volume.processing=Resizing Volume....
label.resize.new.offering.id=New Offering
label.resize.shrink.ok=Shrink OK

View File

@ -1509,4 +1509,10 @@ error.login=ユーザー名/パスワードが記録と一致しません。
error.menu.select=項目が選択されていないため操作を実行できません。
error.mgmt.server.inaccessible=管理サーバーにアクセスできません。後で再実行してください。
error.session.expired=セッションの有効期限が切れました。
error.unresolved.internet.name=インターネット名を解決できません。
#resizeVolumes
label.resize.new.size=New Size(GB)
label.action.resize.volume=Resize Volume
label.action.resize.volume.processing=Resizing Volume....
label.resize.new.offering.id=New Offering
label.resize.shrink.ok=Shrink OK

View File

@ -1510,3 +1510,9 @@ error.menu.select=N
error.mgmt.server.inaccessible=O servidor de gerenciamento está inacessível. Tente novamente mais tarde.
error.session.expired=Sua sessão expirou.
error.unresolved.internet.name=Impossível resolver DNS
#resizeVolumes
label.resize.new.size=New Size(GB)
label.action.resize.volume=Resize Volume
label.action.resize.volume.processing=Resizing Volume....
label.resize.new.offering.id=New Offering
label.resize.shrink.ok=Shrink OK

View File

@ -1510,3 +1510,11 @@ error.menu.select=Не удается выполнить действие из-
error.mgmt.server.inaccessible=Сервер управления недоступна. Попробуйте обратиться к нему позже.
error.session.expired=Ваша сессия была завершена
error.unresolved.internet.name=Ваше интернет-имя определить не удалось
#resizeVolumes
label.resize.new.size=New Size(GB)
label.action.resize.volume=Resize Volume
label.action.resize.volume.processing=Resizing Volume....
label.resize.new.offering.id=New Offering
label.resize.shrink.ok=Shrink OK

View File

@ -1511,3 +1511,9 @@ error.mgmt.server.inaccessible=无法访问管理服务器。请稍后再试。
error.session.expired=您的会话已过期。
error.unresolved.internet.name=无法解析您的 Internet 名称。
#resizeVolumes
label.resize.new.size=New Size(GB)
label.action.resize.volume=Resize Volume
label.action.resize.volume.processing=Resizing Volume....
label.resize.new.offering.id=New Offering
label.resize.shrink.ok=Shrink OK

View File

@ -11159,10 +11159,12 @@ div.ui-dialog div.autoscaler div.field-group div.form-container form div.form-it
background-position: -100px -614px;
}
.resize .icon,
.updateResourceCount .icon {
background-position: -167px -66px;
}
.resize:hover .icon,
.updateResourceCount:hover .icon {
background-position: -167px -648px;
}

View File

@ -1432,6 +1432,10 @@ dictionary = {
'label.delete.NiciraNvp': '<fmt:message key="label.delete.NiciraNvp" />',
'label.nicira.controller.address': '<fmt:message key="label.nicira.controller.address" />',
'label.nicira.transportzoneuuid': '<fmt:message key="label.nicira.transportzoneuuid" />',
'label.nicira.l3gatewayserviceuuid': '<fmt:message key="label.nicira.l3gatewayserviceuuid" />'
'label.nicira.l3gatewayserviceuuid': '<fmt:message key="label.nicira.l3gatewayserviceuuid" />',
'label.resize.new.size': '<fmt:message key="label.resize.new.size" />',
'label.action.resize.volume': '<fmt:message key="label.action.resize.volume" />',
'label.resize.new.offering.id': '<fmt:message key="label.resize.new.offering.id" />',
'label.resize.shrink.ok': '<fmt:message key="label.resize.shrink.ok" />'
};
</script>

View File

@ -1005,6 +1005,102 @@
args.complete();
}
}
},
resize: {
label: 'label.action.resize.volume',
messages: {
notification: function(args) {
return 'label.action.resize.volume';
}
},
createForm: {
title: 'label.action.resize.volume',
fields: {
newdiskoffering: {
label: 'label.resize.new.offering.id',
select: function(args) {
$.ajax({
url: createURL("listDiskOfferings"),
dataType: "json",
async: false,
success: function(json) {
diskofferingObjs = json.listdiskofferingsresponse.diskoffering;
var items = [];
$(diskofferingObjs).each(function(){
items.push({id: this.id, description: this.displaytext});
});
args.response.success({data: items});
}
});
args.$select.change(function() {
var diskOfferingId = $(this).val();
$(diskofferingObjs).each(function(){
if(this.id == diskOfferingId) {
selectedDiskOfferingObj = this;
return false; //break the $.each() loop
}
});
if(selectedDiskOfferingObj == null)
return;
var $form = $(this).closest('form');
var $newsize = $form.find('.form-item[rel=newsize]');
if (selectedDiskOfferingObj.iscustomized == true) {
$newsize.css('display', 'inline-block');
}
else {
$newsize.hide();
}
});
}
},
newsize: {
label: 'label.resize.new.size',
validation: { required: true, number: true },
isHidden: true
},
shrinkok: {label: 'label.resize.shrink.ok', isBoolean: true, isChecked: false}
}
},
action: function(args){
var array1 = [];
array1.push("&shrinkok=" + (args.data.shrinkok == "on"));
var newDiskOffering = args.data.newdiskoffering;
var newSize;
if (selectedDiskOfferingObj.iscustomized == true) {
newSize = args.data.newsize;
}
if (newDiskOffering != null && newDiskOffering.length > 0){
array1.push("&diskofferingid=" + todb(newDiskOffering));
}
if (newSize != null && newSize.length > 0){
array1.push("&size=" + todb(newSize));
}
$.ajax({
url: createURL("resizeVolume&id=" + args.context.volumes[0].id + array1.join("")),
dataType: "json",
async: true,
success: function(json){
var jid = json.resizevolumeresponse.jobid;
args.response.success(
{_custom:
{jobId: jid,
getUpdatedItem: function(json) {
return json.queryasyncjobresultresponse.jobresult.volume;
},
getActionFilter: function() {
return volumeActionfilter;
}
}
});
}
});
},
notification: {
poll: pollAsyncJobResult
}
}
},
tabs: {
@ -1430,6 +1526,9 @@
if(jsonObj.hypervisor != "Ovm" && jsonObj.state == "Ready") {
allowedActions.push("takeSnapshot");
allowedActions.push("recurringSnapshot");
if((jsonObj.hypervisor == "XenServer" || jsonObj.hypervisor == "KVM" || jsonObj.hypervisor == "VMware") && jsonObj.type == "DATADISK") {
allowedActions.push("resize");
}
}
if(jsonObj.state != "Allocated") {
if((jsonObj.vmstate == "Stopped" || jsonObj.virtualmachineid == null) && jsonObj.state == "Ready") {