bosh_cli 1.3146.10.0 → 1.3147.0

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
  SHA1:
3
- metadata.gz: ee097443b7d5a3edf7a5f8814a6569083d750b62
4
- data.tar.gz: 7a9dc35127ef4a8a0dba19b36e00734c2814ad4c
3
+ metadata.gz: 5af72447c3783652381af6e46241865c048dacba
4
+ data.tar.gz: 2fcf5235942a879dcafdf03b7561a9d6cc7d64a8
5
5
  SHA512:
6
- metadata.gz: 4cf010e1c2ba790bfb7d713a8619115886f72248f6d47b796f96007e0c289236b4273fbf49f1f6a6a46e81f66b87a646c3e5c5a21a662af2b8a79fedd0d59e27
7
- data.tar.gz: db326fd8b94542c5405a030d685680fff8ba0d43b20008617b84c8666846509e6e16537c35f0ad782e8f015f7728cfa69077814cc49e4507e6151a1c27e71665
6
+ metadata.gz: 95dab00041cb7a86a7b5f3c6475154c3c46910555cd892afc81f3426cb66effce7d1bbc53e642d04fe87c18c62a57ab787a8a618faa154385d9f5734b3aa9102
7
+ data.tar.gz: 1aa30f427fde8d48750ff3dd1581822bbd46a5c0e8b493f07f09cf47f57934a6c836ba2ea2893b0249db97b1da0f6d4a6dcfd3969cf6fbacf84b81f4ca1fa56b
@@ -260,13 +260,6 @@ module Bosh::Cli
260
260
  end
261
261
  end
262
262
 
263
- def valid_index_for(manifest_hash, job, index, options = {})
264
- index = '0' if job_unique_in_deployment?(manifest_hash, job)
265
- err('You should specify the job index. There is more than one instance of this job type.') if index.nil?
266
- index = index.to_i if options[:integer_index]
267
- index
268
- end
269
-
270
263
  def normalize_url(url)
271
264
  url = url.gsub(/\/$/, '')
272
265
  url = "https://#{url}" unless url.match(/^http:?/)
@@ -9,9 +9,9 @@ module Bosh::Cli
9
9
 
10
10
  # bosh start
11
11
  usage 'start'
12
- desc 'Start job/instance'
12
+ desc 'Start all jobs/job/instance'
13
13
  option '--force', FORCE
14
- def start_job(job, index = nil)
14
+ def start_job(job = '*', index = nil)
15
15
  change_job_state(:start, job, index)
16
16
  end
17
17
 
@@ -32,19 +32,19 @@ module Bosh::Cli
32
32
 
33
33
  # bosh restart
34
34
  usage 'restart'
35
- desc 'Restart job/instance (soft stop + start)'
35
+ desc 'Restart all jobs/job/instance (soft stop + start)'
36
36
  option '--force', FORCE
37
37
  option '--skip-drain', SKIP_DRAIN
38
- def restart_job(job, index = nil)
38
+ def restart_job(job = '*', index = nil)
39
39
  change_job_state(:restart, job, index)
40
40
  end
41
41
 
42
42
  # bosh recreate
43
43
  usage 'recreate'
44
- desc 'Recreate job/instance (hard stop + start)'
44
+ desc 'Recreate all jobs/job/instance (hard stop + start)'
45
45
  option '--force', FORCE
46
46
  option '--skip-drain', SKIP_DRAIN
47
- def recreate_job(job, index = nil)
47
+ def recreate_job(job = '*', index = nil)
48
48
  change_job_state(:recreate, job, index)
49
49
  end
50
50
 
@@ -53,10 +53,6 @@ module Bosh::Cli
53
53
  def change_job_state(state, job, index = nil)
54
54
  auth_required
55
55
  manifest = parse_manifest(state)
56
- unless job == '*'
57
- job_must_exist_in_deployment(manifest.hash, job)
58
- index = valid_index_for(manifest.hash, job, index) unless state == :stop || state == :detach
59
- end
60
56
  job_state = JobState.new(self, manifest, skip_drain: skip_drain?)
61
57
  status, task_id, completion_desc = job_state.change(state, job, index, force?)
62
58
  task_report(status, task_id, completion_desc)
