Sha256: ca5f3a22c8bcd88520ddadd8be518ecbb826f8650dae184b8fc1cb6807840af6

Contents?: true

Size: 728 Bytes

Versions: 5

Compression:

Stored size: 728 Bytes

Contents

class Etcdv3
  class Lock
    include GRPC::Core::TimeConsts

    def initialize(hostname, credentials, timeout, metadata = {})
      @stub = V3lockpb::Lock::Stub.new(hostname, credentials)
      @timeout = timeout
      @metadata = metadata
    end

    def lock(name, lease_id, timeout: nil)
      request = V3lockpb::LockRequest.new(name: name, lease: lease_id)
      @stub.lock(request, metadata: @metadata, deadline: deadline(timeout))
    end

    def unlock(key, timeout: nil)
      request = V3lockpb::UnlockRequest.new(key: key)
      @stub.unlock(request, metadata: @metadata, deadline: deadline(timeout))
    end

    private

    def deadline(timeout)
      from_relative_time(timeout || @timeout)
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
rubypitaya-3.12.5 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/etcdv3-0.11.5/lib/etcdv3/lock.rb
rubypitaya-3.12.4 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/etcdv3-0.11.5/lib/etcdv3/lock.rb
rubypitaya-3.12.3 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/etcdv3-0.11.5/lib/etcdv3/lock.rb
rubypitaya-3.12.2 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/etcdv3-0.11.5/lib/etcdv3/lock.rb
etcdv3-0.11.5 lib/etcdv3/lock.rb