From e0e5b173107a9188d4cee4c9ec604334981ee320 Mon Sep 17 00:00:00 2001 From: Daniel Molina Date: Mon, 20 Jun 2011 15:36:37 +0200 Subject: [PATCH] Improve CLI performance --- src/cli/one_helper.rb | 19 ++++++++++++++++--- src/cli/one_helper/onehost_helper.rb | 24 +++++++++++++++--------- src/cli/one_helper/oneimage_helper.rb | 26 ++++++++++++++++++-------- src/cli/one_helper/onevm_helper.rb | 18 ++++++++++++++++-- 4 files changed, 65 insertions(+), 22 deletions(-) diff --git a/src/cli/one_helper.rb b/src/cli/one_helper.rb index f2972240b9..5b734fb1fa 100644 --- a/src/cli/one_helper.rb +++ b/src/cli/one_helper.rb @@ -91,7 +91,20 @@ EOT if options[:xml] return 0, pool.to_xml(true) else - format_pool(pool, options, top) + phash = pool.to_hash + rname = self.class.rname + + if phash["#{rname}_POOL"] && phash["#{rname}_POOL"]["#{rname}"] + if phash["#{rname}_POOL"]["#{rname}"].instance_of?(Array) + phash = phash["#{rname}_POOL"]["#{rname}"] + else + phash = [phash["#{rname}_POOL"]["#{rname}"]] + end + else + phash = Array.new + end + + format_pool(phash, options, top) return 0 end end @@ -138,11 +151,11 @@ EOT ######################################################################## # Id translation ######################################################################## - def uid_to_str(uid, options) + def uid_to_str(uid, options={}) rid_to_str(:users, uid, options) end - def gid_to_str(gid, options) + def gid_to_str(gid, options={}) rid_to_str(:groups, gid, options) end diff --git a/src/cli/one_helper/onehost_helper.rb b/src/cli/one_helper/onehost_helper.rb index d61bb2f21c..57f87eb873 100644 --- a/src/cli/one_helper/onehost_helper.rb +++ b/src/cli/one_helper/onehost_helper.rb @@ -25,6 +25,12 @@ class OneHostHelper < OpenNebulaHelper::OneHelper "onehost.yaml" end + def self.state_to_str(id) + id = id.to_i + state_str = Host::HOST_STATES[id] + return Host::SHORT_HOST_STATES[state_str] + end + private def factory(id=nil) @@ -83,38 +89,38 @@ class OneHostHelper < OpenNebulaHelper::OneHelper end column :RVM, "Number of Virtual Machines running", :size=>6 do |d| - d["HOST_SHARE/RUNNING_VMS"] + d["HOST_SHARE"]["RUNNING_VMS"] end column :TCPU, "Total CPU percentage", :size=>6 do |d| - d["HOST_SHARE/MAX_CPU"] + d["HOST_SHARE"]["MAX_CPU"] end column :FCPU, "Free CPU percentage", :size=>6 do |d| - d["HOST_SHARE/MAX_CPU"].to_i-d["HOST_SHARE/USED_CPU"].to_i + d["HOST_SHARE"]["MAX_CPU"].to_i-d["HOST_SHARE"]["USED_CPU"].to_i end column :ACPU, "Available cpu percentage (not reserved by VMs)", :size=>6 do |d| - max_cpu=d["HOST_SHARE/MAX_CPU"].to_i + max_cpu=d["HOST_SHARE"]["MAX_CPU"].to_i max_cpu=100 if max_cpu==0 - max_cpu-d["HOST_SHARE/CPU_USAGE"].to_i + max_cpu-d["HOST_SHARE"]["CPU_USAGE"].to_i end column :TMEM, "Total Memory", :size=>6 do |d| - OpenNebulaHelper.unit_to_str(d["HOST_SHARE/MAX_MEM"].to_i,options) + OpenNebulaHelper.unit_to_str(d["HOST_SHARE"]["MAX_MEM"].to_i,options) end column :FMEM, "Free Memory", :size=>6 do |d| - OpenNebulaHelper.unit_to_str(d["HOST_SHARE/FREE_MEM"].to_i,options) + OpenNebulaHelper.unit_to_str(d["HOST_SHARE"]["FREE_MEM"].to_i,options) end column :AMEM, "Available Memory (not reserved by VMs)", :size=>6 do |d| - acpu=d["HOST_SHARE/MAX_MEM"].to_i-d["HOST_SHARE/MEM_USAGE"].to_i + acpu=d["HOST_SHARE"]["MAX_MEM"].to_i-d["HOST_SHARE"]["MEM_USAGE"].to_i OpenNebulaHelper.unit_to_str(acpu,options) end column :STAT, "Host status", :size=>6 do |d| - d.short_state_str + OneHostHelper.state_to_str(d["STATE"]) end default :ID, :NAME, :RVM, :TCPU, :FCPU, :ACPU, :TMEM, :FMEM, :AMEM, :STAT diff --git a/src/cli/one_helper/oneimage_helper.rb b/src/cli/one_helper/oneimage_helper.rb index 4eecb8df0c..228b3d6061 100644 --- a/src/cli/one_helper/oneimage_helper.rb +++ b/src/cli/one_helper/oneimage_helper.rb @@ -25,6 +25,22 @@ class OneImageHelper < OpenNebulaHelper::OneHelper "oneimage.yaml" end + def self.persistent_to_str(str) + str.to_i==1 ? "Yes" : "No" + end + + def self.state_to_str(id) + id = id.to_i + state_str = Image::IMAGE_STATES[id] + return Image::SHORT_IMAGE_STATES[state_str] + end + + def self.type_to_str(id) + id = id.to_i + type_str = Image::IMAGE_TYPES[id] + return Image::SHORT_IMAGE_TYPES[type_str] + end + private def factory(id=nil) @@ -80,7 +96,7 @@ class OneImageHelper < OpenNebulaHelper::OneHelper end column :TYPE, "Type of the Image", :size=>4 do |d,e| - d.short_type_str + OneImageHelper.type_to_str(d["TYPE"]) end column :REGTIME, "Registration time of the Image", :size=>20 do |d| @@ -96,7 +112,7 @@ class OneImageHelper < OpenNebulaHelper::OneHelper end column :STAT, "State of the Image", :size=>4 do |d| - d.short_state_str + OneImageHelper.state_to_str(d["STATE"]) end column :RVMS, "Number of VMs currently running from this Image", :size=>5 do |d| @@ -112,10 +128,4 @@ class OneImageHelper < OpenNebulaHelper::OneHelper table.show(pool, options) end end - - private - - def self.persistent_to_str(str) - str.to_i==1 ? "Yes" : "No" - end end \ No newline at end of file diff --git a/src/cli/one_helper/onevm_helper.rb b/src/cli/one_helper/onevm_helper.rb index 88145d5d77..83140a01ca 100644 --- a/src/cli/one_helper/onevm_helper.rb +++ b/src/cli/one_helper/onevm_helper.rb @@ -25,6 +25,20 @@ class OneVMHelper < OpenNebulaHelper::OneHelper "onevm.yaml" end + def self.state_to_str(id, lcm_id) + id = id.to_i + state_str = VirtualMachine::VM_STATE[id] + short_state_str = VirtualMachine::SHORT_VM_STATES[state_str] + + if short_state_str=="actv" + lcm_id = lcm_id.to_i + lcm_state_str = VirtualMachine::LCM_STATE[lcm_id] + return VirtualMachine::SHORT_LCM_STATES[lcm_state_str] + end + + return short_state_str + end + private def factory(id=nil) @@ -89,7 +103,7 @@ class OneVMHelper < OpenNebulaHelper::OneHelper end column :STAT, "Actual status", :size=>4 do |d,e| - d.status + OneVMHelper.state_to_str(d["STATE"], d["LCM_STATE"]) end column :CPU, "CPU percentage used by the VM", :size=>3 do |d| @@ -101,7 +115,7 @@ class OneVMHelper < OpenNebulaHelper::OneHelper end column :HOSTNAME, "Host where the VM is running", :size=>15 do |d| - d["HISTORY/HOSTNAME"] + d["HISTORY"]["HOSTNAME"] if d["HISTORY"] end column :TIME, "Time since the VM was submitted", :size=>11 do |d|