bits_service_client 3.1.0 → 3.2.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: 44fbc9a0fec22bc71ed1ca9e9decf630b8b81873
4
- data.tar.gz: 838f854375bd5f408bdb6c9d5f446fd620ec5efd
3
+ metadata.gz: 44e82c59bafd111f31c71bee2ad4394f96114289
4
+ data.tar.gz: 345531e83292d27d85d041c7cd9f9ccbbcecf06f
5
5
  SHA512:
6
- metadata.gz: d2b6485026adc2db6b381bac0f3c74677ef6adbdd51e3e350ccf32f443a96a80e16d363385af268bca7f4a16a8f1ca9096bfe10add56ae992f0e71b7843c2865
7
- data.tar.gz: e05527c375042d04fa43a9d0c3337ce09ce2ebb5d66f1dddc1615638ae9f9d96c7ed468857dce74f125ee4f84941718e4723c9d8abded15c7d015004a0326daf
6
+ metadata.gz: 94d69cc843e90f3a66fe03181d93a6454f3ec35549efbc32ed441febd0d07dbb9ef6976f01c3c850684a3992db7c89ff9c816d1b50f65c1c2df455e597314279
7
+ data.tar.gz: fbe522713d8379704f999fe0b2ca80cbef68d7bd417b3c0c3e7c4336bf1e94cbdb3b9537a708e2993d558f8e92ce0ebf5d1719c8f7d2d6495b255433089ef1e2
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
  require 'active_support/inflector'
3
3
  require 'bits_service_client/logging_http_client'
4
+ require 'tmpdir'
5
+ require "open3"
4
6
 
5
7
  module BitsService
6
8
  class Client
@@ -33,29 +35,39 @@ module BitsService
33
35
  end
34
36
 
35
37
  def cp_to_blobstore(source_path, destination_key, resources: nil)
36
- filename = File.basename(source_path)
37
- with_file_attachment!(source_path, filename) do |file_attachment|
38
- body = { :"#{@resource_type.to_s.singularize}" => file_attachment }
39
-
40
- if resources != nil
41
- body[:resources] = resources.to_json
38
+ if source_path.to_s.empty?
39
+ file = Tempfile.new(['empty', '.zip'])
40
+ source_path = file.path
41
+ file.close!
42
+ Dir.mktmpdir do |dir|
43
+ output, error, status = Open3.capture3(%(/usr/bin/zip #{source_path} #{dir}))
44
+ unless status.success?
45
+ logger.error("Could not create a zip with no contents.\n STDOUT: \"#{output}\"\n STDERR: \"#{error}\"")
46
+ raise Errors::Error.new('Could not create a zip with no contents')
47
+ end
42
48
  end
49
+ end
43
50
 
44
- response = @private_http_client.do_request(Net::HTTP::Put::Multipart.new(resource_path(destination_key), body), @vcap_request_id)
45
- validate_response_code!(201, response)
46
- if response.body == nil
47
- logger.error("UnexpectedMissingBody: expected body with json payload. Got empty body.")
51
+ body = { :"#{@resource_type.to_s.singularize}" => UploadIO.new(source_path, 'application/octet-stream') }
48
52
 
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
53
+ if resources != nil
54
+ body[:resources] = resources.to_json
58
55
  end
56
+
57
+ response = @private_http_client.do_request(Net::HTTP::Put::Multipart.new(resource_path(destination_key), body), @vcap_request_id)
58
+ validate_response_code!(201, response)
59
+ if response.body == nil
60
+ logger.error("UnexpectedMissingBody: expected body with json payload. Got empty body.")
61
+
62
+ fail BlobstoreError.new({
63
+ response_code: response.code,
64
+ response_body: response.body,
65
+ response: response
66
+ }.to_json)
67
+ end
68
+ shas = JSON.parse(response.body, symbolize_names: true)
69
+ validate_keys_present!([:sha1, :sha256], shas, response)
70
+ return shas
59
71
  end
60
72
 
61
73
  def download_from_blobstore(source_key, destination_path, mode: nil)
@@ -204,15 +216,6 @@ module BitsService
204
216
  File.join('/', prefix.to_s, guid.to_s)
205
217
  end
206
218
 
207
- def with_file_attachment!(file_path, filename, &block)
208
- raise Errors::FileDoesNotExist.new("Could not find file: #{file_path}") unless File.exist?(file_path)
209
-
210
- File.open(file_path) do |file|
211
- attached_file = UploadIO.new(file, 'application/octet-stream', filename)
212
- yield attached_file
213
- end
214
- end
215
-
216
219
  def endpoint(http_client)
217
220
  http_client == @public_http_client ? @public_endpoint : @private_endpoint
218
221
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BitsServiceClient
4
- VERSION = '3.1.0'
4
+ VERSION = '3.2.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.1.0
4
+ version: 3.2.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-24 00:00:00.000000000 Z
14
+ date: 2018-08-02 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