X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-cluster-admin-api%2Fsrc%2Fmain%2Fyang%2Fcluster-admin.yang;h=25c88475f6cfdff0f72bc45e83339137ddcd3d7c;hb=HEAD;hp=3acd0794e4280bf8c37ad0e7ed0367dcf5c08d78;hpb=57602b656df8cd1aa99704b70bcaa80921c45b47;p=controller.git diff --git a/opendaylight/md-sal/sal-cluster-admin-api/src/main/yang/cluster-admin.yang b/opendaylight/md-sal/sal-cluster-admin-api/src/main/yang/cluster-admin.yang index 3acd0794e4..25c88475f6 100644 --- a/opendaylight/md-sal/sal-cluster-admin-api/src/main/yang/cluster-admin.yang +++ b/opendaylight/md-sal/sal-cluster-admin-api/src/main/yang/cluster-admin.yang @@ -10,6 +10,8 @@ module cluster-admin { description "Initial revision."; } + import odl-controller-cds-types { prefix cds; } + typedef data-store-type { type enumeration { enum config { @@ -117,49 +119,6 @@ module cluster-admin { 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; @@ -230,6 +189,15 @@ module cluster-admin { 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"; @@ -250,27 +218,61 @@ module cluster-admin { description "Returns the current role for the requested module shard."; } - rpc get-prefix-shard-role { + rpc locate-shard { + description "Return the transport-level information about where a shard has a home."; input { - leaf shard-prefix { - mandatory true; - type instance-identifier; - } + uses datastore-shard-id; + } - leaf data-store-type { - mandatory true; - type data-store-type; - description "The type of the data store to which the replica belongs"; + output { + choice member-node { + description "Location of the hypothetical cluster member node. Relationship to the input parameters + and the transport protocol."; + + leaf local { + description "Local node is the best node to talk to when it comes from efficiency perspective + of underlying implementation. The requester of this RPC is advised to contact + any services to the specified shard via the channel on which this RPC was invoked."; + type empty; + } + + leaf leader-actor-ref { + description "Actor reference to the actor which is currently acting as the leader."; + type string; + } } } + } + + 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."; + rpc activate-eos-datacenter { + description "Activates the datacenter that the node this rpc is called on belongs to. The caller must maintain + only a single active datacenter at a time as the singleton components will interfere with each + other otherwise. This only needs to be used if configuring multiple datacenters or if not using + default datacenter."; + } + + rpc deactivate-eos-datacenter { + description "Deactivates the datacenter that the node this rpc is called on belongs to. The caller must maintain + only a single active datacenter at a time as the singleton components will interfere with each + other otherwise. This only needs to be used if configuring multiple datacenters or if not using + default datacenter."; } }