anamo 0.9.2 → 1.0.4

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