bosh_cli 1.0.rc1 → 1.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.
@@ -195,9 +195,29 @@ module Bosh::Cli::Command
195
195
  err("No deployments") if deployments.empty?
196
196
 
197
197
  deployments_table = table do |t|
198
- t.headings = %w(Name)
199
- deployments.each do |r|
200
- t << [r["name"]]
198
+ t.headings = %w(Name Release(s) Stemcell(s))
199
+ deployments.each do |d|
200
+ deployment = director.get_deployment(d["name"])
201
+
202
+ row = if (deployment["manifest"])
203
+ manifest = YAML.load(deployment["manifest"])
204
+
205
+ stemcells = manifest["resource_pools"].map { |rp|
206
+ rp["stemcell"].values_at("name", "version").join("/")
207
+ }.sort.uniq
208
+
209
+ releases = manifest["releases"] || [manifest["release"]]
210
+ releases = releases.map { |rl|
211
+ rl.values_at("name", "version").join("/")
212
+ }.sort
213
+
214
+ [manifest["name"], releases.join("\n"), stemcells.join("\n")]
215
+ else
216
+ [d["name"], "n/a", "n/a"]
217
+ end
218
+
219
+ t.add_row(row)
220
+ t.add_separator unless d == deployments.last
201
221
  end
202
222
  end
203
223
 
@@ -152,9 +152,9 @@ module Bosh::Cli::Command
152
152
  releases_table = table do |t|
153
153
  t.headings = "Name", "Versions"
154
154
  releases.each do |r|
155
- versions = r["versions"].sort do |v1, v2|
155
+ versions = r["versions"].sort { |v1, v2|
156
156
  version_cmp(v1, v2)
157
- end
157
+ }.map { |v| ((r["in_use"] || []).include?(v)) ? "#{v}*" : v }
158
158
 
159
159
  t << [r["name"], versions.join(", ")]
160
160
  end
@@ -162,6 +162,7 @@ module Bosh::Cli::Command
162
162
 
163
163
  nl
164
164
  say(releases_table)
165
+ say("(*) Currently deployed") if releases_table.to_s =~ /\*/
165
166
  nl
166
167
  say("Releases total: %d" % releases.size)
167
168
  end
@@ -521,4 +522,4 @@ module Bosh::Cli::Command
521
522
  exit(1) unless confirmed?
522
523
  end
523
524
  end
524
- end
525
+ end
@@ -10,7 +10,7 @@ module Bosh::Cli::Command
10
10
  desc "Show task status and start tracking its output"
11
11
  option "--no-cache", "Don't cache output locally"
12
12
  option "--event", "Track event log"
13
- option "--soap", "Track CPI log"
13
+ option "--cpi", "Track CPI log"
14
14
  option "--debug", "Track debug log"
15
15
  option "--result", "Track result log"
16
16
  option "--raw", "Show raw log"
@@ -23,8 +23,8 @@ module Bosh::Cli::Command
23
23
 
24
24
  log_type = "event"
25
25
  n_types = 0
26
- if options[:soap]
27
- log_type = "soap"
26
+ if options[:cpi]
27
+ log_type = "cpi"
28
28
  n_types += 1
29
29
  end
30
30
 
@@ -137,4 +137,4 @@ module Bosh::Cli::Command
137
137
  use_filter ? 1 : 2
138
138
  end
139
139
  end
140
- end
140
+ end
@@ -18,7 +18,10 @@ module Bosh
18
18
  # @return [String]
19
19
  attr_accessor :password
20
20
 
21
- def initialize(director_uri, user = nil, password = nil)
21
+ # Options can include:
22
+ # * :no_track => true - do not use +TaskTracker+ for long-running
23
+ # +request_and_track+ calls
24
+ def initialize(director_uri, user = nil, password = nil, options = {})
22
25
  if director_uri.nil? || director_uri =~ /^\s*$/
23
26
  raise DirectorMissing, "no director URI given"
24
27
  end
@@ -26,6 +29,7 @@ module Bosh
26
29
  @director_uri = director_uri
27
30
  @user = user
28
31
  @password = password
32
+ @track_tasks = !options.delete(:no_track)
29
33
  end
30
34
 
31
35
  def uuid
@@ -94,7 +98,6 @@ module Bosh
94
98
  end
95
99
 
96
100
  def list_recent_tasks(count = 30, verbose = 1)
