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 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