class Etcdv3::Namespace::Lock
Public Class Methods
new(hostname, credentials, timeout, namespace, metadata = {})
click to toggle source
# File lib/etcdv3/namespace/lock.rb, line 6 def initialize(hostname, credentials, timeout, namespace, metadata = {}) @stub = V3lockpb::Lock::Stub.new(hostname, credentials) @timeout = timeout @namespace = namespace @metadata = metadata end
Public Instance Methods
lock(name, lease_id, timeout: nil)
click to toggle source
# File lib/etcdv3/namespace/lock.rb, line 13 def lock(name, lease_id, timeout: nil) name = prepend_prefix(@namespace, name) request = V3lockpb::LockRequest.new(name: name, lease: lease_id) resp = @stub.lock(request, deadline: deadline(timeout)) strip_prefix_from_lock(@namespace, resp) end
unlock(key, timeout: nil)
click to toggle source
# File lib/etcdv3/namespace/lock.rb, line 20 def unlock(key, timeout: nil) key = prepend_prefix(@namespace, key) request = V3lockpb::UnlockRequest.new(key: key) @stub.unlock(request, deadline: deadline(timeout)) end
Private Instance Methods
deadline(timeout)
click to toggle source
# File lib/etcdv3/namespace/lock.rb, line 28 def deadline(timeout) from_relative_time(timeout || @timeout) end