bosh_cli 1.5.0.pre.1226 → 1.5.0.pre.1244
Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,22 @@
|
|
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
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,33 @@
|
|
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
|
+
|
12
|
+
release = Bosh::Cli::NameVersionPair.parse(release)
|
13
|
+
stemcell = Bosh::Cli::NameVersionPair.parse(stemcell)
|
14
|
+
|
15
|
+
unless Dir.exists?(download_dir)
|
16
|
+
err("Directory `#{download_dir}' must exist.")
|
17
|
+
end
|
18
|
+
|
19
|
+
download_file_name = "#{release.name}-#{release.version}-#{stemcell.name}-#{stemcell.version}.tgz"
|
20
|
+
download_path = File.join(download_dir, download_file_name)
|
21
|
+
|
22
|
+
if File.exists?(download_path)
|
23
|
+
err("File `#{download_path}' already exists.")
|
24
|
+
end
|
25
|
+
|
26
|
+
client = Bosh::Cli::Client::CompiledPackagesClient.new(director)
|
27
|
+
tmp_path = client.export(release.name, release.version, stemcell.name, stemcell.version)
|
28
|
+
FileUtils.mv(tmp_path, download_path)
|
29
|
+
|
30
|
+
say("Exported compiled packages to `#{download_path.make_green}'.")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Bosh::Cli
|
2
|
+
|
3
|
+
class NameVersionPair
|
4
|
+
def self.parse(str)
|
5
|
+
raise ArgumentError, 'str must not be nil' if str.nil?
|
6
|
+
#raise ArgumentError, 'str must not be empty' if str.empty?
|
7
|
+
|
8
|
+
name, _, version = str.rpartition('/')
|
9
|
+
if name.empty? || version.empty?
|
10
|
+
raise ArgumentError, 'str must be in the form name/version'
|
11
|
+
end
|
12
|
+
|
13
|
+
new(name, version)
|
14
|
+
end
|
15
|
+
|
16
|
+
attr_reader :name, :version
|
17
|
+
|
18
|
+
def initialize(name, version)
|
19
|
+
@name, @version = name, version
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
data/lib/cli/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bosh_cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.0.pre.
|
4
|
+
version: 1.5.0.pre.1244
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-11-
|
12
|
+
date: 2013-11-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bosh_common
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.5.0.pre.
|
21
|
+
version: 1.5.0.pre.1244
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 1.5.0.pre.
|
29
|
+
version: 1.5.0.pre.1244
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: json_pure
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,7 +114,7 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - ~>
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 1.5.0.pre.
|
117
|
+
version: 1.5.0.pre.1244
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -122,7 +122,7 @@ dependencies:
|
|
122
122
|
requirements:
|
123
123
|
- - ~>
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version: 1.5.0.pre.
|
125
|
+
version: 1.5.0.pre.1244
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
127
|
name: net-ssh
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
@@ -221,7 +221,7 @@ dependencies:
|
|
221
221
|
version: '0'
|
222
222
|
description: ! 'BOSH CLI
|
223
223
|
|
224
|
-
|
224
|
+
1e7603'
|
225
225
|
email: support@cloudfoundry.com
|
226
226
|
executables:
|
227
227
|
- bosh
|
@@ -235,6 +235,7 @@ files:
|
|
235
235
|
- lib/cli/blob_manager.rb
|
236
236
|
- lib/cli/cache.rb
|
237
237
|
- lib/cli/changeset_helper.rb
|
238
|
+
- lib/cli/client/compiled_packages_client.rb
|
238
239
|
- lib/cli/client/director.rb
|
239
240
|
- lib/cli/command_discovery.rb
|
240
241
|
- lib/cli/command_handler.rb
|
@@ -244,6 +245,7 @@ files:
|
|
244
245
|
- lib/cli/commands/cloudcheck.rb
|
245
246
|
- lib/cli/commands/complete.rb
|
246
247
|
- lib/cli/commands/deployment.rb
|
248
|
+
- lib/cli/commands/export_compiled_packages.rb
|
247
249
|
- lib/cli/commands/help.rb
|
248
250
|
- lib/cli/commands/job.rb
|
249
251
|
- lib/cli/commands/job_management.rb
|
@@ -277,6 +279,7 @@ files:
|
|
277
279
|
- lib/cli/job_property_validator.rb
|
278
280
|
- lib/cli/job_state.rb
|
279
281
|
- lib/cli/line_wrap.rb
|
282
|
+
- lib/cli/name_version_pair.rb
|
280
283
|
- lib/cli/null_renderer.rb
|
281
284
|
- lib/cli/package_builder.rb
|
282
285
|
- lib/cli/packaging_helper.rb
|