anamo 0.9.5 → 1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|