anamo 0.9.2 → 1.0.4
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 +14 -2
- data/lib/anamo/node/thor.rb +24 -1
- data/lib/anamo/pkgver/thor.rb +41 -20
- data/lib/anamo/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: ef520bc64a5c29d0378efd7ee68e4770b2fc56fc84494e5cbb103fa8ebfc73c1
|
4
|
+
data.tar.gz: 918158a056482cf3a07f53c7bb6953fac7fc37ce2382b233129521b665d1b287
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 932b86e1cb4acf7213cc8452ce9280b712bc63480ee093303ad931a579f771358214920f119ba0fc569fcb79550d533543eb28877dd31fa950e895a595c25371
|
7
|
+
data.tar.gz: 55421fe4e025121f60a1baf9c26c7d9ddf6f59d622354cb2f2d2819bf37f52065a427bab792281c4402dba45274befbfe747c9f5573c462438bee7cae71594e4
|
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
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'thor'
|
2
2
|
require 'benchmark'
|
3
3
|
require 'zlib'
|
4
|
+
require 'csv'
|
4
5
|
require 'fileutils'
|
5
6
|
require 'anamo/api'
|
6
7
|
|
@@ -38,7 +39,7 @@ module Anamo
|
|
38
39
|
def add_row row
|
39
40
|
reinit_handle if @row_count > 0 && @row_count % @files_per_file == 0
|
40
41
|
[0,2,3,4,5].each { |i| row[i] = '' if @previous_row[i] == row[i] } if @previous_row
|
41
|
-
@handle.write
|
42
|
+
@handle.write row.to_csv
|
42
43
|
@row_count = @row_count + 1
|
43
44
|
@previous_row = row
|
44
45
|
end
|
@@ -81,7 +82,6 @@ module Anamo
|
|
81
82
|
stat = nil
|
82
83
|
end
|
83
84
|
|
84
|
-
# TODO: escape base name!!!!
|
85
85
|
data = [depth, File.basename(path)]
|
86
86
|
|
87
87
|
open_as_directory = false
|
@@ -118,6 +118,18 @@ module Anamo
|
|
118
118
|
rescue
|
119
119
|
data << '-'
|
120
120
|
end
|
121
|
+
|
122
|
+
begin
|
123
|
+
data << stat.mtime
|
124
|
+
rescue
|
125
|
+
data << '-'
|
126
|
+
end
|
127
|
+
|
128
|
+
begin
|
129
|
+
data << stat.size
|
130
|
+
rescue
|
131
|
+
data << '-'
|
132
|
+
end
|
121
133
|
|
122
134
|
@writer.add_row data
|
123
135
|
|
data/lib/anamo/node/thor.rb
CHANGED
@@ -64,6 +64,29 @@ module Anamo
|
|
64
64
|
configuration['api_key'] = ask "What is your Anamo API key?\n", :bold
|
65
65
|
end
|
66
66
|
|
67
|
+
configuration['modules'] = {}
|
68
|
+
|
69
|
+
if ['y','yes'].include? ask("Would you like to configure send frequencies? (y/n)\n", :bold).downcase
|
70
|
+
freq = ask "How often should filesystem data be sent to server? (in seconds -- default: 240 seconds)\n", :bold
|
71
|
+
if freq.strip.length > 0
|
72
|
+
configuration['modules']['fstree'] = {
|
73
|
+
'frequency' => freq.to_i
|
74
|
+
}
|
75
|
+
end
|
76
|
+
freq = ask "How often should package data be sent to server? (in seconds -- default: 60 seconds)\n", :bold
|
77
|
+
if freq.strip.length > 0
|
78
|
+
configuration['modules']['pkgver'] = {
|
79
|
+
'frequency' => freq.to_i
|
80
|
+
}
|
81
|
+
end
|
82
|
+
freq = ask "How often should port data be sent to server? (in seconds -- default: 60 seconds)\n", :bold
|
83
|
+
if freq.strip.length > 0
|
84
|
+
configuration['modules']['ports'] = {
|
85
|
+
'frequency' => freq.to_i
|
86
|
+
}
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
67
90
|
say "\nYour configuration file:\n\n", [:green, :bold]
|
68
91
|
|
69
92
|
configuration_yaml = YAML.dump configuration
|
@@ -104,4 +127,4 @@ module Anamo
|
|
104
127
|
|
105
128
|
end
|
106
129
|
end
|
107
|
-
end
|
130
|
+
end
|
data/lib/anamo/pkgver/thor.rb
CHANGED
@@ -27,48 +27,69 @@ 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
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
79
|
+
status, stdout, stderr = systemu "gem list -l"
|
80
|
+
if status.success?
|
81
|
+
stdout.split("\n").each do |package|
|
82
|
+
if package.strip.length > 0 and package[0,1] != '*'
|
83
|
+
if match = /(.*) \((?:default\: )?(.*)\)/.match(package)
|
84
|
+
gem_packages << {
|
85
|
+
'n' => match[1],
|
86
|
+
'v' => match[2]
|
87
|
+
}
|
88
|
+
end
|
89
|
+
end
|
69
90
|
end
|
70
|
-
|
71
|
-
|
91
|
+
else
|
92
|
+
gem_packages = nil
|
72
93
|
end
|
73
94
|
|
74
95
|
npm_packages = nil
|
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: 0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- US ProTech
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -94,9 +94,9 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
-
description: Anamo
|
97
|
+
description: Anamo agent
|
98
98
|
email:
|
99
|
-
-
|
99
|
+
- jp@usprotech.com
|
100
100
|
executables:
|
101
101
|
- anamo
|
102
102
|
extensions: []
|
@@ -116,7 +116,7 @@ files:
|
|
116
116
|
- lib/anamo/thor.rb
|
117
117
|
- lib/anamo/users/thor.rb
|
118
118
|
- lib/anamo/version.rb
|
119
|
-
homepage:
|
119
|
+
homepage: https://www.app.anamo.io
|
120
120
|
licenses:
|
121
121
|
- Nonstandard
|
122
122
|
metadata: {}
|
@@ -136,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
136
136
|
version: '0'
|
137
137
|
requirements: []
|
138
138
|
rubyforge_project:
|
139
|
-
rubygems_version: 2.
|
139
|
+
rubygems_version: 2.7.3
|
140
140
|
signing_key:
|
141
141
|
specification_version: 4
|
142
142
|
summary: This gem provides a beacon that collects system telemetry for a client and
|