anamo 1.0.1 → 1.1.3

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
2
  SHA256:
3
- metadata.gz: 670d08b29eee4b40b207e12f12ef45f60c374d3ddc25f957d9db811c0dcb03de
4
- data.tar.gz: 6ccb4825a4975a3828fb84dcac2df79eefc09f3cf1b1393846ec233b19e84765
3
+ metadata.gz: b248375e60e38489f546fd888ad95d8ca1e8cd55ca297121ee8b61713f7cb49d
4
+ data.tar.gz: a972b4a46d6ba2bcaf52246d7a7127e99464cadf90e9bfd23832055c9cae8c72
5
5
  SHA512:
6
- metadata.gz: 3f6b94577eb085ecbda0d3078c82a5262291c5783f2b77d1ae3bcf671dd77637678ec61477c241c98e0b09739c42b34fe2f889df96a34b8eed8e885549db6485
7
- data.tar.gz: 4ece3fe0185556a0d41d624fc4726746bf6b9c1a5bb4d4bbbfd9d3a8ecac1986a9f54fac4a57a907b60f22662b062dfeb7e069855c990ef8bf972276fea321e8
6
+ metadata.gz: 1f022479534a6af3a72588f75f064153d370f5986327c7d73dc522abc29ca13f88af74316765bb1ab22e6555f859a41032372b2fb78e1c876a133b5d5bdd15b4
7
+ data.tar.gz: e1ac6b4ff9a71f714c45528681439bc2a3fab7a2cb2194183b5d73e95981dd4d76e4eedc1b34548f5416f85bb2dab00ffba990c67ff3dbb45f8c2d26f687c8dd
@@ -0,0 +1,3 @@
1
+ ---
2
+ api_key: 63ITKI8a0CrQQW06rK
3
+ modules: {}
@@ -3,6 +3,9 @@ require 'thor'
3
3
  require 'anamo/api'
4
4
  require 'socket'
5
5
  require 'yaml'
6
+ require 'train'
7
+ require 'sys/uname'
8
+ include Sys
6
9
 
7
10
  module Anamo
8
11
  module Node
@@ -35,12 +38,25 @@ module Anamo
35
38
  ret = {}
36
39
 
37
40
  config = YAML.load_file "/etc/anamo.conf.yml"
41
+ train = Train.create('local')
38
42
 
39
43
  ret['api_key'] = config['api_key']
40
44
  ret['beacon_modules'] = config['modules']
41
45
  ret['node'] = {}
42
46
  ret['node']['hostname'] = Socket.gethostname
43
47
  ret['node']['ips'] = Socket.ip_address_list.map(){ |entry| entry.ip_address }.uniq
48
+ ret['node']['os_name'] = Train.create('local').connection.os[:name]
49
+ ret['node']['os_family'] = Train.create('local').connection.os[:family]
50
+ ret['node']['os_release'] = Train.create('local').connection.os[:release]
51
+ ret['node']['uname_sysname'] = Uname.sysname # => The operating system name. e.g. "SunOS"
52
+ ret['node']['uname_machine'] = Uname.machine # => The machine hardware type. e.g. "i686"
53
+ ret['node']['uname_version'] = Uname.version # => The operating system version. e.g. "5.8". Windows includes patch information.
54
+ ret['node']['uname_release'] = Uname.release # => The operating system release. e.g. "2.2.16-3"
55
+ ret['node']['uname_architecture'] = Uname.architecture # => Returns the instruction set architecture. e.g. "sparc"
56
+ ret['node']['uname_platform'] = Uname.platform # => The platform identifier. e.g. "SUNW,Sun-Blade-100"
57
+ ret['node']['uname_isa_list'] = Uname.isa_list # => List of supported instr. sets, e.g. "amd64 pentium_pro+mmx pentium_pro"
58
+ ret['node']['uname_hw_provider'] = Uname.hw_provider # => The name of the hardware manufacturer.
59
+ ret['node']['uname_hw_serial_number'] = Uname.hw_provider # => Uname.hw_serial_number # => The hardware serial number
44
60
 
45
61
  puts ret if output
46
62
 
@@ -127,4 +143,4 @@ module Anamo
127
143
 
128
144
  end
129
145
  end
130
- end
146
+ 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 = "1.0.1"
2
+ VERSION = "1.1.3"
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: 1.0.1
4
+ version: 1.1.3
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: 2020-02-24 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,34 @@ 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'
97
+ - !ruby/object:Gem::Dependency
98
+ name: sys-uname
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: bundler
85
113
  requirement: !ruby/object:Gem::Requirement
@@ -94,7 +122,7 @@ dependencies:
94
122
  - - ">="
95
123
  - !ruby/object:Gem::Version
96
124
  version: '0'
97
- description: Anamo agent
125
+ description: Linux agent for app.anamo.io
98
126
  email:
99
127
  - jp@usprotech.com
100
128
  executables:
@@ -109,6 +137,7 @@ files:
109
137
  - lib/anamo/api.rb
110
138
  - lib/anamo/fstree/thor.rb
111
139
  - lib/anamo/groups/thor.rb
140
+ - lib/anamo/node/start
112
141
  - lib/anamo/node/thor.rb
113
142
  - lib/anamo/pkgver/thor.rb
114
143
  - lib/anamo/ports/thor.rb