anamo 0.9.5 → 1.1
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 +5 -5
- data/README.md +2 -2
- data/lib/anamo/api.rb +1 -1
- data/lib/anamo/fstree/thor.rb +12 -0
- data/lib/anamo/node/thor.rb +8 -3
- data/lib/anamo/pkgver/thor.rb +28 -11
- data/lib/anamo/version.rb +1 -1
- metadata +21 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 4f6b98ab61d6da16e81a474607620f5a0fbee4bb1141da60d7be71de093141c4
|
|
4
|
+
data.tar.gz: b01463a3425793181c078179547f33928f8f98d54cc8ebdc1533b4120b23ab6d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9703a32fa812fe4f0c41e61fd205bf3effecb2aeb9bd46821f0bcfcd97f6cd77545018a71ad950b1d79323f84021417c42d707339b3645546c9499c10f409835
|
|
7
|
+
data.tar.gz: a7a25b2d9f58ac32fef2230ab8d3af88fe5c24f582f5db74635edc52fad85e634277d7cd8b3326b463da771fa13846f2824fe93a4097a507877350ecc471c7d2
|
data/README.md
CHANGED
|
@@ -29,7 +29,7 @@ of defining your configuration for:
|
|
|
29
29
|
/etc/anamo.conf.yml
|
|
30
30
|
|
|
31
31
|
What is your Anamo API key?
|
|
32
|
-
[User Note: input your company's API Key here, which you may find at: https://anamo.io/settings/licenses/api-keys]
|
|
32
|
+
[User Note: input your company's API Key here, which you may find at: https://app.anamo.io/settings/licenses/api-keys]
|
|
33
33
|
|
|
34
34
|
Your configuration file:
|
|
35
35
|
|
|
@@ -49,7 +49,7 @@ For provisioned systems, one may also directly write `/etc/anamo.conf.yml`, mini
|
|
|
49
49
|
api_key: YOUR_API_KEY
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
A valid API key is required in order to send data to `anamo.io`.
|
|
52
|
+
A valid API key is required in order to send data to `app.anamo.io`.
|
|
53
53
|
|
|
54
54
|
## Usage
|
|
55
55
|
|
data/lib/anamo/api.rb
CHANGED
|
@@ -6,7 +6,7 @@ module Anamo
|
|
|
6
6
|
class Api
|
|
7
7
|
|
|
8
8
|
def initialize
|
|
9
|
-
@api_base_url = 'https://anamo.io/api'
|
|
9
|
+
@api_base_url = 'https://app.anamo.io/api'
|
|
10
10
|
@config = YAML.load_file "/etc/anamo.conf.yml"
|
|
11
11
|
@client_key = File.exists?("/etc/anamo.client.key") ? File.open("/etc/anamo.client.key", 'rb') { |f| f.read } : nil
|
|
12
12
|
end
|
data/lib/anamo/fstree/thor.rb
CHANGED
data/lib/anamo/node/thor.rb
CHANGED
|
@@ -3,6 +3,7 @@ require 'thor'
|
|
|
3
3
|
require 'anamo/api'
|
|
4
4
|
require 'socket'
|
|
5
5
|
require 'yaml'
|
|
6
|
+
require 'train'
|
|
6
7
|
|
|
7
8
|
module Anamo
|
|
8
9
|
module Node
|
|
@@ -35,12 +36,16 @@ module Anamo
|
|
|
35
36
|
ret = {}
|
|
36
37
|
|
|
37
38
|
config = YAML.load_file "/etc/anamo.conf.yml"
|
|
39
|
+
train = Train.create('local')
|
|
38
40
|
|
|
39
41
|
ret['api_key'] = config['api_key']
|
|
40
42
|
ret['beacon_modules'] = config['modules']
|
|
41
43
|
ret['node'] = {}
|
|
42
44
|
ret['node']['hostname'] = Socket.gethostname
|
|
43
45
|
ret['node']['ips'] = Socket.ip_address_list.map(){ |entry| entry.ip_address }.uniq
|
|
46
|
+
ret['node']['os_name'] = Train.create('local').connection.os[:name]
|
|
47
|
+
ret['node']['os_family'] = Train.create('local').connection.os[:family]
|
|
48
|
+
ret['node']['os_release'] = Train.create('local').connection.os[:release]
|
|
44
49
|
|
|
45
50
|
puts ret if output
|
|
46
51
|
|
|
@@ -70,19 +75,19 @@ module Anamo
|
|
|
70
75
|
freq = ask "How often should filesystem data be sent to server? (in seconds -- default: 240 seconds)\n", :bold
|
|
71
76
|
if freq.strip.length > 0
|
|
72
77
|
configuration['modules']['fstree'] = {
|
|
73
|
-
'frequency' => freq
|
|
78
|
+
'frequency' => freq.to_i
|
|
74
79
|
}
|
|
75
80
|
end
|
|
76
81
|
freq = ask "How often should package data be sent to server? (in seconds -- default: 60 seconds)\n", :bold
|
|
77
82
|
if freq.strip.length > 0
|
|
78
83
|
configuration['modules']['pkgver'] = {
|
|
79
|
-
'frequency' => freq
|
|
84
|
+
'frequency' => freq.to_i
|
|
80
85
|
}
|
|
81
86
|
end
|
|
82
87
|
freq = ask "How often should port data be sent to server? (in seconds -- default: 60 seconds)\n", :bold
|
|
83
88
|
if freq.strip.length > 0
|
|
84
89
|
configuration['modules']['ports'] = {
|
|
85
|
-
'frequency' => freq
|
|
90
|
+
'frequency' => freq.to_i
|
|
86
91
|
}
|
|
87
92
|
end
|
|
88
93
|
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:
|
|
4
|
+
version: '1.1'
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
-
|
|
7
|
+
- Anamo, Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
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,20 @@ 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'
|
|
83
97
|
- !ruby/object:Gem::Dependency
|
|
84
98
|
name: bundler
|
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -94,9 +108,9 @@ dependencies:
|
|
|
94
108
|
- - ">="
|
|
95
109
|
- !ruby/object:Gem::Version
|
|
96
110
|
version: '0'
|
|
97
|
-
description:
|
|
111
|
+
description: Linux agent for app.anamo.io
|
|
98
112
|
email:
|
|
99
|
-
-
|
|
113
|
+
- jp@usprotech.com
|
|
100
114
|
executables:
|
|
101
115
|
- anamo
|
|
102
116
|
extensions: []
|
|
@@ -116,7 +130,7 @@ files:
|
|
|
116
130
|
- lib/anamo/thor.rb
|
|
117
131
|
- lib/anamo/users/thor.rb
|
|
118
132
|
- lib/anamo/version.rb
|
|
119
|
-
homepage:
|
|
133
|
+
homepage: https://www.app.anamo.io
|
|
120
134
|
licenses:
|
|
121
135
|
- Nonstandard
|
|
122
136
|
metadata: {}
|
|
@@ -136,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
136
150
|
version: '0'
|
|
137
151
|
requirements: []
|
|
138
152
|
rubyforge_project:
|
|
139
|
-
rubygems_version: 2.
|
|
153
|
+
rubygems_version: 2.7.3
|
|
140
154
|
signing_key:
|
|
141
155
|
specification_version: 4
|
|
142
156
|
summary: This gem provides a beacon that collects system telemetry for a client and
|