description "Initial revision.";
}
+ import odl-controller-cds-types { prefix cds; }
+
typedef data-store-type {
type enumeration {
enum config {
within two election timeout periods the operation fails.";
}
- rpc add-prefix-shard-replica {
- input {
- leaf shard-prefix {
- mandatory true;
- type instance-identifier;
- }
-
- leaf data-store-type {
- mandatory true;
- type data-store-type;
- description "The type of the data store to which the replica belongs";
- }
- }
-
- description "Adds a replica of a shard to this node and joins it to an existing cluster. There must already be
- a shard existing on another node with a leader. This RPC first contacts peer member seed nodes
- searching for a shard. When found, an AddServer message is sent to the shard leader and applied as
- described in the Raft paper.";
- }
-
- rpc remove-prefix-shard-replica {
- input {
- leaf shard-prefix {
- mandatory true;
- type instance-identifier;
- }
- leaf member-name {
- mandatory true;
- type string;
- description "The cluster member from which the shard replica should be removed";
- }
-
- leaf data-store-type {
- mandatory true;
- type data-store-type;
- description "The type of the data store to which the replica belongs";
- }
- }
-
- description "Removes an existing replica of a prefix shard from this node via the RemoveServer mechanism as
- described in the Raft paper.";
- }
-
rpc add-replicas-for-all-shards {
output {
uses shard-result-output;
type string;
description "The path and name of the file in which to store the backup.";
}
+
+ leaf timeout {
+ type uint32 {
+ range 1..max;
+ }
+ units "seconds";
+ description "Optional timeout in seconds for the backup operation which will override all the different
+ timeouts that are being hit on the backend.";
+ }
}
description "Creates a backup file of the datastore state";
}
}
- rpc get-prefix-shard-role {
- input {
- leaf shard-prefix {
- mandatory true;
- type instance-identifier;
- }
-
- leaf data-store-type {
- mandatory true;
- type data-store-type;
- description "The type of the data store to which the replica belongs";
- }
- }
+ rpc get-known-clients-for-all-shards {
+ description "Request all shards to report their known frontend clients. This is useful for determining what
+ generation should a resurrected member node should use.";
output {
- leaf role {
- type string;
- description "Current role for the given shard, if not present the shard currently does not have a role";
+ uses shard-result-output {
+ augment shard-result {
+ list known-clients {
+ when "../succeeded = true";
+
+ uses cds:client-identifier;
+ key "member type";
+ }
+ }
}
}
-
- description "Returns the current role for the requested module shard.";
}
}