gaptool-client 0.6.15 → 0.6.16

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: fac8dcd0ec8402c3f96b59cf6e5ebb0693682deb
4
- data.tar.gz: 69ee23014877681f163ab714cbcf8d2b31b744d6
3
+ metadata.gz: 5e01b0226f6f7427180444151fee2f3acbd387a2
4
+ data.tar.gz: 54954efa74261d238d35fdccf78e17682fafddc5
5
5
  SHA512:
6
- metadata.gz: debe75218d4340e2f49bfc39ab40f4fbee4feec2ab9e01e937ac95ae764280c9573cb5377e0eb726a373263b5cb685507f4d02be9059b65e2ac60c9598adeaeb
7
- data.tar.gz: 363971d93fc824a1c69d41bea7b551eff91c8fd423959e4f4d22134fa7688a8af7f2f2cdcf71c92597ef6873a23591f2082f88f269a0e0431e6acf966a0f70d1
6
+ metadata.gz: 5e0180e32470e826a282e6e615be43ad067c6f9953716d91a86d45158bc8d55c2e37d7f00e88d4a5223b262954a53e687a22b70ca7f1cd7a4379ee08ea0ecf55
7
+ data.tar.gz: dfebc691cc7c39e72ff1cbb1a9f06d320a76db99c4884c91f1af538b98301eacf42ec40fb98541a8625ee49a634e644861bd101310c16f1ab4d6923ac113d698
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.15
1
+ 0.6.16
@@ -31,7 +31,7 @@ Gem::Specification.new do |s|
31
31
  s.add_runtime_dependency 'clamp', "~> 0.6"
32
32
  s.add_runtime_dependency 'net-ssh', "~> 2.9"
33
33
  s.add_runtime_dependency 'net-scp', "~> 1.2"
34
- s.add_runtime_dependency 'gaptool-api', "~> 0.6", ">= 0.6.4"
34
+ s.add_runtime_dependency 'gaptool-api', "~> 0.6", ">= 0.6.5"
35
35
  s.add_runtime_dependency 'builder', "~> 3"
36
36
 
37
37
  s.add_development_dependency 'shoulda', "~> 3"
@@ -16,11 +16,12 @@ def infohelper(nodes, parseable, grepable)
16
16
  unless grepable
17
17
  puts Rainbow(@host).green
18
18
  end
19
- node.keys.each do |key|
19
+ keys = node.keys.sort
20
+ keys.each do |key|
20
21
  if grepable
21
22
  puts "#{@host}|#{key}|#{node[key]}"
22
23
  else
23
- unless key == node.keys.last
24
+ unless key == keys.last
24
25
  puts " ┠ #{Rainbow(key).cyan}: #{node[key]}"
25
26
  else
26
27
  puts " ┖ #{Rainbow(key).cyan}: #{node[key]}\n\n"
@@ -214,22 +215,51 @@ module Gaptool
214
215
  option ["-i", "--instance"], "INSTANCE", "Node instance, leave blank to query avilable nodes", :required => false
215
216
  option ["-p", "--parseable"], :flag, "Display in non-pretty parseable JSON"
216
217
  option ["-g", "--grepable"], :flag, "Display in non-pretty grep-friendly text"
218
+ option ['-H', '--hidden'], :flag, 'Display hidden hosts'
217
219
 
218
220
  def execute
219
221
  @nodes = Array.new
222
+ params = hidden? ? {hidden: true} : {}
220
223
  if instance
221
224
  @nodes = [$api.getonenode(instance)]
222
225
  elsif role && environment
223
- @nodes = $api.getenvroles(role, environment)
226
+ @nodes = $api.getenvroles(role, environment, params)
224
227
  elsif role && !environment
225
- @nodes = $api.getrolenodes(role)
228
+ @nodes = $api.getrolenodes(role, params)
226
229
  else
227
- @nodes = $api.getallnodes()
230
+ @nodes = $api.getallnodes(params)
228
231
  end
229
232
  infohelper(@nodes, parseable?, grepable?)
230
233
  end
