The etcd3gw.client Module

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='/v3alpha/')[source]

Bases: object

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')[source]

Return an instance of an Etcd3Client.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.