gnms 2.1.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of gnms might be problematic. Click here for more details.
- data/LICENSE +459 -0
- data/README +29 -0
- data/bin/gnms +11 -0
- data/gnms.gemspec +70 -0
- data/lib/cmd_parse.rb +747 -0
- data/lib/config_global.rb +414 -0
- data/lib/contact.rb +171 -0
- data/lib/external/crypt/blowfish-tables.rb +190 -0
- data/lib/external/crypt/blowfish.rb +110 -0
- data/lib/external/crypt/cbc.rb +123 -0
- data/lib/external/crypt/stringxor.rb +27 -0
- data/lib/external/fog.rb +41 -0
- data/lib/external/jjmx.rb +45 -0
- data/lib/external/sms.rb +282 -0
- data/lib/external/xmpp4r-simple.rb +497 -0
- data/lib/format.rb +85 -0
- data/lib/gnms.rb +329 -0
- data/lib/gui/about_window.rb +177 -0
- data/lib/gui/adddelnode.rb +799 -0
- data/lib/gui/base_window.rb +789 -0
- data/lib/gui/canvas_map.rb +498 -0
- data/lib/gui/charts/gruff.rb +51 -0
- data/lib/gui/color_macro.rb +145 -0
- data/lib/gui/config_window.rb +2151 -0
- data/lib/gui/custom_plugin_window.rb +90 -0
- data/lib/gui/debug_window.rb +46 -0
- data/lib/gui/event_window.rb +469 -0
- data/lib/gui/find_node_window.rb +438 -0
- data/lib/gui/help_window.rb +47 -0
- data/lib/gui/ipcalculator.rb +147 -0
- data/lib/gui/jmx_ref_window.rb +309 -0
- data/lib/gui/link_view.rb +46 -0
- data/lib/gui/mib_browser.rb +585 -0
- data/lib/gui/node_host_property.rb +3712 -0
- data/lib/gui/node_host_view.rb +270 -0
- data/lib/gui/node_network_property.rb +1059 -0
- data/lib/gui/node_network_view.rb +186 -0
- data/lib/gui/node_view.rb +672 -0
- data/lib/gui/oid_ref_window.rb +288 -0
- data/lib/gui/snmptrap_ref_window.rb +288 -0
- data/lib/gui/sub/account_frame.rb +196 -0
- data/lib/gui/sub/contact_frame.rb +519 -0
- data/lib/gui/syslog_ref_window.rb +288 -0
- data/lib/gui/treenode_window.rb +320 -0
- data/lib/gui/update_window.rb +124 -0
- data/lib/gui/widgets.rb +169 -0
- data/lib/gui/wmi_ref_window.rb +286 -0
- data/lib/interface.rb +16 -0
- data/lib/ipcalc.rb +266 -0
- data/lib/link.rb +45 -0
- data/lib/main.rb +1091 -0
- data/lib/monitor/client/custom/custom_monitoring.rb +40 -0
- data/lib/monitor/client/jmx/jmx_attr_monitoring.rb +36 -0
- data/lib/monitor/client/jmx/jmx_monitoring.rb +83 -0
- data/lib/monitor/client/jmx/jmx_ref.rb +114 -0
- data/lib/monitor/client/snmp/mibs/SNMPv2-MIB.txt +854 -0
- data/lib/monitor/client/snmp/mibs/SNMPv2-SMI.txt +344 -0
- data/lib/monitor/client/snmp/oid_ref.rb +141 -0
- data/lib/monitor/client/snmp/snmp.rb +178 -0
- data/lib/monitor/client/snmp/snmp_monitoring.rb +58 -0
- data/lib/monitor/client/wmi/wmi.rb +139 -0
- data/lib/monitor/client/wmi/wmi_monitoring.rb +60 -0
- data/lib/monitor/client/wmi/wmi_ref.rb +141 -0
- data/lib/monitor/custom_plugin.rb +50 -0
- data/lib/monitor/server/msg_buffer.rb +39 -0
- data/lib/monitor/server/snmp/snmptrap_analyzer.rb +81 -0
- data/lib/monitor/server/snmp/snmptrap_capture.rb +26 -0
- data/lib/monitor/server/snmp/snmptrap_monitoring.rb +32 -0
- data/lib/monitor/server/snmp/snmptrap_ref.rb +135 -0
- data/lib/monitor/server/snmp/snmptrap_server.rb +50 -0
- data/lib/monitor/server/syslog/syslog_analyzer.rb +141 -0
- data/lib/monitor/server/syslog/syslog_capture.rb +28 -0
- data/lib/monitor/server/syslog/syslog_monitoring.rb +32 -0
- data/lib/monitor/server/syslog/syslog_ref.rb +136 -0
- data/lib/monitor/server/syslog/syslog_server.rb +43 -0
- data/lib/node.rb +1020 -0
- data/lib/node_db.rb +2668 -0
- data/lib/node_host.rb +215 -0
- data/lib/node_listener.rb +639 -0
- data/lib/node_network.rb +269 -0
- data/lib/node_property.rb +39 -0
- data/lib/notify/alarm.rb +247 -0
- data/lib/notify/irc_bot.rb +167 -0
- data/lib/notify/xmpp_bot.rb +107 -0
- data/lib/service.rb +36 -0
- data/lib/version.rb +8 -0
- data/pixmap/bg/map_bg.jpg +0 -0
- data/pixmap/bg/map_bg2.jpg +0 -0
- data/pixmap/logo.jpg +0 -0
- data/pixmap/logo_icon.png +0 -0
- data/pixmap/os/3com.png +0 -0
- data/pixmap/os/aix.gif +0 -0
- data/pixmap/os/amiga.png +0 -0
- data/pixmap/os/beos.png +0 -0
- data/pixmap/os/cisco.png +0 -0
- data/pixmap/os/freebsd.png +0 -0
- data/pixmap/os/hp.png +0 -0
- data/pixmap/os/hurd.gif +0 -0
- data/pixmap/os/irix.gif +0 -0
- data/pixmap/os/linux.png +0 -0
- data/pixmap/os/mac.png +0 -0
- data/pixmap/os/netbsd.gif +0 -0
- data/pixmap/os/netware.png +0 -0
- data/pixmap/os/openbsd.png +0 -0
- data/pixmap/os/os2warp.gif +0 -0
- data/pixmap/os/qnx.gif +0 -0
- data/pixmap/os/sco.gif +0 -0
- data/pixmap/os/sgi.xpm +111 -0
- data/pixmap/os/solaris.gif +0 -0
- data/pixmap/os/unix.gif +0 -0
- data/pixmap/os/unknown.png +0 -0
- data/pixmap/os/vms.xpm +345 -0
- data/pixmap/os/windows.png +0 -0
- data/pixmap/type/cloud.png +0 -0
- data/pixmap/type/device.png +0 -0
- data/pixmap/type/firewall.png +0 -0
- data/pixmap/type/gateway.png +0 -0
- data/pixmap/type/home.png +0 -0
- data/pixmap/type/host.png +0 -0
- data/pixmap/type/network.png +0 -0
- data/pixmap/type/printer.png +0 -0
- data/pixmap/type/router.png +0 -0
- data/pixmap/type/server.png +0 -0
- data/pixmap/type/switch.png +0 -0
- data/pixmap/type/vm.png +0 -0
- data/plugins/Defaultme.rb +7 -0
- data/plugins/DnsCheck.rb +46 -0
- data/plugins/FooMonitor.rb +26 -0
- data/plugins/HttpVirtualHostMonitor.rb +43 -0
- data/plugins/MysqlShowStatusMonitor.rb +64 -0
- data/plugins/PgsqlPercentConnectionMonitor.rb +72 -0
- data/plugins/SshCpuLoadMonitor.rb +85 -0
- data/plugins/SshDiskMonitor.rb +69 -0
- data/plugins/SshFgtAvExpiredMonitor.rb +75 -0
- data/plugins/SshPercentUsedRamMonitor.rb +74 -0
- data/plugins/TelnetCpuLoadMonitor.rb +69 -0
- data/plugins/example1.rb +15 -0
- data/plugins/example2.rb +7 -0
- data/sound/beep.wav +0 -0
- metadata +378 -0
@@ -0,0 +1,147 @@
|
|
1
|
+
require "#{GNMSLIB}"+'/cmd_parse'
|
2
|
+
|
3
|
+
#
|
4
|
+
# window to get info from ip/mask
|
5
|
+
#
|
6
|
+
def netmask_calculator
|
7
|
+
|
8
|
+
if $win == nil
|
9
|
+
return
|
10
|
+
end
|
11
|
+
|
12
|
+
ipcalc=Gtk::Window.new
|
13
|
+
|
14
|
+
ipcalc.set_title("IP calculator")
|
15
|
+
ipcalc.set_size_request(340, 340)
|
16
|
+
ipcalc.set_modal(true)
|
17
|
+
|
18
|
+
ipcalc.signal_connect("key_press_event") {|w,e|
|
19
|
+
if e.keyval == Gdk::Keyval::GDK_Escape
|
20
|
+
ipcalc.destroy
|
21
|
+
end
|
22
|
+
}
|
23
|
+
|
24
|
+
vbox = Gtk::VBox.new
|
25
|
+
vbox.show
|
26
|
+
ipcalc.add vbox
|
27
|
+
|
28
|
+
frame=Gtk::Frame.new
|
29
|
+
frame.border_width=10
|
30
|
+
frame.show
|
31
|
+
vbox.add frame
|
32
|
+
|
33
|
+
table = Gtk::Table.new(3,2,false)
|
34
|
+
table.show
|
35
|
+
|
36
|
+
label_ip = Gtk::Label.new "IP"
|
37
|
+
label_ip.show
|
38
|
+
entry_ip = Gtk::Entry.new
|
39
|
+
entry_ip.set_text "0.0.0.0"
|
40
|
+
entry_ip.show
|
41
|
+
eval_button = Gtk::Button.new(Gtk::Stock::EXECUTE)
|
42
|
+
eval_button.show
|
43
|
+
|
44
|
+
hbox = Gtk::HBox.new
|
45
|
+
hbox.show
|
46
|
+
|
47
|
+
hbox.add entry_ip
|
48
|
+
hbox.add eval_button
|
49
|
+
|
50
|
+
table.attach(label_ip,0,1,0,1)
|
51
|
+
table.attach(hbox,1,2,0,1)
|
52
|
+
|
53
|
+
label_netmask = Gtk::Label.new "Netmask"
|
54
|
+
label_netmask.show
|
55
|
+
|
56
|
+
hbox = Gtk::HBox.new
|
57
|
+
hbox.show
|
58
|
+
entry_netmask = Gtk::Entry.new
|
59
|
+
entry_netmask.set_text "255.255.255.0"
|
60
|
+
entry_netmask.set_editable false
|
61
|
+
entry_netmask.show
|
62
|
+
|
63
|
+
adj = Gtk::Adjustment::new(0, 1.0, 32.0, 1.0, 5.0, 0.0)
|
64
|
+
compressnetmask = Gtk::SpinButton::new(adj, 0, 0)
|
65
|
+
compressnetmask.set_wrap(true)
|
66
|
+
compressnetmask.set_editable false
|
67
|
+
compressnetmask.set_value 24.0
|
68
|
+
|
69
|
+
compressnetmask.show
|
70
|
+
hbox.add entry_netmask
|
71
|
+
hbox.add compressnetmask
|
72
|
+
table.attach(label_netmask,0,1,1,2)
|
73
|
+
table.attach(hbox,1,2,1,2)
|
74
|
+
text = Gtk::TextView.new
|
75
|
+
text.cursor_visible=false
|
76
|
+
text.set_size_request(150,200)
|
77
|
+
text.set_editable(false)
|
78
|
+
text.show
|
79
|
+
|
80
|
+
bbox = Gtk::HButtonBox.new
|
81
|
+
bbox.set_layout_style(Gtk::ButtonBox::SPREAD)
|
82
|
+
bbox.set_size_request(50,30)
|
83
|
+
bbox.show
|
84
|
+
|
85
|
+
compressnetmask.signal_connect("value-changed") {
|
86
|
+
entry_netmask.set_text bit2netmask(compressnetmask.value_as_int)
|
87
|
+
}
|
88
|
+
|
89
|
+
eval_button.signal_connect("clicked") {
|
90
|
+
if isValidIPv4(entry_ip.text)
|
91
|
+
text.buffer.place_cursor(text.buffer.start_iter)
|
92
|
+
if compressnetmask.value == "0"
|
93
|
+
text.buffer.insert_at_cursor(IPCalc::ipcalc_detail(entry_ip.text))
|
94
|
+
else
|
95
|
+
text.buffer.insert_at_cursor(IPCalc::ipcalc_detail("#{entry_ip.text}/#{compressnetmask.text}"))
|
96
|
+
end
|
97
|
+
else
|
98
|
+
errorEntry(ipcalc, entry_ip.text)
|
99
|
+
end
|
100
|
+
}
|
101
|
+
entry_ip.signal_connect("key_press_event") {|w,e|
|
102
|
+
if e.keyval == 65293 || e.keyval == 65421 #Enter key
|
103
|
+
eval_button.clicked
|
104
|
+
end
|
105
|
+
}
|
106
|
+
entry_netmask.signal_connect("key_press_event") {|w,e|
|
107
|
+
if e.keyval == 65293 || e.keyval == 65421 #Enter key
|
108
|
+
eval_button.clicked
|
109
|
+
end
|
110
|
+
}
|
111
|
+
compressnetmask.signal_connect("key_press_event") {|w,e|
|
112
|
+
if e.keyval == 65293 || e.keyval == 65421 #Enter key
|
113
|
+
eval_button.clicked
|
114
|
+
end
|
115
|
+
}
|
116
|
+
|
117
|
+
|
118
|
+
clear_button = Gtk::Button.new(Gtk::Stock::CLEAR)
|
119
|
+
clear_button.show
|
120
|
+
clear_button.signal_connect("clicked") {
|
121
|
+
text.buffer.delete(text.buffer.start_iter,text.buffer.end_iter)
|
122
|
+
}
|
123
|
+
|
124
|
+
cancel_button = Gtk::Button.new(Gtk::Stock::CLOSE)
|
125
|
+
cancel_button.show
|
126
|
+
cancel_button.signal_connect("clicked") {
|
127
|
+
ipcalc.destroy
|
128
|
+
}
|
129
|
+
|
130
|
+
bbox.add clear_button
|
131
|
+
bbox.add cancel_button
|
132
|
+
frame.add table
|
133
|
+
|
134
|
+
scrolled_window = Gtk::ScrolledWindow.new(nil, nil)
|
135
|
+
scrolled_window.border_width=2
|
136
|
+
scrolled_window.set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC)
|
137
|
+
|
138
|
+
vbox.add scrolled_window
|
139
|
+
scrolled_window.show
|
140
|
+
scrolled_window.add(text)
|
141
|
+
|
142
|
+
separator = Gtk::HSeparator::new()
|
143
|
+
separator.show
|
144
|
+
vbox.add separator
|
145
|
+
vbox.add bbox
|
146
|
+
ipcalc.show
|
147
|
+
end
|
@@ -0,0 +1,309 @@
|
|
1
|
+
class JMXRefWindow
|
2
|
+
|
3
|
+
def clear_ls()
|
4
|
+
@jmx_ref_ls.clear()
|
5
|
+
end
|
6
|
+
#populate listview with saved values
|
7
|
+
def populate_ls()
|
8
|
+
$jmx_refs.each_key do |name|
|
9
|
+
iter = @jmx_ref_ls.append
|
10
|
+
iter[0] = name
|
11
|
+
iter[1] = $jmx_refs[name].description
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def initialize()
|
16
|
+
#save jmxref hash
|
17
|
+
@jmxrefs_backup=$jmx_refs.dup
|
18
|
+
@window=Gtk::Window.new
|
19
|
+
@window.set_title("JMX Ref configuration")
|
20
|
+
@window.set_size_request(300, 200)
|
21
|
+
|
22
|
+
@window.signal_connect("key_press_event") {|w,e|
|
23
|
+
if e.keyval == Gdk::Keyval::GDK_Escape
|
24
|
+
@window.destroy
|
25
|
+
end
|
26
|
+
}
|
27
|
+
|
28
|
+
frame = Gtk::Frame::new
|
29
|
+
frame.border_width=5
|
30
|
+
frame.show
|
31
|
+
vbox_root=Gtk::VBox::new
|
32
|
+
vbox_root.show
|
33
|
+
@window.add vbox_root
|
34
|
+
vbox_root.add frame
|
35
|
+
|
36
|
+
vbox = Gtk::VBox.new(false,0)
|
37
|
+
vbox.show
|
38
|
+
frame.add vbox
|
39
|
+
|
40
|
+
@jmx_ref_ls = Gtk::ListStore.new(String, String)
|
41
|
+
@jmx_ref_view = Gtk::TreeView.new(@jmx_ref_ls)
|
42
|
+
@jmx_ref_view.show
|
43
|
+
column1 = Gtk::TreeViewColumn.new("Name",
|
44
|
+
Gtk::CellRendererText.new, {:text => 0})
|
45
|
+
column1.set_sort_column_id(0)
|
46
|
+
column2 = Gtk::TreeViewColumn.new("Description",
|
47
|
+
Gtk::CellRendererText.new, {:text => 1})
|
48
|
+
column2.set_sort_column_id(1)
|
49
|
+
|
50
|
+
@jmx_ref_view.append_column(column1)
|
51
|
+
@jmx_ref_view.append_column(column2)
|
52
|
+
|
53
|
+
scroll = Gtk::ScrolledWindow.new(nil, nil)
|
54
|
+
scroll.border_width=2
|
55
|
+
scroll.set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC)
|
56
|
+
scroll.add @jmx_ref_view
|
57
|
+
scroll.show
|
58
|
+
|
59
|
+
# Create a menu
|
60
|
+
menu = Gtk::Menu.new
|
61
|
+
|
62
|
+
item_add = Gtk::ImageMenuItem.new("Add jmx Ref")
|
63
|
+
image_item_add = Gtk::Image.new()
|
64
|
+
image_item_add.set_stock(Gtk::Stock::ADD)
|
65
|
+
item_add.set_image(image_item_add)
|
66
|
+
item_add.signal_connect("activate") { add_gui_jmx_ref() }
|
67
|
+
menu.append(item_add)
|
68
|
+
item_del = Gtk::ImageMenuItem.new("Delete selected jmx Ref")
|
69
|
+
image_item_del = Gtk::Image.new()
|
70
|
+
image_item_del.set_stock(Gtk::Stock::REMOVE)
|
71
|
+
item_del.set_image(image_item_del)
|
72
|
+
item_del.signal_connect("activate") {
|
73
|
+
if @jmx_ref_view.selection.selected!=nil
|
74
|
+
if JMXRef::del_jmx_ref(@jmx_ref_view.selection.selected[0])
|
75
|
+
@jmx_ref_view.model.remove(@jmx_ref_view.selection.selected)
|
76
|
+
else
|
77
|
+
dialog = Gtk::MessageDialog.new(@window, Gtk::Dialog::DESTROY_WITH_PARENT,
|
78
|
+
Gtk::MessageDialog::ERROR,
|
79
|
+
Gtk::MessageDialog::BUTTONS_OK,
|
80
|
+
"You can't delete! jmx Ref in use")
|
81
|
+
dialog.run
|
82
|
+
dialog.destroy
|
83
|
+
end
|
84
|
+
end
|
85
|
+
}
|
86
|
+
menu.append(item_del)
|
87
|
+
item_edit = Gtk::ImageMenuItem.new("Edit jmx Ref")
|
88
|
+
image_item_edit = Gtk::Image.new()
|
89
|
+
image_item_edit.set_stock(Gtk::Stock::EDIT)
|
90
|
+
item_edit.set_image(image_item_edit)
|
91
|
+
item_edit.signal_connect("activate") {
|
92
|
+
if @jmx_ref_view.selection.selected != nil
|
93
|
+
edit_jmx_ref(@jmx_ref_view.selection.selected[0])
|
94
|
+
end
|
95
|
+
}
|
96
|
+
menu.append(item_edit)
|
97
|
+
|
98
|
+
@jmx_ref_view.signal_connect("button_press_event") do |widget, event|
|
99
|
+
if event.kind_of? Gdk::EventButton and event.button == 3
|
100
|
+
if @jmx_ref_view.selection.selected == nil
|
101
|
+
item_del.set_sensitive(false)
|
102
|
+
item_edit.set_sensitive(false)
|
103
|
+
else
|
104
|
+
item_del.set_sensitive(true)
|
105
|
+
item_edit.set_sensitive(true)
|
106
|
+
end
|
107
|
+
menu.popup(nil, nil, event.button, event.time)
|
108
|
+
elsif (@jmx_ref_view.selection.selected != nil) && (event.event_type == Gdk::Event::BUTTON2_PRESS)
|
109
|
+
edit_jmx_ref(@jmx_ref_view.selection.selected[0])
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
menu.show_all
|
114
|
+
|
115
|
+
populate_ls()
|
116
|
+
vbox.add(scroll)
|
117
|
+
|
118
|
+
bbox = Gtk::HBox::new(FALSE, 10)
|
119
|
+
bbox.border_width=10
|
120
|
+
bbox.show
|
121
|
+
|
122
|
+
ok_button = Gtk::Button.new(Gtk::Stock::OK)
|
123
|
+
ok_button.show
|
124
|
+
ok_button.signal_connect("clicked") {
|
125
|
+
JMXRef::write_db_jmxref()
|
126
|
+
@window.destroy
|
127
|
+
}
|
128
|
+
|
129
|
+
cancel_button = Gtk::Button.new(Gtk::Stock::CANCEL)
|
130
|
+
cancel_button.show
|
131
|
+
cancel_button.signal_connect("clicked") {
|
132
|
+
$jmx_refs=@jmxrefs_backup
|
133
|
+
@window.destroy
|
134
|
+
}
|
135
|
+
ok_button.set_flags(Gtk::Widget::CAN_DEFAULT)
|
136
|
+
bbox.pack_start(ok_button, TRUE, TRUE, 0)
|
137
|
+
cancel_button.set_flags(Gtk::Widget::CAN_DEFAULT)
|
138
|
+
bbox.pack_start(cancel_button, TRUE, TRUE, 0)
|
139
|
+
|
140
|
+
separator = Gtk::HSeparator::new()
|
141
|
+
separator.show
|
142
|
+
vbox_root.pack_start(separator, FALSE, TRUE, 0)
|
143
|
+
vbox_root.pack_start(bbox, FALSE, TRUE, 0)
|
144
|
+
|
145
|
+
@window.show
|
146
|
+
end
|
147
|
+
|
148
|
+
def add_gui_jmx_ref()
|
149
|
+
add_modify_jmx_ref(true)
|
150
|
+
end
|
151
|
+
|
152
|
+
def edit_jmx_ref(jmx_ref_name)
|
153
|
+
add_modify_jmx_ref(false, jmx_ref_name)
|
154
|
+
end
|
155
|
+
|
156
|
+
def add_modify_jmx_ref(add_boolean, jmx_ref_name=nil)
|
157
|
+
window=Gtk::Window.new
|
158
|
+
window.set_modal(true)
|
159
|
+
lbl="Edit jmx Ref"
|
160
|
+
if add_boolean
|
161
|
+
lbl="Add jmx Ref"
|
162
|
+
end
|
163
|
+
|
164
|
+
window.set_title(lbl)
|
165
|
+
window.set_size_request(460, 200)
|
166
|
+
|
167
|
+
window.signal_connect("key_press_event") {|w,e|
|
168
|
+
if e.keyval == Gdk::Keyval::GDK_Escape
|
169
|
+
window.destroy
|
170
|
+
end
|
171
|
+
}
|
172
|
+
|
173
|
+
frame = Gtk::Frame::new
|
174
|
+
frame.border_width=10
|
175
|
+
frame.show
|
176
|
+
vbox_root=Gtk::VBox::new
|
177
|
+
vbox_root.show
|
178
|
+
window.add vbox_root
|
179
|
+
vbox_root.add frame
|
180
|
+
|
181
|
+
vbox = Gtk::VBox.new
|
182
|
+
vbox.show
|
183
|
+
frame.add vbox
|
184
|
+
|
185
|
+
table = Gtk::Table.new(4,2,false)
|
186
|
+
table.show
|
187
|
+
|
188
|
+
label_name = Gtk::Label.new "Name"
|
189
|
+
label_name.show
|
190
|
+
if add_boolean
|
191
|
+
entry_name = Gtk::Entry.new
|
192
|
+
else
|
193
|
+
entry_name = Gtk::Entry.new
|
194
|
+
entry_name.set_editable false
|
195
|
+
entry_name.set_text(jmx_ref_name)
|
196
|
+
end
|
197
|
+
entry_name.show
|
198
|
+
|
199
|
+
table.attach(label_name,0,1,0,1)
|
200
|
+
table.attach(entry_name,1,2,0,1)
|
201
|
+
|
202
|
+
entry_description = Gtk::Entry.new
|
203
|
+
if !add_boolean
|
204
|
+
entry_description.set_text($jmx_refs[entry_name.text()].description) unless entry_name.text() == ""
|
205
|
+
end
|
206
|
+
entry_description.show
|
207
|
+
label_description = Gtk::Label.new "Description"
|
208
|
+
label_description.show
|
209
|
+
|
210
|
+
table.attach(label_description,0,1,1,2)
|
211
|
+
table.attach(entry_description,1,2,1,2)
|
212
|
+
|
213
|
+
entry_mbean = Gtk::Entry.new
|
214
|
+
if !add_boolean
|
215
|
+
entry_mbean.set_text($jmx_refs[entry_name.text()].mbean) unless entry_name.text() == ""
|
216
|
+
end
|
217
|
+
entry_mbean.show
|
218
|
+
label_mbean = Gtk::Label.new "Object Name(s)"
|
219
|
+
label_mbean.show
|
220
|
+
|
221
|
+
table.attach(label_mbean,0,1,2,3)
|
222
|
+
table.attach(entry_mbean,1,2,2,3)
|
223
|
+
if !add_boolean
|
224
|
+
entry_name.signal_connect("changed") {|e|
|
225
|
+
if e.text() != ""
|
226
|
+
entry_description.set_text($jmx_refs[e.text()].description)
|
227
|
+
entry_mbean.set_text($jmx_refs[e.text()].mbean)
|
228
|
+
entry_attr.set_text($jmx_refs[e.text()].attribute)
|
229
|
+
end
|
230
|
+
}
|
231
|
+
end
|
232
|
+
entry_attr = Gtk::Entry.new
|
233
|
+
if !add_boolean
|
234
|
+
entry_attr.set_text($jmx_refs[entry_name.text()].attribute) unless entry_name.text() == ""
|
235
|
+
end
|
236
|
+
entry_attr.show
|
237
|
+
label_attr = Gtk::Label.new "Attribute Name(s)"
|
238
|
+
label_attr.show
|
239
|
+
|
240
|
+
table.attach(label_attr,0,1,3,4)
|
241
|
+
table.attach(entry_attr,1,2,3,4)
|
242
|
+
|
243
|
+
|
244
|
+
bbox =Gtk::HBox::new(FALSE, 10)
|
245
|
+
bbox.border_width=10
|
246
|
+
bbox.show
|
247
|
+
|
248
|
+
ok_button = Gtk::Button.new(Gtk::Stock::OK)
|
249
|
+
ok_button.show
|
250
|
+
ok_button.signal_connect("clicked") {
|
251
|
+
if entry_name.text == "" || entry_mbean.text == "" || entry_attr.text == ""
|
252
|
+
if entry_name.text == ""
|
253
|
+
entry_name.grab_focus
|
254
|
+
elsif entry_mbean.text == ""
|
255
|
+
entry_mbean.grab_focus
|
256
|
+
else entry_attr.grab_focus
|
257
|
+
end
|
258
|
+
else
|
259
|
+
if add_boolean
|
260
|
+
#new entry!
|
261
|
+
if $jmx_refs[entry_name.text()] == nil
|
262
|
+
JMXRef::add_jmx_ref(entry_name.text(),entry_description.text(),entry_mbean.text(),entry_attr.text())
|
263
|
+
iter = @jmx_ref_ls.append
|
264
|
+
iter[0] = entry_name.text()
|
265
|
+
iter[1] = entry_description.text()
|
266
|
+
window.destroy
|
267
|
+
else
|
268
|
+
dialog = Gtk::MessageDialog.new(window, Gtk::Dialog::DESTROY_WITH_PARENT,
|
269
|
+
Gtk::MessageDialog::ERROR,
|
270
|
+
Gtk::MessageDialog::BUTTONS_OK,
|
271
|
+
"jmx Ref '#{entry_name.text()}' already exists!")
|
272
|
+
dialog.run
|
273
|
+
dialog.destroy
|
274
|
+
end
|
275
|
+
else
|
276
|
+
#modify existing entry
|
277
|
+
$jmx_refs[entry_name.text()].description=entry_description.text()
|
278
|
+
$jmx_refs[entry_name.text()].mbean=entry_mbean.text()
|
279
|
+
$jmx_refs[entry_name.text()].attribute=entry_attr.text()
|
280
|
+
@jmx_ref_ls.each do |model,path,iter|
|
281
|
+
if iter[0] == entry_name.text()
|
282
|
+
iter[1]=entry_description.text()
|
283
|
+
break
|
284
|
+
end
|
285
|
+
end
|
286
|
+
window.destroy
|
287
|
+
end
|
288
|
+
end
|
289
|
+
}
|
290
|
+
|
291
|
+
cancel_button = Gtk::Button.new(Gtk::Stock::CANCEL)
|
292
|
+
cancel_button.show
|
293
|
+
cancel_button.signal_connect("clicked") {
|
294
|
+
window.destroy
|
295
|
+
}
|
296
|
+
|
297
|
+
ok_button.set_flags(Gtk::Widget::CAN_DEFAULT)
|
298
|
+
bbox.pack_start(ok_button, TRUE, TRUE, 0)
|
299
|
+
cancel_button.set_flags(Gtk::Widget::CAN_DEFAULT)
|
300
|
+
bbox.pack_start(cancel_button, TRUE, TRUE, 0)
|
301
|
+
|
302
|
+
vbox.add(table)
|
303
|
+
separator = Gtk::HSeparator::new()
|
304
|
+
separator.show
|
305
|
+
vbox_root.pack_start(separator, FALSE, TRUE, 0)
|
306
|
+
vbox_root.pack_start(bbox, FALSE, TRUE, 0)
|
307
|
+
window.show
|
308
|
+
end
|
309
|
+
end
|