anamo 1.0.1 → 1.1.3

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