The etcd3gw.client Module

class etcd3gw.client.Etcd3Client(host='localhost', port=2379, protocol='http', ca_cert=None, cert_key=None, cert_cert=None, timeout=None, api_path=None)[source]

Bases: object

property api_path
property base_url
create(key, value, lease=None)[source]

Atomically create the given key only if the key doesn’t exist.

This verifies that the create_revision of a key equales to 0, then creates the key with the value. This operation takes place in a transaction.

Parameters:
  • key – key in etcd to create

  • value (bytes or string) – value of the key

  • lease – lease to connect with, optional

Returns:

status of transaction, True if the create was successful, False otherwise

Return type:

bool

delete(key, **kwargs)[source]

DeleteRange deletes the given range from the key-value store.

A delete request increments the revision of the key-value store and generates a delete event in the event history for every deleted key.

Parameters:
  • key

  • kwargs

Returns:

delete_prefix(key_prefix)[source]

Delete a range of keys with a prefix in etcd.

get(key, metadata=False, sort_order=None, sort_target=None, **kwargs)[source]

Range gets the keys in the range from the key-value store.

Parameters:
  • key

  • metadata

  • sort_order – ‘ascend’ or ‘descend’ or None

  • sort_target – ‘key’ or ‘version’ or ‘create’ or ‘mod’ or ‘value’

  • kwargs

Returns:

get_all(sort_order=None, sort_target='key')[source]

Get all keys currently stored in etcd.

Returns:

sequence of (value, metadata) tuples

get_prefix(key_prefix, sort_order=None, sort_target=None)[source]

Get a range of keys with a prefix.

Parameters:
  • sort_order – ‘ascend’ or ‘descend’ or None

  • key_prefix – first key in range

Returns:

sequence of (value, metadata) tuples

get_url(path)[source]

Construct a full url to the v3 API given a specific path

Parameters:

path

Returns:

url

lease(ttl=30)[source]

Create a Lease object given a timeout

Parameters:

ttl – timeout

Returns:

Lease object

lock(id=None, ttl=30)[source]

Create a Lock object given an ID and timeout

Parameters:
  • id – ID for the lock, creates a new uuid if not provided

  • ttl – timeout

Returns:

Lock object

members()[source]

Lists all the members in the cluster.

Returns:

json response

post(*args, **kwargs)[source]

helper method for HTTP POST

Parameters:
  • args

  • kwargs

Returns:

json response

put(key, value, lease=None)[source]

Put puts the given key into the key-value store.

A put request increments the revision of the key-value store and generates one event in the event history.

Parameters:
  • key

  • value

  • lease

Returns:

boolean

replace(key, initial_value, new_value)[source]

Atomically replace the value of a key with a new value.

This compares the current value of a key, then replaces it with a new value if it is equal to a specified value. This operation takes place in a transaction.

Parameters:
  • key – key in etcd to replace

  • initial_value (bytes or string) – old value to replace

  • new_value (bytes or string) – new value of the key

Returns:

status of transaction, True if the replace was successful, False otherwise

Return type:

bool

status()[source]

Status gets the status of the etcd cluster member.

Returns:

json response

transaction(txn)[source]

Txn processes multiple requests in a single transaction.

A txn request increments the revision of the key-value store and generates events with the same revision for every completed request. It is not allowed to modify the same key several times within one txn.

Parameters:

txn

Returns:

watch(key, **kwargs)[source]

Watch a key.

Parameters:

key – key to watch

Returns:

tuple of events_iterator and cancel. Use events_iterator to get the events of key changes and cancel to cancel the watch request

watch_once(key, timeout=None, **kwargs)[source]

Watch a key and stops after the first event.

Parameters:
  • key – key to watch

  • timeout – (optional) timeout in seconds.

Returns:

event

watch_prefix(key_prefix, **kwargs)[source]

The same as watch, but watches a range of keys with a prefix.

watch_prefix_once(key_prefix, timeout=None, **kwargs)[source]

Watches a range of keys with a prefix, similar to watch_once

etcd3gw.client.client(host='localhost', port=2379, ca_cert=None, cert_key=None, cert_cert=None, timeout=None, protocol='http', api_path=None)[source]

Return an instance of an Etcd3Client.