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 +4 -4
- data/lib/bits_service_client/client.rb +31 -28
- data/lib/bits_service_client/version.rb +1 -1
- metadata +4 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 44e82c59bafd111f31c71bee2ad4394f96114289
         | 
| 4 | 
            +
              data.tar.gz: 345531e83292d27d85d041c7cd9f9ccbbcecf06f
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 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 | 
            -
                   | 
| 37 | 
            -
             | 
| 38 | 
            -
                     | 
| 39 | 
            -
             | 
| 40 | 
            -
                     | 
| 41 | 
            -
                       | 
| 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 | 
            -
             | 
| 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 | 
            -
             | 
| 50 | 
            -
             | 
| 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
         | 
    
        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. | 
| 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- | 
| 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:  | 
| 200 | 
            +
                  version: 1.3.1
         | 
| 201 201 | 
             
            requirements: []
         | 
| 202 202 | 
             
            rubyforge_project: 
         | 
| 203 203 | 
             
            rubygems_version: 2.6.14.1
         |