bits_service_client 3.0.0 → 3.1.0.pre.1

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.
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