97
- count = [count.to_i, 100].min
98
101
  get_json("/tasks?limit=#{count}&verbose=#{verbose}")
99
102
  end
100
103
 
@@ -407,7 +410,13 @@ module Bosh
407
410
  else
408
411
  new_offset = nil
409
412
  end
410
- [body, new_offset]
413
+
414
+ # backward compatible with renaming soap log to cpi log
415
+ if response_code == 204 && log_type == "cpi"
416
+ get_task_output(task_id, offset, "soap")
417
+ else
418
+ [body, new_offset]
419
+ end
411
420
  end
412
421
 
413
422
  def cancel_task(task_id)
@@ -443,8 +452,12 @@ module Bosh
443
452
  if redirected
444
453
  if location =~ /\/tasks\/(\d+)\/?$/ # Looks like we received task URI
445
454
  task_id = $1
446
- tracker = Bosh::Cli::TaskTracker.new(self, task_id, track_opts)
447
- status = tracker.track
455
+ if @track_tasks
456
+ tracker = Bosh::Cli::TaskTracker.new(self, task_id, track_opts)
457
+ status = tracker.track
458
+ else
459
+ status = :running
460
+ end
448
461
  else
449
462
  status = :non_trackable
450
463
  end
@@ -93,9 +93,13 @@ module Bosh::Cli
93
93
 
94
94
  if need_fetch
95
95
  say("Downloading `#{name} (#{version})'...".green)
96
- payload = @blobstore.get(blobstore_id)
97
- if Digest::SHA1.hexdigest(payload) == item["sha1"]
98
- @tarball_path = @final_index.add_version(fingerprint, item, payload)
96
+ tmp_file = File.open(File.join(Dir.mktmpdir, name), "w")
97
+ @blobstore.get(blobstore_id, tmp_file)
98
+ tmp_file.close
99
+ if Digest::SHA1.file(tmp_file.path).hexdigest == item["sha1"]
100
+ @tarball_path = @final_index.add_version(fingerprint,
101
+ item,
102
+ tmp_file.path)
99
103
  else
