mirror of
https://github.com/outbackdingo/patroni.git
synced 2026-08-25 14:53:37 +00:00
Merge pull request #4 from CyberDem0n/etcd-cluster-support
real_ttl method will return -1 when expiration is not defined
This commit is contained in:
+1
-1
@@ -31,7 +31,7 @@ class Member(namedtuple('Member', 'name,conn_url,api_url,expiration,ttl')):
|
||||
return Member(node['key'].split('/')[-1], conn_url, api_url, expiration, ttl)
|
||||
|
||||
def real_ttl(self):
|
||||
return calculate_ttl(self.expiration)
|
||||
return calculate_ttl(self.expiration) or -1
|
||||
|
||||
|
||||
class Cluster(namedtuple('Cluster', 'initialize,leader,last_leader_operation,members')):
|
||||
|
||||
@@ -28,6 +28,12 @@ def parse_datetime(time_str):
|
||||
|
||||
|
||||
def calculate_ttl(expiration):
|
||||
"""
|
||||
>>> calculate_ttl(None)
|
||||
>>> calculate_ttl('2015-06-10 12:56:30.552539016Z')
|
||||
"""
|
||||
if not expiration:
|
||||
return None
|
||||
expiration = parse_datetime(expiration)
|
||||
if not expiration:
|
||||
return None
|
||||
|
||||
+1
-1
@@ -104,7 +104,7 @@ class TestMember(unittest.TestCase):
|
||||
now = datetime.datetime.utcnow()
|
||||
member = Member('a', 'b', 'c', (now + datetime.timedelta(seconds=2)).strftime('%Y-%m-%dT%H:%M:%S.%fZ'), None)
|
||||
self.assertLess(member.real_ttl(), 2)
|
||||
self.assertIsNone(Member('a', 'b', 'c', '', None).real_ttl())
|
||||
self.assertEquals(Member('a', 'b', 'c', '', None).real_ttl(), -1)
|
||||
|
||||
|
||||
class TestClient(unittest.TestCase):
|
||||
|
||||
Reference in New Issue
Block a user