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.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/lib/miab.rb +58 -0
  4. data.tar.gz.sig +0 -0
  5. metadata +22 -2
  6. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c3fcaeef9156e9bf966718d7358f2ab08057f95cd9564c731b31e66d0bdc9d2d
4
- data.tar.gz: 231ad1eb33a389f691c0d9b7a03eb475d0bb8c19529d2b8e4707db4214e4eada
3
+ metadata.gz: f55a97e81e82e74208daba1ab739870e2d20a69a24f1399ecc26d311fd7758b5
4
+ data.tar.gz: 9365c7761a511133a1489f48d8f925d969972735fcd5204b439c047f85fa852a
5
5
  SHA512:
6
- metadata.gz: 04b7ec49fa43e04931f4952327550d03f921677830483edda188f0a7008a9cfa4cb047c091f209c88340b0c1accecc7d0fec5f05b9c0fe975dd99e2e1bd1c993
7
- data.tar.gz: bc255bce9674c29f047cb73d1e1b71f652ac916d58dcc5e74b0c3d413dbbdd250fb6aa5ae15ae985e2feccc2e226543f553211003cb79747793997f1e1a0da43
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.1.2
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-13 00:00:00.000000000 Z
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