100
104
  err("`#{name}' (#{version}) is corrupted in blobstore " +
101
105
  "(id=#{blobstore_id}), " +
@@ -167,14 +171,12 @@ module Bosh::Cli
167
171
  end
168
172
  end
169
173
 
170
- payload = tmp_file.read
171
-
172
174
  item = {
173
175
  "version" => version
174
176
  }
175
177
 
176
178
  unless dry_run?
177
- @dev_index.add_version(fingerprint, item, payload)
179
+ @dev_index.add_version(fingerprint, item, tmp_file.path)
178
180
  @tarball_path = @dev_index.filename(version)
179
181
  end
180
182
 
@@ -189,16 +191,17 @@ module Bosh::Cli
189
191
 
190
192
  say("Uploading final version #{version}...")
191
193
 
192
- if !item.nil?
193
- version = item["version"]
194
+ if item
194
195
  say("This package has already been uploaded")
195
196
  return
196
197
  end
197
198
 
198
199
  version = @final_index.latest_version.to_i + 1
199
- payload = File.read(path)
200
200
 
201
- blobstore_id = @blobstore.create(payload)
201
+ blobstore_id = nil
202
+ File.open(path, "r") do |f|
203
+ blobstore_id = @blobstore.create(f)
204
+ end
202
205
 
203
206
  item = {
204
207
  "blobstore_id" => blobstore_id,
@@ -206,7 +209,7 @@ module Bosh::Cli
206
209
  }
207
210
 
208
211
  say("Uploaded, blobstore id #{blobstore_id}")
209
- @final_index.add_version(fingerprint, item, payload)
212
+ @final_index.add_version(fingerprint, item, path)
210
213
  @tarball_path = @final_index.filename(version)
211
214
  @version = version
212
215
  @promoted = true
@@ -135,7 +135,13 @@ module Bosh::Cli
135
135
  # and merges it into the blobstore options.
136
136
  def merge_private_data(provider, options)
137
137
  bs = @private_config["blobstore"]
138
- options.merge(bs ? bs[provider] : {})
138
+ return options unless bs
139
+
140
+ if bs[provider].nil? && has_blobstore_secret?
141
+ err("blobstore private provider does not match final provider")
142
+ end
143
+
144
+ options.merge(bs[provider] ? bs[provider] : {})
139
145
  end
140
146
 
141
147
  # stores blobstore_secret as blobstore.atmos.secret
@@ -38,8 +38,8 @@ module Bosh::Cli
38
38
  Config.interactive = !@options[:non_interactive]
39
39
  Config.cache = Bosh::Cli::Cache.new(@options[:cache_dir])
40
40
 
41
- build_parse_tree
42
41
  load_plugins
42
+ build_parse_tree
43
43
  add_shortcuts
44
44
 
45
45
  if @args.empty?
@@ -252,4 +252,4 @@ module Bosh::Cli
252
252
  search_parse_tree(@parse_tree)
253
253
  end
254
254
  end
255
- end
255
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Bosh
4
4
  module Cli
5
- VERSION = "1.0.rc1"
5
+ VERSION = "1.0"
6
6
  end
7
7
  end
@@ -54,7 +54,7 @@ module Bosh::Cli
54
54
  File.exists?(filename(version))
55
55
  end
56
56
 
57
- def add_version(fingerprint, item, payload = nil)
57
+ def add_version(fingerprint, item, tmp_file_path = nil)
58
58
  version = item["version"]
59
59
 
60
60
  if version.blank?
@@ -64,10 +64,8 @@ module Bosh::Cli
64
64
 
65
65
  create_directories
66
66
 
67
- if payload
68
- File.open(filename(version), "w") do |f|
69
- f.write(payload)
70
- end
67
+ if tmp_file_path
68
+ FileUtils.cp(tmp_file_path, filename(version), :preserve => true)
71
69
  end
72
70
 
73
71
  @data["builds"].each_pair do |fp, build|
@@ -78,8 +76,9 @@ module Bosh::Cli
78
76
  end
79
77
 
80
78
  @data["builds"][fingerprint] = item
81
- if payload
82
- @data["builds"][fingerprint]["sha1"] = Digest::SHA1.hexdigest(payload)
79
+ if tmp_file_path
80
+ file_sha1 = Digest::SHA1.file(tmp_file_path).hexdigest
81
+ @data["builds"][fingerprint]["sha1"] = file_sha1
83
82
  end
84
83
 
85
84
  File.open(@index_file, "w") do |f|
@@ -0,0 +1,5 @@
1
+ ---
2
+ blobstore:
3
+ provider: s3
4
+ options:
5
+ bucket_name: test
@@ -0,0 +1,4 @@
1
+ ---
2
+ blobstore:
3
+ atmos:
4
+ secret: bar
@@ -0,0 +1,5 @@
1
+ ---
2
+ blobstore:
3
+ provider: local
4
+ options:
5
+ blobstore_path: /tmp/blobstore
@@ -18,3 +18,11 @@ RSpec.configure do |c|
18
18
 
19
19
  c.color_enabled = true
20
20
  end
21
+
22
+ def get_tmp_file_path(content)
23
+ tmp_file = File.open(File.join(Dir.mktmpdir, "tmp"), "w")
24
+ tmp_file.write(content)
25
+ tmp_file.close
26
+
27
+ tmp_file.path
28
+ end
@@ -112,7 +112,7 @@ describe Bosh::Cli::Director do
112
112
  @director.list_recent_tasks
113
113
 
114
114
  @director.should_receive(:get).
115
- with("/tasks?limit=100&verbose=1", "application/json").
115
+ with("/tasks?limit=100000&verbose=1", "application/json").
116
116
  and_return([200, JSON.generate([]), {}])
117
117
  @director.list_recent_tasks(100000)
118
118
 
@@ -283,6 +283,31 @@ describe Bosh::Cli::Director do
283
283
  should == ["polling result", "502"]
284
284
  end
285
285
 
286
+ describe "not tracking trackable requests" do
287
+ it "returns without tracking/polling task if request responded with a redirect to task URL" do
288
+ options = { :arg1 => 1, :arg2 => 2 }
289
+
290
+ @director = Bosh::Cli::Director.new(DUMMY_TARGET, "user", "pass", :no_track => true)
291
+
292
+ @director.should_receive(:request).
293
+ with(:get, "/stuff", "text/plain", "abc").
294
+ and_return([302, "body", { :location => "/tasks/502" }])
295
+
296
+ tracker = mock("tracker", :track => "polling result", :output => "foo")
297
+
298
+ Bosh::Cli::TaskTracker.should_receive(:new).
299
+ with(@director, "502", options).
300
+ never
301
+
302
+ @director.request_and_track(:get, "/stuff",
303
+ {:content_type => "text/plain",
304
+ :payload => "abc",
305
+ :arg1 => 1, :arg2 => 2
306
+ }).
307
+ should == [:running, "502"]
308
+ end
309
+ end
310
+
286
311
  it "considers all responses but 302 a failure" do
287
312
  [200, 404, 403].each do |code|
288
313
  @director.should_receive(:request).
@@ -321,10 +321,11 @@ describe Bosh::Cli::JobBuilder do
321
321
 
322
322
  final_versions.add_version(fingerprint,
323
323
  { "version" => "4", "blobstore_id" => "12321" },
324
- "payload")
324
+ get_tmp_file_path("payload"))
325
+
325
326
  dev_versions.add_version(fingerprint,
326
327
  { "version" => "0.7-dev" },
327
- "dev_payload")
328
+ get_tmp_file_path("dev_payload"))
328
329
 
