uricp 0.0.15 → 0.0.16
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/.rubocop.yml +3 -0
- data/Gemfile.lock +1 -8
- data/Jenkinsfile +27 -0
- data/Rakefile +19 -36
- data/bionic/Dockerfile +2 -2
- data/centos7/Dockerfile +2 -2
- data/features/step_definitions/orbit_steps.rb +11 -4
- data/lib/segment_upload.rb +20 -22
- data/lib/uricp.rb +3 -3
- data/lib/uricp/curl_primitives.rb +31 -33
- data/lib/uricp/orbit_auth.rb +23 -27
- data/lib/uricp/segmenter.rb +12 -16
- data/lib/uricp/strategy/cache_common.rb +11 -11
- data/lib/uricp/strategy/cached_get.rb +14 -20
- data/lib/uricp/strategy/cleaner.rb +2 -8
- data/lib/uricp/strategy/common.rb +25 -18
- data/lib/uricp/strategy/local_convert.rb +9 -16
- data/lib/uricp/strategy/local_link.rb +10 -8
- data/lib/uricp/strategy/piped_cache.rb +7 -13
- data/lib/uricp/strategy/piped_cache_convert.rb +14 -18
- data/lib/uricp/strategy/piped_compress.rb +3 -8
- data/lib/uricp/strategy/piped_decompress.rb +7 -11
- data/lib/uricp/strategy/piped_local_compress.rb +0 -4
- data/lib/uricp/strategy/piped_local_decompress.rb +10 -16
- data/lib/uricp/strategy/piped_local_get.rb +0 -5
- data/lib/uricp/strategy/piped_local_put.rb +3 -9
- data/lib/uricp/strategy/piped_rbd_get.rb +44 -0
- data/lib/uricp/strategy/piped_remote_get.rb +20 -20
- data/lib/uricp/strategy/rbd_remote_put.rb +36 -0
- data/lib/uricp/strategy/rbd_sweeper.rb +22 -0
- data/lib/uricp/strategy/remote_put.rb +11 -17
- data/lib/uricp/strategy/segmented_remote_put.rb +16 -28
- data/lib/uricp/strategy/sweeper.rb +2 -8
- data/lib/uricp/uri_strategy.rb +14 -13
- data/lib/uricp/version.rb +2 -2
- data/trusty/Dockerfile +2 -2
- data/uricp.gemspec +0 -1
- data/xenial/Dockerfile +2 -2
- metadata +7 -20
- data/spec/something_spec.rb +0 -5
| @@ -1,13 +1,10 @@ | |
| 1 1 | 
             
            module Uricp::Strategy
         | 
| 2 | 
            -
              
         | 
| 3 2 | 
             
              class Sweeper
         | 
| 4 | 
            -
             | 
| 5 3 | 
             
                include Uricp::Strategy::Common
         | 
| 6 4 |  | 
| 7 5 | 
             
                def appropriate?
         | 
| 8 | 
            -
                  if options['sweep'] && sequence_complete?
         | 
| 9 | 
            -
             | 
| 10 | 
            -
                  end
         | 
| 6 | 
            +
                  return proposal if options['sweep'] && sequence_complete?
         | 
| 7 | 
            +
             | 
| 11 8 | 
             
                  debug "#{self.class.name}: not appropriate"
         | 
| 12 9 | 
             
                  false
         | 
| 13 10 | 
             
                end
         | 
| @@ -21,8 +18,5 @@ module Uricp::Strategy | |
| 21 18 | 
             
                  @proposed_options.delete('sweep')
         | 
| 22 19 | 
             
                  self
         | 
| 23 20 | 
             
                end
         | 
| 24 | 
            -
             | 
| 25 21 | 
             
              end
         | 
| 26 | 
            -
             | 
| 27 22 | 
             
            end
         | 
| 28 | 
            -
             | 
    
        data/lib/uricp/uri_strategy.rb
    CHANGED
    
    | @@ -1,20 +1,21 @@ | |
| 1 1 | 
             
            require 'uri'
         | 
| 2 2 |  | 
| 3 3 | 
             
            module Uricp
         | 
| 4 | 
            -
             | 
| 5 4 | 
             
              class UriStrategy
         | 
| 6 | 
            -
             | 
| 7 5 | 
             
                include Methadone::CLILogging
         | 
| 8 6 |  | 
| 9 7 | 
             
                def self.choose_strategy(options)
         | 
