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