bosh_cli 0.19.6 → 1.0.rc1

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.
Files changed (64) hide show
  1. data/bin/bosh +3 -0
  2. data/lib/cli.rb +15 -5
  3. data/lib/cli/{commands/base.rb → base_command.rb} +38 -44
  4. data/lib/cli/command_discovery.rb +40 -0
  5. data/lib/cli/command_handler.rb +135 -0
  6. data/lib/cli/commands/biff.rb +16 -12
  7. data/lib/cli/commands/blob_management.rb +10 -3
  8. data/lib/cli/commands/cloudcheck.rb +13 -11
  9. data/lib/cli/commands/complete.rb +29 -0
  10. data/lib/cli/commands/deployment.rb +137 -28
  11. data/lib/cli/commands/help.rb +96 -0
  12. data/lib/cli/commands/job.rb +4 -1
  13. data/lib/cli/commands/job_management.rb +36 -23
  14. data/lib/cli/commands/job_rename.rb +11 -12
  15. data/lib/cli/commands/log_management.rb +28 -32
  16. data/lib/cli/commands/maintenance.rb +6 -1
  17. data/lib/cli/commands/misc.rb +129 -87
  18. data/lib/cli/commands/package.rb +6 -65
  19. data/lib/cli/commands/property_management.rb +20 -8
  20. data/lib/cli/commands/release.rb +211 -206
  21. data/lib/cli/commands/ssh.rb +178 -188
  22. data/lib/cli/commands/stemcell.rb +114 -51
  23. data/lib/cli/commands/task.rb +74 -56
  24. data/lib/cli/commands/user.rb +6 -3
  25. data/lib/cli/commands/vms.rb +17 -15
  26. data/lib/cli/config.rb +27 -1
  27. data/lib/cli/core_ext.rb +27 -1
  28. data/lib/cli/deployment_helper.rb +47 -0
  29. data/lib/cli/director.rb +18 -9
  30. data/lib/cli/errors.rb +6 -0
  31. data/lib/cli/job_builder.rb +75 -23
  32. data/lib/cli/job_property_collection.rb +87 -0
  33. data/lib/cli/job_property_validator.rb +130 -0
  34. data/lib/cli/package_builder.rb +32 -5
  35. data/lib/cli/release.rb +2 -0
  36. data/lib/cli/release_builder.rb +9 -13
  37. data/lib/cli/release_compiler.rb +5 -34
  38. data/lib/cli/release_tarball.rb +4 -19
  39. data/lib/cli/runner.rb +118 -694
  40. data/lib/cli/version.rb +1 -1
  41. data/spec/assets/config/swift-hp/config/final.yml +6 -0
  42. data/spec/assets/config/swift-hp/config/private.yml +7 -0
  43. data/spec/assets/config/swift-rackspace/config/final.yml +6 -0
  44. data/spec/assets/config/swift-rackspace/config/private.yml +6 -0
  45. data/spec/spec_helper.rb +0 -5
  46. data/spec/unit/base_command_spec.rb +32 -37
  47. data/spec/unit/biff_spec.rb +11 -10
  48. data/spec/unit/cli_commands_spec.rb +96 -88
  49. data/spec/unit/core_ext_spec.rb +1 -1
  50. data/spec/unit/deployment_manifest_spec.rb +36 -0
  51. data/spec/unit/director_spec.rb +17 -3
  52. data/spec/unit/job_builder_spec.rb +2 -2
  53. data/spec/unit/job_property_collection_spec.rb +111 -0
  54. data/spec/unit/job_property_validator_spec.rb +7 -0
  55. data/spec/unit/job_rename_spec.rb +7 -6
  56. data/spec/unit/package_builder_spec.rb +2 -2
  57. data/spec/unit/release_builder_spec.rb +33 -0
  58. data/spec/unit/release_spec.rb +54 -0
  59. data/spec/unit/release_tarball_spec.rb +2 -7
  60. data/spec/unit/runner_spec.rb +1 -151
  61. data/spec/unit/ssh_spec.rb +15 -9
  62. metadata +41 -12
  63. data/lib/cli/command_definition.rb +0 -52
  64. data/lib/cli/templates/help_message.erb +0 -80
@@ -3,6 +3,7 @@
3
3
  require "spec_helper"
4
4
 
5
5
  describe Bosh::Cli::Command::Base do
6
+ # TODO: the whole spec needs to be rewritten
6
7
 
7
8
  before :all do
8
9
  @public_key = File.join(Dir.mktmpdir, "public_key")
