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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 504309d5a14cbe13c3b572643afb38c3e960b423
4
- data.tar.gz: 09b8f9233c8d961164c53aedead7a42cb68dad62
2
+ SHA256:
3
+ metadata.gz: ef520bc64a5c29d0378efd7ee68e4770b2fc56fc84494e5cbb103fa8ebfc73c1
4
+ data.tar.gz: 918158a056482cf3a07f53c7bb6953fac7fc37ce2382b233129521b665d1b287
5
5
  SHA512:
6
- metadata.gz: 08b1b18913fa75be9774a94604cc3e92d4476e8f0d5b4ef06716f9545af6a00e3b1a3354c07347514c1889ca637069a6da6fb00d756faef073c586ea52766d0f
7
- data.tar.gz: 74dd5c4e06451d488a49a0534a6cd268c7a28e673c2a73b35ab6cf346782f7ff1bb56c94530a24f995f20a0f76186be471139b72346c68fa38c6f8e866eb6abd
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
 
@@ -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
@@ -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 "#{row.join(',')}\n"
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
 
@@ -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
@@ -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} %{VERSION} %{RELEASE} %{ARCH}\n'"
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' => package[0],
37
- 'v' => package[1],
38
- 'r' => package[2],
39
- 'a' => package[3]
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} ${Version} ${Architecture}\n'"
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' => package[0],
53
- 'v' => package[1],
54
- 'a' => package[2]
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
- begin
63
- Gem::Specification.all = nil # TODO: fix for Debian (can't use all=)
64
- Gem::Specification.each do |a|
65
- gem_packages << {
66
- 'n' => a.name,
67
- 'v' => a.version.to_s
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
- Gem::Specification.reset
71
- rescue
91
+ else
92
+ gem_packages = nil
72
93
  end
73
94
 
74
95
  npm_packages = nil
@@ -1,3 +1,3 @@
1
1
  module Anamo
2
- VERSION = "0.9.2"
2
+ VERSION = "1.0.4"
3
3
  end
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.9.2
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: 2017-08-13 00:00:00.000000000 Z
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 client beacon
97
+ description: Anamo agent
98
98
  email:
99
- - alex@usprotech.com
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: http://anamo.io
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.5.1
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