import etcd3
import json
import time
etcd = etcd3.client(host='127.0.0.1', port=2379)

# 基础操作 put get delete
# 获取当前所有存储的key
print(list(etcd.get_all()))

# 创建新租约。返回lease对象
new_lease = etcd.lease(5)
print("new_lease:{}" .format(new_lease.__str__()))
etcd.get_lease_info(new_lease.id)
print("get_lease_info:{}" .format(etcd.get_lease_info(new_lease.id)))
# 将lease attach 到某个key上
etcd.put('/demo/key', 'hello world',lease=new_lease)
# 查看key是否存在
print(list(etcd.get_all()))
time.sleep(6)
# 查看key是否存在
print(list(etcd.get_all()))
etcd.close()

# 打印结果如下:
# [(b'hello', <etcd3.client.KVMetadata object at 0x7f0011933370>)]
# new_lease:<etcd3.leases.Lease object at 0x7f0011933280>
# get_lease_info:header {
#   cluster_id: 17237436991929493444
#   member_id: 9372538179322589801
#   revision: 2
#   raft_term: 4
# }
# ID: 3632582335366158376
# TTL: 4
# grantedTTL: 5

# [(b'hello world', <etcd3.client.KVMetadata object at 0x7f0011933430>), (b'hello', <etcd3.client.KVMetadata object at 0x7f00119333a0>)]
# [(b'hello', <etcd3.client.KVMetadata object at 0x7f0011933400>)]