From 75116202aa1977d0f94f05e2406cecfd24356124 Mon Sep 17 00:00:00 2001 From: Emoly Liu Date: Sat, 8 Feb 2025 15:30:01 +0800 Subject: [PATCH] LU-18114 nodemap: split "lctl nodemap_*" group into subcommands Split "lctl nodemap_*" command group into subcommands, e.g. "lctl nodemap_add" to "lctl nodemap add". And "lctl nodemap_*" commands in sanity-sec.sh are modified to verify this patch. Also, the old man pages are modified to reflect the new command format, and the new man page references for lctl-nodemap_xxx.8 are added to match the old ones. Test-Parameters: testlist=sanity-sec Signed-off-by: Emoly Liu Change-Id: I165583d95f4a850ce2461c15c56583d64077ef16 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/56207 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Oleg Drokin Reviewed-by: Andreas Dilger Reviewed-by: Sebastien Buisson Reviewed-by: Marc Vef --- lustre/doc/Makefile.am | 12 +++++ lustre/doc/lctl-nodemap-activate.8 | 2 + lustre/doc/lctl-nodemap-add-idmap.8 | 2 + lustre/doc/lctl-nodemap-add-offset.8 | 2 + lustre/doc/lctl-nodemap-add-range.8 | 2 + lustre/doc/lctl-nodemap-add.8 | 5 +- lustre/doc/lctl-nodemap-del-idmap.8 | 2 + lustre/doc/lctl-nodemap-del-offset.8 | 2 + lustre/doc/lctl-nodemap-del-range.8 | 2 + lustre/doc/lctl-nodemap-del.8 | 2 + lustre/doc/lctl-nodemap-modify.8 | 2 + lustre/doc/lctl-nodemap-set-fileset.8 | 2 + lustre/doc/lctl-nodemap-set-sepol.8 | 2 + lustre/doc/lctl-nodemap_activate.8 | 1 + lustre/doc/lctl-nodemap_add.8 | 1 + lustre/doc/lctl-nodemap_add_idmap.8 | 1 + lustre/doc/lctl-nodemap_add_offset.8 | 1 + lustre/doc/lctl-nodemap_add_range.8 | 1 + lustre/doc/lctl-nodemap_del.8 | 1 + lustre/doc/lctl-nodemap_del_idmap.8 | 1 + lustre/doc/lctl-nodemap_del_offset.8 | 1 + lustre/doc/lctl-nodemap_del_range.8 | 1 + lustre/doc/lctl-nodemap_modify.8 | 1 + lustre/doc/lctl-nodemap_set_fileset.8 | 1 + lustre/doc/lctl-nodemap_set_sepol.8 | 1 + lustre/tests/sanity-sec.sh | 88 +++++++++++++++++++++++------------ lustre/utils/lctl.c | 71 ++++++++++++++++++++++++++-- 27 files changed, 174 insertions(+), 36 deletions(-) create mode 100644 lustre/doc/lctl-nodemap_activate.8 create mode 100644 lustre/doc/lctl-nodemap_add.8 create mode 100644 lustre/doc/lctl-nodemap_add_idmap.8 create mode 100644 lustre/doc/lctl-nodemap_add_offset.8 create mode 100644 lustre/doc/lctl-nodemap_add_range.8 create mode 100644 lustre/doc/lctl-nodemap_del.8 create mode 100644 lustre/doc/lctl-nodemap_del_idmap.8 create mode 100644 lustre/doc/lctl-nodemap_del_offset.8 create mode 100644 lustre/doc/lctl-nodemap_del_range.8 create mode 100644 lustre/doc/lctl-nodemap_modify.8 create mode 100644 lustre/doc/lctl-nodemap_set_fileset.8 create mode 100644 lustre/doc/lctl-nodemap_set_sepol.8 diff --git a/lustre/doc/Makefile.am b/lustre/doc/Makefile.am index bbe0ce0..e9fc4d7 100644 --- a/lustre/doc/Makefile.am +++ b/lustre/doc/Makefile.am @@ -234,17 +234,29 @@ SERVER_MANFILES = \ lctl-llog_remove.8 \ lctl-del_ost.8 \ lctl-nodemap-activate.8 \ + lctl-nodemap_activate.8 \ lctl-nodemap-add-idmap.8 \ + lctl-nodemap_add_idmap.8 \ lctl-nodemap-add-range.8 \ + lctl-nodemap_add_range.8 \ lctl-nodemap-add.8 \ + lctl-nodemap_add.8 \ lctl-nodemap-del-idmap.8 \ + lctl-nodemap_del_idmap.8 \ lctl-nodemap-del-range.8 \ + lctl-nodemap_del_range.8 \ lctl-nodemap-del.8 \ + lctl-nodemap_del.8 \ lctl-nodemap-modify.8 \ + lctl-nodemap_modify.8 \ lctl-nodemap-set-fileset.8 \ + lctl-nodemap_set_fileset.8 \ lctl-nodemap-set-sepol.8 \ + lctl-nodemap_set_sepol.8 \ lctl-nodemap-add-offset.8 \ + lctl-nodemap_add_offset.8 \ lctl-nodemap-del-offset.8 \ + lctl-nodemap_del_offset.8 \ lctl-snapshot-create.8 \ lctl-snapshot-destroy.8 \ lctl-snapshot-list.8 \ diff --git a/lustre/doc/lctl-nodemap-activate.8 b/lustre/doc/lctl-nodemap-activate.8 index 36c1520..16394b8 100644 --- a/lustre/doc/lctl-nodemap-activate.8 +++ b/lustre/doc/lctl-nodemap-activate.8 @@ -3,6 +3,8 @@ lctl-nodemap_activate \- activate or deactivate the nodemap feature .SH SYNOPSIS .SY "lctl nodemap_activate" +or +.SY "lctl nodemap activate" .RB { <0,off,false,f,no,n> | <1,on,true,t,yes,y> } .YS .SH DESCRIPTION diff --git a/lustre/doc/lctl-nodemap-add-idmap.8 b/lustre/doc/lctl-nodemap-add-idmap.8 index 6097c1c..0b551d5 100644 --- a/lustre/doc/lctl-nodemap-add-idmap.8 +++ b/lustre/doc/lctl-nodemap-add-idmap.8 @@ -3,6 +3,8 @@ lctl-nodemap_add_idmap \- define ID mappings for a nodemap .SH SYNOPSIS .SY "lctl nodemap_add_idmap" +or +.SY "lctl nodemap add_idmap" .B --name .I NODEMAP_NAME .BR --idtype " {" uid | gid | projid } diff --git a/lustre/doc/lctl-nodemap-add-offset.8 b/lustre/doc/lctl-nodemap-add-offset.8 index 3a2e338..13b90b4 100644 --- a/lustre/doc/lctl-nodemap-add-offset.8 +++ b/lustre/doc/lctl-nodemap-add-offset.8 @@ -3,6 +3,8 @@ lctl-nodemap_add_offset \- define ID mapping offset for a nodemap .SH SYNOPSIS .SY "lctl nodemap_add_offset" +or +.SY "lctl nodemap add_offset" .BI --name " NAME" .BI --offset " OFFSET" .BI --limit " FSID_COUNT" diff --git a/lustre/doc/lctl-nodemap-add-range.8 b/lustre/doc/lctl-nodemap-add-range.8 index 0a8f1dc..9e10182 100644 --- a/lustre/doc/lctl-nodemap-add-range.8 +++ b/lustre/doc/lctl-nodemap-add-range.8 @@ -3,6 +3,8 @@ lctl-nodemap_add_range \- define a range of NIDs for a nodemap .SH SYNOPSIS .SY "lctl nodemap_add_range" +or +.SY "lctl nodemap add_range" .BI --name " NODEMAP_NAME" .BI --range " NID_RANGE" .YS diff --git a/lustre/doc/lctl-nodemap-add.8 b/lustre/doc/lctl-nodemap-add.8 index 4cfba22..eee2a47 100644 --- a/lustre/doc/lctl-nodemap-add.8 +++ b/lustre/doc/lctl-nodemap-add.8 @@ -2,7 +2,10 @@ .SH NAME lctl-nodemap_add \- create a new nodemap to define client behavior .SH SYNOPSIS -.BR "lctl nodemap_add" " [ " -d "|" --dynamic " ] " \fINODEMAP_NAME +.SY "lctl nodemap_add" +or +.SY "lctl nodemap add" +.BR "[ " -d "|" --dynamic " ] " \fINODEMAP_NAME .br .SH DESCRIPTION .B nodemap_add diff --git a/lustre/doc/lctl-nodemap-del-idmap.8 b/lustre/doc/lctl-nodemap-del-idmap.8 index a149e8b..b326862 100644 --- a/lustre/doc/lctl-nodemap-del-idmap.8 +++ b/lustre/doc/lctl-nodemap-del-idmap.8 @@ -3,6 +3,8 @@ lctl-nodemap_del_idmap \- delete an existing idmap from a nodemap .SH SYNOPSIS .SY "lctl nodemap_del_idmap" +or +.SY "lctl nodemap del_idmap" .BI --name " NODEMAP_NAME" .BR --idtype " {" uid | gid | projid } .B --idmap diff --git a/lustre/doc/lctl-nodemap-del-offset.8 b/lustre/doc/lctl-nodemap-del-offset.8 index d670f64..68ff650 100644 --- a/lustre/doc/lctl-nodemap-del-offset.8 +++ b/lustre/doc/lctl-nodemap-del-offset.8 @@ -3,6 +3,8 @@ lctl-nodemap_del_offset \- remove ID mapping offset from a nodemap .SH SYNOPSIS .SY "lctl nodemap_del_offset" +or +.SY "lctl nodemap del_offset" .BI --name " NAME" .YS .SH DESCRIPTION diff --git a/lustre/doc/lctl-nodemap-del-range.8 b/lustre/doc/lctl-nodemap-del-range.8 index 7fcf1a8..37720ba 100644 --- a/lustre/doc/lctl-nodemap-del-range.8 +++ b/lustre/doc/lctl-nodemap-del-range.8 @@ -3,6 +3,8 @@ lctl-nodemap_del_range \- delete an existing NID range from a nodemap .SH SYNOPSIS .SY "lctl nodemap_del_range" +or +.SY "lctl nodemap del_range" .BI --name " NODEMAP_NAME" .BI --range " NID_RANGE" .YS diff --git a/lustre/doc/lctl-nodemap-del.8 b/lustre/doc/lctl-nodemap-del.8 index 8f510a1..e787116 100644 --- a/lustre/doc/lctl-nodemap-del.8 +++ b/lustre/doc/lctl-nodemap-del.8 @@ -3,6 +3,8 @@ lctl-nodemap_del \- delete an existing nodemap .SH SYNOPSIS .SY "lctl nodemap_del" +or +.SY "lctl nodemap del" .I NODEMAP_NAME .YS .SH DESCRIPTION diff --git a/lustre/doc/lctl-nodemap-modify.8 b/lustre/doc/lctl-nodemap-modify.8 index e5bd903..d620422 100644 --- a/lustre/doc/lctl-nodemap-modify.8 +++ b/lustre/doc/lctl-nodemap-modify.8 @@ -3,6 +3,8 @@ lctl-nodemap_modify \- modify a nodemap property .SH SYNOPSIS .SY "lctl nodemap_modify" +or +.SY "lctl nodemap modify" .BI --name " NODEMAP_NAME" .BI --property " PROPERTY_NAME" .BI --value " VALUE" diff --git a/lustre/doc/lctl-nodemap-set-fileset.8 b/lustre/doc/lctl-nodemap-set-fileset.8 index 4374c16..7943d19 100644 --- a/lustre/doc/lctl-nodemap-set-fileset.8 +++ b/lustre/doc/lctl-nodemap-set-fileset.8 @@ -3,6 +3,8 @@ lctl-nodemap_set_fileset \- add a fileset to a nodemap .SH SYNOPSIS .SY "lctl nodemap_set_fileset" +or +.SY "lctl nodemap set_fileset" .BI --name " NODEMAP" .BI --fileset " SUBDIRECTORY" .YS diff --git a/lustre/doc/lctl-nodemap-set-sepol.8 b/lustre/doc/lctl-nodemap-set-sepol.8 index dbc30a7..0d86923 100644 --- a/lustre/doc/lctl-nodemap-set-sepol.8 +++ b/lustre/doc/lctl-nodemap-set-sepol.8 @@ -3,6 +3,8 @@ lctl-nodemap_set_sepol \- set SELinux policy info on a nodemap .SH SYNOPSIS .SY "lctl nodemap_set_sepol" +or +.SY "lctl nodemap set_sepol" .BI --name " NODEMAP" .BI --sepol " POLICY" .YS diff --git a/lustre/doc/lctl-nodemap_activate.8 b/lustre/doc/lctl-nodemap_activate.8 new file mode 100644 index 0000000..681c04b --- /dev/null +++ b/lustre/doc/lctl-nodemap_activate.8 @@ -0,0 +1 @@ +.so man8/lctl-nodemap-activate.8 diff --git a/lustre/doc/lctl-nodemap_add.8 b/lustre/doc/lctl-nodemap_add.8 new file mode 100644 index 0000000..8364a61 --- /dev/null +++ b/lustre/doc/lctl-nodemap_add.8 @@ -0,0 +1 @@ +.so man8/lctl-nodemap-add.8 diff --git a/lustre/doc/lctl-nodemap_add_idmap.8 b/lustre/doc/lctl-nodemap_add_idmap.8 new file mode 100644 index 0000000..217c61b --- /dev/null +++ b/lustre/doc/lctl-nodemap_add_idmap.8 @@ -0,0 +1 @@ +.so man8/lctl-nodemap-add-idmap.8 diff --git a/lustre/doc/lctl-nodemap_add_offset.8 b/lustre/doc/lctl-nodemap_add_offset.8 new file mode 100644 index 0000000..40f8adc --- /dev/null +++ b/lustre/doc/lctl-nodemap_add_offset.8 @@ -0,0 +1 @@ +.so man8/lctl-nodemap-add-offset.8 diff --git a/lustre/doc/lctl-nodemap_add_range.8 b/lustre/doc/lctl-nodemap_add_range.8 new file mode 100644 index 0000000..5e7e800 --- /dev/null +++ b/lustre/doc/lctl-nodemap_add_range.8 @@ -0,0 +1 @@ +.so man8/lctl-nodemap-add-range.8 diff --git a/lustre/doc/lctl-nodemap_del.8 b/lustre/doc/lctl-nodemap_del.8 new file mode 100644 index 0000000..7917847 --- /dev/null +++ b/lustre/doc/lctl-nodemap_del.8 @@ -0,0 +1 @@ +.so man8/lctl-nodemap-del.8 diff --git a/lustre/doc/lctl-nodemap_del_idmap.8 b/lustre/doc/lctl-nodemap_del_idmap.8 new file mode 100644 index 0000000..fea7fa9 --- /dev/null +++ b/lustre/doc/lctl-nodemap_del_idmap.8 @@ -0,0 +1 @@ +.so man8/lctl-nodemap-del-idmap.8 diff --git a/lustre/doc/lctl-nodemap_del_offset.8 b/lustre/doc/lctl-nodemap_del_offset.8 new file mode 100644 index 0000000..058e49c --- /dev/null +++ b/lustre/doc/lctl-nodemap_del_offset.8 @@ -0,0 +1 @@ +.so man8/lctl-nodemap-del-offset.8 diff --git a/lustre/doc/lctl-nodemap_del_range.8 b/lustre/doc/lctl-nodemap_del_range.8 new file mode 100644 index 0000000..743bd9c --- /dev/null +++ b/lustre/doc/lctl-nodemap_del_range.8 @@ -0,0 +1 @@ +.so man8/lctl-nodemap-del-range.8 diff --git a/lustre/doc/lctl-nodemap_modify.8 b/lustre/doc/lctl-nodemap_modify.8 new file mode 100644 index 0000000..d3cfdba --- /dev/null +++ b/lustre/doc/lctl-nodemap_modify.8 @@ -0,0 +1 @@ +.so man8/lctl-nodemap-modify.8 diff --git a/lustre/doc/lctl-nodemap_set_fileset.8 b/lustre/doc/lctl-nodemap_set_fileset.8 new file mode 100644 index 0000000..50c9f02 --- /dev/null +++ b/lustre/doc/lctl-nodemap_set_fileset.8 @@ -0,0 +1 @@ +.so man8/lctl-nodemap-set-fileset.8 diff --git a/lustre/doc/lctl-nodemap_set_sepol.8 b/lustre/doc/lctl-nodemap_set_sepol.8 new file mode 100644 index 0000000..a427753 --- /dev/null +++ b/lustre/doc/lctl-nodemap_set_sepol.8 @@ -0,0 +1 @@ +.so man8/lctl-nodemap-set-sepol.8 diff --git a/lustre/tests/sanity-sec.sh b/lustre/tests/sanity-sec.sh index 16cfad7..0c30000 100755 --- a/lustre/tests/sanity-sec.sh +++ b/lustre/tests/sanity-sec.sh @@ -100,6 +100,34 @@ IDENTITY_FLUSH=mdt.$MDT.identity_flush SAVE_PWD=$PWD +if (( $MDS1_VERSION >= $(version_code 2.16.51) )); then + nodemap_activate="nodemap activate" + nodemap_add="nodemap add" + nodemap_del="nodemap del" + nodemap_modify="nodemap modify" + nodemap_add_range="nodemap add_range" + nodemap_del_range="nodemap del_range" + nodemap_add_idmap="nodemap add_idmap" + nodemap_del_idmap="nodemap del_idmap" + nodemap_test_nid="nodemap test_nid" + nodemap_test_id="nodemap test_id" + nodemap_set_fileset="nodemap set_fileset" + nodemap_set_sepol="nodemap set_sepol" +else + nodemap_activate="nodemap_activate" + nodemap_add="nodemap_add" + nodemap_del="nodemap_del" + nodemap_modify="nodemap_modify" + nodemap_add_range="nodemap_add_range" + nodemap_del_range="nodemap_del_range" + nodemap_add_idmap="nodemap_add_idmap" + nodemap_del_idmap="nodemap_del_idmap" + nodemap_test_nid="nodemap_test_nid" + nodemap_test_id="nodemap_test_id" + nodemap_set_fileset="nodemap_set_fileset" + nodemap_set_sepol="nodemap_set_sepol" +fi + sec_login() { local user=$1 local group=$2 @@ -271,10 +299,10 @@ create_nodemaps() { for (( i = 0; i < NODEMAP_COUNT; i++ )); do local csum=${HOSTNAME_CHECKSUM}_${i} - do_facet mgs $LCTL nodemap_add $csum + do_facet mgs $LCTL $nodemap_add $csum rc=$? if [ $rc -ne 0 ]; then - echo "nodemap_add $csum failed with $rc" + echo "$nodemap_add $csum failed with $rc" return $rc fi @@ -297,8 +325,8 @@ delete_nodemaps() { for ((i = 0; i < NODEMAP_COUNT; i++)); do local csum=${HOSTNAME_CHECKSUM}_${i} - if ! do_facet mgs $LCTL nodemap_del $csum; then - error "nodemap_del $csum failed with $?" + if ! do_facet mgs $LCTL $nodemap_del $csum; then + error "$nodemap_del $csum failed with $?" return 3 fi @@ -317,7 +345,7 @@ delete_nodemaps() { add_range() { local j - local cmd="$LCTL nodemap_add_range" + local cmd="$LCTL $nodemap_add_range" local range local rc=0 @@ -332,7 +360,7 @@ add_range() { delete_range() { local j - local cmd="$LCTL nodemap_del_range" + local cmd="$LCTL $nodemap_del_range" local range local rc=0 @@ -348,7 +376,7 @@ delete_range() { add_idmaps() { local i - local cmd="$LCTL nodemap_add_idmap" + local cmd="$LCTL $nodemap_add_idmap" local do_proj=true local rc=0 @@ -386,7 +414,7 @@ add_idmaps() { add_root_idmaps() { local i - local cmd="$LCTL nodemap_add_idmap" + local cmd="$LCTL $nodemap_add_idmap" local rc=0 echo "Start to add root idmaps ..." @@ -421,7 +449,7 @@ update_idmaps() { #LU-10040 echo "Start to update idmaps ..." #Inserting an existed idmap should return error - cmd="$LCTL nodemap_add_idmap --name $csum --idtype uid" + cmd="$LCTL $nodemap_add_idmap --name $csum --idtype uid" if do_facet mgs \ $cmd --idmap $old_id_client:$old_id_fs 2>/dev/null; then error "insert idmap {$old_id_client:$old_id_fs} " \ @@ -454,7 +482,7 @@ update_idmaps() { #LU-10040 rc=$((rc + 1)); return $rc; } #Delete above updated idmap - cmd="$LCTL nodemap_del_idmap --name $csum --idtype uid" + cmd="$LCTL $nodemap_del_idmap --name $csum --idtype uid" if ! do_facet mgs $cmd --idmap $new_id:$new_id; then error "$cmd --idmap $new_id:$new_id failed" rc=$((rc + 1)) @@ -462,7 +490,7 @@ update_idmaps() { #LU-10040 fi #restore the idmaps to make delete_idmaps work well - cmd="$LCTL nodemap_add_idmap --name $csum --idtype uid" + cmd="$LCTL $nodemap_add_idmap --name $csum --idtype uid" if ! do_facet mgs $cmd --idmap $old_id_client:$old_id_fs; then error "$cmd --idmap $old_id_client:$old_id_fs failed" rc=$((rc + 1)) @@ -474,7 +502,7 @@ update_idmaps() { #LU-10040 delete_idmaps() { local i - local cmd="$LCTL nodemap_del_idmap" + local cmd="$LCTL $nodemap_del_idmap" local do_proj=true local rc=0 @@ -512,7 +540,7 @@ delete_idmaps() { delete_root_idmaps() { local i - local cmd="$LCTL nodemap_del_idmap" + local cmd="$LCTL $nodemap_del_idmap" local rc=0 echo "Start to delete root idmaps ..." @@ -536,7 +564,7 @@ modify_flags() { local i local proc local option - local cmd="$LCTL nodemap_modify" + local cmd="$LCTL $nodemap_modify" local rc=0 proc[0]="admin_nodemap" @@ -565,9 +593,9 @@ squash_id() { local cmd - cmd[0]="$LCTL nodemap_modify --property squash_uid" - cmd[1]="$LCTL nodemap_modify --property squash_gid" - cmd[2]="$LCTL nodemap_modify --property squash_projid" + cmd[0]="$LCTL $nodemap_modify --property squash_uid" + cmd[1]="$LCTL $nodemap_modify --property squash_gid" + cmd[2]="$LCTL $nodemap_modify --property squash_projid" if ! do_facet mgs ${cmd[$3]} --name $1 --value $2; then return 1 @@ -587,7 +615,7 @@ fi test_nid() { local cmd - cmd="$LCTL nodemap_test_nid" + cmd="$LCTL $nodemap_test_nid" nid=$(do_facet mgs $cmd $1) @@ -600,13 +628,13 @@ test_nid() { cleanup_active() { # restore activation state - do_facet mgs $LCTL nodemap_activate 0 + do_facet mgs $LCTL $nodemap_activate 0 wait_nm_sync active } test_idmap() { local i - local cmd="$LCTL nodemap_test_id" + local cmd="$LCTL $nodemap_test_id" local do_root_idmap=true local rc=0 @@ -614,7 +642,7 @@ test_idmap() { echo "Start to test idmaps ..." ## nodemap deactivated - if ! do_facet mgs $LCTL nodemap_activate 0; then + if ! do_facet mgs $LCTL $nodemap_activate 0; then return 1 fi for ((id = $ID0; id < NODEMAP_MAX_ID; id++)); do @@ -632,7 +660,7 @@ test_idmap() { done ## nodemap activated - if ! do_facet mgs $LCTL nodemap_activate 1; then + if ! do_facet mgs $LCTL $nodemap_activate 1; then return 2 fi @@ -653,9 +681,9 @@ test_idmap() { for ((i = 0; i < NODEMAP_COUNT; i++)); do local csum=${HOSTNAME_CHECKSUM}_${i} - if ! do_facet mgs $LCTL nodemap_modify --name $csum \ + if ! do_facet mgs $LCTL $nodemap_modify --name $csum \ --property trusted --value 1; then - error "nodemap_modify $csum failed with $?" + error "$nodemap_modify $csum failed with $?" return 3 fi done @@ -676,9 +704,9 @@ test_idmap() { for ((i = 0; i < NODEMAP_COUNT; i++)); do local csum=${HOSTNAME_CHECKSUM}_${i} - if ! do_facet mgs $LCTL nodemap_modify --name $csum \ + if ! do_facet mgs $LCTL $nodemap_modify --name $csum \ --property admin --value 1; then - error "nodemap_modify $csum failed with $?" + error "$nodemap_modify $csum failed with $?" return 3 fi done @@ -716,9 +744,9 @@ test_idmap() { for ((i = 0; i < NODEMAP_COUNT; i++)); do local csum=${HOSTNAME_CHECKSUM}_${i} - if ! do_facet mgs $LCTL nodemap_modify --name $csum \ + if ! do_facet mgs $LCTL $nodemap_modify --name $csum \ --property admin --value 0; then - error "nodemap_modify ${HOSTNAME_CHECKSUM}_${i} " + error "$nodemap_modify ${HOSTNAME_CHECKSUM}_${i} " "failed with $rc" return 3 fi @@ -756,10 +784,10 @@ test_idmap() { ## reset client trust to 0 for ((i = 0; i < NODEMAP_COUNT; i++)); do - if ! do_facet mgs $LCTL nodemap_modify \ + if ! do_facet mgs $LCTL $nodemap_modify \ --name ${HOSTNAME_CHECKSUM}_${i} \ --property trusted --value 0; then - error "nodemap_modify ${HOSTNAME_CHECKSUM}_${i} " + error "$nodemap_modify ${HOSTNAME_CHECKSUM}_${i} " "failed with $rc" return 3 fi diff --git a/lustre/utils/lctl.c b/lustre/utils/lctl.c index b389a91..827045a 100644 --- a/lustre/utils/lctl.c +++ b/lustre/utils/lctl.c @@ -157,6 +157,63 @@ command_t net_delay_cmdlist[] = { }; JT_SUBCMD(net_delay); +/** + * command_t nodemap_cmdlist - lctl nodemap commands. + */ +command_t nodemap_cmdlist[] = { + {.pc_name = "activate", .pc_func = jt_nodemap_activate, + .pc_help = "activate nodemap idmapping functions\n" + "usage: nodemap activate {0|1}"}, + {.pc_name = "add", .pc_func = jt_nodemap_add, + .pc_help = "add a new nodemap\n" + "usage: nodemap add [-d|--dynamic] NODEMAP_NAME"}, + {.pc_name = "del", .pc_func = jt_nodemap_del, + .pc_help = "remove a nodemap\n" + "usage: nodemap del NODEMAP_NAME"}, + {.pc_name = "add_range", .pc_func = jt_nodemap_add_range, + .pc_help = "add a nid range to a nodemap\n" + "usage: nodemap add_range --name NODEMAP_NAME --range NID_RANGE"}, + {.pc_name = "del_range", .pc_func = jt_nodemap_del_range, + .pc_help = "delete a nid range from a nodemap\n" + "usage: nodemap del_range --name NODEMAP_NAME --range NID_RANGE"}, + {.pc_name = "modify", .pc_func = jt_nodemap_modify, + .pc_help = "modify a nodemap parameters\n" + "usage: nodemap modify --name NODEMAP_NAME --property PROPERTY\n" + " --value VALUE"}, + {.pc_name = "add_offset", .pc_func = jt_nodemap_add_offset, + .pc_help = "add an offset for UID/GID/PROJID mappings\n" + "usage: nodemap_add_offset --name NODEMAP_NAME --offset OFFSET\n" + " --limit LIMIT"}, + {.pc_name = "del_offset", .pc_func = jt_nodemap_del_offset, + .pc_help = "delete an offset for UID/GID/PROJID mappings\n" + "usage: nodemap_del_offset --name NODEMAP_NAME"}, + {.pc_name = "add_idmap", .pc_func = jt_nodemap_add_idmap, + .pc_help = "add a UID or GID mapping to a nodemap\n" + "usage: nodemap add_idmap --name NAME --idtype {uid|gid|projid}\n" + " --idmap CLIENTID:FSID"}, + {.pc_name = "del_idmap", .pc_func = jt_nodemap_del_idmap, + .pc_help = "delete a UID or GID mapping from a nodemap\n" + "usage: nodemap del_idmap --name NAME --idtype {uid|gid|projid}\n" + " --idmap CLIENTID:FSID"}, + {.pc_name = "set_fileset", .pc_func = jt_nodemap_set_fileset, + .pc_help = "set a fileset on a nodemap\n" + "usage: nodemap set_fileset --name NODEMAP_NAME --fileset FILESET"}, + {.pc_name = "set_sepol", .pc_func = jt_nodemap_set_sepol, + .pc_help = "set SELinux policy info on a nodemap\n" + "usage: nodemap set_sepol --name NODEMAP_NAME --sepol SEPOL"}, + {.pc_name = "test_nid", .pc_func = jt_nodemap_test_nid, + .pc_help = "test a nid for nodemap membership\n" + "usage: nodemap test_nid NID"}, + {.pc_name = "test_id", .pc_func = jt_nodemap_test_id, + .pc_help = "test a nodemap id pair for mapping\n" + "usage: nodemap test_id --nid NID --idtype {uid|gid|projid} --id ID"}, + {.pc_name = "info", .pc_func = jt_nodemap_info, + .pc_help = "print nodemap information\n" + "usage: nodemap info {list|nodemap_name|all}"}, + {.pc_help = NULL } +}; +JT_SUBCMD(nodemap); + #ifdef HAVE_SERVER_SUPPORT /** * command_t barrier_cmdlist - lctl barrier commands. @@ -511,10 +568,10 @@ command_t cmdlist[] = { "remove a nodemap\n" "usage: nodemap_del NODEMAP_NAME"}, {"nodemap_add_range", jt_nodemap_add_range, 0, - "add a range to a nodemap\n" + "add a nid range to a nodemap\n" "usage: nodemap_add_range --name NODEMAP_NAME --range NID_RANGE"}, {"nodemap_del_range", jt_nodemap_del_range, 0, - "delete a range from a nodemap\n" + "delete a nid range from a nodemap\n" "usage: nodemap_del_range --name NODEMAP_NAME --range NID_RANGE"}, {"nodemap_modify", jt_nodemap_modify, 0, "modify a nodemap parameter\n" @@ -524,13 +581,13 @@ command_t cmdlist[] = { "usage: nodemap_add_offset --name NODEMAP_NAME --offset OFFSET --limit LIMIT\n"}, {"nodemap_del_offset", jt_nodemap_del_offset, 0, "delete an offset for UID/GID/PROJID mappings\n" - "usage: nodemap_del_offset --name NODEMAP_NAME --offset OFFSET\n"}, + "usage: nodemap_del_offset --name NODEMAP_NAME\n"}, {"nodemap_add_idmap", jt_nodemap_add_idmap, 0, "add a UID or GID mapping to a nodemap\n" - "usage: nodemap_add_idmap --name NODEMAP_NAME --idtype ID_TYPE --idmap CLIENTID:FSID"}, + "usage: nodemap_add_idmap --name NODEMAP_NAME --idtype {uid|gid|projid} --idmap CLIENTID:FSID"}, {"nodemap_del_idmap", jt_nodemap_del_idmap, 0, "delete a UID or GID mapping from a nodemap\n" - "usage: nodemap_del_idmap --name NODEMAP_NAME --idtype ID_TYPE --idmap CLIENTID:FSID"}, + "usage: nodemap_del_idmap --name NODEMAP_NAME --idtype {uid|gid|projid} --idmap CLIENTID:FSID"}, {"nodemap_set_fileset", jt_nodemap_set_fileset, 0, "set a fileset on a nodemap\n" "usage: nodemap_set_fileset --name NODEMAP_NAME --fileset FILESET"}, @@ -538,11 +595,15 @@ command_t cmdlist[] = { "set SELinux policy info on a nodemap\n" "usage: nodemap_set_sepol --name NODEMAP_NAME --sepol SEPOL"}, {"nodemap_test_nid", jt_nodemap_test_nid, 0, + "test a nid for nodemap membership\n" "usage: nodemap_test_nid NID"}, {"nodemap_test_id", jt_nodemap_test_id, 0, + "test a nodemap id pair for mapping\n" "Usage: nodemap_test_id --nid NID --idtype ID_TYPE --id ID"}, {"nodemap_info", jt_nodemap_info, 0, + "print nodemap information\n" "Usage: nodemap_info [list|nodemap_name|all]"}, + {"nodemap", jt_nodemap, nodemap_cmdlist, ""}, /* Changelog commands */ {"=== Changelogs ==", NULL, 0, "changelog user management"}, -- 1.8.3.1