The etcd3gw.client Module¶
- class etcd3gw.client.Etcd3Client(host: str = 'localhost', port: int = 2379, protocol: str = 'http', ca_cert: str | None = None, cert_key: str | None = None, cert_cert: str | None = None, timeout: float | None = None, api_path: str | None = None, session: Session | None = None)[source]¶
Bases:
object- create(key: str | bytes, value: str | bytes, lease: Lease | None = None) bool[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.
- delete(key: str | bytes, **kwargs: Any) bool[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:
- get(key: str | bytes, metadata: bool = False, sort_order: str | None = None, sort_target: str | None = None, **kwargs: Any) list[Any][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: str | None = None, sort_target: str = 'key') list[Any][source]¶
Get all keys currently stored in etcd.
- Returns:
sequence of (value, metadata) tuples
- get_prefix(key_prefix: str | bytes, sort_order: str | None = None, sort_target: str | None = None) list[Any][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: str) str[source]¶
Construct a full url to the v3 API given a specific path
- Parameters:
path
- Returns:
url
- lease(ttl: int = 30) Lease[source]¶
Create a Lease object given a timeout
- Parameters:
ttl – timeout
- Returns:
Lease object
- lock(id: str | None = None, ttl: int = 30) Lock[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
- post(*args: Any, **kwargs: Any) Any[source]¶
helper method for HTTP POST
- Parameters:
args
kwargs
- Returns:
json response
- put(key: str | bytes, value: str | bytes, lease: Lease | None = None) bool[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: str | bytes, initial_value: str | bytes, new_value: str | bytes) bool[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.
- transaction(txn: dict[str, Any]) Any[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: str | bytes, **kwargs: Any) tuple[Iterator[dict[str, Any]], Callable[[], None]][source]¶
Watch a key.
- Parameters:
key – key to watch
- Returns:
tuple of
events_iteratorandcancel. Useevents_iteratorto get the events of key changes andcancelto cancel the watch request
- watch_once(key: str | bytes, timeout: float | None = None, **kwargs: Any) Any[source]¶
Watch a key and stops after the first event.
- Parameters:
key – key to watch
timeout – (optional) timeout in seconds.
- Returns:
event
- etcd3gw.client.client(host: str = 'localhost', port: int = 2379, ca_cert: str | None = None, cert_key: str | None = None, cert_cert: str | None = None, timeout: float | None = None, protocol: str = 'http', api_path: str | None = None, session: Session | None = None) Etcd3Client[source]¶
Return an instance of an Etcd3Client.