X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Futils%2Flctl.c;h=f1c7c3109b7da39b91e637bb1c37ef019a6bb6ae;hb=63a8fa36e6cd1e1c0a15ed8d615ae4cacc7c27d3;hp=1a713b879d2d1797e27cf86488d64b60bb4bf74e;hpb=04af22fc241e153d39e440b64e7e34fc6eb0cd2a;p=fs%2Flustre-release.git diff --git a/lustre/utils/lctl.c b/lustre/utils/lctl.c index 1a713b8..f1c7c31 100644 --- a/lustre/utils/lctl.c +++ b/lustre/utils/lctl.c @@ -1,33 +1,50 @@ /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- * vim:expandtab:shiftwidth=8:tabstop=8: * - * Copyright (C) 2002 Cluster File Systems, Inc. - * Author: Peter J. Braam - * Author: Phil Schwan - * Author: Robert Read + * GPL HEADER START * - * This file is part of Lustre, http://www.lustre.org. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Lustre is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 only, + * as published by the Free Software Foundation. * - * Lustre is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License version 2 for more details (a copy is included + * in the LICENSE file that accompanied this code). * - * You should have received a copy of the GNU General Public License - * along with Lustre; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * You should have received a copy of the GNU General Public License + * version 2 along with this program; If not, see + * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + * + * GPL HEADER END + */ +/* + * Copyright 2008 Sun Microsystems, Inc. All rights reserved + * Use is subject to license terms. + */ +/* + * This file is part of Lustre, http://www.lustre.org/ + * Lustre is a trademark of Sun Microsystems, Inc. + * + * lustre/utils/lctl.c + * + * Author: Peter J. Braam + * Author: Phil Schwan + * Author: Robert Read */ #include #include #include #include "obdctl.h" -#include "parser.h" +#include static int jt_quit(int argc, char **argv) { Parser_quit(argc, argv); @@ -103,7 +120,7 @@ command_t cmdlist[] = { {"device_list", jt_obd_list, 0, "show all devices\n" "usage: device_list"}, {"dl", jt_obd_list, 0, "show all devices\n" - "usage: dl"}, + "usage: dl [-t]"}, /* Device operations */ {"==== obd device operations ====", jt_noop, 0, "device operations"}, @@ -120,13 +137,25 @@ command_t cmdlist[] = { {"local_param", jt_lcfg_param, 0, "set a temporary, local param\n" "usage: local_param ...\n"}, {"get_param", jt_lcfg_getparam, 0, "get the Lustre or LNET parameter\n" - "usage: get_param [-n] path/to/param/file \n" - "Get the value of Lustre or LNET parameter from the specified path\n" - "Use '-n' to disable printing of the key name when printing values."}, + "usage: get_param [-n|-N|-F] \n" + "Get the value of Lustre or LNET parameter from the specified path.\n" + "The path can contain shell-style filename patterns.\n" + " -n Print only the value and not parameter name.\n" + " -N Print only matched parameter names and not the values.\n" + " (Especially useful when using patterns.)\n" + " -F When -N specified, add '/', '@' or '=' for directories,\n" + " symlinks and writeable files, respectively."}, {"set_param", jt_lcfg_setparam, 0, "set the Lustre or LNET parameter\n" - "usage: set_param [-n] path/to/param/file value\n" + "usage: set_param [-n] \n" "Set the value of the Lustre or LNET parameter at the specified path\n" - "Use '-n' to disable printing of the key name when printing values."}, + " -n Disable printing of the key name when printing values."}, + {"list_param", jt_lcfg_listparam, 0, + "list the Lustre or LNET parameter name\n" + "usage: list_param [-F] \n" + "List the name of Lustre or LNET parameter from the specified path.\n" + " -F Add '/', '@' or '=' for dirs, symlinks and writeable files,\n" + "respectively.\n" + " -R Recursively list all parameters under the specified path.\n"}, /* Debug commands */ {"==== debugging control ====", jt_noop, 0, "debug"}, @@ -160,6 +189,45 @@ command_t cmdlist[] = { "provide gdb-friendly module information\n" "usage: modules "}, + /* virtual block operations */ + {"==== virtual block device ====", jt_noop, 0, "virtual block device"}, + {"blockdev_attach", jt_blockdev_attach, 0, + "attach a lustre regular file to a virtual block device\n" + "usage: blockdev_attach "}, + {"blockdev_detach", jt_blockdev_detach, 0, + "detach a lustre regular file from a virtual block device\n" + "usage: blockdev_detach "}, + {"blockdev_info", jt_blockdev_info, 0, + "get the device info of a attached file\n" + "usage: blockdev_info "}, + + /* Pool commands */ + {"=== Pools ==", jt_noop, 0, "pool management"}, + {"pool_new", jt_pool_cmd, 0, + "add a new pool\n" + "usage pool_new ."}, + {"pool_add", jt_pool_cmd, 0, + "add the named OSTs to the pool\n" + "usage pool_add . "}, + {"pool_remove", jt_pool_cmd, 0, + "remove the named OST from the pool\n" + "usage pool_remove . "}, + {"pool_destroy", jt_pool_cmd, 0, + "destroy a pool\n" + "usage pool_destroy ."}, + {"pool_list", jt_pool_cmd, 0, + "list pools and pools members\n" + "usage pool_list [.] | "}, + + /* Changelog commands */ + {"=== Changelogs ==", jt_noop, 0, "changelog user management"}, + {"changelog_register", jt_changelog_register, 0, + "register a new persistent changelog user, returns id\n" + "usage:\tdevice \n\tchangelog_register [-n]"}, + {"changelog_deregister", jt_changelog_deregister, 0, + "deregister an existing changelog user\n" + "usage:\tdevice \n\tchangelog_deregister "}, + /* Device configuration commands */ {"== device setup (these are not normally used post 1.4) ==", jt_noop, 0, "device config"}, @@ -178,18 +246,6 @@ command_t cmdlist[] = { "print log of recorded commands for this config to kernel debug log\n" "usage: dump_cfg config-uuid-name"}, - /* virtual block operations */ - {"==== virtual block device ====", jt_noop, 0, "virtual block device"}, - {"blockdev_attach", jt_blockdev_attach, 0, - "attach a lustre regular file to a virtual block device\n" - "usage: blockdev_attach "}, - {"blockdev_detach", jt_blockdev_detach, 0, - "detach a lustre regular file from a virtual block device\n" - "usage: blockdev_detach "}, - {"blockdev_info", jt_blockdev_info, 0, - "get the device info of a attached file\n" - "usage: blockdev_info "}, - /* Test only commands */ {"==== testing (DANGEROUS) ====", jt_noop, 0, "testing (DANGEROUS)"}, {"--threads", jt_opt_threads, 0, @@ -208,7 +264,7 @@ command_t cmdlist[] = { {"add_peer", jt_ptl_add_peer, 0, "add an peer entry\n" "usage: add_peer "}, {"del_peer", jt_ptl_del_peer, 0, "remove an peer entry\n" - "usage: del_autoconn [] [] [ks]"}, + "usage: del_peer [] []"}, {"add_conn ", jt_lcfg_add_conn, 0, "usage: add_conn [priority]\n"}, {"del_conn ", jt_lcfg_del_conn, 0, @@ -251,6 +307,9 @@ command_t cmdlist[] = { {"memhog", jt_ptl_memhog, 0, "memory pressure testing\n" "usage: memhog []"}, + {"getobjversion", jt_get_obj_version, 0, + "get the version of an object on servers\n" + "usage: getobjversion "}, {"==== obsolete (DANGEROUS) ====", jt_noop, 0, "obsolete (DANGEROUS)"}, /* some test scripts still use these */ @@ -327,7 +386,7 @@ int lctl_main(int argc, char **argv) } obd_finalize(argc, argv); - return rc; + return rc < 0 ? -rc : rc; } #ifndef LIBLUSTRE_TEST