@@ -14,7 +15,8 @@ describe Bosh::Cli::Command::Base do
14
15
  describe Bosh::Cli::Command::Ssh do
15
16
  it "should get the public key" do
16
17
  ssh = Bosh::Cli::Command::Ssh.new
17
- public_key = ssh.get_public_key("public_key" => @public_key)
18
+ ssh.add_option(:public_key, @public_key)
19
+ public_key = ssh.send(:get_public_key)
18
20
  public_key.should == "PUBLIC_KEY"
19
21
  end
20
22
 
@@ -23,8 +25,8 @@ describe Bosh::Cli::Command::Base do
23
25
  ssh = Bosh::Cli::Command::Ssh.new
24
26
  public_key = nil
25
27
  begin
26
- public_key = ssh.get_public_key({})
27
- rescue Bosh::Cli::CliExit
28
+ public_key = ssh.send(:get_public_key)
29
+ rescue Bosh::Cli::CliError
28
30
  public_key = "SOMETHING"
29
31
  end
30
32
  public_key.should_not be_nil
@@ -32,15 +34,19 @@ describe Bosh::Cli::Command::Base do
32
34
 
33
35
  it "should contact director to setup ssh on the job" do
34
36
  mock_director = mock(Object)
35
- mock_director.stub(:setup_ssh).and_return([{ "status" => "success",
36
- "ip" => "127.0.0.1" }])
37
+ mock_director.stub(:setup_ssh).and_return([:done, 42])
38
+
39
+ mock_director.stub(:get_task_result_log).with(42).
40
+ and_return(JSON.generate(
41
+ [{ "status" => "success", "ip" => "127.0.0.1" }]))
37
42
  mock_director.stub(:cleanup_ssh)
38
43
  Bosh::Cli::Director.should_receive(:new).and_return(mock_director)
39
44
  ssh = Bosh::Cli::Command::Ssh.new
40
45
  ssh.stub(:prepare_deployment_manifest).and_return("test")
41
46
  ssh.stub(:cleanup_ssh)
42
- ssh.setup_ssh("dea", 0, "temp_pass",
43
- { "public_key" => @public_key }) do |results, user|
47
+ ssh.stub(:get_public_key).and_return("PUBKEY")
48
+ ssh.send(
49
+ :setup_ssh, "dea", 0, "temp_pass") do |results, _, _|
44
50
  results.each do |result|
45
51
  result["status"].should == "success"
46
52
  result["ip"].should == "127.0.0.1"
@@ -62,7 +68,7 @@ describe Bosh::Cli::Command::Base do
62
68
  ssh = Bosh::Cli::Command::Ssh.new
63
69
  lambda {
64
70
  ssh.shell("dea")
65
- }.should raise_error(Bosh::Cli::CliExit, "Please specify a job index")
71
+ }.should raise_error(Bosh::Cli::CliError)
66
72
  end
67
73
 
68
74
  it "should try to execute given command remotely" do
@@ -70,7 +76,7 @@ describe Bosh::Cli::Command::Base do
70
76
  @interactive_shell = false
71
77
  @execute_command = false
72
78
  ssh.stub(:setup_interactive_shell) { @interactive_shell = true }
73
- ssh.stub(:execute_command) { @execute_command = true }
79
+ ssh.stub(:perform_operation) { @execute_command = true }
74
80
  ssh.shell("dea", "ls -l")
75
81
  @interactive_shell.should == false && @execute_command.should == true
76
82
  end
metadata CHANGED
@@ -1,16 +1,32 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bosh_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.19.6
5
- prerelease:
4
+ version: 1.0.rc1
5
+ prerelease: 4
6
6
  platform: ruby
7
7
  authors:
8
8
  - VMware
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-16 00:00:00.000000000 Z
12
+ date: 2012-10-05 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bosh_common
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 0.5.1
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 0.5.1
14
30
  - !ruby/object:Gem::Dependency
15
31
  name: json_pure
16
32
  requirement: !ruby/object:Gem::Requirement
@@ -186,15 +202,18 @@ extra_rdoc_files: []
186
202
  files:
187
203
  - bin/bosh
188
204
  - lib/cli.rb
205
+ - lib/cli/base_command.rb
189
206
  - lib/cli/blob_manager.rb
190
207
  - lib/cli/cache.rb
191
208
  - lib/cli/changeset_helper.rb
192
- - lib/cli/command_definition.rb
193
- - lib/cli/commands/base.rb
209
+ - lib/cli/command_discovery.rb
210
+ - lib/cli/command_handler.rb
194
211
  - lib/cli/commands/biff.rb
