+ /* Test only commands */
+ {"==== testing (DANGEROUS) ====", NULL, 0, "testing (DANGEROUS)"},
+ {"--threads", jt_opt_threads, 0,
+ "run <threads> separate instances of <command> on device <devno>\n"
+ "--threads <threads> <verbose> <devno> <command [args ...]>"},
+ {"lookup", jt_obd_mdc_lookup, 0, "report file mode info\n"
+ "usage: lookup <directory> <file>"},
+ {"readonly", jt_obd_set_readonly, 0,
+ "disable writes to the underlying device\n"},
+#ifdef HAVE_SERVER_SUPPORT
+ {"notransno", jt_obd_no_transno, 0,
+ "disable sending of committed-transno updates\n"},
+#endif
+ {"add_uuid", jt_lcfg_add_uuid, 0, "associate a UUID with a NID\n"
+ "usage: add_uuid <uuid> <nid>"},
+ {"del_uuid", jt_lcfg_del_uuid, 0, "delete a UUID association\n"
+ "usage: del_uuid <uuid>"},
+ {"add_peer", jt_ptl_add_peer, 0, "add an peer entry\n"
+ "usage: add_peer <nid> <host> <port>"},
+ {"del_peer", jt_ptl_del_peer, 0, "remove an peer entry\n"
+ "usage: del_peer [<nid>] [<ipaddr|pid>]"},
+ {"add_conn ", jt_lcfg_add_conn, 0,
+ "usage: add_conn <conn_uuid> [priority]\n"},
+ {"del_conn ", jt_lcfg_del_conn, 0,
+ "usage: del_conn <conn_uuid>"},
+ {"disconnect", jt_ptl_disconnect, 0, "disconnect from a remote NID\n"
+ "usage: disconnect [<nid>]"},
+ {"push", jt_ptl_push_connection, 0, "flush connection to a remote NID\n"
+ "usage: push [<nid>]"},
+ {"mynid", jt_ptl_mynid, 0, "inform the LND of the local NID. "
+ "The NID defaults to hostname for TCP networks.\n"
+ "usage: mynid [<nid>]"},
+ {"fail", jt_ptl_fail_nid, 0, "fail/restore network communications\n"
+ "Omitting the count means indefinitely, 0 means restore, "
+ "otherwise fail 'count' messages.\n"
+ "usage: fail nid|_all_ [count]"},
+
+ /* Test commands for echo client */
+ {"test_create", jt_obd_test_create, 0,
+ "create files on MDT by echo client\n"
+ "usage: test_create [-d parent_basedir] <-D parent_count> "
+ "[-b child_base_id] <-c stripe_count> <-n count> <-t time>\n"},
+ {"test_mkdir", jt_obd_test_mkdir, 0,
+ "mkdir on MDT by echo client\n"
+ "usage: test_mkdir [-d parent_basedir] <-D parent_count>"
+ "[-b child_base_id] [-n count] <-t time>\n"},
+ {"test_destroy", jt_obd_test_destroy, 0,
+ "Destroy files on MDT by echo client\n"
+ "usage: test_destroy [-d parent_basedir] <-D parent_count>"
+ "[-b child_base_id] [-n count] <-t time>\n"},
+ {"test_rmdir", jt_obd_test_rmdir, 0,
+ "rmdir on MDT by echo client\n"
+ "usage: test_rmdir [-d parent_basedir] <-D parent_count>"
+ "[-b child_base_id] [-n count] <-t time>\n"},
+ {"test_lookup", jt_obd_test_lookup, 0,
+ "lookup files on MDT by echo client\n"
+ "usage: test_lookup [-d parent_basedir] <-D parent_count>"
+ "[-b child_base_id] [-n count] <-t time>\n"},
+ {"test_setxattr", jt_obd_test_setxattr, 0,
+ "Set EA for files/directory on MDT by echo client\n"
+ "usage: test_setxattr [-d parent_baseid] <-D parent_count>"
+ "[-b child_base_id] [-n count] <-t time>\n"},
+ {"test_md_getattr", jt_obd_test_md_getattr, 0,
+ "getattr files on MDT by echo client\n"
+ "usage: test_md_getattr [-d parent_basedir] <-D parent_count>"
+ "[-b child_base_id] [-n count] <-t time>\n"},
+ {"getattr", jt_obd_getattr, 0,
+ "get attribute for OST object <objid>\n"
+ "usage: getattr <objid>"},
+ {"setattr", jt_obd_setattr, 0,
+ "set mode attribute for OST object <objid>\n"
+ "usage: setattr <objid> <mode>"},
+ {"create", jt_obd_create, 0,
+ "create <num> OST objects (with <mode>)\n"
+ "usage: create [num [mode [verbose [lsm data]]]]"},
+ {"destroy", jt_obd_destroy, 0,
+ "destroy OST object <objid> [num [verbose]]\n"
+ "usage: destroy <num> objects, starting at objid <objid>"},
+ {"test_getattr", jt_obd_test_getattr, 0,
+ "do <num> getattrs (on OST object <objid> (objid+1 on each thread))\n"
+ "usage: test_getattr <num> [verbose [[t]objid]]"},
+ {"test_setattr", jt_obd_test_setattr, 0,
+ "do <num> setattrs (on OST object <objid> (objid+1 on each thread))\n"
+ "usage: test_setattr <num> [verbose [[t]objid]]"},
+ {"test_brw", jt_obd_test_brw, 0,
+ "do <num> bulk read/writes (<npages> per I/O, on OST object <objid>)\n"
+ "usage: test_brw [t]<num> [write [verbose [npages [[t]objid]]]]"},
+ {"getobjversion", jt_get_obj_version, 0,
+ "get the version of an object on servers\n"
+ "usage: getobjversion <fid>\n"
+ " getobjversion -i <id> -g <group>"},