diff --git a/src/sunstone/public/js/plugins/vms-tab.js b/src/sunstone/public/js/plugins/vms-tab.js index 4556fbffc6..fc318bd398 100644 --- a/src/sunstone/public/js/plugins/vms-tab.js +++ b/src/sunstone/public/js/plugins/vms-tab.js @@ -577,9 +577,19 @@ function str_start_time(vm){ function vMachineElementArray(vm_json){ var vm = vm_json.VM; var state = OpenNebula.Helper.resource_state("vm",vm.STATE); + var hostname = "--"; + + if (state == "ACTIVE" || state == "SUSPENDED"){ + if (vm.HISTORY_RECORDS.HISTORY.constructor == Array){ + hostname = vm.HISTORY_RECORDS.HISTORY[vm.HISTORY_RECORDS.HISTORY.length-1].HOSTNAME; + } else { + hostname = vm.HISTORY_RECORDS.HISTORY.HOSTNAME; + }; + }; + if (state == "ACTIVE") { state = OpenNebula.Helper.resource_state("vm_lcm",vm.LCM_STATE); - } + }; return [ '', @@ -590,7 +600,7 @@ function vMachineElementArray(vm_json){ state, vm.CPU, humanize_size(vm.MEMORY), - vm.HISTORY_RECORDS ? vm.HISTORY_RECORDS.HISTORY.HOSTNAME : "--", + hostname, str_start_time(vm), vncIcon(vm) ]; @@ -647,6 +657,16 @@ function updateVMachinesView(request, vmachine_list){ // Refreshes the information panel for a VM function updateVMInfo(request,vm){ var vm_info = vm.VM; + var vm_state = OpenNebula.Helper.resource_state("vm",vm_info.STATE); + var hostname = "--" + if (vm_state == "ACTIVE" || vm_state == "SUSPENDED") { + if (vm_info.HISTORY_RECORDS.HISTORY.constructor == Array){ + hostname = vm_info.HISTORY_RECORDS.HISTORY[vm_info.HISTORY_RECORDS.HISTORY.length-1].HOSTNAME + } else { + hostname = vm_info.HISTORY_RECORDS.HISTORY.HOSTNAME; + }; + }; + var info_tab = { title : "VM information", content: @@ -673,7 +693,7 @@ function updateVMInfo(request,vm){ \ \ State\ - '+OpenNebula.Helper.resource_state("vm",vm_info.STATE)+'\ + '+vm_state+'\ \ \ LCM State\ @@ -681,7 +701,7 @@ function updateVMInfo(request,vm){ \ \ Hostname\ - '+ (vm_info.HISTORY_RECORDS? vm_info.HISTORY_RECORDS.HISTORY.HOSTNAME : "--") +'\ + '+ hostname +'\ \ \ Start time\