195
212
  - lib/cli/commands/blob_management.rb
196
213
  - lib/cli/commands/cloudcheck.rb
214
+ - lib/cli/commands/complete.rb
197
215
  - lib/cli/commands/deployment.rb
216
+ - lib/cli/commands/help.rb
198
217
  - lib/cli/commands/job.rb
199
218
  - lib/cli/commands/job_management.rb
200
219
  - lib/cli/commands/job_rename.rb
@@ -219,6 +238,8 @@ files:
219
238
  - lib/cli/errors.rb
220
239
  - lib/cli/event_log_renderer.rb
221
240
  - lib/cli/job_builder.rb
241
+ - lib/cli/job_property_collection.rb
242
+ - lib/cli/job_property_validator.rb
222
243
  - lib/cli/null_renderer.rb
223
244
  - lib/cli/package_builder.rb
224
245
  - lib/cli/packaging_helper.rb
@@ -230,7 +251,6 @@ files:
230
251
  - lib/cli/stemcell.rb
231
252
  - lib/cli/task_log_renderer.rb
232
253
  - lib/cli/task_tracker.rb
233
- - lib/cli/templates/help_message.erb
234
254
  - lib/cli/validation.rb
235
255
  - lib/cli/version.rb
236
256
  - lib/cli/version_calc.rb
@@ -256,6 +276,10 @@ files:
256
276
  - spec/assets/config/deprecation/config/private.yml
257
277
  - spec/assets/config/s3/config/final.yml
258
278
  - spec/assets/config/s3/config/private.yml
279
+ - spec/assets/config/swift-hp/config/final.yml
280
+ - spec/assets/config/swift-hp/config/private.yml
281
+ - spec/assets/config/swift-rackspace/config/final.yml
282
+ - spec/assets/config/swift-rackspace/config/private.yml
259
283
  - spec/assets/deployment.MF
260
284
  - spec/assets/plugins/bosh/cli/commands/echo.rb
261
285
  - spec/assets/plugins/bosh/cli/commands/ruby.rb
@@ -300,6 +324,8 @@ files:
300
324
  - spec/unit/event_log_renderer_spec.rb
301
325
  - spec/unit/hash_changeset_spec.rb
302
326
  - spec/unit/job_builder_spec.rb
327
+ - spec/unit/job_property_collection_spec.rb
328
+ - spec/unit/job_property_validator_spec.rb
303
329
  - spec/unit/job_rename_spec.rb
304
330
  - spec/unit/package_builder_spec.rb
305
331
  - spec/unit/release_builder_spec.rb
@@ -325,16 +351,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
325
351
  version: '0'
326
352
  segments:
327
353
  - 0
328
- hash: -389599683879577066
354
+ hash: -4439490482070871500
329
355
  required_rubygems_version: !ruby/object:Gem::Requirement
330
356
  none: false
331
357
  requirements:
332
- - - ! '>='
358
+ - - ! '>'
333
359
  - !ruby/object:Gem::Version
334
- version: '0'
335
- segments:
336
- - 0
337
- hash: -389599683879577066
360
+ version: 1.3.1
338
361
  requirements: []
339
362
  rubyforge_project:
340
363
  rubygems_version: 1.8.24
@@ -360,6 +383,10 @@ test_files:
360
383
  - spec/assets/config/deprecation/config/private.yml
361
384
  - spec/assets/config/s3/config/final.yml
362
385
  - spec/assets/config/s3/config/private.yml
386
+ - spec/assets/config/swift-hp/config/final.yml
387
+ - spec/assets/config/swift-hp/config/private.yml
388
+ - spec/assets/config/swift-rackspace/config/final.yml
389
+ - spec/assets/config/swift-rackspace/config/private.yml
363
390
  - spec/assets/deployment.MF
364
391
  - spec/assets/plugins/bosh/cli/commands/echo.rb
365
392
  - spec/assets/plugins/bosh/cli/commands/ruby.rb
@@ -404,6 +431,8 @@ test_files:
404
431
  - spec/unit/event_log_renderer_spec.rb
405
432
  - spec/unit/hash_changeset_spec.rb
406
433
  - spec/unit/job_builder_spec.rb
434
+ - spec/unit/job_property_collection_spec.rb
435
+ - spec/unit/job_property_validator_spec.rb
407
436
  - spec/unit/job_rename_spec.rb
408
437
  - spec/unit/package_builder_spec.rb
