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 rpc add-shard-replica {
56 description "The name of the shard for which to create a replica.";
59 leaf data-store-type {
62 description "The type of the data store to which the replica belongs";
66 description "Adds a replica of a shard to this node and joins it to an existing cluster. The shard must
67 already have a module configuration defined for it and there must already be a shard existing on
68 another node with a leader. This RPC first contacts peer member seed nodes searching for a shard.
69 When found, an AddServer message is sent to the shard leader and applied as described in the Raft
73 rpc remove-shard-replica {
78 description "The name of the shard for which to remove the replica.";
84 description "The cluster member from which the shard replica should be removed";
87 leaf data-store-type {
90 description "The type of the data store to which the replica belongs";
94 description "Removes an existing replica of a shard from this node via the RemoveServer mechanism as
95 described in the Raft paper.";
98 rpc add-replicas-for-all-shards {
100 uses shard-result-output;
103 description "Adds replicas on this node for all currently defined shards. This is equivalent to issuing
104 an add-shard-replica RPC for all shards.";
107 rpc remove-all-shard-replicas {
112 description "The cluster member from which the shard replicas should be removed";
117 uses shard-result-output;
120 description "Removes replicas for all shards on this node. This is equivalent to issuing
121 a remove-shard-replica for all shards and essentially removes this node from a cluster.";
124 rpc convert-members-to-nonvoting-for-all-shards {
126 leaf-list member-names {
128 description "The names of the cluster members to convert.";
132 description "Converts the given cluster members to non-voting for all shards. The members will no
133 longer participate in leader elections and consensus but will be replicated. This is useful for
134 having a set of members serve as a backup cluster in case the primary voting cluster suffers
135 catastrophic failure. This RPC can be issued to any cluster member and will be forwarded
139 rpc convert-members-to-voting-for-all-shards {
141 leaf-list member-names {
143 description "The names of the cluster members to convert.";
147 description "Converts the given cluster members to voting for all shards. The members will
148 participate in leader elections and consensus.";
151 rpc backup-datastore {
155 description "The path and name of the file in which to store the backup.";
159 description "Creates a backup file of the datastore state";