@@ -11,11 +11,10 @@ module Bosh::Cli::Command
11
11
  option '--dir destination_directory', String, 'download directory'
12
12
  option '--all', 'deprecated'
13
13
 
14
- def fetch_logs(job, index = nil)
14
+ def fetch_logs(job, index)
15
15
  auth_required
16
16
 
17
17
  manifest = prepare_deployment_manifest(show_state: true)
18
- index = valid_index_for(manifest.hash, job, index)
19
18
  check_arguments(index)
20
19
 
21
20
  logs_downloader = Bosh::Cli::LogsDownloader.new(director, self)
@@ -76,4 +75,3 @@ module Bosh::Cli::Command
76
75
  end
77
76
  end
78
77
  end
79
-
@@ -27,9 +27,6 @@ module Bosh::Cli
27
27
  end
28
28
 
29
29
  manifest = prepare_deployment_manifest(show_state: true)
30
- job_must_exist_in_deployment(manifest.hash, job)
31
-
32
- index = valid_index_for(manifest.hash, job, index, integer_index: true)
33
30
 
34
31
  if command.empty?
35
32
  setup_interactive_shell(manifest.name, job, index)
@@ -60,7 +57,6 @@ module Bosh::Cli
60
57
  end
61
58
 
62
59
  manifest = prepare_deployment_manifest(show_state: true)
63
- job_must_exist_in_deployment(manifest.hash, job)
64
60
 
65
61
  if args.size != 2
66
62
  err('Please enter valid source and destination paths')
@@ -79,7 +75,6 @@ module Bosh::Cli
79
75
  end
80
76
 
81
77
  manifest = prepare_deployment_manifest(show_state: true)
82
- job_must_exist_in_deployment(manifest.hash, job)
83
78
 
84
79
  say("Cleaning up ssh artifacts from #{job}/#{index}")
85
80
  director.cleanup_ssh(manifest.name, job, "^#{SSH_USER_PREFIX}", [index])
@@ -20,9 +20,6 @@ module Bosh::Cli
20
20
  resurrection = Resurrection.new(new_state)
21
21
 
22
22
  manifest = prepare_deployment_manifest(show_state: true)
23
- job_must_exist_in_deployment(manifest.hash, job)
24
- index = valid_index_for(manifest.hash, job, index, integer_index: true)
25
-
26
23
  director.change_vm_resurrection(manifest.name, job, index, resurrection.paused?)
27
24
  end
28
25
  end
@@ -128,10 +128,6 @@ module Bosh::Cli
128
128
  !!find_job(manifest_hash, job_name)
129
129
  end
130
130
 
131
- def job_must_exist_in_deployment(manifest_hash, job)
132
- err("Job `#{job}' doesn't exist") unless job_exists_in_deployment?(manifest_hash, job)
133
- end
134
-
135
131
  def prompt_for_job_and_index
136
132
  jobs_list = jobs_and_indexes
137
133
 
@@ -1,5 +1,3 @@
1
- require 'open3'
2
-
3
1
  module Bosh::Cli
4
2
  class ReleaseTarball
5
3
  include Validation
@@ -23,84 +21,36 @@ module Bosh::Cli
23
21
 
24
22
  def unpack_manifest
25
23
  return @unpacked_manifest unless @unpacked_manifest.nil?
26
- exit_success = safe_fast_unpack('./release.MF')
24
+ exit_success = fast_unpack('./release.MF')
27
25
  @unpacked_manifest = !!exit_success
28
26
  end
29
27
 
30
28
  def unpack_jobs
31
29
  return @unpacked_jobs unless @unpacked_jobs.nil?
32
- exit_success = safe_fast_unpack('./jobs/')
33
- unless all_release_jobs_unpacked?
34
- exit_success = safe_unpack('./jobs/')
35
- end
30
+ exit_success = fast_unpack('./jobs/')
36
31
  @unpacked_jobs = !!exit_success
37
32
  end
38
33
 
39
34
  def unpack_license
40
35
  return @unpacked_license unless @unpacked_license.nil?
41
- exit_success = safe_fast_unpack('./license.tgz')
36
+ exit_success = fast_unpack('./license.tgz')
42
37
  @unpacked_license = !!exit_success
43
38
  end
44
39
 
