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,344 @@
|
|
1
|
+
SNMPv2-SMI DEFINITIONS ::= BEGIN
|
2
|
+
|
3
|
+
-- the path to the root
|
4
|
+
|
5
|
+
org OBJECT IDENTIFIER ::= { iso 3 } -- "iso" = 1
|
6
|
+
dod OBJECT IDENTIFIER ::= { org 6 }
|
7
|
+
internet OBJECT IDENTIFIER ::= { dod 1 }
|
8
|
+
|
9
|
+
directory OBJECT IDENTIFIER ::= { internet 1 }
|
10
|
+
|
11
|
+
mgmt OBJECT IDENTIFIER ::= { internet 2 }
|
12
|
+
mib-2 OBJECT IDENTIFIER ::= { mgmt 1 }
|
13
|
+
transmission OBJECT IDENTIFIER ::= { mib-2 10 }
|
14
|
+
|
15
|
+
experimental OBJECT IDENTIFIER ::= { internet 3 }
|
16
|
+
|
17
|
+
private OBJECT IDENTIFIER ::= { internet 4 }
|
18
|
+
enterprises OBJECT IDENTIFIER ::= { private 1 }
|
19
|
+
|
20
|
+
security OBJECT IDENTIFIER ::= { internet 5 }
|
21
|
+
|
22
|
+
snmpV2 OBJECT IDENTIFIER ::= { internet 6 }
|
23
|
+
|
24
|
+
-- transport domains
|
25
|
+
snmpDomains OBJECT IDENTIFIER ::= { snmpV2 1 }
|
26
|
+
|
27
|
+
-- transport proxies
|
28
|
+
snmpProxys OBJECT IDENTIFIER ::= { snmpV2 2 }
|
29
|
+
|
30
|
+
-- module identities
|
31
|
+
snmpModules OBJECT IDENTIFIER ::= { snmpV2 3 }
|
32
|
+
|
33
|
+
-- Extended UTCTime, to allow dates with four-digit years
|
34
|
+
-- (Note that this definition of ExtUTCTime is not to be IMPORTed
|
35
|
+
-- by MIB modules.)
|
36
|
+
ExtUTCTime ::= OCTET STRING(SIZE(11 | 13))
|
37
|
+
-- format is YYMMDDHHMMZ or YYYYMMDDHHMMZ
|
38
|
+
|
39
|
+
-- where: YY - last two digits of year (only years
|
40
|
+
-- between 1900-1999)
|
41
|
+
-- YYYY - last four digits of the year (any year)
|
42
|
+
-- MM - month (01 through 12)
|
43
|
+
-- DD - day of month (01 through 31)
|
44
|
+
-- HH - hours (00 through 23)
|
45
|
+
-- MM - minutes (00 through 59)
|
46
|
+
-- Z - denotes GMT (the ASCII character Z)
|
47
|
+
--
|
48
|
+
-- For example, "9502192015Z" and "199502192015Z" represent
|
49
|
+
-- 8:15pm GMT on 19 February 1995. Years after 1999 must use
|
50
|
+
-- the four digit year format. Years 1900-1999 may use the
|
51
|
+
-- two or four digit format.
|
52
|
+
|
53
|
+
-- definitions for information modules
|
54
|
+
|
55
|
+
MODULE-IDENTITY MACRO ::=
|
56
|
+
BEGIN
|
57
|
+
TYPE NOTATION ::=
|
58
|
+
"LAST-UPDATED" value(Update ExtUTCTime)
|
59
|
+
"ORGANIZATION" Text
|
60
|
+
"CONTACT-INFO" Text
|
61
|
+
"DESCRIPTION" Text
|
62
|
+
RevisionPart
|
63
|
+
|
64
|
+
VALUE NOTATION ::=
|
65
|
+
value(VALUE OBJECT IDENTIFIER)
|
66
|
+
|
67
|
+
RevisionPart ::=
|
68
|
+
Revisions
|
69
|
+
| empty
|
70
|
+
Revisions ::=
|
71
|
+
Revision
|
72
|
+
| Revisions Revision
|
73
|
+
Revision ::=
|
74
|
+
"REVISION" value(Update ExtUTCTime)
|
75
|
+
"DESCRIPTION" Text
|
76
|
+
|
77
|
+
-- a character string as defined in section 3.1.1
|
78
|
+
Text ::= value(IA5String)
|
79
|
+
END
|
80
|
+
|
81
|
+
OBJECT-IDENTITY MACRO ::=
|
82
|
+
BEGIN
|
83
|
+
TYPE NOTATION ::=
|
84
|
+
"STATUS" Status
|
85
|
+
"DESCRIPTION" Text
|
86
|
+
|
87
|
+
ReferPart
|
88
|
+
|
89
|
+
VALUE NOTATION ::=
|
90
|
+
value(VALUE OBJECT IDENTIFIER)
|
91
|
+
|
92
|
+
Status ::=
|
93
|
+
"current"
|
94
|
+
| "deprecated"
|
95
|
+
| "obsolete"
|
96
|
+
|
97
|
+
ReferPart ::=
|
98
|
+
"REFERENCE" Text
|
99
|
+
| empty
|
100
|
+
|
101
|
+
-- a character string as defined in section 3.1.1
|
102
|
+
Text ::= value(IA5String)
|
103
|
+
END
|
104
|
+
|
105
|
+
-- names of objects
|
106
|
+
-- (Note that these definitions of ObjectName and NotificationName
|
107
|
+
-- are not to be IMPORTed by MIB modules.)
|
108
|
+
|
109
|
+
ObjectName ::=
|
110
|
+
OBJECT IDENTIFIER
|
111
|
+
|
112
|
+
NotificationName ::=
|
113
|
+
OBJECT IDENTIFIER
|
114
|
+
|
115
|
+
-- syntax of objects
|
116
|
+
|
117
|
+
-- the "base types" defined here are:
|
118
|
+
-- 3 built-in ASN.1 types: INTEGER, OCTET STRING, OBJECT IDENTIFIER
|
119
|
+
-- 8 application-defined types: Integer32, IpAddress, Counter32,
|
120
|
+
-- Gauge32, Unsigned32, TimeTicks, Opaque, and Counter64
|
121
|
+
|
122
|
+
ObjectSyntax ::=
|
123
|
+
CHOICE {
|
124
|
+
simple
|
125
|
+
SimpleSyntax,
|
126
|
+
-- note that SEQUENCEs for conceptual tables and
|
127
|
+
-- rows are not mentioned here...
|
128
|
+
|
129
|
+
application-wide
|
130
|
+
ApplicationSyntax
|
131
|
+
}
|
132
|
+
|
133
|
+
-- built-in ASN.1 types
|
134
|
+
|
135
|
+
SimpleSyntax ::=
|
136
|
+
CHOICE {
|
137
|
+
-- INTEGERs with a more restrictive range
|
138
|
+
-- may also be used
|
139
|
+
integer-value -- includes Integer32
|
140
|
+
INTEGER (-2147483648..2147483647),
|
141
|
+
-- OCTET STRINGs with a more restrictive size
|
142
|
+
-- may also be used
|
143
|
+
string-value
|
144
|
+
OCTET STRING (SIZE (0..65535)),
|
145
|
+
objectID-value
|
146
|
+
OBJECT IDENTIFIER
|
147
|
+
}
|
148
|
+
|
149
|
+
-- indistinguishable from INTEGER, but never needs more than
|
150
|
+
-- 32-bits for a two's complement representation
|
151
|
+
Integer32 ::=
|
152
|
+
INTEGER (-2147483648..2147483647)
|
153
|
+
|
154
|
+
-- application-wide types
|
155
|
+
|
156
|
+
ApplicationSyntax ::=
|
157
|
+
CHOICE {
|
158
|
+
ipAddress-value
|
159
|
+
IpAddress,
|
160
|
+
counter-value
|
161
|
+
Counter32,
|
162
|
+
timeticks-value
|
163
|
+
TimeTicks,
|
164
|
+
arbitrary-value
|
165
|
+
Opaque,
|
166
|
+
big-counter-value
|
167
|
+
Counter64,
|
168
|
+
unsigned-integer-value -- includes Gauge32
|
169
|
+
Unsigned32
|
170
|
+
}
|
171
|
+
|
172
|
+
-- in network-byte order
|
173
|
+
|
174
|
+
-- (this is a tagged type for historical reasons)
|
175
|
+
IpAddress ::=
|
176
|
+
[APPLICATION 0]
|
177
|
+
IMPLICIT OCTET STRING (SIZE (4))
|
178
|
+
|
179
|
+
-- this wraps
|
180
|
+
Counter32 ::=
|
181
|
+
[APPLICATION 1]
|
182
|
+
IMPLICIT INTEGER (0..4294967295)
|
183
|
+
|
184
|
+
-- this doesn't wrap
|
185
|
+
Gauge32 ::=
|
186
|
+
[APPLICATION 2]
|
187
|
+
IMPLICIT INTEGER (0..4294967295)
|
188
|
+
|
189
|
+
-- an unsigned 32-bit quantity
|
190
|
+
-- indistinguishable from Gauge32
|
191
|
+
Unsigned32 ::=
|
192
|
+
[APPLICATION 2]
|
193
|
+
IMPLICIT INTEGER (0..4294967295)
|
194
|
+
|
195
|
+
-- hundredths of seconds since an epoch
|
196
|
+
TimeTicks ::=
|
197
|
+
[APPLICATION 3]
|
198
|
+
IMPLICIT INTEGER (0..4294967295)
|
199
|
+
|
200
|
+
-- for backward-compatibility only
|
201
|
+
Opaque ::=
|
202
|
+
[APPLICATION 4]
|
203
|
+
IMPLICIT OCTET STRING
|
204
|
+
|
205
|
+
-- for counters that wrap in less than one hour with only 32 bits
|
206
|
+
Counter64 ::=
|
207
|
+
[APPLICATION 6]
|
208
|
+
IMPLICIT INTEGER (0..18446744073709551615)
|
209
|
+
|
210
|
+
-- definition for objects
|
211
|
+
|
212
|
+
OBJECT-TYPE MACRO ::=
|
213
|
+
BEGIN
|
214
|
+
TYPE NOTATION ::=
|
215
|
+
"SYNTAX" Syntax
|
216
|
+
UnitsPart
|
217
|
+
"MAX-ACCESS" Access
|
218
|
+
"STATUS" Status
|
219
|
+
"DESCRIPTION" Text
|
220
|
+
ReferPart
|
221
|
+
|
222
|
+
IndexPart
|
223
|
+
DefValPart
|
224
|
+
|
225
|
+
VALUE NOTATION ::=
|
226
|
+
value(VALUE ObjectName)
|
227
|
+
|
228
|
+
Syntax ::= -- Must be one of the following:
|
229
|
+
-- a base type (or its refinement),
|
230
|
+
-- a textual convention (or its refinement), or
|
231
|
+
-- a BITS pseudo-type
|
232
|
+
type
|
233
|
+
| "BITS" "{" NamedBits "}"
|
234
|
+
|
235
|
+
NamedBits ::= NamedBit
|
236
|
+
| NamedBits "," NamedBit
|
237
|
+
|
238
|
+
NamedBit ::= identifier "(" number ")" -- number is nonnegative
|
239
|
+
|
240
|
+
UnitsPart ::=
|
241
|
+
"UNITS" Text
|
242
|
+
| empty
|
243
|
+
|
244
|
+
Access ::=
|
245
|
+
"not-accessible"
|
246
|
+
| "accessible-for-notify"
|
247
|
+
| "read-only"
|
248
|
+
| "read-write"
|
249
|
+
| "read-create"
|
250
|
+
|
251
|
+
Status ::=
|
252
|
+
"current"
|
253
|
+
| "deprecated"
|
254
|
+
| "obsolete"
|
255
|
+
|
256
|
+
ReferPart ::=
|
257
|
+
"REFERENCE" Text
|
258
|
+
| empty
|
259
|
+
|
260
|
+
IndexPart ::=
|
261
|
+
"INDEX" "{" IndexTypes "}"
|
262
|
+
| "AUGMENTS" "{" Entry "}"
|
263
|
+
| empty
|
264
|
+
IndexTypes ::=
|
265
|
+
IndexType
|
266
|
+
| IndexTypes "," IndexType
|
267
|
+
IndexType ::=
|
268
|
+
"IMPLIED" Index
|
269
|
+
| Index
|
270
|
+
|
271
|
+
Index ::=
|
272
|
+
-- use the SYNTAX value of the
|
273
|
+
-- correspondent OBJECT-TYPE invocation
|
274
|
+
value(ObjectName)
|
275
|
+
Entry ::=
|
276
|
+
-- use the INDEX value of the
|
277
|
+
-- correspondent OBJECT-TYPE invocation
|
278
|
+
value(ObjectName)
|
279
|
+
|
280
|
+
DefValPart ::= "DEFVAL" "{" Defvalue "}"
|
281
|
+
| empty
|
282
|
+
|
283
|
+
Defvalue ::= -- must be valid for the type specified in
|
284
|
+
-- SYNTAX clause of same OBJECT-TYPE macro
|
285
|
+
value(ObjectSyntax)
|
286
|
+
| "{" BitsValue "}"
|
287
|
+
|
288
|
+
BitsValue ::= BitNames
|
289
|
+
| empty
|
290
|
+
|
291
|
+
BitNames ::= BitName
|
292
|
+
| BitNames "," BitName
|
293
|
+
|
294
|
+
BitName ::= identifier
|
295
|
+
|
296
|
+
-- a character string as defined in section 3.1.1
|
297
|
+
Text ::= value(IA5String)
|
298
|
+
END
|
299
|
+
|
300
|
+
-- definitions for notifications
|
301
|
+
|
302
|
+
NOTIFICATION-TYPE MACRO ::=
|
303
|
+
BEGIN
|
304
|
+
TYPE NOTATION ::=
|
305
|
+
ObjectsPart
|
306
|
+
"STATUS" Status
|
307
|
+
"DESCRIPTION" Text
|
308
|
+
ReferPart
|
309
|
+
|
310
|
+
VALUE NOTATION ::=
|
311
|
+
value(VALUE NotificationName)
|
312
|
+
|
313
|
+
ObjectsPart ::=
|
314
|
+
"OBJECTS" "{" Objects "}"
|
315
|
+
| empty
|
316
|
+
Objects ::=
|
317
|
+
Object
|
318
|
+
|
319
|
+
| Objects "," Object
|
320
|
+
Object ::=
|
321
|
+
value(ObjectName)
|
322
|
+
|
323
|
+
Status ::=
|
324
|
+
"current"
|
325
|
+
| "deprecated"
|
326
|
+
| "obsolete"
|
327
|
+
|
328
|
+
ReferPart ::=
|
329
|
+
"REFERENCE" Text
|
330
|
+
| empty
|
331
|
+
|
332
|
+
-- a character string as defined in section 3.1.1
|
333
|
+
Text ::= value(IA5String)
|
334
|
+
END
|
335
|
+
|
336
|
+
-- definitions of administrative identifiers
|
337
|
+
|
338
|
+
zeroDotZero OBJECT-IDENTITY
|
339
|
+
STATUS current
|
340
|
+
DESCRIPTION
|
341
|
+
"A value used for null identifiers."
|
342
|
+
::= { 0 0 }
|
343
|
+
|
344
|
+
END
|
@@ -0,0 +1,141 @@
|
|
1
|
+
class OIDRef
|
2
|
+
attr_accessor :name, :description, :value
|
3
|
+
|
4
|
+
TABLENAME='oid_ref'
|
5
|
+
########global management#########
|
6
|
+
|
7
|
+
#
|
8
|
+
# add an oid_ref
|
9
|
+
# arg n for uniq name, descr the description and calc the calcul to do
|
10
|
+
# return true if deleted otherwise false
|
11
|
+
#
|
12
|
+
def OIDRef::add_oid_ref(n, descr, calc)
|
13
|
+
if $oid_refs[n] == nil
|
14
|
+
$oid_refs[n] = OIDRef.new(n, descr, calc)
|
15
|
+
return true
|
16
|
+
end
|
17
|
+
return false
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
#
|
22
|
+
# delete an oid_ref
|
23
|
+
# return true is entry delete otherwise false
|
24
|
+
#
|
25
|
+
def OIDRef::del_oid_ref(n)
|
26
|
+
if !$oid_refs[n].used?()
|
27
|
+
$oid_refs.delete(n)
|
28
|
+
return true
|
29
|
+
end
|
30
|
+
return false
|
31
|
+
end
|
32
|
+
|
33
|
+
def OIDRef::write_db_oidref()
|
34
|
+
if defined?($db) && ($db !=nil)
|
35
|
+
$db.transaction
|
36
|
+
ps=db_delete_all_prp(TABLENAME)
|
37
|
+
if ps
|
38
|
+
ps.execute()
|
39
|
+
stmt=db_insert_ref_prp(TABLENAME)
|
40
|
+
$oid_refs.each_value do |oid_ref|
|
41
|
+
stmt.execute(oid_ref.name, oid_ref.description, oid_ref.value)
|
42
|
+
end
|
43
|
+
$db.commit
|
44
|
+
else
|
45
|
+
$db.rollback
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def OIDRef::write_oidref_conf_file(fic_name=OIDREFS_CONF_FILE)
|
51
|
+
field_separator='~'
|
52
|
+
fic=Tempfile.new(File.basename(fic_name))
|
53
|
+
$oid_refs.each_value do |oid_ref|
|
54
|
+
fic.puts "#{oid_ref.name}#{field_separator}#{oid_ref.description}#{field_separator}#{oid_ref.value}"
|
55
|
+
end
|
56
|
+
fic.close()
|
57
|
+
FileUtils.move(fic.path, fic_name)
|
58
|
+
end
|
59
|
+
|
60
|
+
def OIDRef::read_db_oidref()
|
61
|
+
if defined?($db) && ($db !=nil)
|
62
|
+
db_select_all_prp(TABLENAME).execute do |rs|
|
63
|
+
rs.each do |name, description, value|
|
64
|
+
add_oid_ref(name,description,value)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def OIDRef::read_oidref_conf_file(fic=OIDREFS_CONF_FILE)
|
71
|
+
field_separator='~'
|
72
|
+
if FileTest.exist?(fic)
|
73
|
+
fic = File.new(fic,'r')
|
74
|
+
lign=fic.gets
|
75
|
+
while lign
|
76
|
+
lign_t = lign.split(field_separator)
|
77
|
+
if lign_t.size() == 3
|
78
|
+
add_oid_ref(lign_t[0],lign_t[1],lign_t[2].chomp())
|
79
|
+
end
|
80
|
+
lign=fic.gets
|
81
|
+
end
|
82
|
+
fic.close
|
83
|
+
else
|
84
|
+
puts "oidrefs conf file not found"
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
#
|
89
|
+
# return a table of all oidrefs name
|
90
|
+
#
|
91
|
+
def OIDRef::get_oid_refs_name()
|
92
|
+
name_t=[]
|
93
|
+
$oid_refs.each_key {|name|
|
94
|
+
name_t.push name
|
95
|
+
}
|
96
|
+
return name_t
|
97
|
+
end
|
98
|
+
|
99
|
+
#
|
100
|
+
# check if a given oid ref name is defined
|
101
|
+
#
|
102
|
+
def OIDRef::oid_ref_exist?(name)
|
103
|
+
return $oid_refs[name] != nil
|
104
|
+
end
|
105
|
+
|
106
|
+
#
|
107
|
+
# return number of oid ref
|
108
|
+
#
|
109
|
+
def OIDRef::oid_ref_nb_entry()
|
110
|
+
return $oid_refs.size
|
111
|
+
end
|
112
|
+
|
113
|
+
########end global management#########
|
114
|
+
|
115
|
+
|
116
|
+
def initialize (n, descr, calc)
|
117
|
+
#name is the identifier, it must be uniq
|
118
|
+
@name=n
|
119
|
+
@description=descr
|
120
|
+
@value=calc
|
121
|
+
@nb_use=0
|
122
|
+
end
|
123
|
+
|
124
|
+
def add_use()
|
125
|
+
@nb_use+=1
|
126
|
+
end
|
127
|
+
|
128
|
+
def del_use()
|
129
|
+
@nb_use-=1
|
130
|
+
end
|
131
|
+
|
132
|
+
def used?()
|
133
|
+
return @nb_use>0
|
134
|
+
end
|
135
|
+
|
136
|
+
def to_str()
|
137
|
+
print "OIDRef: ", @name, " ", @description, " ", @value
|
138
|
+
end
|
139
|
+
|
140
|
+
|
141
|
+
end #class
|