409
438
  - spec/unit/release_builder_spec.rb
@@ -1,52 +0,0 @@
1
- # Copyright (c) 2009-2012 VMware, Inc.
2
-
3
- module Bosh::Cli
4
- class CommandDefinition
5
- attr_reader :options
6
- attr_reader :power_options
7
- attr_reader :keywords
8
-
9
- def initialize
10
- @options = []
11
- @power_options = []
12
- @hints = []
13
- @keywords = []
14
- end
15
-
16
- def usage(str = nil)
17
- if str
18
- @usage = str.strip
19
- @keywords = str.split(/\s+/).select do |word|
20
- word.match(/^[a-z]/i)
21
- end
22
- else
23
- @usage
24
- end
25
- end
26
-
27
- def description(str = nil)
28
- str ? (@description = str.to_s.strip) : @description
29
- end
30
-
31
- alias :desc :description
32
-
33
- def option(name, value = "")
34
- @options << [name, value]
35
- end
36
-
37
- def power_option(name, value = "")
38
- @power_options << [name, value]
39
- end
40
-
41
- def route(*args, &block)
42
- if args.size > 0
43
- @route = args
44
- elsif block_given?
45
- @route = block
46
- else
47
- @route
48
- end
49
- end
50
- end
51
- end
52
-
@@ -1,80 +0,0 @@
1
- <%= basic_usage %>
2
- Currently available bosh commands are:
3
-
4
- Deployment
5
- <%= command_usage(:deployment) %>
6
- <%= command_usage(:delete_deployment) %>
7
- <%= command_usage(:list_deployments) %>
8
- <%= command_usage(:deploy) %>
9
- <%= command_usage(:diff) %>
10
-
11
- Release management
12
- <%= command_usage(:create_release) %>
13
- <%= command_usage(:delete_release) %>
14
- <%= command_usage(:verify_release) %>
15
- <%= command_usage(:upload_release) %>
16
- <%= command_usage(:list_releases) %>
17
- <%= command_usage(:reset_release) %>
18
-
19
- <%= command_usage(:init_release) %>
20
- <%= command_usage(:generate_package) %>
21
- <%= command_usage(:generate_job) %>
22
-
23
- Stemcells
24
- <%= command_usage(:upload_stemcell) %>
25
- <%= command_usage(:verify_stemcell) %>
26
- <%= command_usage(:list_stemcells) %>
27
- <%= command_usage(:delete_stemcell) %>
28
- <%= command_usage(:list_public_stemcells) %>
29
- <%= command_usage(:download_public_stemcell) %>
30
-
31
- User management
32
- <%= command_usage(:create_user) %>
33
-
34
- Job management
35
- <%= command_usage(:start_job) %>
36
- <%= command_usage(:stop_job) %>
37
- <%= command_usage(:restart_job) %>
38
- <%= command_usage(:recreate_job) %>
39
- <%= command_usage(:rename_job) %>
40
-
41
- Log management
42
- <%= command_usage(:fetch_logs) %>
43
-
44
- Task management
45
- <%= command_usage(:list_running_tasks) %>
46
- <%= command_usage(:list_recent_tasks) %>
47
- <%= command_usage(:track_task) %>
48
- <%= command_usage(:cancel_task) %>
49
-
50
- Property management
51
- <%= command_usage(:set_property) %>
52
- <%= command_usage(:get_property) %>
53
- <%= command_usage(:unset_property) %>
54
- <%= command_usage(:list_properties) %>
55
-
56
- Maintenance
57
- <%= command_usage(:cleanup) %>
58
- <%= command_usage(:cloudcheck) %>
59
-
60
- Misc
61
- <%= command_usage(:status) %>
62
- <%= command_usage(:list_vms) %>
63
- <%= command_usage(:target) %>
64
- <%= command_usage(:list_targets) %>
65
- <%= command_usage(:login) %>
66
- <%= command_usage(:logout) %>
67
- <%= command_usage(:alias) %>
68
- <%= command_usage(:list_aliases) %>
69
- <%= command_usage(:purge) %>
70
-
71
- Remote access
72
- <%= command_usage(:ssh) %>
73
- <%= command_usage(:scp) %>
74
- <%= command_usage(:ssh_cleanup) %>
75
-
76
- Blob
77
- <%= command_usage(:add_blob) %>
78
- <%= command_usage(:upload_blobs) %>
79
- <%= command_usage(:sync_blobs) %>
80
- <%= command_usage(:blobs_status) %>