anamo 1.0.1 → 1.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/anamo/node/start +3 -0
- data/lib/anamo/node/thor.rb +17 -1
- data/lib/anamo/pkgver/thor.rb +28 -11
- data/lib/anamo/version.rb +1 -1
- metadata +33 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b248375e60e38489f546fd888ad95d8ca1e8cd55ca297121ee8b61713f7cb49d
|
4
|
+
data.tar.gz: a972b4a46d6ba2bcaf52246d7a7127e99464cadf90e9bfd23832055c9cae8c72
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f022479534a6af3a72588f75f064153d370f5986327c7d73dc522abc29ca13f88af74316765bb1ab22e6555f859a41032372b2fb78e1c876a133b5d5bdd15b4
|
7
|
+
data.tar.gz: e1ac6b4ff9a71f714c45528681439bc2a3fab7a2cb2194183b5d73e95981dd4d76e4eedc1b34548f5416f85bb2dab00ffba990c67ff3dbb45f8c2d26f687c8dd
|
data/lib/anamo/node/thor.rb
CHANGED
@@ -3,6 +3,9 @@ require 'thor'
|
|
3
3
|
require 'anamo/api'
|
4
4
|
require 'socket'
|
5
5
|
require 'yaml'
|
6
|
+
require 'train'
|
7
|
+
require 'sys/uname'
|
8
|
+
include Sys
|
6
9
|
|
7
10
|
module Anamo
|
8
11
|
module Node
|
@@ -35,12 +38,25 @@ module Anamo
|
|
35
38
|
ret = {}
|
36
39
|
|
37
40
|
config = YAML.load_file "/etc/anamo.conf.yml"
|
41
|
+
train = Train.create('local')
|
38
42
|
|
39
43
|
ret['api_key'] = config['api_key']
|
40
44
|
ret['beacon_modules'] = config['modules']
|
41
45
|
ret['node'] = {}
|
42
46
|
ret['node']['hostname'] = Socket.gethostname
|
43
47
|
ret['node']['ips'] = Socket.ip_address_list.map(){ |entry| entry.ip_address }.uniq
|
48
|
+
ret['node']['os_name'] = Train.create('local').connection.os[:name]
|
49
|
+
ret['node']['os_family'] = Train.create('local').connection.os[:family]
|
50
|
+
ret['node']['os_release'] = Train.create('local').connection.os[:release]
|
51
|
+
ret['node']['uname_sysname'] = Uname.sysname # => The operating system name. e.g. "SunOS"
|
52
|
+
ret['node']['uname_machine'] = Uname.machine # => The machine hardware type. e.g. "i686"
|
53
|
+
ret['node']['uname_version'] = Uname.version # => The operating system version. e.g. "5.8". Windows includes patch information.
|
54
|
+
ret['node']['uname_release'] = Uname.release # => The operating system release. e.g. "2.2.16-3"
|
55
|
+
ret['node']['uname_architecture'] = Uname.architecture # => Returns the instruction set architecture. e.g. "sparc"
|
56
|
+
ret['node']['uname_platform'] = Uname.platform # => The platform identifier. e.g. "SUNW,Sun-Blade-100"
|
57
|
+
ret['node']['uname_isa_list'] = Uname.isa_list # => List of supported instr. sets, e.g. "amd64 pentium_pro+mmx pentium_pro"
|
58
|
+
ret['node']['uname_hw_provider'] = Uname.hw_provider # => The name of the hardware manufacturer.
|
59
|
+
ret['node']['uname_hw_serial_number'] = Uname.hw_provider # => Uname.hw_serial_number # => The hardware serial number
|
44
60
|
|
45
61
|
puts ret if output
|
46
62
|
|
@@ -127,4 +143,4 @@ module Anamo
|
|
127
143
|
|
128
144
|
end
|
129
145
|
end
|
130
|
-
end
|
146
|
+
end
|
data/lib/anamo/pkgver/thor.rb
CHANGED
@@ -27,37 +27,54 @@ module Anamo
|
|
27
27
|
|
28
28
|
def inspect output = true
|
29
29
|
|
30
|
+
##############################
|
31
|
+
### RPM
|
32
|
+
##############################
|
33
|
+
|
30
34
|
rpm_packages = []
|
31
|
-
status, stdout, stderr = systemu "rpm -qa --qf '%{NAME}
|
35
|
+
status, stdout, stderr = systemu "rpm -qa --qf '%{NAME}abyz3_%{VERSION}abyz3_%{RELEASE}abyz3_%{ARCH}abyz3_%{VENDOR}abyz3_%{RPMTAG_INSTALLTIME}abyz3_%{SIZE}\n'" # See: http://ftp.rpm.org/max-rpm/ch-rpm-query.html
|
32
36
|
if status.success?
|
33
37
|
stdout.split("\n").each do |package|
|
34
|
-
package = package.split('
|
38
|
+
package = package.split('abyz3_') # because vendor can have spaces, make the delimiter something unique abyz3_
|
35
39
|
rpm_packages << {
|
36
|
-
'n'
|
37
|
-
'v'
|
38
|
-
'r'
|
39
|
-
'a'
|
40
|
+
'n' => package[0], #name
|
41
|
+
'v' => package[1], #version
|
42
|
+
'r' => package[2], #release
|
43
|
+
'a' => package[3], #architecture
|
44
|
+
'v2' => package[4], #vendor,
|
45
|
+
'it' => package[5], #install time, or ${RPMTAG_INSTALLTIME}
|
46
|
+
's' => package[6], #size, or ${SIZE}
|
40
47
|
}
|
41
48
|
end
|
42
49
|
else
|
43
50
|
rpm_packages = nil
|
44
51
|
end
|
52
|
+
|
45
53
|
|
54
|
+
##############################
|
55
|
+
### Debian
|
56
|
+
##############################
|
46
57
|
deb_packages = []
|
47
|
-
status, stdout, strerr = systemu "dpkg-query -W -f='${Package}
|
58
|
+
status, stdout, strerr = systemu "dpkg-query -W -f='${Package}abyz3_${Version}abyz3_${Architecture}abyz3_${Installed-Size}abyz3_${Homepage}\n'" #$options here under: http://manpages.ubuntu.com/manpages/trusty/man1/dpkg-query.1.html
|
48
59
|
if status.success?
|
49
60
|
stdout.split("\n").each do |package|
|
50
|
-
package = package.split('
|
61
|
+
package = package.split('abyz3_')
|
51
62
|
deb_packages << {
|
52
|
-
'n'
|
53
|
-
'v'
|
54
|
-
'a'
|
63
|
+
'n' => package[0], #package name, or ${Package}
|
64
|
+
'v' => package[1], #package version
|
65
|
+
'a' => package[2], #package architecture
|
66
|
+
's' => package[3], #size, or ${Installed-Size}
|
67
|
+
'hp' => package[4], #homepage, or ${Homepage}
|
55
68
|
}
|
56
69
|
end
|
57
70
|
else
|
58
71
|
deb_packages = nil
|
59
72
|
end
|
60
73
|
|
74
|
+
##############################
|
75
|
+
### Gem
|
76
|
+
##############################
|
77
|
+
|
61
78
|
gem_packages = []
|
62
79
|
status, stdout, stderr = systemu "gem list -l"
|
63
80
|
if status.success?
|
data/lib/anamo/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: anamo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Anamo, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-07-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -80,6 +80,34 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: train
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: sys-uname
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
83
111
|
- !ruby/object:Gem::Dependency
|
84
112
|
name: bundler
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,7 +122,7 @@ dependencies:
|
|
94
122
|
- - ">="
|
95
123
|
- !ruby/object:Gem::Version
|
96
124
|
version: '0'
|
97
|
-
description:
|
125
|
+
description: Linux agent for app.anamo.io
|
98
126
|
email:
|
99
127
|
- jp@usprotech.com
|
100
128
|
executables:
|
@@ -109,6 +137,7 @@ files:
|
|
109
137
|
- lib/anamo/api.rb
|
110
138
|
- lib/anamo/fstree/thor.rb
|
111
139
|
- lib/anamo/groups/thor.rb
|
140
|
+
- lib/anamo/node/start
|
112
141
|
- lib/anamo/node/thor.rb
|
113
142
|
- lib/anamo/pkgver/thor.rb
|
114
143
|
- lib/anamo/ports/thor.rb
|