diff --git a/src/cli/cli_helper.rb b/src/cli/cli_helper.rb index c71f86676a..dc97027f28 100644 --- a/src/cli/cli_helper.rb +++ b/src/cli/cli_helper.rb @@ -132,17 +132,19 @@ module CLIHelper def show(data, options={}) update_columns(options) - print_table(data, options) + print_table(data, options) end - def top(data, options={}) - update_columns(options) + def top(options={}, &block) delay=options[:delay] ? options[:delay] : 1 begin while true CLIHelper.scr_cls CLIHelper.scr_move(0,0) + + data = block.call + show(data, options) sleep delay end diff --git a/src/cli/one_helper.rb b/src/cli/one_helper.rb index bfd52313e9..42f1d81ee0 100644 --- a/src/cli/one_helper.rb +++ b/src/cli/one_helper.rb @@ -92,21 +92,17 @@ EOT if options[:xml] return 0, pool.to_xml(true) else - phash = pool.to_hash - rname = self.class.rname + table = format_pool(options) - 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 + if top + table.top(options) { + pool.info + pool_to_array(pool) + } else - phash = Array.new + table.show(pool_to_array(pool), options) end - format_pool(phash, options, top) return 0 end end @@ -288,6 +284,24 @@ EOT OpenNebula.is_error?(rc) ? rc : resource end + def pool_to_array(pool) + 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 + + phash + end + def translation_hash @translation_hash ||= { :users => generate_resource_translation(UserPool), diff --git a/src/cli/one_helper/oneacl_helper.rb b/src/cli/one_helper/oneacl_helper.rb index 57f8e26591..db06e5f5a0 100644 --- a/src/cli/one_helper/oneacl_helper.rb +++ b/src/cli/one_helper/oneacl_helper.rb @@ -97,10 +97,10 @@ private mask end - def format_pool(pool, options, top=false) - config_file=self.class.table_conf + def format_pool(options) + config_file = self.class.table_conf - table=CLIHelper::ShowTable.new(config_file, self) do + table = CLIHelper::ShowTable.new(config_file, self) do column :ID, "Rule Identifier", :size=>5 do |d| d['ID'] @@ -127,8 +127,7 @@ private default :ID, :USER, :RES_VHNIUTG, :RID, :OPE_CDUMIPpTW end - table.show(pool, options) - + table end end diff --git a/src/cli/one_helper/onegroup_helper.rb b/src/cli/one_helper/onegroup_helper.rb index 2ad7c8990d..4dd71390f1 100644 --- a/src/cli/one_helper/onegroup_helper.rb +++ b/src/cli/one_helper/onegroup_helper.rb @@ -106,9 +106,10 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper end end - def format_pool(pool, options, top=false) - config_file=self.class.table_conf - table=CLIHelper::ShowTable.new(config_file, self) do + def format_pool(options) + config_file = self.class.table_conf + + table = CLIHelper::ShowTable.new(config_file, self) do column :ID, "ONE identifier for the Group", :size=>4 do |d| d["ID"] end @@ -120,10 +121,6 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper default :ID, :NAME end - if top - table.top(pool, options) - else - table.show(pool, options) - end + table end end diff --git a/src/cli/one_helper/onehost_helper.rb b/src/cli/one_helper/onehost_helper.rb index 8808b3e345..2a23aab046 100644 --- a/src/cli/one_helper/onehost_helper.rb +++ b/src/cli/one_helper/onehost_helper.rb @@ -78,9 +78,10 @@ class OneHostHelper < OpenNebulaHelper::OneHelper puts host.template_str end - def format_pool(pool, options, top=false) - config_file=self.class.table_conf - table=CLIHelper::ShowTable.new(config_file, self) do + def format_pool(options) + config_file = self.class.table_conf + + table = CLIHelper::ShowTable.new(config_file, self) do column :ID, "ONE identifier for Host", :size=>4 do |d| d["ID"] end @@ -136,10 +137,6 @@ class OneHostHelper < OpenNebulaHelper::OneHelper :AMEM, :STAT end - if top - table.top(pool, options) - else - table.show(pool, options) - end + table end end diff --git a/src/cli/one_helper/oneimage_helper.rb b/src/cli/one_helper/oneimage_helper.rb index 2c06a64a78..c79b67f72b 100644 --- a/src/cli/one_helper/oneimage_helper.rb +++ b/src/cli/one_helper/oneimage_helper.rb @@ -77,9 +77,10 @@ class OneImageHelper < OpenNebulaHelper::OneHelper puts image.template_str end - def format_pool(pool, options, top=false) - config_file=self.class.table_conf - table=CLIHelper::ShowTable.new(config_file, self) do + def format_pool(options) + config_file = self.class.table_conf + + table = CLIHelper::ShowTable.new(config_file, self) do column :ID, "ONE identifier for the Image", :size=>4 do |d| d["ID"] end @@ -130,10 +131,6 @@ class OneImageHelper < OpenNebulaHelper::OneHelper :PERSISTENT , :STAT, :RVMS end - if top - table.top(pool, options) - else - table.show(pool, options) - end + table end end diff --git a/src/cli/one_helper/onetemplate_helper.rb b/src/cli/one_helper/onetemplate_helper.rb index c1f24ac553..ea24bca273 100644 --- a/src/cli/one_helper/onetemplate_helper.rb +++ b/src/cli/one_helper/onetemplate_helper.rb @@ -60,9 +60,10 @@ class OneTemplateHelper < OpenNebulaHelper::OneHelper puts template.template_str end - def format_pool(pool, options, top=false) - config_file=self.class.table_conf - table=CLIHelper::ShowTable.new(config_file, self) do + def format_pool(options) + config_file = self.class.table_conf + + table = CLIHelper::ShowTable.new(config_file, self) do column :ID, "ONE identifier for the Template", :size=>4 do |d| d["ID"] end @@ -93,10 +94,6 @@ class OneTemplateHelper < OpenNebulaHelper::OneHelper default :ID, :USER, :GROUP, :NAME, :REGTIME, :PUBLIC end - if top - table.top(pool, options) - else - table.show(pool, options) - end + table end end diff --git a/src/cli/one_helper/oneuser_helper.rb b/src/cli/one_helper/oneuser_helper.rb index 24f2fd87e1..abf112b0fa 100644 --- a/src/cli/one_helper/oneuser_helper.rb +++ b/src/cli/one_helper/oneuser_helper.rb @@ -76,9 +76,10 @@ class OneUserHelper < OpenNebulaHelper::OneHelper OpenNebulaHelper.boolean_to_str(user['ENABLED'])] end - def format_pool(pool, options, top=false) - config_file=self.class.table_conf - table=CLIHelper::ShowTable.new(config_file, self) do + def format_pool(options) + config_file = self.class.table_conf + + table = CLIHelper::ShowTable.new(config_file, self) do column :ID, "ONE identifier for the User", :size=>4 do |d| d["ID"] end @@ -98,10 +99,6 @@ class OneUserHelper < OpenNebulaHelper::OneHelper default :ID, :GROUP, :NAME, :PASSWORD end - if top - table.top(pool, options) - else - table.show(pool, options) - end + table end end diff --git a/src/cli/one_helper/onevm_helper.rb b/src/cli/one_helper/onevm_helper.rb index c055ee36bd..3cadfe84b5 100644 --- a/src/cli/one_helper/onevm_helper.rb +++ b/src/cli/one_helper/onevm_helper.rb @@ -107,9 +107,10 @@ class OneVMHelper < OpenNebulaHelper::OneHelper end end - def format_pool(pool, options, top=false) - config_file=self.class.table_conf - table=CLIHelper::ShowTable.new(config_file, self) do + def format_pool(options) + config_file = self.class.table_conf + + table = CLIHelper::ShowTable.new(config_file, self) do column :ID, "ONE identifier for Virtual Machine", :size=>6 do |d| d["ID"] end @@ -162,11 +163,7 @@ class OneVMHelper < OpenNebulaHelper::OneHelper :TIME end - if top - table.top(pool, options) - else - table.show(pool, options) - end + table end def format_history(vm) diff --git a/src/cli/one_helper/onevnet_helper.rb b/src/cli/one_helper/onevnet_helper.rb index 8b1a94c5be..07a4dab8e9 100644 --- a/src/cli/one_helper/onevnet_helper.rb +++ b/src/cli/one_helper/onevnet_helper.rb @@ -72,9 +72,10 @@ class OneVNetHelper < OpenNebulaHelper::OneHelper end end - def format_pool(pool, options, top=false) - config_file=self.class.table_conf - table=CLIHelper::ShowTable.new(config_file, self) do + def format_pool(options) + config_file = self.class.table_conf + + table = CLIHelper::ShowTable.new(config_file, self) do column :ID, "ONE identifier for Virtual Network", :size=>4 do |d| d["ID"] end @@ -120,10 +121,6 @@ class OneVNetHelper < OpenNebulaHelper::OneHelper default :ID, :USER, :GROUP, :NAME, :TYPE, :BRIDGE, :PUBLIC, :LEASES end - if top - table.top(pool, options) - else - table.show(pool, options) - end + table end end \ No newline at end of file