bits_service_client 3.0.0 → 3.1.0.pre.1

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: 2ddf6f08436e197dd4999bcb2e83383f9197f37d
4
- data.tar.gz: 14b23baef1291ab9c5073fd1f1538c19f5725117
3
+ metadata.gz: 36c579d11e320d6830b9b0807fe317c789f141e0
4
+ data.tar.gz: 00fdeb4d73f389bd3496ea13bb63cebb55a589fe
5
5
  SHA512:
6
- metadata.gz: cb1c9310512e9c7c70fd1eb8057d0a19e82d30ecdadbd1053c5ce3ebc51f5f71756bef53d264d3885fc7e5c6291035c06f4c164386be2f9984f2abde7add17e6
7
- data.tar.gz: c00d24d0ec2e7f84d688392ca77d37ece64f5fae25e28d3eba63115c409d1ab91226ab900906347c7111d1717271e613adbe2e636cf9093932c455c0b2c84fc4
6
+ metadata.gz: 42cf583b2c1e53c366d1b6056c5a3a1608641d96082e67ddcba91e2dca8e2219e6b5ea3093c3ca176967874d96f8dab9321d94637e0c1f381111eb7e43300916
7
+ data.tar.gz: 03b2046aad0bbc31cd19330bb1c3f21a86f10bd6611472694dbf521acb74f76cc8e22b719cdd425cb092dc97d118e872bf9ad6173f0d631e6c4f83fcfccf9047
@@ -32,12 +32,29 @@ module BitsService
32
32
  response.code.to_i != 404
33
33
  end
34
34
 
35
- def cp_to_blobstore(source_path, destination_key)
35
+ def cp_to_blobstore(source_path, destination_key, resources: nil)
36
36
  filename = File.basename(source_path)
37
37
  with_file_attachment!(source_path, filename) do |file_attachment|
38
38
  body = { :"#{@resource_type.to_s.singularize}" => file_attachment }
39
+
40
+ if resources != nil
41
+ body[:resources] = resources.to_json
42
+ end
43
+
39
44
  response = @private_http_client.do_request(Net::HTTP::Put::Multipart.new(resource_path(destination_key), body), @vcap_request_id)
40
45
  validate_response_code!(201, response)
46
+ if response.body == nil
47
+ logger.error("UnexpectedMissingBody: expected body with json payload. Got empty body.")
48
+
49
+ fail BlobstoreError.new({
50
+ response_code: response.code,
51
+ response_body: response.body,
52
+ response: response
53
+ }.to_json)
54
+ end
55
+ shas = JSON.parse(response.body, symbolize_names: true)
56
+ validate_keys_present!([:sha1, :sha256], shas, response)
57
+ return shas
41
58
  end
42
59
  end
43
60
 
@@ -170,6 +187,18 @@ module BitsService
170
187
  fail BlobstoreError.new(error)
171
188
  end
172
189
 
190
+ def validate_keys_present!(expected_keys, map, response)
191
+ return if expected_keys.all? { |expected_key| map.keys.include?(expected_key) }
192
+
193
+ logger.error("UnexpectedResponseBody: expected json with keys '#{expected_keys}'. Got #{map}")
194
+
195
+ fail BlobstoreError.new({
196
+ response_code: response.code,
197
+ response_body: response.body,
198
+ response: response
199
+ }.to_json)
200
+ end
201
+
173
202
  def resource_path(guid)
174
203
  prefix = resource_type == :buildpack_cache ? 'buildpack_cache/entries/' : resource_type
175
204
  File.join('/', prefix.to_s, guid.to_s)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BitsServiceClient
4
- VERSION = '3.0.0'
4
+ VERSION = '3.1.0.pre.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bits_service_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.1.0.pre.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rizwan Reza
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2018-07-11 00:00:00.000000000 Z
14
+ date: 2018-07-17 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activesupport
@@ -195,9 +195,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
195
195
  version: '0'
196
196
  required_rubygems_version: !ruby/object:Gem::Requirement
197
197
  requirements:
198
- - - ">="
198
+ - - ">"
199
199
  - !ruby/object:Gem::Version
200
- version: '0'
200
+ version: 1.3.1
201
201
  requirements: []
202
202
  rubyforge_project:
203
203
  rubygems_version: 2.6.14.1