...
Read a piece of yang modelled data via JSON-RPC
Arguments | Entity, Datastore, Path |
Returns | JSON Data |
Unfortunately, ODL does not support the notion of transactional read. You cannot perform a read on a half-finished and uncommited transaction sequence. You can only see committed data. This is the reason why read does not take a transaction id argument.
...
Check if data exists identified by Entity, Datastore, Path via JSON-RPC
Arguments | Entity, Datastore, Path |
Returns | boolean |
Unfortunately, ODL does not support the notion of transactional exist. You cannot perform an exist on a half-finished and uncommited transaction sequence. You can only see committed data. This is the reason why exists does not take a transaction id argument.
...
Obtain an identifier to be used for a sequence of transactional operations.
Arguments | None |
Returns | String to uniquely identify a transaction for any of the transaction operations. |
All existing implementations use the string representation of a type 4 UUID for this operation. This is not mandatory, any unique string will work and be accepted as ODL.
...
Obtain detailed error information (usually for a failed transaction).
Arguments | Transaction ID - a string provided by the txid function to identify a transaction. |
Returns | List of detailed application specific error codes which provides information in addition to the normal JSON RPC error codes. |
Transactional
put
Enqueue an unconditional creation of the supplied data element at the supplied path (and all necessary parent elements leading to it). If the element exists - enqueue an overwrite to it. Associate this request with this transaction. The actual operation is not performed until a commit is issued for this transaction.
Arguments | Transaction ID, Entity, Datastore, Path, Data |
Returns | Nothing |
merge
Enqueue a modification of an element using the supplied data at the supplied path. If the element does not exists - fail. Associate this request with this transaction. The actual operation is not performed until a commit is issued for this transaction.
Arguments | Transaction ID, Entity, Datastore, Path, Data |
Returns | Nothing |
delete
Enqueue a deletion of an element using the supplied data at the supplied path. Associate this request with this transaction. The actual operation is not performed until a commit is issued for this transaction.
Arguments | Transaction ID, Entity, Datastore, Path |
Returns | Nothing |
commit
Commit all operations associated with this transaction.
Arguments | Transaction ID |
Returns | True if successful, False if unsuccessful. |
If unsuccessful, the server implementation is obliged to rollback and clean-up.
...
Cancel all operations associated with this transaction.
Arguments | Transaction ID |
Returns | True if successful, False if unsuccessful. |
The implementation is obliged to rollback and clean-up.
...
Caller may specify transport protocol which will be used to communicate data changes. When omitted, implementation will use same protocol as was used in this request.
Arguments | Entity, Datastore, Path, Transport |
Returns | URi, DCN Name. |
Notes:
- A good choice for "DCN Notification Name" is a type 4 UUID in textual representation.
- It is up to the server implementation to decide if it wants to reuse notification endpoints and service two different requesters which have requested the same path using the same notification URI + "DCN Notification Name"
...
Delete data change listener
Arguments | URI, DCN Name |
Returns | True if successful, False otherwise. |
Future
These operations are work in progress and are in fact proposals for future functionality
invoke_rpc
Invoke RPC method
Arguments | Method name, RPC input |
Returns | RPC output. |
publish_notification
Publish notification
Arguments | Notification name, Payload |
Returns | N/A. |