diff --git a/src/acct/test/cmonitoring_spec.rb b/src/acct/test/cmonitoring_spec.rb index 160b16a71b..4334841e89 100644 --- a/src/acct/test/cmonitoring_spec.rb +++ b/src/acct/test/cmonitoring_spec.rb @@ -15,10 +15,10 @@ describe "VmWatchClient tests" do it "1 VM, 1 timestamp. Check totals, sums and resource info" do @monitoring.set_mock_timestamp(100) - + @monitoring.insert(create_vmpool_hash) @db[:vms].count.should eql(0) - + values = { :cpu => 1, :memory => 128, @@ -38,106 +38,106 @@ describe "VmWatchClient tests" do :reason => 0 ] } - + @mock_client.add_vm(1, values) @monitoring.insert(create_vmpool_hash) @db[:vms].count.should eql(1) end - + it "should check all the monitoring resources are shown by default" do mon = @watch_client.resource_monitoring(1) - + mon[:id].should eql(1) mon[:resource].should eql("VM") - + monitoring = mon[:monitoring] - + monitoring.keys.size.should eql(4) - + monitoring[:cpu_usage].size.should eql(1) monitoring[:cpu_usage].first.should eql([90,1]) - + monitoring[:mem_usage].size.should eql(1) monitoring[:mem_usage].first.should eql([90,128]) - + monitoring[:net_tx].size.should eql(1) monitoring[:net_tx].first.should eql([90,200]) - + monitoring[:net_rx].size.should eql(1) monitoring[:net_rx].first.should eql([90,400]) end it "should check only one monitoring resource is shown if specified" do mon = @watch_client.resource_monitoring(1, [:net_tx]) - + monitoring = mon[:monitoring] - + monitoring.keys.size.should eql(1) - + monitoring[:net_tx].size.should eql(1) monitoring[:net_tx].first.should eql([90,200]) end - + it "should check only two monitoring resources are shown if specified" do mon = @watch_client.resource_monitoring(1, [:net_tx, :cpu_usage]) - + monitoring = mon[:monitoring] - + monitoring.keys.size.should eql(2) - + monitoring[:net_tx].size.should eql(1) monitoring[:net_tx].first.should eql([90,200]) - + monitoring[:cpu_usage].size.should eql(1) monitoring[:cpu_usage].first.should eql([90,1]) end - + it "should check all the total monitoring resources are shown by default" do mon = @watch_client.total_monitoring - + mon[:resource].should eql("VM_POOL") - + monitoring = mon[:monitoring] - + monitoring[:total].size.should eql(1) monitoring[:total].first.should eql([100,1]) - + monitoring[:active].size.should eql(1) monitoring[:active].first.should eql([100,1]) - + monitoring[:error].size.should eql(0) - + monitoring[:cpu_usage].size.should eql(1) monitoring[:cpu_usage].first.should eql([90,1]) - + monitoring[:mem_usage].size.should eql(1) monitoring[:mem_usage].first.should eql([90,128]) - + monitoring[:net_tx].size.should eql(1) monitoring[:net_tx].first.should eql([90,200]) - + monitoring[:net_rx].size.should eql(1) monitoring[:net_rx].first.should eql([90,400]) end - + it "should check only one total monitoring resources is shown if specified" do mon = @watch_client.total_monitoring([:total]) - + mon[:resource].should eql("VM_POOL") - + monitoring = mon[:monitoring] - + monitoring.keys.size.should eql(1) - + monitoring[:total].size.should eql(1) monitoring[:total].first.should eql([100,1]) end - + it "should return an empty Hash if no valid monitoring resource" do mon = @watch_client.resource_monitoring(1, [:oranges]) mon[:monitoring].empty?.should eql(true) end - + it "should return nil if the VM does not exist" do mon = @watch_client.resource_monitoring(100, [:oranges]) mon.should eql(nil) @@ -145,7 +145,7 @@ describe "VmWatchClient tests" do it "add a second VM" do @monitoring.set_mock_timestamp(200) - + values = { :cpu => 1, :memory => 128, @@ -165,97 +165,97 @@ describe "VmWatchClient tests" do :reason => 0 ] } - + @mock_client.add_vm(2, values) @monitoring.insert(create_vmpool_hash) @db[:vms].count.should eql(2) end - + it "should check all the monitoring resources are shown by default" do mon = @watch_client.resource_monitoring(1) - + mon[:id].should eql(1) mon[:resource].should eql("VM") - + monitoring = mon[:monitoring] - + monitoring.keys.size.should eql(4) - + monitoring[:cpu_usage].size.should eql(2) monitoring[:cpu_usage].first.should eql([90,1]) - + monitoring[:mem_usage].size.should eql(2) monitoring[:mem_usage].first.should eql([90,128]) - + monitoring[:net_tx].size.should eql(2) monitoring[:net_tx].first.should eql([90,200]) - + monitoring[:net_rx].size.should eql(2) monitoring[:net_rx].first.should eql([90,400]) - + mon = @watch_client.resource_monitoring(2) - + mon[:id].should eql(2) mon[:resource].should eql("VM") - + monitoring = mon[:monitoring] - + monitoring.keys.size.should eql(4) - + monitoring[:cpu_usage].size.should eql(1) monitoring[:cpu_usage].first.should eql([90,1]) - + monitoring[:mem_usage].size.should eql(1) monitoring[:mem_usage].first.should eql([90,128]) - + monitoring[:net_tx].size.should eql(1) monitoring[:net_tx].first.should eql([90,200]) - + monitoring[:net_rx].size.should eql(1) monitoring[:net_rx].first.should eql([90,400]) end - + it "should check all the total monitoring resources are shown by default" do mon = @watch_client.total_monitoring - + mon[:resource].should eql("VM_POOL") - + monitoring = mon[:monitoring] - + monitoring[:total].size.should eql(2) monitoring[:total].first.should eql([100,1]) monitoring[:total][1].should eql([200,2]) - + monitoring[:active].size.should eql(2) monitoring[:active].first.should eql([100,1]) monitoring[:active][1].should eql([200,2]) - + monitoring[:error].size.should eql(0) - + monitoring[:cpu_usage].size.should eql(1) monitoring[:cpu_usage].first.should eql([90,1*2]) - + monitoring[:mem_usage].size.should eql(1) monitoring[:mem_usage].first.should eql([90,128*2]) - + monitoring[:net_tx].size.should eql(1) monitoring[:net_tx].first.should eql([90,200*2]) - + monitoring[:net_rx].size.should eql(1) monitoring[:net_rx].first.should eql([90,400*2]) end - + it "add a third VM" do @monitoring.set_mock_timestamp(300) - + values = { :cpu => 1, :memory => 128, :net_tx => 200, :net_rx => 400, :last_poll => 90, - :uid => 2, - :gid => 4, + :uid => 3, + :gid => 5, :history => [ :hid => 7, :pstime => 150, @@ -267,9 +267,129 @@ describe "VmWatchClient tests" do :reason => 0 ] } - + @mock_client.add_vm(3, values) @monitoring.insert(create_vmpool_hash) @db[:vms].count.should eql(3) end + + it "should check the total monitoring resources are filtered by user" do + mon = @watch_client.total_monitoring(nil, :uid=>3) + + mon[:resource].should eql("VM_POOL") + + monitoring = mon[:monitoring] + + monitoring[:total].size.should eql(1) + monitoring[:total].first.should eql([300,1]) + + monitoring[:active].size.should eql(1) + monitoring[:active].first.should eql([300,1]) + + monitoring[:error].size.should eql(0) + + monitoring[:cpu_usage].size.should eql(1) + monitoring[:cpu_usage].first.should eql([90,1]) + + monitoring[:mem_usage].size.should eql(1) + monitoring[:mem_usage].first.should eql([90,128]) + + monitoring[:net_tx].size.should eql(1) + monitoring[:net_tx].first.should eql([90,200]) + + monitoring[:net_rx].size.should eql(1) + monitoring[:net_rx].first.should eql([90,400]) + end + + it "should check the total monitoring resources are filtered by group" do + mon = @watch_client.total_monitoring(nil, :gid=>5) + + mon[:resource].should eql("VM_POOL") + + monitoring = mon[:monitoring] + + monitoring[:total].size.should eql(1) + monitoring[:total].first.should eql([300,1]) + + monitoring[:active].size.should eql(1) + monitoring[:active].first.should eql([300,1]) + + monitoring[:error].size.should eql(0) + + monitoring[:cpu_usage].size.should eql(1) + monitoring[:cpu_usage].first.should eql([90,1]) + + monitoring[:mem_usage].size.should eql(1) + monitoring[:mem_usage].first.should eql([90,128]) + + monitoring[:net_tx].size.should eql(1) + monitoring[:net_tx].first.should eql([90,200]) + + monitoring[:net_rx].size.should eql(1) + monitoring[:net_rx].first.should eql([90,400]) + end + + it "should check the total monitoring resources are filtered by user" do + mon = @watch_client.total_monitoring(nil, :uid=>2) + + mon[:resource].should eql("VM_POOL") + + monitoring = mon[:monitoring] + + monitoring[:total].size.should eql(3) + monitoring[:total].first.should eql([100,1]) + monitoring[:total][1].should eql([200,2]) + monitoring[:active].last.should eql([300,2]) + + monitoring[:active].size.should eql(3) + monitoring[:active].first.should eql([100,1]) + monitoring[:active][1].should eql([200,2]) + monitoring[:active].last.should eql([300,2]) + + monitoring[:error].size.should eql(0) + + monitoring[:cpu_usage].size.should eql(1) + monitoring[:cpu_usage].first.should eql([90,1*2]) + + monitoring[:mem_usage].size.should eql(1) + monitoring[:mem_usage].first.should eql([90,128*2]) + + monitoring[:net_tx].size.should eql(1) + monitoring[:net_tx].first.should eql([90,200*2]) + + monitoring[:net_rx].size.should eql(1) + monitoring[:net_rx].first.should eql([90,400*2]) + end + + it "should check the total monitoring resources are filtered by group" do + mon = @watch_client.total_monitoring(nil, :gid=>4) + + mon[:resource].should eql("VM_POOL") + + monitoring = mon[:monitoring] + + monitoring[:total].size.should eql(3) + monitoring[:total].first.should eql([100,1]) + monitoring[:total][1].should eql([200,2]) + monitoring[:active].last.should eql([300,2]) + + monitoring[:active].size.should eql(3) + monitoring[:active].first.should eql([100,1]) + monitoring[:active][1].should eql([200,2]) + monitoring[:active].last.should eql([300,2]) + + monitoring[:error].size.should eql(0) + + monitoring[:cpu_usage].size.should eql(1) + monitoring[:cpu_usage].first.should eql([90,1*2]) + + monitoring[:mem_usage].size.should eql(1) + monitoring[:mem_usage].first.should eql([90,128*2]) + + monitoring[:net_tx].size.should eql(1) + monitoring[:net_tx].first.should eql([90,200*2]) + + monitoring[:net_rx].size.should eql(1) + monitoring[:net_rx].first.should eql([90,400*2]) + end end \ No newline at end of file