netmidget 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/netmidget.rb +65 -0
- metadata +44 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 602137698dad2920f6f0fe430c62a2c4d31f45de
|
4
|
+
data.tar.gz: a5eb1e6f2578a6540e59c3ca4c382d19419deb77
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3a52002dfb09b674842aa09a9e05dc7e15dbe94cabf20994ea86931c9eba98afe48ec90dba028413db9d3d48aba3b714b34f3498a8bc9a5049d8d319cdf9b455
|
7
|
+
data.tar.gz: e4fedba45dffee54a7fdfdb9e2ecd41074f6e8b32419e5b34f05d1ccde63ae41e013fcc57a4e5034d41e1602f60cfca7931ba8f61c0e5d6ea864ebb339095f00
|
data/lib/netmidget.rb
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'net/ping'
|
2
|
+
|
3
|
+
class Netmidget
|
4
|
+
attr_accessor :hostname,
|
5
|
+
:site,
|
6
|
+
:ip,
|
7
|
+
:device_name,
|
8
|
+
:log
|
9
|
+
|
10
|
+
def initialize(opts)
|
11
|
+
@hostname = opts[:hostname] || `/bin/hostname`.chomp
|
12
|
+
@site = opts[:site]
|
13
|
+
@ip = opts[:ip]
|
14
|
+
@device_name = opts[:device_name]
|
15
|
+
@log = opts[:log] || nil
|
16
|
+
end
|
17
|
+
|
18
|
+
def device_str
|
19
|
+
"#{site}::#{device_name}::#{ip}"
|
20
|
+
end
|
21
|
+
|
22
|
+
def ping
|
23
|
+
Net::Ping::External.new(ip).ping?
|
24
|
+
end
|
25
|
+
|
26
|
+
def ping?
|
27
|
+
if not resp = ping
|
28
|
+
warn_str = "#{device_str} was unresponsive...trying again"
|
29
|
+
log ? log.warn(warn_str) : puts(Time.now.to_s + ": " + warn_str)
|
30
|
+
resp = ping
|
31
|
+
end
|
32
|
+
resp
|
33
|
+
end
|
34
|
+
|
35
|
+
def traceroute
|
36
|
+
`/usr/sbin/traceroute -n -m 20 -w 2 #{ip} 2>&1`
|
37
|
+
end
|
38
|
+
|
39
|
+
def traceroute_output_str
|
40
|
+
str = traceroute
|
41
|
+
log ? log.error(str) : puts(str = (stdout_prefix + str))
|
42
|
+
str
|
43
|
+
end
|
44
|
+
|
45
|
+
def stdout_prefix
|
46
|
+
"#{Time.now.to_s}: #{hostname} "
|
47
|
+
end
|
48
|
+
|
49
|
+
def ping_output_str_prefix
|
50
|
+
"Pinging #{device_str}: "
|
51
|
+
end
|
52
|
+
|
53
|
+
def ping_output_str_success
|
54
|
+
str = ping_output_str_prefix + "Success"
|
55
|
+
log ? log.info(str) : puts(str = (stdout_prefix + str))
|
56
|
+
str
|
57
|
+
end
|
58
|
+
|
59
|
+
def ping_output_str_fail
|
60
|
+
str = ping_output_str_prefix + "Fail"
|
61
|
+
log ? log.error(str) : puts(str = (stdout_prefix + str))
|
62
|
+
str
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
metadata
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: netmidget
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tyler Arrigoni
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-09-24 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Liteweight library for ping monitoring and email alerts
|
14
|
+
email: tyler@oneif.net
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/netmidget.rb
|
20
|
+
homepage: http://www.oneif.net/code/netmidget
|
21
|
+
licenses:
|
22
|
+
- MIT
|
23
|
+
metadata: {}
|
24
|
+
post_install_message:
|
25
|
+
rdoc_options: []
|
26
|
+
require_paths:
|
27
|
+
- lib
|
28
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
34
|
+
requirements:
|
35
|
+
- - ">="
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
requirements: []
|
39
|
+
rubyforge_project:
|
40
|
+
rubygems_version: 2.6.12
|
41
|
+
signing_key:
|
42
|
+
specification_version: 4
|
43
|
+
summary: Liteweight library for ping monitoring and email alerts
|
44
|
+
test_files: []
|