+++ /dev/null
-module cluster-admin {
- yang-version 1;
- namespace "urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin";
- prefix "cluster-admin";
-
- description
- "This module contains YANG RPC definitions for administering a cluster.";
-
- revision "2015-10-13" {
- description "Initial revision.";
- }
-
- typedef data-store-type {
- type enumeration {
- enum config {
- value 1;
- }
- enum operational {
- value 2;
- }
- }
- }
-
- grouping shard-operation-result {
- leaf shard-name {
- type string;
- }
-
- leaf data-store-type {
- type data-store-type;
- }
-
- leaf succeeded {
- type boolean;
- }
-
- leaf error-message {
- type string;
- }
- }
-
- grouping shard-result-output {
- list shard-result {
- key "shard-name data-store-type";
- uses shard-operation-result;
-
- description "The list of results, one per shard";
- }
- }
-
- grouping member-voting-states-input {
- list member-voting-state {
- leaf member-name {
- type string;
- }
-
- leaf voting {
- type boolean;
- }
-
- description "The list of member voting states";
- }
- }
-
- rpc add-shard-replica {
- input {
- leaf shard-name {
- mandatory true;
- type string;
- description "The name of the shard for which to create a replica.";
- }
-
- 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. The shard must
- already have a module configuration defined for it and 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-shard-replica {
- input {
- leaf shard-name {
- mandatory true;
- type string;
- description "The name of the shard for which to remove the replica.";
- }
-
- 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 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;
- }
-
- description "Adds replicas on this node for all currently defined shards. This is equivalent to issuing
- an add-shard-replica RPC for all shards.";
- }
-
- rpc remove-all-shard-replicas {
- input {
- leaf member-name {
- mandatory true;
- type string;
- description "The cluster member from which the shard replicas should be removed";
- }
- }
-
- output {
- uses shard-result-output;
- }
-
- description "Removes replicas for all shards on this node. This is equivalent to issuing
- a remove-shard-replica for all shards and essentially removes this node from a cluster.";
- }
-
- rpc change-member-voting-states-for-shard {
- input {
- leaf shard-name {
- mandatory true;
- type string;
- description "The name of the shard for which to change voting state.";
- }
-
- leaf data-store-type {
- mandatory true;
- type data-store-type;
- description "The type of the data store to which the shard belongs";
- }
-
- uses member-voting-states-input;
- }
-
- description "Changes the voting states, either voting or non-voting, of cluster members for a shard.
- Non-voting members will no longer participate in leader elections and consensus but will be
- replicated. This is useful for having a set of members serve as a backup cluster in case the
- primary voting cluster suffers catastrophic failure. This RPC can be issued to any cluster member
- and will be forwarded to the leader.";
- }
-
- rpc change-member-voting-states-for-all-shards {
- input {
- uses member-voting-states-input;
- }
-
- output {
- uses shard-result-output;
- }
-
- description "Changes the voting states, either voting or non-voting, of cluster members for all shards.
- Non-voting members will no longer participate in leader elections and consensus but will be
- replicated. This is useful for having a set of members serve as a backup cluster in case the
- primary voting cluster suffers catastrophic failure. This RPC can be issued to any cluster member
- and will be forwarded to the leader.";
- }
-
- rpc flip-member-voting-states-for-all-shards {
- output {
- uses shard-result-output;
- }
-
- description "Flips the voting states of all cluster members for all shards, such that if a member
- was voting it becomes non-voting and vice versa.";
- }
-
- rpc backup-datastore {
- input {
- leaf file-path {
- type string;
- description "The path and name of the file in which to store the backup.";
- }
- }
-
- description "Creates a backup file of the datastore state";
- }
-}
\ No newline at end of file