mirror of
https://github.com/OpenNebula/one.git
synced 2026-11-12 15:53:20 +09:00
Signed-off-by: Jorge Lobo <jlobo@opennebula.systems>
This commit is contained in:
1 parent
3eef2c7f33
commit
1194eb44de
1 file changed
+25
-19
@@ -245,26 +245,32 @@ define(function(require) {
|
||||
success: function(request, response){
|
||||
if(response){
|
||||
var template = response.VMTEMPLATE && response.VMTEMPLATE.TEMPLATE;
|
||||
if(template && template.DISK){
|
||||
var lastDisk = template.DISK;
|
||||
var newDisk = templateJSON.DISK[0];
|
||||
var setNewdisk = function(){
|
||||
if(lastDisk.OPENNEBULA_MANAGED && lastDisk.OPENNEBULA_MANAGED === "NO" ){
|
||||
newDisk.LAST_IMAGE_DISK = (lastDisk && lastDisk.IMAGE_ID) || (lastDisk && lastDisk.IMAGE);
|
||||
delete newDisk.OPENNEBULA_MANAGED;
|
||||
if(
|
||||
template &&
|
||||
template.DISK &&
|
||||
template.DISK instanceof Array &&
|
||||
templateJSON &&
|
||||
templateJSON.DISK &&
|
||||
templateJSON.DISK instanceof Array
|
||||
){
|
||||
var disks = [];
|
||||
var lastDisks = template.DISK;
|
||||
var lengthLastDisks = lastDisks.length;
|
||||
var lengthNewDisks = templateJSON.DISK.length;
|
||||
var diffPositions = lengthLastDisks - lengthNewDisks;
|
||||
templateJSON.DISK.map(function(element,id){
|
||||
var disk = element;
|
||||
var position = diffPositions>0? id+diffPositions : id;
|
||||
if(lastDisks && lastDisks[position] && JSON.stringify(lastDisks[position]) !== JSON.stringify(element)){
|
||||
if(element.OPENNEBULA_MANAGED && element.OPENNEBULA_MANAGED === "NO"){
|
||||
disk.LAST_IMAGE_DISK = (lastDisks[position] && lastDisks[position].IMAGE_ID) || (lastDisks[position] && lastDisks[position].IMAGE);
|
||||
delete disk.OPENNEBULA_MANAGED;
|
||||
}
|
||||
}
|
||||
};
|
||||
if(lastDisk && lastDisk.LAST_IMAGE_DISK){
|
||||
if(lastDisk.LAST_IMAGE_DISK === newDisk.IMAGE || lastDisk.LAST_IMAGE_DISK === newDisk.IMAGE_ID){
|
||||
newDisk.OPENNEBULA_MANAGED = "NO";
|
||||
delete newDisk.LAST_IMAGE_DISK;
|
||||
}else{
|
||||
setNewdisk();
|
||||
}
|
||||
}else{
|
||||
setNewdisk();
|
||||
}
|
||||
templateJSON.DISK = [newDisk];
|
||||
|
||||
disks.push(disk);
|
||||
});
|
||||
templateJSON.DISK = disks;
|
||||
Sunstone.runAction(actionUpdate, resourceId, TemplateUtils.templateToString(templateJSON));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user