.. highlight:: rst

.. index::
   single: Node API



node
=====

node ls
--------

List available nodes.

REST syntax
+++++++++++

.. code-block:: text

   http://<host>:8000/proc/admin/ | root://<host>//proc/admin/
     ?mgm.cmd=node
     &mgm.subcmd=ls
     &eos.ruid=0
     &eos.rgid=0
     &mgm.format=json
     [&mgm.outformat=l|m|io|sys|fsck]
     [&mgm.outhost=brief]
     [&mgm.selection=<match>]

CLI syntax
++++++++++

.. code-block:: text

   node ls [-s] [-b|--brief] [-m|-l|--sys|--io|--fsck] [<node>]  : list all nodes or only <node>. <node> is a substring match and can be a comma seperated list
      -s : silent mode
      -b,--brief : display host names without domain names
      -m : monitoring key=value output format
      -l : long output - list also file systems after each node
      --io : print IO statistics
      --sys  : print SYS statistics (memory + threads)
      --fsck : print filesystem check statistcis

node config
-----------

Configure a node.

REST syntax
+++++++++++

.. code-block:: text

   http://<host>:8000/proc/admin/ | root://<host>//proc/admin/
     ?mgm.cmd=node
     &mgm.subcmd=config
     &eos.ruid=0
     &eos.rgid=0
     &mgm.format=json
     &mgm.node.name=<node>
     &mgm.node.key=<key>
     &mgm.node.value=<value>

CLI syntax
++++++++++

.. code-block:: text

   node config <host:port> <key>=<value>                    : configure file system parameters for each filesystem of this node
      <key> : gw.rate=<mb/s> - set the transfer speed per gateway transfer
      <key> : gw.ntx=<#>     - set the number of concurrent transfers for a gateway node
      <key> : error.simulation=io_read|io_write|xs_read|xs_write|fmd_open
        io_read  : simulate read  errors
        io_write : simulate write errors
        xs_read  : simulate checksum errors when reading a file
        xs_write : simulate checksum errors when writing a file
        fmd_open : simulate fmd mismatch when opening a file
        <none>   : disable error simulation (every value than the previous ones are fine!)
      <key> : publish.interval=<sec> - set the filesystem state publication interval to <sec> seconds
      <key> : debug.level=<level> - set the node into debug level <level> [default=notice] -> see debug --help for available levels
      <key> : for other keys see help of 'fs config' for details

node set
--------

Activate/Deactive/Define a node.

REST syntax
+++++++++++

.. code-block:: text

   http://<host>:8000/proc/admin/ | root://<host>//proc/admin/
     ?mgm.cmd=node
     &mgm.subcmd=set
     &eos.ruid=0
     &eos.rgid=0
     &mgm.format=json
     &mgm.node=<node>
     &mgm.node.state=on|off

CLI syntax
++++++++++

.. code-block:: text

      node set <queue-name>|<host:port> on|off                 : activate/deactivate node

node rm
--------

Remove a node.

REST syntax
+++++++++++

.. code-block:: text

   http://<host>:8000/proc/admin/ | root://<host>//proc/admin/
     ?mgm.cmd=node
     &mgm.subcmd=rm
     &eos.ruid=0
     &eos.rgid=0
     &mgm.format=json
     &mgm.node=<node>

CLI syntax
++++++++++

.. code-block:: text

    node rm  <queue-name>|<host:port>                        : remove a node

node register
-------------

Register a node.

REST syntax
+++++++++++

.. code-block:: text

   http://<host>:8000/proc/admin/ | root://<host>//proc/admin/
     ?mgm.cmd=node
     &mgm.subcmd=register
     &eos.ruid=0
     &eos.rgid=0
     &mgm.format=json
     &mgm.node.name=<node>
     &mgm.node.path2register=<path2register>
     &mgm.node.space2register=<space2register>
     [&mgm.node.force=true]
     [&mgm.node.root=true]

CLI syntax
++++++++++

.. code-block:: text

   node register <host:port|*> <path2register> <space2register> [--force] [--root] : register filesystems on node <host:port>
     <path2register> is used as match for the filesystems to register e.g. /data matches filesystems /data01 /data02 etc. ... /data/ registers all subdirectories in /data/
     <space2register> is formed as <space>:<n> where <space> is the space name and <n> must be equal to the number of filesystems which are matched by <path2register> e.g. data:4 or spare:22 ...
      --force : removes any existing filesystem label and re-registers
      --root  : allows to register paths on the root partition

node gw
--------

Enable/Disable a node as a transfer gateway

REST syntax
+++++++++++

.. code-block:: text

   http://<host>:8000/proc/admin/ | root://<host>//proc/admin/
     ?mgm.cmd=node
     &mgm.subcmd=gw
     &eos.ruid=0
     &eos.rgid=0
     &mgm.format=json
     &mgm.node=<node>
     &mgm.node.txgw=on|off

CLI syntax
++++++++++

.. code-block:: text

   node gw <queue-name>|<host:port> <on|off>                : enable (on) or disable (off) node as a transfer gateway

node status
-----------

Show the status of a node.

REST syntax
+++++++++++

.. code-block:: text

   http://<host>:8000/proc/admin/ | root://<host>//proc/admin/
     ?mgm.cmd=node
     &mgm.subcmd=status
     &mgm.format=json
     &eos.ruid=0
     &eos.rgid=0
     &mgm.node=<node>

CLI syntax
++++++++++

.. code-block:: text

   node status <queue-name>|<host:port>                     : print's all defined variables for a node