bosh_cli 1.3146.10.0 → 1.3147.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: 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