koma 0.6.0 → 0.7.0

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
  SHA1:
3
- metadata.gz: b3b8d86a789ed3ff3c5545798e9cdd974822c2ec
4
- data.tar.gz: fe3ac5b2c55c6c8a17c05a1b294d713611718a91
3
+ metadata.gz: 1e5aab9738be1d947920d666285013ccf374ff92
4
+ data.tar.gz: 3c073c470b674df0fc401e251e8f1b9f55ae1af9
5
5
  SHA512:
6
- metadata.gz: 55fbf28ad7bd93ddbf7d48e63ba4aaa2259aa30ccf06de24a3dd5be1478acb2f348e6375cdd87603c5fd2c31b756ab3b02ed7ccea5cd58c032aec9374f26cc7c
7
- data.tar.gz: efa90f0252eaaaf04b689d0bad5cb4845624843994f8dd952afaf44ee6e34331ae0776996c40d86603337f35d56b3993501e08e7aed76c039f0fdaaf27da8160
6
+ metadata.gz: 6a18bb06c7e5523532fd2595929dbccfb4db85f0a7e16449b95a3460c6931527f91053a0da7b09206f025678b3f63e3c5c5f75c04abede35ef27816adc805827
7
+ data.tar.gz: 547d73eb184b41c174900580a09da841daf2479d9d98c093bd52378757895cd5b71c722d563e21034730973be391d6415d87e9a0225e520f03c55508d6f3a64c
data/lib/koma.rb CHANGED
@@ -2,10 +2,12 @@ require 'rubygems'
2
2
  require 'net/ssh'
3
3
  require 'specinfra'
4
4
  require 'specinfra/helper/set'
5
+ require 'koma/version'
6
+ require 'koma/error'
5
7
  require 'koma/ext'
8
+ require 'koma/host_inventory'
6
9
  require 'koma/backend'
7
10
  require 'koma/cli'
8
- require 'koma/version'
9
11
 
10
12
  module Koma
11
13
  end
@@ -1,11 +1,12 @@
1
1
  include Specinfra::Helper::Set
2
2
 
3
3
  class Koma::Backend::Base
4
- attr_reader :host, :options
4
+ attr_reader :host, :options, :inventory_keys
5
5
 
6
6
  def initialize(host, options)
7
7
  @host = host
8
8
  @options = options
9
+ @inventory_keys = Koma::HostInventory.inventory_keys
9
10
  end
10
11
 
11
12
  def out(key = nil)
@@ -15,7 +16,12 @@ class Koma::Backend::Base
15
16
  else
16
17
  key.split(',')
17
18
  end
19
+ Koma::HostInventory.disabled_keys.each do |k|
20
+ keys.push(k) if @options["with-#{k}"]
21
+ end
22
+
18
23
  keys.each do |k|
24
+ raise Koma::NotImplementedKeyError unless Koma::HostInventory.all_inventory_keys.include?(k)
19
25
  begin
20
26
  out[k] = Specinfra.backend.host_inventory[k]
21
27
  out[k] = Specinfra.backend.host_inventory[k].inspect if k == 'ec2'
@@ -25,8 +31,4 @@ class Koma::Backend::Base
25
31
  end
26
32
  out
27
33
  end
28
-
29
- def inventory_keys
30
- Specinfra::HostInventory.inventory_keys
31
- end
32
34
  end
@@ -3,8 +3,6 @@ require 'parallel'
3
3
  module Koma
4
4
  module Backend
5
5
  class Ssh < Base
6
- attr_reader :host, :options
7
-
8
6
  def gather
9
7
  if host.include?(',')
10
8
  list = host.split(',')
data/lib/koma/cli.rb CHANGED
@@ -24,6 +24,11 @@ module Koma
24
24
  banner: '<port>',
25
25
  desc: 'port',
26
26
  aliases: :p
27
+ Koma::HostInventory.disabled_keys.each do |key|
28
+ option "with-#{key}",
29
+ type: :boolean,
30
+ desc: "enable #{key}"
31
+ end
27
32
  def ssh(host)
28
33
  backend = Koma::Backend::Ssh.new(host, options)
29
34
  if options[:yaml]