231
234
  end
232
235
 
236
+ class SetCommand < Clamp::Command
237
+ option ["-i", "--instance"], "INSTANCE", "Node instance, required", required: true
238
+ option ["-p", "--parseable"], :flag, "Display in non-pretty parseable JSON"
239
+ option ["-g", "--grepable"], :flag, "Display in non-pretty grep-friendly text"
240
+ option ['-k', '--parameter'], 'NAME', 'Set parameter for the node', required: true, multivalued: true
241
+ option ['-v', '--value'], 'VALUE', 'Value for parameter', required: true, multivalued: true
242
+
243
+ def convert_bool(v)
244
+ case v.downcase
245
+ when "true"
246
+ true
247
+ when "false"
248
+ false
249
+ else
250
+ v
251
+ end
252
+ end
253
+
254
+ def execute
255
+ if parameter_list.length != value_list.length
256
+ puts Rainbow("parameter and value length mismatch").red
257
+ end
258
+ params = Hash[parameter_list.each_with_index.map {|p, i| [p, convert_bool(value_list[i])]}]
259
+ infohelper([$api.setparameters(instance, params)], parseable?, grepable?)
260
+ end
261
+ end
262
+
233
263
  class ChefrunCommand < Clamp::Command
234
264
  option ["-r", "--role"], "ROLE", "Role name to ssh to", :required => true
235
265
  option ["-e", "--environment"], "ENVIRONMENT", "Which environment, e.g. production", :required => true
@@ -288,13 +318,15 @@ module Gaptool
288
318
  option ["-r", "--rollback"], :flag, "Toggle this to rollback last deploy"
289
319
  option ["-i", "--instance"], "INSTANCE", "Instance ID, e.g. i-12345678", :required => false
290
320
  option ["-A", "--attribute"], "ATTRIBUTE", "Pass one or more parameters to the deploy recipe in recipe.attr=value format", :multivalued => true
321
+ option ['-H', '--hidden'], :flag, 'Display hidden hosts'
291
322
 
292
323
  def execute
293
324
  attrs = split_attrs(attribute_list)
294
325
  if instance
295
326
  nodes = [$api.getonenode(instance)]
296
327
  else
297
- nodes = $api.getappnodes(app, environment)
328
+ params = hidden? ? {hidden: true} : {}
329
+ nodes = $api.getappnodes(app, environment, params)
298
330
  end
299
331
  nodes.peach do |node|
300
332
  if node['chef_runlist'].nil?
@@ -360,6 +392,7 @@ module Gaptool
360
392
  subcommand "init", "Create new application cluster", InitCommand
361
393
  subcommand "terminate", "Terminate instance", TerminateCommand
362
394
  subcommand "ssh", "ssh to cluster host", SshCommand
395
+ subcommand "set", "update properties for a node", SetCommand
363
396
  subcommand "chefrun", "chefrun on a resource pool", ChefrunCommand
364
397
  subcommand "deploy", "deploy on an application", DeployCommand
365
398
  subcommand "rehash", "Regenerate all host metadata. KNOW WHAT THIS DOES BEFORE RUNNING IT", RehashCommand
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gaptool-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.15
4
+ version: 0.6.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francesco Laurita
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-12-12 00:00:00.000000000 Z
13
+ date: 2015-01-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: json
@@ -105,7 +105,7 @@ dependencies:
105
105
  version: '0.6'
106
106
  - - ">="
107
107
  - !ruby/object:Gem::Version
108
- version: 0.6.4
108
+ version: 0.6.5
109
109
  type: :runtime
110
110
  prerelease: false
111
111
  version_requirements: !ruby/object:Gem::Requirement
@@ -115,7 +115,7 @@ dependencies:
115
115
  version: '0.6'
116
116
  - - ">="
117
117
  - !ruby/object:Gem::Version
118
- version: 0.6.4
118
+ version: 0.6.5
119
119
  - !ruby/object:Gem::Dependency
120
120
  name: builder
121
121
  requirement: !ruby/object:Gem::Requirement