diff options
Diffstat (limited to 'qpid/ruby/examples/qmf-libvirt.rb')
-rw-r--r-- | qpid/ruby/examples/qmf-libvirt.rb | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/qpid/ruby/examples/qmf-libvirt.rb b/qpid/ruby/examples/qmf-libvirt.rb new file mode 100644 index 0000000000..492f4fe8d6 --- /dev/null +++ b/qpid/ruby/examples/qmf-libvirt.rb @@ -0,0 +1,80 @@ +#!/usr/bin/ruby +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +require "qpid" + +s = Qpid::Qmf::Session.new() +b = s.add_broker("amqp://localhost:5672") + +while true: + nodes = s.objects(:class => "node") + nodes.each do |node| + puts "node: #{node.hostname}" + for (key, val) in node.properties + puts " property: #{key}, #{val}" + end + + # Find any domains that on the current node. + domains = s.objects(:class => "domain", 'node' => node.object_id) + domains.each do |domain| + r = domain.getXMLDesc() + puts "status: #{r.status}" + if r.status == 0 + puts "xml description: #{r.description}" + puts "length: #{r.description.length}" + end + + puts " domain: #{domain.name}, state: #{domain.state}, id: #{domain.id}" + for (key, val) in domain.properties + puts " property: #{key}, #{val}" + end + end + + pools = s.objects(:class => "pool", 'node' => node.object_id) + pools.each do |pool| + puts " pool: #{pool.name}" + for (key, val) in pool.properties + puts " property: #{key}, #{val}" + end + + r = pool.getXMLDesc() + puts "status: #{r.status}" + puts "text: #{r.text}" + if r.status == 0 + puts "xml description: #{r.description}" + puts "length: #{r.description.length}" + end + + # Find volumes that are part of the pool. + volumes = s.objects(:class => "volume", 'pool' => pool.object_id) + volumes.each do |volume| + puts " volume: #{volume.name}" + for (key, val) in volume.properties + puts " property: #{key}, #{val}" + end + end + end + + end + + puts '----------------------------' + sleep(5) + +end |