ack, review only/Thanks HansN

On 1/24/19 02:17, Gary Lee wrote:
> 'etcdctl watch' will return if connection to the etcd server is lost.
> If that occurs, send a 'fake' takeover request to rded so rded
> will reboot the node. This is in alignment with the etcd v3 plugin.
> ---
>   src/osaf/consensus/plugins/etcd.plugin | 29 +++++++++++++++++++++--------
>   1 file changed, 21 insertions(+), 8 deletions(-)
>
> diff --git a/src/osaf/consensus/plugins/etcd.plugin 
> b/src/osaf/consensus/plugins/etcd.plugin
> index f62cc89..f88a7e7 100644
> --- a/src/osaf/consensus/plugins/etcd.plugin
> +++ b/src/osaf/consensus/plugins/etcd.plugin
> @@ -17,7 +17,9 @@
>   # backward compatible. This plugin may need to be adapted.
>   
>   readonly keyname="opensaf_consensus_lock"
> +readonly takeover_request="takeover_request"
>   readonly directory="/opensaf/"
> +readonly node_name_file="/etc/opensaf/node_name"
>   readonly etcd_options="--no-sync"
>   readonly etcd_timeout="5s"
>   
> @@ -27,7 +29,8 @@ readonly etcd_timeout="5s"
>   #   $1 - <key>
>   # returns:
>   #   0 - success, <value> is echoed to stdout
> -#   non-zero - failure
> +#   1 - invalid param
> +#   other - failure
>   get() {
>     readonly key="$1"
>   
> @@ -36,7 +39,7 @@ get() {
>       echo "$value"
>       return 0
>     else
> -    return 1
> +    return 2
>     fi
>   }
>   
> @@ -73,7 +76,8 @@ setkey() {
>   # returns:
>   #   0 - success
>   #   1 - already exists
> -#   2 or above - other failure
> +#   2 - invalid param
> +#   3 or above - other failure
>   create_key() {
>     readonly key="$1"
>     readonly value="$2"
> @@ -90,7 +94,7 @@ create_key() {
>       fi
>     fi
>   
> -  return 2
> +  return 3
>   }
>   
>   # set
> @@ -103,7 +107,8 @@ create_key() {
>   #   $4 - <timeout>
>   # returns:
>   #   0 - success
> -#   non-zero - failure
> +#   1 - invalid param
> +#   other - failure
>   setkey_match_prev() {
>     readonly key="$1"
>     readonly value="$2"
> @@ -115,7 +120,7 @@ setkey_match_prev() {
>     then
>       return 0
>     else
> -    return 1
> +    return 2
>     fi
>   }
>   
> @@ -158,7 +163,8 @@ lock() {
>       return 0
>     fi
>   
> -  if current_owner=$(etcdctl get "$directory$keyname")
> +  if current_owner=$(etcdctl $etcd_options --timeout $etcd_timeout \
> +    get "$directory$keyname")
>     then
>       # see if we already hold the lock
>       if [ "$current_owner" = "$owner" ]; then
> @@ -252,7 +258,14 @@ watch() {
>       echo "$value"
>       return 0
>     else
> -    return 1
> +    # etcd down?
> +    if [ "$key" = "$takeover_request" ]; then
> +      hostname=`cat $node_name_file`
> +      echo "$hostname SC-0 10000000 UNDEFINED"
> +      return 0
> +    else
> +      return 1
> +    fi
>     fi
>   }
>   

_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to