329
330
  builder = new_builder("foo", [], ["bar", "baz"], [])
330
331
 
@@ -226,10 +226,10 @@ describe Bosh::Cli::PackageBuilder, "dev build" do
226
226
 
227
227
  final_versions.add_version(fingerprint,
228
228
  { "version" => "4", "blobstore_id" => "12321" },
229
- "payload")
229
+ get_tmp_file_path("payload"))
230
230
  dev_versions.add_version(fingerprint,
231
231
  { "version" => "0.7-dev" },
232
- "dev_payload")
232
+ get_tmp_file_path("dev_payload"))
233
233
 
234
234
  builder = make_builder("bar", globs)
235
235
  builder.fingerprint.should == fingerprint
@@ -371,13 +371,17 @@ describe Bosh::Cli::PackageBuilder, "dev build" do
371
371
  builder.build
372
372
 
373
373
  final_index = Bosh::Cli::VersionsIndex.new(final_builds_dir)
374
- final_index.add_version("deadbeef", { "version" => 34 }, "payload")
374
+ final_index.add_version("deadbeef",
375
+ { "version" => 34 },
376
+ get_tmp_file_path("payload"))
375
377
 
376
378
  add_file("src", "foo/foo14.rb")
377
379
  builder.reload.build
378
380
  builder.version.should == "34.1-dev"
379
381
 
380
- final_index.add_version("deadbeef2", { "version" => 37 }, "payload")
382
+ final_index.add_version("deadbeef2",
383
+ { "version" => 37 },
384
+ get_tmp_file_path("payload"))
381
385
 
382
386
  add_file("src", "foo/foo15.rb")
383
387
  builder.reload.build
@@ -389,7 +393,9 @@ describe Bosh::Cli::PackageBuilder, "dev build" do
389
393
 
390
394
  FileUtils.rm_rf(final_builds_dir)
391
395
  final_index = Bosh::Cli::VersionsIndex.new(final_builds_dir)
392
- final_index.add_version("deadbeef3", { "version" => 34 }, "payload")
396
+ final_index.add_version("deadbeef3",
397
+ { "version" => 34 },
398
+ get_tmp_file_path("payload"))
393
399
 
394
400
  add_file("src", "foo/foo17.rb")
395
401
  builder.reload.build
@@ -69,13 +69,17 @@ describe Bosh::Cli::ReleaseBuilder do
69
69
  final_index = Bosh::Cli::VersionsIndex.new(File.join(@release_dir,
70
70
  "releases"))
71
71
 
72
- final_index.add_version("deadbeef", { "version" => 2 }, "payload")
72
+ final_index.add_version("deadbeef",
73
+ { "version" => 2 },
74
+ get_tmp_file_path("payload"))
73
75
 
74
76
  builder = new_builder
75
77
  builder.version.should == "2.1-dev"
76
78
  builder.build
77
79
 
78
- final_index.add_version("deadbeef", { "version" => 7 }, "payload")
80
+ final_index.add_version("deadbeef",
81
+ { "version" => 7 },
82
+ get_tmp_file_path("payload"))
79
83
  builder = new_builder
80
84
  builder.version.should == "7.1-dev"
81
85
  end
@@ -151,5 +151,23 @@ describe Bosh::Cli::Release do
151
151
  r = Bosh::Cli::Release.new(spec_asset("config/swift-rackspace"))
152
152
  r.has_blobstore_secret?.should be_true
153
153
  end