@@ -43,6 +48,11 @@ module Koma
43
48
  type: :boolean,
44
49
  desc: 'stdout YAML',
45
50
  aliases: :y
51
+ Koma::HostInventory.disabled_keys.each do |key|
52
+ option "with-#{key}",
53
+ type: :boolean,
54
+ desc: "enable #{key}"
55
+ end
46
56
  def exec
47
57
  backend = Koma::Backend::Exec.new(nil, options)
48
58
  if options[:yaml]
@@ -54,7 +64,8 @@ module Koma
54
64
 
55
65
  desc 'keys', 'host inventory keys'
56
66
  def keys
57
- Specinfra::HostInventory.inventory_keys.each do |key|
67
+ Koma::HostInventory.all_inventory_keys.each do |key|
68
+ key += ' (disabled)' if Koma::HostInventory.disabled_keys.include?(key)
58
69
  puts key
59
70
  end
60
71
  end
data/lib/koma/error.rb ADDED
@@ -0,0 +1,4 @@
1
+ module Koma
2
+ class NotImplementedKeyError < StandardError
3
+ end
4
+ end
data/lib/koma/ext.rb CHANGED
@@ -1,4 +1,4 @@
1
- require 'koma/ext/specinfra/host_inventory'
1
+ require 'koma/ext/specinfra/host_inventory/base'
2
2
  require 'koma/ext/specinfra/host_inventory/parser'
3
3
 
4
4
  require 'koma/ext/specinfra/command/base/inventory'
@@ -1,12 +1,18 @@
1
- require 'koma/ext/specinfra/host_inventory/base'
2
- require 'koma/ext/specinfra/host_inventory/parser'
3
-
4
- module Specinfra
1
+ module Koma
5
2
  class HostInventory
6
3
  EXTRA_KEYS = %w(package user group service)
4
+ DISABLED_KEYS = %w(ec2)
7
5
 
8
6
  def self.inventory_keys
9
- KEYS + EXTRA_KEYS
7
+ Specinfra::HostInventory::KEYS + EXTRA_KEYS - DISABLED_KEYS
8
+ end
9
+
10
+ def self.all_inventory_keys
11
+ Specinfra::HostInventory::KEYS + EXTRA_KEYS
12
+ end
13
+
14
+ def self.disabled_keys
15
+ DISABLED_KEYS
10
16
  end
11
17
 
12
18
  def each
@@ -29,6 +35,6 @@ module Specinfra
29
35
  end
30
36
  end
31
37
 
32
- Specinfra::HostInventory::EXTRA_KEYS.each do |k|
38
+ Koma::HostInventory::EXTRA_KEYS.each do |k|
33
39
  require "koma/ext/specinfra/host_inventory/#{k}"
34
40
  end
data/lib/koma/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Koma
2
- VERSION = '0.6.0'
2
+ VERSION = '0.7.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: koma
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - k1LoW
@@ -176,11 +176,11 @@ files:
176
176
  - lib/koma/backend/exec.rb
177
177
  - lib/koma/backend/ssh.rb
178
178
  - lib/koma/cli.rb
179
+ - lib/koma/error.rb
179
180
  - lib/koma/ext.rb
180
181
  - lib/koma/ext/specinfra/command/base/inventory.rb
181
182
  - lib/koma/ext/specinfra/command/redhat/base/inventory.rb
182
183
  - lib/koma/ext/specinfra/command/redhat/v7/inventory.rb
183
- - lib/koma/ext/specinfra/host_inventory.rb
184
184
  - lib/koma/ext/specinfra/host_inventory/base.rb
185
185
  - lib/koma/ext/specinfra/host_inventory/group.rb
186
186
  - lib/koma/ext/specinfra/host_inventory/package.rb
@@ -193,6 +193,7 @@ files:
193
193
  - lib/koma/ext/specinfra/host_inventory/parser/redhat/v7/service.rb
194
194
  - lib/koma/ext/specinfra/host_inventory/service.rb
195
195
  - lib/koma/ext/specinfra/host_inventory/user.rb
196
+ - lib/koma/host_inventory.rb
196
197
  - lib/koma/version.rb
197
198
  - stdout_sample.json
198
199
  homepage: https://github.com/k1LoW/koma