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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 6782a1663dd02fa4b2aa92ba9afff401e62bd8a8
4
- data.tar.gz: 857923855bb5f77b1b344022b119fc3b15ed4ddc
2
+ SHA256:
3
+ metadata.gz: 4f6b98ab61d6da16e81a474607620f5a0fbee4bb1141da60d7be71de093141c4
4
+ data.tar.gz: b01463a3425793181c078179547f33928f8f98d54cc8ebdc1533b4120b23ab6d
5
5
  SHA512:
6
- metadata.gz: 74643deb59e6752718f9f94cbd01a37eda1811067e4979757e260b1903b4e7bb5ca0003a4a57a3e07df35919e2861463e96b630b800fbcb5994ef3547f443ce1
7
- data.tar.gz: 7fbe9b4536325852966f918a6bf5808b231041d66e849643359e99af593332df41241f2c07b4c4516ac55cafe774284e31ffdc0176d42232b370d89b37fb7dd6
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
 
@@ -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
@@ -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
 
@@ -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
@@ -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} %{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
79
  status, stdout, stderr = systemu "gem list -l"
63
80
  if status.success?
@@ -1,3 +1,3 @@
1
1
  module Anamo
2
- VERSION = "0.9.5"
2
+ VERSION = "1.1"
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.5
4
+ version: '1.1'
5
5
  platform: ruby
6
6
  authors:
7
- - US ProTech
7
+ - Anamo, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-07 00:00:00.000000000 Z
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: Anamo client beacon
111
+ description: Linux agent for app.anamo.io
98
112
  email:
99
- - alex@usprotech.com
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: http://anamo.io
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.6.14
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