class Etcdv3::Lease

Public Class Methods

new(hostname, credentials, timeout, metadata={}) click to toggle source
# File lib/etcdv3/lease.rb, line 5
def initialize(hostname, credentials, timeout, metadata={})
  @stub = Etcdserverpb::Lease::Stub.new(hostname, credentials)
  @timeout = timeout
  @metadata = metadata
end

Public Instance Methods

lease_grant(ttl, timeout: nil) click to toggle source
# File lib/etcdv3/lease.rb, line 11
def lease_grant(ttl, timeout: nil)
  request = Etcdserverpb::LeaseGrantRequest.new(TTL: ttl)
  @stub.lease_grant(request, metadata: @metadata, deadline: deadline(timeout))
end
lease_keep_alive_once(id, timeout: nil) click to toggle source
# File lib/etcdv3/lease.rb, line 26
def lease_keep_alive_once(id, timeout: nil)
  request = Etcdserverpb::LeaseKeepAliveRequest.new(ID: id)
  @stub.lease_keep_alive([request], metadata: @metadata, deadline: deadline(timeout)).each do |resp|
    return resp
  end
end
lease_revoke(id, timeout: nil) click to toggle source
# File lib/etcdv3/lease.rb, line 16
def lease_revoke(id, timeout: nil)
  request = Etcdserverpb::LeaseRevokeRequest.new(ID: id)
  @stub.lease_revoke(request, metadata: @metadata, deadline: deadline(timeout))
end
lease_ttl(id, timeout: nil) click to toggle source
# File lib/etcdv3/lease.rb, line 21
def lease_ttl(id, timeout: nil)
  request = Etcdserverpb::LeaseTimeToLiveRequest.new(ID: id, keys: true)
  @stub.lease_time_to_live(request, metadata: @metadata, deadline: deadline(timeout))
end

Private Instance Methods

deadline(timeout) click to toggle source
# File lib/etcdv3/lease.rb, line 35
def deadline(timeout)
  from_relative_time(timeout || @timeout)
end