154
+
155
+ it "should not throw an error when merging empty secrets into options" do
156
+ r = Bosh::Cli::Release.new(spec_asset("config/local"))
157
+ opts = {
158
+ :blobstore_path => "/tmp/blobstore"
159
+ }
160
+ Bosh::Blobstore::Client.should_receive(:create).with("local", opts)
161
+ r.blobstore
162
+ end
163
+
164
+ it "throws an error when blobstore providers does not match" do
165
+ r = Bosh::Cli::Release.new(spec_asset("config/bad-providers"))
166
+ expect {
167
+ r.blobstore
168
+ }.to raise_error(Bosh::Cli::CliError, "blobstore private provider " +
169
+ "does not match final provider")
170
+
171
+ end
154
172
  end
155
173
  end
@@ -21,7 +21,9 @@ describe Bosh::Cli::VersionsIndex do
21
21
  @index.latest_version.should be_nil
22
22
  File.exists?(@index_file).should be_false
23
23
 
24
- @index.add_version("deadcafe", { "version" => 2 }, "payload2")
24
+ @index.add_version("deadcafe",
25
+ { "version" => 2 },
26
+ get_tmp_file_path("payload2"))
25
27
  File.exists?(@index_file).should be_true
26
28
  end
27
29
 
@@ -44,8 +46,13 @@ describe Bosh::Cli::VersionsIndex do
44
46
  it "can be used to add versioned payloads to index" do
45
47
  item1 = { "a" => 1, "b" => 2, "version" => 1 }
46
48
  item2 = { "a" => 3, "b" => 4, "version" => 2 }
47
- @index.add_version("deadbeef", item1, "payload1")
48
- @index.add_version("deadcafe", item2, "payload2")
49
+
50
+ @index.add_version("deadbeef",
51
+ item1,
52
+ get_tmp_file_path("payload1"))
53
+ @index.add_version("deadcafe",
54
+ item2,
55
+ get_tmp_file_path("payload2"))
49
56
 
50
57
  @index.latest_version.should == 2
51
58
  @index["deadbeef"].should ==
@@ -73,12 +80,14 @@ describe Bosh::Cli::VersionsIndex do
73
80
  item2 = { "a" => 3, "b" => 4, "version" => 2 }
74
81
  item3 = { "a" => 3, "b" => 4, "version" => 3 }
75
82
 
76
- @index.add_version("deadbeef", item1, "payload1")
77
- @index.add_version("deadcafe", item2, "payload2")
83
+ @index.add_version("deadbeef", item1, get_tmp_file_path("payload1"))
84
+ @index.add_version("deadcafe", item2, get_tmp_file_path("payload2"))
78
85
  @index.latest_version.should == 2
79
- @index.add_version("addedface", item3, "payload2")
86
+ @index.add_version("addedface", item3, get_tmp_file_path("payload2"))
80
87
  @index.latest_version.should == 3
81
- @index.add_version("facedbeef", item1.merge("version" => "1.5"), "payload3")
88
+ @index.add_version("facedbeef",
89
+ item1.merge("version" => "1.5"),
90
+ get_tmp_file_path("payload3"))
82
91
  @index.latest_version.should == 3
83
92
  end
84
93
 
@@ -87,12 +96,14 @@ describe Bosh::Cli::VersionsIndex do
87
96
  item2 = { "a" => 3, "b" => 4, "version" => "1.8-dev" }
88
97
  item3 = { "a" => 3, "b" => 4, "version" => "1.10-dev" }
89
98
 
90
- @index.add_version("deadbeef", item1, "payload1")
91
- @index.add_version("deadcafe", item2, "payload2")
99
+ @index.add_version("deadbeef", item1, get_tmp_file_path("payload1"))
100
+ @index.add_version("deadcafe", item2, get_tmp_file_path("payload2"))
92
101
  @index.latest_version.should == "1.9-dev"
93
- @index.add_version("facedead", item3, "payload2")
102
+ @index.add_version("facedead", item3, get_tmp_file_path("payload2"))
94
103
  @index.latest_version.should == "1.10-dev"
95
- @index.add_version("badbed", item1.merge("version" => "2.15-dev"), "payload3")
104
+ @index.add_version("badbed",
105
+ item1.merge("version" => "2.15-dev"),
106
+ get_tmp_file_path("payload3"))
96
107
  @index.latest_version.should == "2.15-dev"
97
108
  end
98
109
 
@@ -100,10 +111,10 @@ describe Bosh::Cli::VersionsIndex do
100
111
  item1 = { "a" => 1, "b" => 2, "version" => "1.9-dev" }
