Source code for consul.api.txn
import json
from consul.callback import CB
[docs]
class Txn:
"""
The Transactions endpoints manage updates or fetches of multiple keys
inside a single, atomic transaction.
"""
def __init__(self, agent) -> None:
self.agent = agent
[docs]
def put(self, payload):
"""
Create a transaction by submitting a list of operations to apply to
the KV store inside of a transaction. If any operation fails, the
transaction is rolled back and none of the changes are applied.
*payload* is a list of operations where each operation is a `dict`
with a single key value pair, with the key specifying operation the
type. An example payload of operation type "KV" is
dict::
{
"KV": {
"Verb": "<verb>",
"Key": "<key>",
"Value": "<Base64-encoded blob of data>",
"Flags": 0,
"Index": 0,
"Session": "<session id>"
}
}
"""
return self.agent.http.put(CB.json(), "/v1/txn", data=json.dumps(payload))