| 10 | 
            -
                  current = options.reject {|k, | 
| 8 | 
            +
                  current = options.reject { |k, _v| k.is_a? Symbol }
         | 
| 11 9 | 
             
                  strategy_list = []
         | 
| 12 | 
            -
                  while STRATEGIES.detect {|klass| @strategy = klass.new(current).appropriate? }
         | 
| 13 | 
            -
             | 
| 10 | 
            +
                  while STRATEGIES.detect { |klass| @strategy = klass.new(current).appropriate? }
         | 
| 11 | 
            +
                    debug "#{name}: Selected strategy #{@strategy.class.name}"
         | 
| 14 12 | 
             
                    strategy_list << @strategy
         | 
| 15 | 
            -
             | 
| 13 | 
            +
                    current = @strategy.proposed_options
         | 
| 14 | 
            +
                  end
         | 
| 15 | 
            +
                  if incomplete_strategy?(strategy_list)
         | 
| 16 | 
            +
                    raise Uricp::UnsupportedURLtype, "Unsupported transfer from #{options['from_uri']} to #{options['to_uri']}"
         | 
| 16 17 | 
             
                  end
         | 
| 17 | 
            -
             | 
| 18 | 
            +
             | 
| 18 19 | 
             
                  strategy_list
         | 
| 19 20 | 
             
                end
         | 
| 20 21 |  | 
| @@ -22,12 +23,11 @@ module Uricp | |
| 22 23 | 
             
                  list.empty?
         | 
| 23 24 | 
             
                end
         | 
| 24 25 |  | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
                #This is an ordered list from the most specific to the most general
         | 
| 26 | 
            +
                # This is an ordered list from the most specific to the most general
         | 
| 28 27 | 
             
                STRATEGIES = [
         | 
| 29 28 | 
             
                  Strategy::CachedGet,
         | 
| 30 29 | 
             
                  Strategy::PipedRemoteGet,
         | 
| 30 | 
            +
                  Strategy::PipedRbdGet,
         | 
| 31 31 | 
             
                  Strategy::PipedCacheConvert,
         | 
| 32 32 | 
             
                  Strategy::PipedCache,
         | 
| 33 33 | 
             
                  Strategy::PipedLocalDecompress,
         | 
| @@ -35,14 +35,15 @@ module Uricp | |
| 35 35 | 
             
                  Strategy::LocalConvert,
         | 
| 36 36 | 
             
                  Strategy::LocalLink,
         | 
| 37 37 | 
             
                  Strategy::PipedCompress,
         | 
| 38 | 
            +
                  Strategy::RbdRemotePut,
         | 
| 38 39 | 
             
                  Strategy::SegmentedRemotePut,
         | 
| 39 40 | 
             
                  Strategy::RemotePut,
         | 
| 40 41 | 
             
                  Strategy::PipedLocalCompress,
         | 
| 41 42 | 
             
                  Strategy::PipedLocalGet,
         | 
| 42 43 | 
             
                  Strategy::PipedLocalPut,
         | 
| 43 44 | 
             
                  Strategy::Cleaner,
         | 
| 44 | 
            -
                  Strategy:: | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 45 | 
            +
                  Strategy::RbdSweeper,
         | 
| 46 | 
            +
                  Strategy::Sweeper
         | 
| 47 | 
            +
                ].freeze
         | 
| 47 48 | 
             
              end
         | 
| 48 49 | 
             
            end
         | 
    
        data/lib/uricp/version.rb
    CHANGED
    
    
    
        data/trusty/Dockerfile
    CHANGED
    
    | @@ -13,8 +13,8 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y -qq \ | |
| 13 13 | 
             
              curl \
         | 
| 14 14 | 
             
              ruby1.9.3 \
         | 
| 15 15 | 
             
              ruby-dev \
         | 
| 16 | 
            -
              python-swiftclient
         | 
| 16 | 
            +
              python-swiftclient \
         | 
| 17 | 
            +
              ruby-bundler
         | 
| 17 18 |  | 
| 18 19 | 
             
            RUN echo "gem: --no-ri --no-rdoc" >> "$HOME/.gemrc"
         | 
| 19 | 
            -
            RUN gem install bundler
         | 
| 20 20 |  | 
    
        data/uricp.gemspec
    CHANGED
    
    | @@ -27,6 +27,5 @@ Gem::Specification.new do |spec| | |
| 27 27 | 
             
              spec.add_dependency('open4', '~> 1.3.0')
         | 
| 28 28 | 
             
              spec.add_dependency('filesize', '= 0.0.2')
         | 
| 29 29 | 
             
              spec.add_dependency('sendfile', '~> 1.2.0')
         | 
| 30 | 
            -
              spec.add_development_dependency('rspec', '~> 2.99')
         | 
| 31 30 | 
             
              spec.add_development_dependency('inifile', '~> 1.1')
         | 
| 32 31 | 
             
            end
         | 
    
        data/xenial/Dockerfile
    CHANGED
    
    | @@ -13,8 +13,8 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y -qq \ | |
| 13 13 | 
             
              curl \
         | 
| 14 14 | 
             
              ruby \
         | 
| 15 15 | 
             
              ruby-dev \
         | 
| 16 | 
            -
              python-swiftclient
         | 
| 16 | 
            +
              python-swiftclient \
         | 
| 17 | 
            +
              ruby-bundler
         | 
| 17 18 |  | 
| 18 19 | 
             
            RUN echo "gem: --no-ri --no-rdoc" >> "$HOME/.gemrc"
         | 
| 19 | 
            -
            RUN gem install bundler
         | 
| 20 20 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: uricp
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.16
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Neil Wilson
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2020-10-27 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -136,20 +136,6 @@ dependencies: | |
| 136 136 | 
             
                - - "~>"
         | 
| 137 137 | 
             
                  - !ruby/object:Gem::Version
         | 
| 138 138 | 
             
                    version: 1.2.0
         | 
| 139 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 140 | 
            -
              name: rspec
         | 
| 141 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 142 | 
            -
                requirements:
         | 
| 143 | 
            -
                - - "~>"
         | 
| 144 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 145 | 
            -
                    version: '2.99'
         | 
| 146 | 
            -
              type: :development
         | 
| 147 | 
            -
              prerelease: false
         | 
| 148 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 149 | 
            -
                requirements:
         | 
| 150 | 
            -
                - - "~>"
         | 
| 151 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 152 | 
            -
                    version: '2.99'
         | 
| 153 139 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 154 140 | 
             
              name: inifile
         | 
| 155 141 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -174,6 +160,7 @@ extensions: [] | |
| 174 160 | 
             
            extra_rdoc_files: []
         | 
| 175 161 | 
             
            files:
         | 
| 176 162 | 
             
            - ".gitignore"
         | 
| 163 | 
            +
            - ".rubocop.yml"
         | 
| 177 164 | 
             
            - Gemfile
         | 
| 178 165 | 
             
            - Gemfile.lock
         | 
| 179 166 | 
             
            - Jenkinsfile
         | 
| @@ -215,13 +202,15 @@ files: | |
| 215 202 | 
             
            - lib/uricp/strategy/piped_local_decompress.rb
         | 
| 216 203 | 
             
            - lib/uricp/strategy/piped_local_get.rb
         | 
| 217 204 | 
             
            - lib/uricp/strategy/piped_local_put.rb
         | 
| 205 | 
            +
            - lib/uricp/strategy/piped_rbd_get.rb
         | 
| 218 206 | 
             
            - lib/uricp/strategy/piped_remote_get.rb
         | 
| 207 | 
            +
            - lib/uricp/strategy/rbd_remote_put.rb
         | 
| 208 | 
            +
            - lib/uricp/strategy/rbd_sweeper.rb
         | 
| 219 209 | 
             
            - lib/uricp/strategy/remote_put.rb
         | 
| 220 210 | 
             
            - lib/uricp/strategy/segmented_remote_put.rb
         | 
| 221 211 | 
             
            - lib/uricp/strategy/sweeper.rb
         | 
| 222 212 | 
             
            - lib/uricp/uri_strategy.rb
         | 
| 223 213 | 
             
            - lib/uricp/version.rb
         | 
| 224 | 
            -
            - spec/something_spec.rb
         | 
| 225 214 | 
             
            - trusty/Dockerfile
         | 
| 226 215 | 
             
            - uricp.gemspec
         | 
| 227 216 | 
             
            - xenial/Dockerfile
         | 
| @@ -244,8 +233,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 244 233 | 
             
                - !ruby/object:Gem::Version
         | 
| 245 234 | 
             
                  version: '0'
         | 
| 246 235 | 
             
            requirements: []
         | 
| 247 | 
            -
             | 
| 248 | 
            -
            rubygems_version: 2.7.6
         | 
| 236 | 
            +
            rubygems_version: 3.1.2
         | 
| 249 237 | 
             
            signing_key: 
         | 
| 250 238 | 
             
            specification_version: 4
         | 
| 251 239 | 
             
            summary: Copy one URL to another with optional cacheing
         | 
| @@ -261,4 +249,3 @@ test_files: | |
| 261 249 | 
             
            - features/step_definitions/uricp_steps.rb
         | 
| 262 250 | 
             
            - features/support/env.rb
         | 
| 263 251 | 
             
            - features/userid_download.feature
         | 
| 264 | 
            -
            - spec/something_spec.rb
         |