101
112
  item2 = { "a" => 3, "b" => 4, "version" => "1.8-dev" }
102
113
 
103
- @index.add_version("deadbeef", item1, "payload1")
114
+ @index.add_version("deadbeef", item1, get_tmp_file_path("payload1"))
104
115
 
105
116
  lambda {
106
- @index.add_version("deadcafe", item1, "payload3")
117
+ @index.add_version("deadcafe", item1, get_tmp_file_path("payload3"))
107
118
  }.should raise_error("Trying to add duplicate version `1.9-dev' " +
108
119
  "into index `#{File.join(@dir, "index.yml")}'")
109
120
  end
@@ -112,8 +123,8 @@ describe Bosh::Cli::VersionsIndex do
112
123
  item1 = { "a" => 1, "b" => 2, "version" => 1 }
113
124
  item2 = { "a" => 3, "b" => 4, "version" => 2 }
114
125
 
115
- @index.add_version("deadbeef", item1, "payload1")
116
- @index.add_version("deadcafe", item2, "payload2")
126
+ @index.add_version("deadbeef", item1, get_tmp_file_path("payload1"))
127
+ @index.add_version("deadcafe", item2, get_tmp_file_path("payload2"))
117
128
 
118
129
  checksum1 = Digest::SHA1.hexdigest("payload1")
119
130
  checksum2 = Digest::SHA1.hexdigest("payload2")
@@ -124,8 +135,9 @@ describe Bosh::Cli::VersionsIndex do
124
135
 
125
136
  it "supports name prefix" do
126
137
  item = { "a" => 1, "b" => 2, "version" => 1 }
138
+
127
139
  @index = Bosh::Cli::VersionsIndex.new(@dir, "foobar")
128
- @index.add_version("deadbeef", item, "payload1")
140
+ @index.add_version("deadbeef", item, get_tmp_file_path("payload1"))
129
141
  @index.filename(1).should == File.join(@dir, "foobar-1.tgz")
130
142
  end
131
143
 
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bosh_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.rc1
5
- prerelease: 4
4
+ version: '1.0'
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - VMware
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-05 00:00:00.000000000 Z
12
+ date: 2012-10-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bosh_common
@@ -272,8 +272,12 @@ files:
272
272
  - spec/assets/biff/properties_template.erb
273
273
  - spec/assets/config/atmos/config/final.yml
274
274
  - spec/assets/config/atmos/config/private.yml
275
+ - spec/assets/config/bad-providers/config/final.yml
276
+ - spec/assets/config/bad-providers/config/private.yml
275
277
  - spec/assets/config/deprecation/config/final.yml
276
278
  - spec/assets/config/deprecation/config/private.yml
279
+ - spec/assets/config/local/config/final.yml
280
+ - spec/assets/config/local/config/private.yml
277
281
  - spec/assets/config/s3/config/final.yml
278
282
  - spec/assets/config/s3/config/private.yml
279
283
  - spec/assets/config/swift-hp/config/final.yml
@@ -351,13 +355,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
351
355
  version: '0'
352
356
  segments:
353
357
  - 0
354
- hash: -4439490482070871500
358
+ hash: 418421310911129524
355
359
  required_rubygems_version: !ruby/object:Gem::Requirement
356
360
  none: false
357
361
  requirements:
358
- - - ! '>'
362
+ - - ! '>='
359
363
  - !ruby/object:Gem::Version
360
- version: 1.3.1
364
+ version: '0'
365
+ segments:
366
+ - 0
367
+ hash: 418421310911129524
361
368
  requirements: []
362
369
  rubyforge_project:
363
370
  rubygems_version: 1.8.24
@@ -379,8 +386,12 @@ test_files:
379
386
  - spec/assets/biff/properties_template.erb
380
387
  - spec/assets/config/atmos/config/final.yml
381
388
  - spec/assets/config/atmos/config/private.yml
389
+ - spec/assets/config/bad-providers/config/final.yml
390
+ - spec/assets/config/bad-providers/config/private.yml
382
391
  - spec/assets/config/deprecation/config/final.yml
383
392
  - spec/assets/config/deprecation/config/private.yml
393
+ - spec/assets/config/local/config/final.yml
394
+ - spec/assets/config/local/config/private.yml
384
395
  - spec/assets/config/s3/config/final.yml
385
396
  - spec/assets/config/s3/config/private.yml
386
397
  - spec/assets/config/swift-hp/config/final.yml