blob: c071829f09451686d50b63dcb660c302dd3f54d7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
#!/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 'qmf'
require 'socket'
class App < Qmf::ConsoleHandler
def dump_schema
packages = @qmfc.get_packages
puts "----- Packages -----"
packages.each do |p|
puts p
puts " ----- Object Classes -----"
classes = @qmfc.get_classes(p)
classes.each do |c|
puts " #{c.name}"
puts " ---- Properties ----"
props = c.properties
props.each do |prop|
puts " #{prop.name}"
end
puts " ---- Statistics ----"
stats = c.statistics
stats.each do |stat|
puts " #{stat.name}"
end
puts " ---- Methods ----"
methods = c.methods
methods.each do |method|
puts " #{method.name}"
puts " ---- Args ----"
args = method.arguments
args.each do |arg|
puts " #{arg.name}"
end
end
end
puts " ----- Event Classes -----"
classes = @qmfc.get_classes(p, Qmf::CLASS_EVENT)
classes.each do |c|
puts " #{c.name}"
puts " ---- Args ----"
args = c.arguments
args.each do |arg|
puts " #{arg.name}"
end
end
end
puts "-----"
end
def main
@settings = Qmf::ConnectionSettings.new
@settings.set_attr("host", ARGV[0]) if ARGV.size > 0
@settings.set_attr("port", ARGV[1].to_i) if ARGV.size > 1
@connection = Qmf::Connection.new(@settings)
@qmfc = Qmf::Console.new
@broker = @qmfc.add_connection(@connection)
@broker.waitForStable
dump_schema
agents = @qmfc.get_agents()
puts "---- Agents ----"
agents.each do |a|
puts " => #{a.label}"
end
puts "----"
for idx in 0...20
blist = @qmfc.get_objects(Qmf::Query.new(:class => "broker"))
puts "---- Brokers ----"
blist.each do |b|
puts " ---- Broker ----"
puts " systemRef: #{b.get_attr('systemRef')}"
puts " port : #{b.get_attr('port')}"
puts " uptime : #{b.get_attr('uptime') / 1000000000}"
end
puts "----"
sleep(5)
end
sleep(5)
puts "Deleting connection..."
@qmfc.del_connection(@broker)
puts " done"
sleep
end
end
app = App.new
app.main
|