File: leases.py

package info (click to toggle)
python-etcd3 0.12.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 640 kB
  • sloc: python: 2,111; makefile: 165
file content (36 lines) | stat: -rw-r--r-- 858 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class Lease(object):
    """
    A lease.

    :ivar id: ID of the lease
    :ivar ttl: time to live for this lease
    """

    def __init__(self, lease_id, ttl, etcd_client=None):
        self.id = lease_id
        self.ttl = ttl

        self.etcd_client = etcd_client

    def _get_lease_info(self):
        return self.etcd_client.get_lease_info(self.id)

    def revoke(self):
        """Revoke this lease."""
        self.etcd_client.revoke_lease(self.id)

    def refresh(self):
        """Refresh the time to live for this lease."""
        return list(self.etcd_client.refresh_lease(self.id))

    @property
    def remaining_ttl(self):
        return self._get_lease_info().TTL

    @property
    def granted_ttl(self):
        return self._get_lease_info().grantedTTL

    @property
    def keys(self):
        return self._get_lease_info().keys