Ack with minor comment. Use variable to store "Try '$(basename "$0") -h or --help' for more information" then use it.
-----Original Message----- From: Khanh Q Nguyen <khanh.q.nguy...@dektech.com.au> Sent: Wednesday, March 29, 2023 3:41 PM To: Thang Duc Nguyen <thang.d.ngu...@dektech.com.au>; Thien Minh Huynh <thien.m.hu...@dektech.com.au> Cc: opensaf-devel@lists.sourceforge.net; Khanh Q Nguyen <khanh.q.nguy...@dektech.com.au> Subject: [PATCH 1/1] clm: Add an operation to excute a script [#2696] Update the clm-adm command-line tool to support the new admin-ops added in ticket [#2649]. -o or --admin-op: operation name (mandatory) ... 'execute' for executing action on remote node/cluster -a or --action : action name is a script stored in /usr/lib/opensaf/clm-scripts directory started with prefix "osafclm_" --- src/clm/tools/clm-adm | 57 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 52 insertions(+), 5 deletions(-) mode change 100644 => 100755 src/clm/tools/clm-adm diff --git a/src/clm/tools/clm-adm b/src/clm/tools/clm-adm old mode 100644 new mode 100755 index 25445fff1..89aff15a0 --- a/src/clm/tools/clm-adm +++ b/src/clm/tools/clm-adm @@ -16,7 +16,7 @@ usage() { echo "" - echo "USAGE: $(basename "$0") [-t value] <-o op_name> <DN>" + echo "USAGE: $(basename "$0") [-t value] <-o op_name> [-a action_name] <DN>" echo "" echo "OPTIONS:" echo " -t or --timeout : command timeout in seconds (default=60) (optional)" @@ -24,13 +24,29 @@ usage() echo " 'lock' for admin lock " echo " 'unlock' for admin unlock " echo " 'shutdown' for admin shutdown " - echo " 'reset' for admin reset of cluster" + echo " 'reset' for admin reset of node/cluster" + echo " 'execute' for executing action on remote node/cluster" + echo " -a or --action : action name is a script stored in /usr/lib/opensaf/clm-scripts" + echo " directory started with prefix "osafclm_"" echo " DN : a valid DN name of CLM node or cluster (mandatory)" echo "" echo "" + echo "NOTES:" + echo " 1) -a is only mandatory with 'execute' operation" + echo "" + echo "" + echo "EXAMPLES:" + echo " clm-adm -o execute -a test safNode=SC-2,safCluster=myClmCluster" + echo " execute script locate on /usr/lib/opensaf/clm-scripts/osafclm_test on SC-2" + echo " clm-adm -o reset safCluster=myClmCluster" + echo " Cluster reboot" + echo " clm-adm -o reset safNode=SC-2,safCluster=myClmCluster" + echo " Node SC-2 reboot" + echo "" + echo "" } -options=$(getopt -o t:o:h -l timeout:,admin-op:,help -- "$@") +options=$(getopt -o t:o:a:h -l timeout:,admin-op:,action:,help -- "$@") status=$? if [ $status -ne 0 ] ; then echo "Try '$(basename "$0") -h or --help' for more information" @@ -41,6 +57,8 @@ eval set -- "$options" DN="" CMD="" TIMEOUT="" +ACTION="" +OPERATION="" while true; do case $1 in @@ -51,6 +69,7 @@ while true; do ;; -o|--admin-op) shift 1 + OPERATION=$1 if [ "$1" = "unlock" ]; then CMD=1 elif [ "$1" = "lock" ]; then @@ -59,12 +78,19 @@ while true; do CMD=3 elif [ "$1" = "reset" ]; then CMD=4 + elif [ "$1" = "execute" ]; then + CMD=5 else echo "Invalid operation name" exit 1 fi shift 1 ;; + -a|--action) + shift 1 + ACTION=$1 + shift 1 + ;; -h|--help) usage exit 0 @@ -86,9 +112,22 @@ if [ "$CMD" = "" ]; then exit 1 fi +if [ "$CMD" = "5" ] && [ "$ACTION" = "" ]; then + echo "action name is mandatory in 'execute' operation" + echo "Try '$(basename "$0") -h or --help' for more information" + exit 1 +fi + +if [ "$CMD" != "5" ] && [ "$ACTION" != "" ]; then + echo "-a option is redundant in '$OPERATION' operation" + echo "Try '$(basename "$0") -h or --help' for more information" + exit 1 +fi + shift $((OPTIND -1)) DN="$*" + if [ "$DN" = "" ]; then echo "DN name is mandatory" echo "Try '$(basename "$0") -h or --help' for more information" @@ -96,9 +135,17 @@ if [ "$DN" = "" ]; then fi if [ "$TIMEOUT" = "" ]; then - immadm -o "$CMD" "$DN" + if [ "$ACTION" != "" ]; then + immadm -o "$CMD" -p "saClmAction:SA_STRING_T:$ACTION" "$DN" + else + immadm -o "$CMD" "$DN" + fi else - immadm -t "$TIMEOUT" -o "$CMD" "$DN" + if [ "$ACTION" != "" ]; then + immadm -t "$TIMEOUT" -o "$CMD" -p "saClmAction:SA_STRING_T:$ACTION" "$DN" + else + immadm -t "$TIMEOUT" -o "$CMD" "$DN" + fi fi exit $? -- 2.17.1 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel