bosh_cli 1.2789.0 → 1.2792.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -48,7 +48,7 @@ module Bosh::Cli
48
48
  def release
49
49
  return @release if @release
50
50
  check_if_release_dir
51
- @release = Bosh::Cli::Release.new(@work_dir)
51
+ @release = Bosh::Cli::Release.new(@work_dir, options[:final])
52
52
  end
53
53
 
54
54
  def blob_manager
@@ -45,9 +45,6 @@ module Bosh::Cli
45
45
  end
46
46
 
47
47
  @blobstore = @release.blobstore
48
- if @blobstore.nil?
49
- err("Blobstore is not configured")
50
- end
51
48
 
52
49
  @new_blobs = []
53
50
  @updated_blobs = []
@@ -237,6 +234,10 @@ module Bosh::Cli
237
234
  # Uploads blob to a blobstore, updates blobs index.
238
235
  # @param [String] path Blob path relative to blobs dir
239
236
  def upload_blob(path)
237
+ if @blobstore.nil?
238
+ err("Failed to upload blobs: blobstore not configured")
239
+ end
240
+
240
241
  blob_path = File.join(@blobs_dir, path)
241
242
 
242
243
  unless File.exists?(blob_path)
@@ -267,6 +268,10 @@ module Bosh::Cli
267
268
  # Downloads blob from a blobstore
268
269
  # @param [String] path Downloaded blob file path
269
270
  def download_blob(path)
271
+ if @blobstore.nil?
272
+ err("Failed to download blobs: blobstore not configured")
273
+ end
274
+
270
275
  unless @index.has_key?(path)
271
276
  err("Unknown blob path `#{path}'")
272
277
  end
@@ -63,7 +63,7 @@ module Bosh::Cli::Command
63
63
  manifest_only = !options[:with_tarball]
64
64
  dry_run = options[:dry_run]
65
65
 
66
- err("Can't create final release without blobstore secret") if final && !release.has_blobstore_secret?
66
+ release.blobstore # prime & validate blobstore config
67
67
 
68
68
  dirty_blob_check(force)
69
69
 
@@ -165,7 +165,7 @@ module Bosh::Cli::Command
165
165
  dir = File.expand_path('../..', manifest_path)
166
166
  Dir.chdir(dir)
167
167
  if in_release_dir?
168
- @release = Bosh::Cli::Release.new(dir)
168
+ @release = Bosh::Cli::Release.new(dir, options[:final])
169
169
  end
170
170
  end
171
171
 
@@ -7,8 +7,10 @@ module Bosh::Cli
7
7
  class Release
8
8
  attr_reader :dir
9
9
 
10
- def initialize(dir)
10
+ def initialize(dir, final = false)
11
11
  @dir = dir
12
+ @final = final
13
+
12
14
  config_dir = File.join(dir, "config")
13
15
  @final_config_file = File.join(config_dir, "final.yml")
14
16
  @dev_config_file = File.join(config_dir, "dev.yml")
@@ -62,6 +64,8 @@ module Bosh::Cli
62
64
  def has_blobstore_secret?
63
65
  bs = @private_config["blobstore"]
64
66
 
67
+ return false unless @final_config['blobstore']
68
+
65
69
  # Add special handling for local blobstore which should not need need credentials
66
70
  provider = @final_config['blobstore']['provider']
67
71
  return true if provider == 'local'
@@ -99,7 +103,12 @@ module Bosh::Cli
99
103
  blobstore_config = Marshal.load(Marshal.dump(@final_config["blobstore"]))
100
104
 
101
105
  if blobstore_config.nil?
102
- err("Missing blobstore configuration, please update your release")
106
+ err("Missing blobstore configuration, please update config/final.yml") if @final
107
+ unless @user_warned
108
+ warning("Missing blobstore configuration, please update config/final.yml before making a final release")
109
+ @user_warned = true
110
+ end
111
+ return nil
103
112
  end
104
113
 
105
114
  provider = blobstore_config["provider"]
@@ -134,6 +143,8 @@ module Bosh::Cli
134
143
  # Extracts private blobstore data from final.yml (i.e. secrets)
135
144
  # and merges it into the blobstore options.
136
145
  def merge_private_data(provider, options)
146
+ err("Missing blobstore secret configuration, please update config/private.yml") if @final && !has_blobstore_secret?
147
+
137
148
  bs = @private_config["blobstore"]
138
149
  return options unless bs
139
150
 
@@ -1,5 +1,5 @@
1
1
  module Bosh
2
2
  module Cli
3
- VERSION = '1.2789.0'
3
+ VERSION = '1.2792.0'
4
4
  end
5
5
  end
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.2789.0
4
+ version: 1.2792.0
5
5
  prerelease:
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: 2014-12-13 00:00:00.000000000 Z
12
+ date: 2014-12-16 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.2789.0
21
+ version: 1.2792.0
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.2789.0
29
+ version: 1.2792.0
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: bosh-template
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: 1.2789.0
37
+ version: 1.2792.0
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: 1.2789.0
45
+ version: 1.2792.0
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: json_pure
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -130,7 +130,7 @@ dependencies:
130
130
  requirements:
131
131
  - - ~>
132
132
  - !ruby/object:Gem::Version
133
- version: 1.2789.0
133
+ version: 1.2792.0
134
134
  type: :runtime
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
@@ -138,7 +138,7 @@ dependencies:
138
138
  requirements:
139
139
  - - ~>
140
140
  - !ruby/object:Gem::Version
141
- version: 1.2789.0
141
+ version: 1.2792.0
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: net-ssh
144
144
  requirement: !ruby/object:Gem::Requirement
@@ -221,7 +221,7 @@ dependencies:
221
221
  version: 0.5.4
222
222
  description: ! 'BOSH CLI
223
223
 
224
- 177517'
224
+ 5e7f33'
225
225
  email: support@cloudfoundry.com
226
226
  executables:
227
227
  - bosh
@@ -344,7 +344,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
344
344
  version: '0'
345
345
  segments:
346
346
  - 0
347
- hash: 271561866118815358
347
+ hash: -1339837986300098617
348
348
  requirements: []
349
349
  rubyforge_project:
350
350
  rubygems_version: 1.8.23