3 namespace "urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin";
4 prefix "cluster-admin";
7 "This module contains YANG RPC definitions for administering a cluster.";
9 revision "2015-10-13" {
10 description "Initial revision.";
13 typedef data-store-type {
24 grouping shard-operation-result {
29 leaf data-store-type {
42 grouping shard-result-output {
44 key "shard-name data-store-type";
45 uses shard-operation-result;
47 description "The list of results, one per shard";
51 grouping member-voting-states-input {
52 list member-voting-state {
61 description "The list of member voting states";
65 rpc add-shard-replica {
70 description "The name of the shard for which to create a replica.";
73 leaf data-store-type {
76 description "The type of the data store to which the replica belongs";
80 description "Adds a replica of a shard to this node and joins it to an existing cluster. The shard must
81 already have a module configuration defined for it and there must already be a shard existing on
82 another node with a leader. This RPC first contacts peer member seed nodes searching for a shard.
83 When found, an AddServer message is sent to the shard leader and applied as described in the Raft
87 rpc remove-shard-replica {
92 description "The name of the shard for which to remove the replica.";
98 description "The cluster member from which the shard replica should be removed";
101 leaf data-store-type {
103 type data-store-type;
104 description "The type of the data store to which the replica belongs";
108 description "Removes an existing replica of a shard from this node via the RemoveServer mechanism as
109 described in the Raft paper.";
112 rpc add-prefix-shard-replica {
116 type instance-identifier;
119 leaf data-store-type {
121 type data-store-type;
122 description "The type of the data store to which the replica belongs";
126 description "Adds a replica of a shard to this node and joins it to an existing cluster. There must already be
127 a shard existing on another node with a leader. This RPC first contacts peer member seed nodes
128 searching for a shard. When found, an AddServer message is sent to the shard leader and applied as
129 described in the Raft paper.";
132 rpc remove-prefix-shard-replica {
136 type instance-identifier;
141 description "The cluster member from which the shard replica should be removed";
144 leaf data-store-type {
146 type data-store-type;
147 description "The type of the data store to which the replica belongs";
151 description "Removes an existing replica of a prefix shard from this node via the RemoveServer mechanism as
152 described in the Raft paper.";
155 rpc add-replicas-for-all-shards {
157 uses shard-result-output;
160 description "Adds replicas on this node for all currently defined shards. This is equivalent to issuing
161 an add-shard-replica RPC for all shards.";
164 rpc remove-all-shard-replicas {
169 description "The cluster member from which the shard replicas should be removed";
174 uses shard-result-output;
177 description "Removes replicas for all shards on this node. This is equivalent to issuing
178 a remove-shard-replica for all shards and essentially removes this node from a cluster.";
181 rpc change-member-voting-states-for-shard {
186 description "The name of the shard for which to change voting state.";
189 leaf data-store-type {
191 type data-store-type;
192 description "The type of the data store to which the shard belongs";
195 uses member-voting-states-input;
198 description "Changes the voting states, either voting or non-voting, of cluster members for a shard.
199 Non-voting members will no longer participate in leader elections and consensus but will be
200 replicated. This is useful for having a set of members serve as a backup cluster in case the
201 primary voting cluster suffers catastrophic failure. This RPC can be issued to any cluster member
202 and will be forwarded to the leader.";
205 rpc change-member-voting-states-for-all-shards {
207 uses member-voting-states-input;
211 uses shard-result-output;
214 description "Changes the voting states, either voting or non-voting, of cluster members for all shards.
215 Non-voting members will no longer participate in leader elections and consensus but will be
216 replicated. This is useful for having a set of members serve as a backup cluster in case the
217 primary voting cluster suffers catastrophic failure. This RPC can be issued to any cluster member
218 and will be forwarded to the leader.";
221 rpc flip-member-voting-states-for-all-shards {
223 uses shard-result-output;
226 description "Flips the voting states of all cluster members for all shards, such that if a member
227 was voting it becomes non-voting and vice versa.";
230 rpc backup-datastore {
234 description "The path and name of the file in which to store the backup.";
238 description "Creates a backup file of the datastore state";