Provided by: ganeti-2.15_2.15.2-3_all bug

Name

       gnt-debug - Debug commands

Synopsis

       gnt-debug {command} [arguments...]

DESCRIPTION

       The gnt-debug is used for debugging the Ganeti system.

COMMANDS

   IALLOCATOR
       iallocator [--debug] [--dir DIRECTION] {--algorithm ALLOCATOR } [--mode
       MODE] [--mem MEMORY] [--disks DISKS] [--disk-template TEMPLATE] [--nics
       NICS] [--os-type OS] [--vcpus VCPUS] [--tags TAGS] {instance}

       Executes a test run of the iallocator framework.

       The  command will build input for a given iallocator script (named with
       the --algorithm option), and either show this input data (if  DIRECTION
       is  in)  or run the iallocator script and show its output (if DIRECTION
       is out).

       If the MODE is allocate, then an instance definition is built from  the
       other arguments and sent to the script, otherwise (MODE is relocate) an
       existing instance name must be passed as the first argument.

       This build of Ganeti will look for iallocator scripts in the  following
       directories:
       /usr/local/lib/ganeti/iallocators,/usr/lib/ganeti/iallocators; for more
       details about this framework, see the HTML or PDF documentation.

   DELAY
       delay [--debug] [--no-master] [--interruptible] [-n NODE...] {duration}

       Run a test opcode (a sleep) on the master and on selected nodes (via an
       RPC call).  This  serves  no  other  purpose  but  to  execute  a  test
       operation.

       The  -n  option can be given multiple times to select the nodes for the
       RPC call.  By default, the delay will also be executed on  the  master,
       unless the --no-master option is passed.

       The  --interruptible  option  allows  a  running  delay  opcode  to  be
       interrupted by communicating with a special domain socket.  If any data
       is  sent to the socket, the delay opcode terminates.  If this option is
       used, no RPCs are performed, but locks are still acquired.

       The delay argument will be interpreted as a floating point number.

   SUBMIT-JOB
       submit-job [--verbose] [--timing-stats] [--job-repeat  N]  [--op-repeat
       N] [--each] {opcodes_file...}

       This  command  builds  a  list of opcodes from files in JSON format and
       submits a job per file to the master daemon.  It can be  used  to  test
       options that are not available via command line.

       The  verbose option will additionally display the corresponding job IDs
       and the progress in waiting for the jobs; the timing-stats option  will
       show some overall statistics inluding the number of total opcodes, jobs
       submitted and time spent in each stage (submit, exec, total).

       The job-repeat and op-repeat options allow to submit multiple copies of
       the passed arguments; job-repeat will cause N copies of each job (input
       file) to be submitted (equivalent to passing  the  arguments  N  times)
       while  op-repeat will cause N copies of each of the opcodes in the file
       to be executed (equivalent to each file  containing  N  copies  of  the
       opcodes).

       The  each option allow to submit each job separately (using N SubmitJob
       LUXI requests instead of one SubmitManyJobs request).

   TEST-JOBQUEUE
       test-jobqueue

       Executes a few tests on the job queue.   This  command  might  generate
       failed jobs deliberately.

   LOCKS
       locks [--no-headers] [--separator=*SEPARATOR*] [-v]
       [-o [+]FIELD,...] [--interval=*SECONDS*]

       Shows a list of locks in the master daemon.

       The  --no-headers  option  will  skip  the  initial  header  line.  The
       --separator option takes an argument which denotes what  will  be  used
       between the output fields.  Both these options are to help scripting.

       The  -v  option  activates  verbose  mode, which changes the display of
       special field states (see ganeti(7)).

       The -o option takes a  comma-separated  list  of  output  fields.   The
       available fields and their meaning are:

       mode   Mode  in  which  the  lock  is  currently acquired (exclusive or
              shared)

       name   Lock name

       owner  Current lock owner(s)

       pending
              Threads waiting for the lock

       If the value of the option starts with the character +, the new  fields
       will  be added to the default list.  This allows one to quickly see the
       default list plus a few other fields, instead of  retyping  the  entire
       list of fields.

       Use  --interval to repeat the listing.  A delay specified by the option
       value in seconds is inserted.

   METAD
       metad echo text

       Tests the WConf daemon by invoking its echo function.

       A given text is sent to Metad through RPC, echoed  back  by  Metad  and
       printed to the console.

   WCONFD
       wconfd echo text

       Tests the WConf daemon by invoking its echo function.

       A  given  text is sent to WConfd through RPC, echoed back by WConfd and
       printed to the console.

       wconfd cleanuplocks

       A request to clean up all stale locks is sent to WConfd.

       wconfd listlocks jid

       A request to list the locks owned by the given job id is sent to WConfd
       and the answer is displayed.

       wconfd listalllocks

       A  request to list all locks in use, directly or indirectly, is sent to
       WConfd and the answer is displayed.

       wconfd listalllocks

       A request to list all locks in use, directly  or  indirectly,  together
       with their respective direct owners is sent to WConfd and the answer is
       displayed.

       wconfd flushconfig

       A request to ensure that the configuration is fully distributed to  the
       master candidates.