45
- # On machines using GNU based tar command, it should be able to unpack files irrespective of
46
- # the ./ prefix in the file name
47
- def safe_fast_unpack(target)
48
- exit_status = raw_fast_unpack(target)
49
- if !exit_status
50
- processed_target = handle_dot_slash_prefix(target)
51
- exit_status = raw_fast_unpack(processed_target)
52
- end
53
- exit_status
54
- end
55
-
56
- def safe_unpack(target)
57
- exit_status = raw_unpack(target)
58
- if !exit_status
59
- processed_target = handle_dot_slash_prefix(target)
60
- exit_status = raw_unpack(processed_target)
61
- end
62
- exit_status
63
- end
64
-
65
- # This will [add or remove] the './' when trying to extract a specific file from archive
66
- def handle_dot_slash_prefix(target)
67
- if target =~ /^\.\/.*/
68
- target.sub!(/^\.\//, '')
69
- else
70
- target.prepend("./")
71
- end
72
- end
73
-
74
- def raw_fast_unpack(target)
75
- tar_version, _, _ = Open3.capture3('tar', '--version')
76
-
77
- case tar_version
78
- when /.*gnu.*/i
79
- Kernel.system("tar", "-C", @unpack_dir, "-xzf", @tarball_path, "--occurrence", "#{target}", out: "/dev/null", err: "/dev/null")
80
- when /.*bsd.*/i
81
- if target[-1, 1] == "/"
82
- raw_unpack(target)
83
- else
84
- Kernel.system("tar", "-C", @unpack_dir, "--fast-read", "-xzf", @tarball_path, "#{target}", out: "/dev/null", err: "/dev/null")
85
- end
40
+ def fast_unpack(target)
41
+ if RUBY_PLATFORM =~ /linux/
42
+ system("tar", "-C", @unpack_dir, "-xzf", @tarball_path, "--occurrence", "#{target}", out: "/dev/null", err: "/dev/null")
43
+ elsif RUBY_PLATFORM =~ /darwin/
44
+ if target[-1, 1] == "/"
45
+ system("tar", "-C", @unpack_dir, "-xzf", @tarball_path, "#{target}", out: "/dev/null", err: "/dev/null")
86
46
  else
87
- raw_unpack(target)
47
+ system("tar", "-C", @unpack_dir, "--fast-read", "-xzf", @tarball_path, "#{target}", out: "/dev/null", err: "/dev/null")
48
+ end
49
+ else
50
+ system("tar", "-C", @unpack_dir, "-xzf", @tarball_path, "#{target}", out: "/dev/null", err: "/dev/null")
88
51
  end
89
52
  end
90
53
 
91
- def raw_unpack(target)
92
- Kernel.system("tar", "-C", @unpack_dir, "-xzf", @tarball_path, "#{target}", out: "/dev/null", err: "/dev/null")
93
- end
94
-
95
- # verifies that all jobs in release manifest were unpacked
96
- def all_release_jobs_unpacked?
97
- return false if manifest_yaml['jobs'].nil?
98
-
99
- manifest_job_names = manifest_yaml['jobs'].map { |j| j['name'] }.sort
100
- unpacked_job_file_names = Dir.glob(File.join(@unpack_dir, 'jobs', '*')).map { |f| File.basename(f, '.*') }.sort
101
- unpacked_job_file_names == manifest_job_names
102
- end
103
-
104
54
  # Unpacks tarball to @unpack_dir, returns true if succeeded, false if failed
105
55
  def unpack
106
56
  return @unpacked unless @unpacked.nil?
@@ -1,5 +1,5 @@
1
1
  module Bosh
2
2
  module Cli
3
- VERSION = '1.3146.10.0'
3
+ VERSION = '1.3147.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bosh_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3146.10.0
4
+ version: 1.3147.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - VMware
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-14 00:00:00.000000000 Z
11
+ date: 2015-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bosh_common
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.3146.10.0
19
+ version: 1.3147.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.3146.10.0
26
+ version: 1.3147.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bosh-template
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.3146.10.0
33
+ version: 1.3147.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.3146.10.0
40
+ version: 1.3147.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: cf-uaa-lib
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 1.3146.10.0
131
+ version: 1.3147.0
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 1.3146.10.0
138
+ version: 1.3147.0
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: net-ssh
141
141
  requirement: !ruby/object:Gem::Requirement