bosh_cli 1.3048.0 → 1.3050.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/cli/client/director.rb +11 -0
- data/lib/cli/commands/release/export_release.rb +1 -1
- data/lib/cli/commands/release/upload_release.rb +19 -22
- data/lib/cli/release.rb +0 -42
- data/lib/cli/version.rb +1 -1
- metadata +9 -12
- data/lib/cli/client/compiled_packages_client.rb +0 -28
- data/lib/cli/commands/export_compiled_packages.rb +0 -34
- data/lib/cli/commands/import_compiled_packages.rb +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7a164a6a5e5dee79814a1b030c95281ef0d17cf
|
4
|
+
data.tar.gz: 3cb0f56a36a75aeb2250c4484add4e1efd93c9a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eed65e888f4520649fd0aeab3a3e809e2c35ae97b085b1cb4b448e4be078986ba2b07c96dba1162e4891894500d67db42f0e0358fb2be69ddfc2f5367cc69648
|
7
|
+
data.tar.gz: 19e8b853bbfa29e109442a1b32a8c14932ad7421ce5259cf17750590c6993fe77c31c1c7d55f62211ce655fca1c9ce16e55cd7e1385332fc075fcb1eceab43ac
|
data/lib/cli/client/director.rb
CHANGED
@@ -157,6 +157,17 @@ module Bosh
|
|
157
157
|
end
|
158
158
|
end
|
159
159
|
|
160
|
+
def match_compiled_packages(manifest_yaml)
|
161
|
+
url = '/packages/matches_compiled'
|
162
|
+
status, body = post(url, 'text/yaml', manifest_yaml)
|
163
|
+
|
164
|
+
if status == 200
|
165
|
+
JSON.parse(body)
|
166
|
+
else
|
167
|
+
err(parse_error_message(status, body))
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
160
171
|
def get_deployment(name)
|
161
172
|
_, body = get_json_with_status("/deployments/#{name}")
|
162
173
|
body
|
@@ -47,7 +47,7 @@ module Bosh::Cli::Command
|
|
47
47
|
err("Checksum mismatch for downloaded blob `#{tarball_file_path}'")
|
48
48
|
end
|
49
49
|
|
50
|
-
task_report(status, task_id, "Exported
|
50
|
+
task_report(status, task_id, "Exported release `#{release.name.make_green}/#{release.version.make_green}` for `#{stemcell_os.make_green}/#{stemcell.version.make_green}`")
|
51
51
|
end
|
52
52
|
|
53
53
|
# Returns file SHA1 checksum
|
@@ -8,7 +8,7 @@ module Bosh::Cli::Command
|
|
8
8
|
'Rebases this release onto the latest version',
|
9
9
|
'known by director (discards local job/package',
|
10
10
|
'versions in favor of versions assigned by director)'
|
11
|
-
option '--skip-if-exists', '
|
11
|
+
option '--skip-if-exists', 'no-op; retained for backward compatibility'
|
12
12
|
def upload(release_file = nil)
|
13
13
|
auth_required
|
14
14
|
show_current_state
|
@@ -16,7 +16,6 @@ module Bosh::Cli::Command
|
|
16
16
|
upload_options = {
|
17
17
|
:rebase => options[:rebase],
|
18
18
|
:repack => true,
|
19
|
-
:skip_if_exists => options[:skip_if_exists],
|
20
19
|
}
|
21
20
|
|
22
21
|
#only check release_dir if not compiled release tarball
|
@@ -43,7 +42,7 @@ module Bosh::Cli::Command
|
|
43
42
|
err("Release file doesn't exist")
|
44
43
|
end
|
45
44
|
|
46
|
-
file_type = `file --mime-type -b '#{release_file}'`
|
45
|
+
file_type = `file --mime-type -b '#{release_file}'` # duplicate? Already done on line 23
|
47
46
|
|
48
47
|
if file_type =~ /text\/(plain|yaml)/
|
49
48
|
upload_manifest(release_file, upload_options)
|
@@ -100,26 +99,15 @@ module Bosh::Cli::Command
|
|
100
99
|
tarball_path = tarball.convert_to_old_format
|
101
100
|
end
|
102
101
|
|
103
|
-
|
104
|
-
if remote_release && !rebase
|
105
|
-
version = if new_director?
|
106
|
-
Bosh::Common::Version::ReleaseVersion.parse(tarball.version)
|
107
|
-
else
|
108
|
-
tarball.version
|
109
|
-
end
|
110
|
-
if remote_release['versions'].include?(version.to_s)
|
111
|
-
if upload_options[:skip_if_exists]
|
112
|
-
say("Release `#{tarball.release_name}/#{version}' already exists. Skipping upload.")
|
113
|
-
return
|
114
|
-
else
|
115
|
-
err('This release version has already been uploaded')
|
116
|
-
end
|
117
|
-
end
|
118
|
-
end
|
102
|
+
Bosh::Common::Version::ReleaseVersion.parse(tarball.version) if new_director?
|
119
103
|
|
120
104
|
begin
|
121
105
|
if repack
|
122
|
-
|
106
|
+
if tarball.compiled_release?
|
107
|
+
package_matches = match_remote_compiled_packages(tarball.manifest)
|
108
|
+
else
|
109
|
+
package_matches = match_remote_packages(tarball.manifest)
|
110
|
+
end
|
123
111
|
|
124
112
|
say('Checking if can repack release for faster upload...')
|
125
113
|
repacked_path = tarball.repack(package_matches)
|
@@ -161,7 +149,6 @@ module Bosh::Cli::Command
|
|
161
149
|
status, task_id = director.upload_remote_release(
|
162
150
|
release_location,
|
163
151
|
rebase: upload_options[:rebase],
|
164
|
-
skip_if_exists: upload_options[:skip_if_exists],
|
165
152
|
)
|
166
153
|
task_report(status, task_id, report)
|
167
154
|
end
|
@@ -201,7 +188,17 @@ module Bosh::Cli::Command
|
|
201
188
|
'director or downgrade your CLI to 0.19.6'
|
202
189
|
|
203
190
|
say(msg.make_yellow)
|
204
|
-
|
191
|
+
end
|
192
|
+
|
193
|
+
def match_remote_compiled_packages(manifest_yaml)
|
194
|
+
director.match_compiled_packages(manifest_yaml)
|
195
|
+
rescue Bosh::Cli::DirectorError
|
196
|
+
msg = "You are using CLI >= 0.20 with director that doesn't support " +
|
197
|
+
"package matches.\nThis will result in uploading all packages " +
|
198
|
+
"and jobs to your director.\nIt is recommended to update your " +
|
199
|
+
'director or downgrade your CLI to 0.19.6'
|
200
|
+
|
201
|
+
say(msg.make_yellow)
|
205
202
|
end
|
206
203
|
|
207
204
|
def should_convert_to_old_format?(version)
|
data/lib/cli/release.rb
CHANGED
@@ -71,7 +71,6 @@ module Bosh::Cli
|
|
71
71
|
return true if provider == 'local'
|
72
72
|
|
73
73
|
has_legacy_secret? ||
|
74
|
-
has_blobstore_secrets?(bs, "atmos", "secret") ||
|
75
74
|
has_blobstore_secrets?(bs, "simple", "user", "password") ||
|
76
75
|
has_blobstore_secrets?(bs, "dav", "user", "password") ||
|
77
76
|
has_blobstore_secrets?(bs, "swift", "rackspace") ||
|
@@ -93,8 +92,6 @@ module Bosh::Cli
|
|
93
92
|
# s3:
|
94
93
|
# secret_access_key: ...
|
95
94
|
# access_key_id: ...
|
96
|
-
# atmos:
|
97
|
-
# secret: ...
|
98
95
|
|
99
96
|
# Picks blobstore client to use with current release.
|
100
97
|
#
|
@@ -115,8 +112,6 @@ module Bosh::Cli
|
|
115
112
|
provider = blobstore_config["provider"]
|
116
113
|
options = blobstore_config["options"] || {}
|
117
114
|
|
118
|
-
deprecate_blobstore_secret if has_legacy_secret?
|
119
|
-
|
120
115
|
options = merge_private_data(provider, options)
|
121
116
|
|
122
117
|
opts = Bosh::Common.symbolize_keys(options)
|
@@ -156,19 +151,6 @@ module Bosh::Cli
|
|
156
151
|
options.merge(bs[provider] ? bs[provider] : {})
|
157
152
|
end
|
158
153
|
|
159
|
-
# stores blobstore_secret as blobstore.atmos.secret
|
160
|
-
def deprecate_blobstore_secret
|
161
|
-
say("WARNING:".make_red + " use of blobstore_secret is deprecated")
|
162
|
-
|
163
|
-
@private_config["blobstore"] ||= {}
|
164
|
-
bs = @private_config["blobstore"]
|
165
|
-
|
166
|
-
bs["atmos"] ||= {}
|
167
|
-
atmos = bs["atmos"]
|
168
|
-
|
169
|
-
atmos["secret"] = @private_config["blobstore_secret"]
|
170
|
-
end
|
171
|
-
|
172
154
|
# Upgrade path for legacy clients that kept release metadata
|
173
155
|
# in config/dev.yml and config/final.yml
|
174
156
|
#
|
@@ -200,30 +182,6 @@ module Bosh::Cli
|
|
200
182
|
say("Migrated dev config file format".make_green)
|
201
183
|
end
|
202
184
|
|
203
|
-
if @final_config.has_key?("blobstore_options") &&
|
204
|
-
@final_config["blobstore_options"] != "deprecated"
|
205
|
-
say("Found legacy config file `#{@final_config_file}'".make_yellow)
|
206
|
-
|
207
|
-
unless @final_config["blobstore_options"]["provider"] == "atmos" &&
|
208
|
-
@final_config["blobstore_options"].has_key?("atmos_options")
|
209
|
-
err("Please update your release to the version " +
|
210
|
-
"that uses Atmos blobstore")
|
211
|
-
end
|
212
|
-
|
213
|
-
new_final_config = {
|
214
|
-
"final_name" => @final_config["name"],
|
215
|
-
"blobstore" => {
|
216
|
-
"provider" => "atmos",
|
217
|
-
"options" => @final_config["blobstore_options"]["atmos_options"]
|
218
|
-
},
|
219
|
-
"blobstore_options" => "deprecated"
|
220
|
-
}
|
221
|
-
|
222
|
-
@final_config = new_final_config
|
223
|
-
|
224
|
-
File.open(@final_config_file, "w") { |f| Psych.dump(@final_config, f) }
|
225
|
-
say("Migrated final config file format".make_green)
|
226
|
-
end
|
227
185
|
end
|
228
186
|
|
229
187
|
def load_config(file)
|
data/lib/cli/version.rb
CHANGED
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.
|
4
|
+
version: 1.3050.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- VMware
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-20 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.
|
19
|
+
version: 1.3050.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.
|
26
|
+
version: 1.3050.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.
|
33
|
+
version: 1.3050.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.
|
40
|
+
version: 1.3050.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.
|
131
|
+
version: 1.3050.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.
|
138
|
+
version: 1.3050.0
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: net-ssh
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -306,7 +306,7 @@ dependencies:
|
|
306
306
|
version: '0'
|
307
307
|
description: |-
|
308
308
|
BOSH CLI
|
309
|
-
|
309
|
+
b92cdc
|
310
310
|
email: support@cloudfoundry.com
|
311
311
|
executables:
|
312
312
|
- bosh
|
@@ -325,7 +325,6 @@ files:
|
|
325
325
|
- lib/cli/blob_manager.rb
|
326
326
|
- lib/cli/build_artifact.rb
|
327
327
|
- lib/cli/changeset_helper.rb
|
328
|
-
- lib/cli/client/compiled_packages_client.rb
|
329
328
|
- lib/cli/client/credentials.rb
|
330
329
|
- lib/cli/client/director.rb
|
331
330
|
- lib/cli/client/errands_client.rb
|
@@ -349,9 +348,7 @@ files:
|
|
349
348
|
- lib/cli/commands/complete.rb
|
350
349
|
- lib/cli/commands/deployment.rb
|
351
350
|
- lib/cli/commands/errand.rb
|
352
|
-
- lib/cli/commands/export_compiled_packages.rb
|
353
351
|
- lib/cli/commands/help.rb
|
354
|
-
- lib/cli/commands/import_compiled_packages.rb
|
355
352
|
- lib/cli/commands/instances.rb
|
356
353
|
- lib/cli/commands/job.rb
|
357
354
|
- lib/cli/commands/job_management.rb
|
@@ -1,28 +0,0 @@
|
|
1
|
-
module Bosh::Cli::Client
|
2
|
-
class CompiledPackagesClient
|
3
|
-
def initialize(director)
|
4
|
-
@director = director
|
5
|
-
end
|
6
|
-
|
7
|
-
def export(release_name, release_version, stemcell_name, stemcell_version)
|
8
|
-
path = "/compiled_package_groups/export"
|
9
|
-
content_type = 'application/json'
|
10
|
-
|
11
|
-
body = JSON.dump(
|
12
|
-
stemcell_name: stemcell_name,
|
13
|
-
stemcell_version: stemcell_version,
|
14
|
-
release_name: release_name,
|
15
|
-
release_version: release_version,
|
16
|
-
)
|
17
|
-
|
18
|
-
_, file_path, _ = @director.post(path, content_type, body, {}, file: true)
|
19
|
-
file_path
|
20
|
-
end
|
21
|
-
|
22
|
-
def import(exported_tar_path)
|
23
|
-
path = '/compiled_package_groups/import'
|
24
|
-
|
25
|
-
@director.upload_and_track(:post, path, exported_tar_path, {content_type: 'application/x-compressed'})
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
require 'cli/name_version_pair'
|
3
|
-
require 'cli/client/compiled_packages_client'
|
4
|
-
|
5
|
-
module Bosh::Cli::Command
|
6
|
-
class ExportCompiledPackages < Base
|
7
|
-
usage 'export compiled_packages'
|
8
|
-
desc 'Download compiled packages for a specific release and stemcell combination'
|
9
|
-
def perform(release, stemcell, download_dir)
|
10
|
-
auth_required
|
11
|
-
show_current_state
|
12
|
-
|
13
|
-
release = Bosh::Cli::NameVersionPair.parse(release)
|
14
|
-
stemcell = Bosh::Cli::NameVersionPair.parse(stemcell)
|
15
|
-
|
16
|
-
unless Dir.exists?(download_dir)
|
17
|
-
err("Directory `#{download_dir}' must exist.")
|
18
|
-
end
|
19
|
-
|
20
|
-
download_file_name = "#{release.name}-#{release.version}-#{stemcell.name}-#{stemcell.version}.tgz"
|
21
|
-
download_path = File.join(download_dir, download_file_name)
|
22
|
-
|
23
|
-
if File.exists?(download_path)
|
24
|
-
err("File `#{download_path}' already exists.")
|
25
|
-
end
|
26
|
-
|
27
|
-
client = Bosh::Cli::Client::CompiledPackagesClient.new(director)
|
28
|
-
tmp_path = client.export(release.name, release.version, stemcell.name, stemcell.version)
|
29
|
-
FileUtils.mv(tmp_path, download_path)
|
30
|
-
|
31
|
-
say("Exported compiled packages to `#{download_path.make_green}'.")
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'cli/client/compiled_packages_client'
|
2
|
-
|
3
|
-
module Bosh::Cli::Command
|
4
|
-
class ImportCompiledPackages < Base
|
5
|
-
usage 'import compiled_packages'
|
6
|
-
desc 'Import compiled packages for a specific release and stemcell combination'
|
7
|
-
def perform(exported_tar_path)
|
8
|
-
auth_required
|
9
|
-
show_current_state
|
10
|
-
|
11
|
-
unless File.exist?(exported_tar_path)
|
12
|
-
raise Bosh::Cli::CliError, 'Archive does not exist'
|
13
|
-
end
|
14
|
-
|
15
|
-
client = Bosh::Cli::Client::CompiledPackagesClient.new(director)
|
16
|
-
status, task_id = client.import(exported_tar_path)
|
17
|
-
task_report(status, task_id)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|