REPORTING BUGS

       Report  bugs  to  project website (http://code.google.com/p/ganeti/) or
       contact   the   developers    using    the    Ganeti    mailing    list
       (ganeti@googlegroups.com).

SEE ALSO

       Ganeti  overview  and  specifications:  ganeti(7)  (general  overview),
       ganeti-os-interface(7)         (guest         OS          definitions),
       ganeti-extstorage-interface(7) (external storage providers).

       Ganeti  commands:  gnt-cluster(8)  (cluster-wide  commands), gnt-job(8)
       (job-related   commands),    gnt-node(8)    (node-related    commands),
       gnt-instance(8)  (instance  commands),  gnt-os(8)  (guest OS commands),
       gnt-storage(8) (storage commands), gnt-group(8) (node group  commands),
       gnt-backup(8)  (instance  import/export  commands), gnt-debug(8) (debug
       commands).

       Ganeti  daemons:  ganeti-watcher(8)  (automatic  instance   restarter),
       ganeti-cleaner(8)  (job  queue cleaner), ganeti-noded(8) (node daemon),
       ganeti-rapi(8) (remote API daemon).

       Ganeti htools: htools(1) (generic binary), hbal(1) (cluster  balancer),
       hspace(1) (capacity calculation), hail(1) (IAllocator plugin), hscan(1)
       (data gatherer from remote  clusters),  hinfo(1)  (cluster  information
       printer), mon-collector(7) (data collectors interface).

COPYRIGHT

       Copyright (C) 2006-2015 Google Inc.  All rights reserved.

       Redistribution  and  use  in  source  and binary forms, with or without
       modification, are permitted provided that the following conditions  are
       met:

       1.   Redistributions  of  source  code  must retain the above copyright
       notice, this list of conditions and the following disclaimer.

       2.  Redistributions in binary form must reproduce the  above  copyright
       notice,  this  list  of  conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.

       THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
       IS"  AND  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
       TO, THE  IMPLIED  WARRANTIES  OF  MERCHANTABILITY  AND  FITNESS  FOR  A
       PARTICULAR  PURPOSE  ARE  DISCLAIMED.   IN NO EVENT SHALL THE COPYRIGHT
       HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,  INCIDENTAL,
       SPECIAL,  EXEMPLARY,  OR  CONSEQUENTIAL  DAMAGES  (INCLUDING,  BUT  NOT
       LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS  OF  USE,
       DATA,  OR  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
       THEORY OF LIABILITY, WHETHER IN CONTRACT,  STRICT  LIABILITY,  OR  TORT
       (INCLUDING  NEGLIGENCE  OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
       OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.