miab 0.1.2 → 0.2.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/miab.rb +58 -0
- data.tar.gz.sig +0 -0
- metadata +22 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f55a97e81e82e74208daba1ab739870e2d20a69a24f1399ecc26d311fd7758b5
|
4
|
+
data.tar.gz: 9365c7761a511133a1489f48d8f925d969972735fcd5204b439c047f85fa852a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc1f8615bb288650541853d281a6096217f2d5960fcb6de3d509012fec1fef88b70095dc8fb81c7aa2e53db2b4920f901318f2e95e28c6949e1513e9388029b3
|
7
|
+
data.tar.gz: a85242c85b472ca36301579a8439cf6557a0cda61bc8709256624d66d842e218a0a6f661cf6339090e26356aea4704c7cff4cd7420812216285be7d0f155fb76
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/miab.rb
CHANGED
@@ -7,6 +7,7 @@
|
|
7
7
|
|
8
8
|
require 'net/ssh'
|
9
9
|
require 'c32'
|
10
|
+
require 'resolve/hostname'
|
10
11
|
|
11
12
|
|
12
13
|
class Miab
|
@@ -35,6 +36,8 @@ class Miab
|
|
35
36
|
end
|
36
37
|
end
|
37
38
|
|
39
|
+
# cast out the thing and hope for the best
|
40
|
+
#
|
38
41
|
def cast()
|
39
42
|
|
40
43
|
if @nodes.any? then
|
@@ -64,6 +67,8 @@ class Miab
|
|
64
67
|
@results
|
65
68
|
end
|
66
69
|
|
70
|
+
# return the local date and time
|
71
|
+
#
|
67
72
|
def date()
|
68
73
|
|
69
74
|
instructions = 'date'
|
@@ -72,6 +77,8 @@ class Miab
|
|
72
77
|
|
73
78
|
end
|
74
79
|
|
80
|
+
# query the available disk space etc.
|
81
|
+
#
|
75
82
|
def disk_space()
|
76
83
|
|
77
84
|
instructions = 'df -h'
|
@@ -105,6 +112,8 @@ class Miab
|
|
105
112
|
|
106
113
|
alias df disk_space
|
107
114
|
|
115
|
+
# find out available memory etc
|
116
|
+
#
|
108
117
|
def memory()
|
109
118
|
|
110
119
|
instructions = 'free -h'
|
@@ -117,17 +126,66 @@ class Miab
|
|
117
126
|
@results[@host][:memory] = {total: total, used: used, available: avail}
|
118
127
|
|
119
128
|
end
|
129
|
+
|
130
|
+
# query the ping time
|
131
|
+
#
|
132
|
+
def ping()
|
133
|
+
|
134
|
+
resolver = Resolve::Hostname.new
|
135
|
+
ip = resolver.getaddress(@host)
|
136
|
+
puts ('ip: ' + ip.inspect).debug if @debug
|
137
|
+
valid = pingecho(ip)
|
138
|
+
puts ('valid: ' + valid.inspect).debug if @debug
|
139
|
+
|
140
|
+
@results[@host][:ping] = if valid then
|
141
|
+
a = [valid]
|
142
|
+
4.times {sleep 0.01; a << pingecho(ip)}
|
143
|
+
(a.min * 1000).round(3)
|
144
|
+
else
|
145
|
+
nil
|
146
|
+
end
|
120
147
|
|
148
|
+
end
|
149
|
+
|
150
|
+
# query the path of the current working directory
|
151
|
+
#
|
121
152
|
def pwd()
|
122
153
|
instructions = 'pwd'
|
123
154
|
r = @ssh ? @ssh.exec!(instructions) : system(instructions)
|
124
155
|
@results[@host][:pwd] = r.chomp
|
125
156
|
end
|
126
157
|
|
158
|
+
# query the CPU temperature
|
159
|
+
#
|
127
160
|
def temperature()
|
128
161
|
instructions = 'cat /sys/class/thermal/thermal_zone0/temp'
|
129
162
|
r = @ssh ? @ssh.exec!(instructions) : system(instructions)
|
130
163
|
@results[@host][:temperature] = r.chomp
|
131
164
|
end
|
165
|
+
|
166
|
+
private
|
167
|
+
|
168
|
+
|
169
|
+
def pingecho(host, timeout=5, service="echo")
|
170
|
+
|
171
|
+
elapsed = nil
|
172
|
+
time = Time.new
|
173
|
+
|
174
|
+
begin
|
175
|
+
|
176
|
+
Timeout.timeout(timeout) do
|
177
|
+
s = TCPSocket.new(host, service)
|
178
|
+
s.close
|
179
|
+
end
|
180
|
+
|
181
|
+
rescue Errno::ECONNREFUSED
|
182
|
+
return Time.now - time
|
183
|
+
rescue Timeout::Error, StandardError
|
184
|
+
return false
|
185
|
+
end
|
186
|
+
|
187
|
+
# it should not reach this far
|
188
|
+
return true
|
189
|
+
end
|
132
190
|
|
133
191
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: miab
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
9irKsAp/hZt3dTbQOtnSlc9XREZZdegwOgu1FEqBqviNIn9R28OR237HExiWXwmw
|
36
36
|
HDTFIjk8XBqTunABuFUgr4qx
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2019-09-
|
38
|
+
date: 2019-09-14 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: net-ssh
|
@@ -77,6 +77,26 @@ dependencies:
|
|
77
77
|
- - "~>"
|
78
78
|
- !ruby/object:Gem::Version
|
79
79
|
version: '0.2'
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: resolve-hostname
|
82
|
+
requirement: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: 0.1.0
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.1'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.1.0
|
97
|
+
- - "~>"
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0.1'
|
80
100
|
description:
|
81
101
|
email: james@jamesrobertson.eu
|
82
102
|
executables: []
|
metadata.gz.sig
CHANGED
Binary file
|