diff --git a/docs/source/advanced/goconserver/index.rst b/docs/source/advanced/goconserver/index.rst index 39f3ff2cc..50116e9ed 100644 --- a/docs/source/advanced/goconserver/index.rst +++ b/docs/source/advanced/goconserver/index.rst @@ -5,7 +5,6 @@ Go Conserver programming language. For more information, see https://github.com/xcat2/goconserver/ .. toctree:: - :maxdepth: 2 quickstart.rst diff --git a/docs/source/advanced/gpu/nvidia/repo/index.rst b/docs/source/advanced/gpu/nvidia/repo/index.rst index 5d91fbe7c..9649e7fa5 100644 --- a/docs/source/advanced/gpu/nvidia/repo/index.rst +++ b/docs/source/advanced/gpu/nvidia/repo/index.rst @@ -10,5 +10,4 @@ Download the toolkit and prepare the software repository on the xCAT Management rhels.rst ubuntu.rst - nvml.rst diff --git a/docs/source/advanced/gpu/nvidia/repo/nvml.rst b/docs/source/advanced/gpu/nvidia/repo/nvml.rst deleted file mode 100644 index 7f74a3040..000000000 --- a/docs/source/advanced/gpu/nvidia/repo/nvml.rst +++ /dev/null @@ -1,15 +0,0 @@ -Install NVIDIA Management Library (optional) -============================================ - -See https://developer.nvidia.com/nvidia-management-library-nvml for more information. - -The .run file can be downloaded from NVIDIAs website and placed into the ``/install/postscripts`` directory on the Management Node. - -To enable installation of the management library after the node is install, add the .run file to the ``postbootscripts`` attribute for the nodes: :: - - # ensure the .run file has execute permission - chmod +x /install/postscripts/.run - - # add as the postbootscript - chdef -t node -o -p postbootscripts=".run \ - --silent --installdir=" diff --git a/docs/source/advanced/hierarchy/provision/diskless_sn.rst b/docs/source/advanced/hierarchy/provision/diskless_sn.rst index 3412f01e7..15d259aec 100644 --- a/docs/source/advanced/hierarchy/provision/diskless_sn.rst +++ b/docs/source/advanced/hierarchy/provision/diskless_sn.rst @@ -291,8 +291,7 @@ The following section explains how to accomplish this. packimage rhels7.3-ppc64le-netboot-service -Note: ``enablepart=yes`` in partition file will make partition on the locak disk at every boot time. If you want to keep the contents -on local disk at next boot, remmber changing to ``enablepart=no`` after the first time provisioning. +.. note:: ``enablepart=yes`` in partition file will partition the local disk at every boot. If you want to preserve the contents on local disk at next boot, change to ``enablepart=no`` after the initial provision. For more information on ``localdisk`` option, refer to :ref:`setup_localdisk_label` @@ -312,9 +311,9 @@ To update the xCAT software in the image at a later time: packimage "" rinstall service osimage="" -Note: The Service Nodes are set up as NFS-root servers for the compute nodes. -Any time changes are made to any compute image on the mgmt node it will be -necessary to sync all changes to all Service Nodes. In our case the -``/install`` directory is mounted on the servicenodes, so the update to the -compute node image is automatically available. +.. note:: The Service Nodes are set up as NFS-root servers for the compute nodes. + Any time changes are made to any compute image on the mgmt node it will be + necessary to sync all changes to all Service Nodes. In our case the + ``/install`` directory is mounted on the servicenodes, so the update to the + compute node image is automatically available. diff --git a/docs/source/advanced/networks/infiniband/switch_configuration.rst b/docs/source/advanced/networks/infiniband/switch_configuration.rst index ab1d45c12..3397b6890 100644 --- a/docs/source/advanced/networks/infiniband/switch_configuration.rst +++ b/docs/source/advanced/networks/infiniband/switch_configuration.rst @@ -23,12 +23,12 @@ The switches table will look like this: :: If there is only one admin and one password for all the switches then put the entry in the xCAT passwd table for the admin id and password to use to login. :: - tabch key=mswitch passwd.username=admin passwd.password=admin + tabch key=switch passwd.username=admin passwd.password=admin The passwd table will look like this: :: #key,username,password,cryptmethod,comments,disable - "mswitch","admin","admin",,, + "switch","admin","admin",,, Setup ssh connection to the Mellanox Switch ------------------------------------------- diff --git a/docs/source/advanced/restapi/restapi_setup/restapi_setup.rst b/docs/source/advanced/restapi/restapi_setup/restapi_setup.rst index c8fcc0dfb..73b452a42 100644 --- a/docs/source/advanced/restapi/restapi_setup/restapi_setup.rst +++ b/docs/source/advanced/restapi/restapi_setup/restapi_setup.rst @@ -1,5 +1,5 @@ Enable the HTTPS protocol for REST API -===================================== +====================================== To improve the security between the REST API clients and server, enabling the secure transfer protocol (https) is the default configuration. diff --git a/docs/source/conf.py b/docs/source/conf.py index 4402d6d7f..1000fd2c2 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -59,7 +59,7 @@ author = u'IBM Corporation' # The short X.Y version. version = '2' # The full version, including alpha/beta/rc tags. -release = '2.14.3' +release = '2.14.4' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/source/guides/admin-guides/basic_concepts/xcat_db/regexp_db.rst b/docs/source/guides/admin-guides/basic_concepts/xcat_db/regexp_db.rst index d1ff05af1..5d36de561 100644 --- a/docs/source/guides/admin-guides/basic_concepts/xcat_db/regexp_db.rst +++ b/docs/source/guides/admin-guides/basic_concepts/xcat_db/regexp_db.rst @@ -120,6 +120,7 @@ xCAT provides several functions that can simplify regular expressions. +-----------+-----------+-----------+-----------+ | row2-col1 | row2-col2 | row2-col3 | row2-col4 | +-----------+-----------+-----------+-----------+ + To obtain the rack index, use ``|row(\d+)-col(\d+)|(dim2idx($1, 4, $2))|``. This maps the racks to: +---+---+---+---+ @@ -127,6 +128,7 @@ xCAT provides several functions that can simplify regular expressions. +---+---+---+---+ | 5 | 6 | 7 | 8 | +---+---+---+---+ + Note that the size of the highest dimension (2 rows) is not needed, and all values are one-indexed. If each rack contains 20 nodes, use ``|row(\d+)-col(\d+)-node(\d+)|(dim2idx($1, 4, $2, 20, $3)`` to determine a node index (useful for determining IP addresses). diff --git a/docs/source/guides/admin-guides/manage_clusters/common/deployment/enable_localdisk.rst b/docs/source/guides/admin-guides/manage_clusters/common/deployment/enable_localdisk.rst index cd6e7d730..a9561abb7 100644 --- a/docs/source/guides/admin-guides/manage_clusters/common/deployment/enable_localdisk.rst +++ b/docs/source/guides/admin-guides/manage_clusters/common/deployment/enable_localdisk.rst @@ -1,25 +1,23 @@ .. _setup_localdisk_label: -Enabling the localdisk Option +Enabling the localdisk option ----------------------------- -``Note``: You can skip this section if not using the ``localdisk`` option in your litefile table. - -Several things need to be done to enable the 'localdisk' support: +.. note:: You can skip this section if not using the ``localdisk`` option in your ``litefile`` table. Define how to partition the local disk `````````````````````````````````````` -When a node is deployed, the local hard disk needs to be partitioned and formatted before it can be used. This section explains how provide a configuration file that tells xCAT to partition a local disk and make it ready to use for the directories listed in the litefile table with the ``localdisk`` option. +When a node is deployed, the local hard disk needs to be partitioned and formatted before it can be used. This section explains how provide a configuration file that tells xCAT to partition a local disk and make it ready to use for the directories listed in the litefile table. -The configuration file needs to be specified in the ``partitionfile`` attribute of the osimage definition. The configuration file includes several parts: +The configuration file needs to be specified in the ``partitionfile`` attribute of the osimage definition. The configuration file includes several sections: * Global parameters to control enabling or disabling the function - * [disk] part to control the partitioning of the disk - * [localspace] part to control which partition will be used to store the localdisk directories listed in the litefile table - * [swapspace] part to control the enablement of the swap space for the node. + * ``[disk]`` section to control the partitioning of the disk + * ``[localspace]`` section to control which partition will be used to store the ``localdisk`` directories listed in the ``litefile`` table + * ``[swapspace]`` section to control the enablement of the swap space for the node. -An example localdisk configuration file: :: +An example ``localdisk`` configuration file: :: enable=yes enablepart=no @@ -48,15 +46,15 @@ An example localdisk configuration file: :: The two global parameters ``enable`` and ``enablepart`` can be used to control the enabling/disabling of the functions: - * enable: The localdisk feature only works when ``enable`` is set to *yes*. If it is set to *no*, the localdisk configuration will not be run. + * enable: The ``localdisk`` feature only works when ``enable`` is set to ``yes``. If it is set to ``no``, the ``localdisk`` configuration will not be run. * enablepart: The partition action (refer to the ``[disk]`` section) will be run only when ``enablepart=yes``. The ``[disk]`` section is used to configure how to partition a hard disk: * dev: The path of the device file. * clear: If set to ``yes`` it will clear all the existing partitions on this disk. - * fstype: The file system type for the new created partitions. ``ext3`` is the default value if not set. - * parts: A comma separated list of space ranges, one for each partition that will be created on the device. The valid format for each space range is ``-`` or ````. For example, you could set it to ``100M-10G`` or ``50``. If you set it to ``50``, that means 50% of the disk space will be assigned to that partition. + * fstype: The file system type for the new created partitions. ``ext3`` is the default. + * parts: A comma separated list of space ranges, one for each partition that will be created on the device. The valid format for each space range is ``-`` or ````. For example, you could set it to ``100M-10G`` or ``50``. If set to ``50``, 50% of the disk space will be assigned to that partition. The ``[localspace]`` section is used to specify which partition will be used as local storage for the node. @@ -67,21 +65,23 @@ the ``[swapspace]`` section is used to configure the swap space for the statelit * dev: The path of the partition file which will be used as the swap space. -To enable the local disk capability, create the configuration file (for example in ``/install/custom``) and set the path in the partitionfile attribute for the osimage: :: +To enable the local disk capability, create the configuration file (for example in ``/install/custom``) and set the path in the ``partitionfile`` attribute for the osimage: :: - chdef -t osimage partitionfile=/install/custom/cfglocaldisk + chdef -t osimage partitionfile=/install/custom/cfglocaldisk -Now all nodes that use this osimage (i.e. have their provmethod attribute set to this osimage definition name), will have its local disk configured. +Now all nodes that use this osimage (i.e. have their ``provmethod`` attribute set to this osimage definition name), will have its local disk configured. Configure the files in the litefile table ````````````````````````````````````````` -For the files/directories that you would like xCAT to store on the local disk, add an entry in the litefile table like this: :: +For the files/directories to store on the local disk, add an entry in the ``litefile`` table: :: "ALL","/tmp/","localdisk",, -``Note``: you do not need to specify the swap space in the litefile table. Just putting it in the partitionfile config file is enough. +.. note:: you do not need to specify the swap space in the litefile table. Just putting it in the ``partitionfile`` config file is enough. Add an entry in policy table to permit the running of the ``getpartition`` command from the node :: chtab priority=7.1 policy.commands=getpartition policy.rule=allow + +Run ``genimage`` and ``packimage`` for the osimage diff --git a/docs/source/guides/admin-guides/manage_clusters/common/deployment/syncfile/syncfile_synclist_file.rst b/docs/source/guides/admin-guides/manage_clusters/common/deployment/syncfile/syncfile_synclist_file.rst index 13e599054..61cff2220 100644 --- a/docs/source/guides/admin-guides/manage_clusters/common/deployment/syncfile/syncfile_synclist_file.rst +++ b/docs/source/guides/admin-guides/manage_clusters/common/deployment/syncfile/syncfile_synclist_file.rst @@ -15,11 +15,11 @@ The basic entry format looks like following: :: path_of_src_file1 -> path_of_dst_directory path_of_src_file1 path_of_src_file2 ... -> path_of_dst_directory -The path_of_src_file* should be the full path of the source file on the Management Node. +The ``path_of_src_file*`` should be the full path of the source file on the Management Node. -The path_of_dst_file* should be the full path of the destination file on target node. Please make sure path_of_dst_file* is not a existing directory on target node, otherwise, the file sync with ``updatenode -r /usr/bin/scp`` or ``xdcp -r /usr/bin/scp`` will fail. +The ``path_of_dst_file*`` should be the full path of the destination file on target node. Make sure ``path_of_dst_file*`` is not a existing directory on target node, otherwise, the file sync with ``updatenode -r /usr/bin/scp`` or ``xdcp -r /usr/bin/scp`` will fail. -The path_of_dst_directory should be the full path of the destination directory. Please make sure *eth_of_dst_directory is not a existing file on target node, otherwise, the file sync with ``updatenode -r /usr/bin/scp`` or ``xdcp -r /usr/bin/scp`` will fail. +The ``path_of_dst_directory`` should be the full path of the destination directory. Make ``sure path_of_dst_directory`` is not a existing file on target node, otherwise, the file sync with ``updatenode -r /usr/bin/scp`` or ``xdcp -r /usr/bin/scp`` will fail. Since the synclist file is for common purpose, the target node need not be configured in it. @@ -37,7 +37,7 @@ sync file **/etc/file4** to the file **/etc/tmp/file5** on the node( different f /etc/file4 -> /etc/tmp/file5 -sync the multiple files **/etc/file1**, **/etc/file2**, **/etc/file3**, ... to the directory **/tmp/etc** (**/tmp/etc** must be a directory when multiple files are synced at one time). If the directory does not exist,**xdcp** will create it. :: +sync the multiple files **/etc/file1**, **/etc/file2**, **/etc/file3**, ... to the directory **/tmp/etc** (**/tmp/etc** must be a directory when multiple files are synced at one time). If the directory does not exist, **xdcp** will create it. :: /etc/file1 /etc/file2 /etc/file3 -> /tmp/etc @@ -116,7 +116,8 @@ Advanced synclist file features After you define the files to rsync in the syncfile, you can add an **EXECUTEALWAYS** clause in the syncfile. The **EXECUTEALWAYS** clause will list all the postscripts you would always like to run after the files are sync'd, whether or not any file is actually updated. The files in this list must be added to the list of files to rsync, if hierarchical. -For example, your rsyncfile may look like this. **Note: the path to the file to EXECUTE, is the location of the *.post file on the MN**. :: +For example, your rsyncfile may look like this. +.. note:: the path to the file to EXECUTE, is the location of the *.post file on the MN**. :: /tmp/share/file2 -> /tmp/file2 @@ -160,7 +161,7 @@ When you use the **APPEND** clause, the file (left) of the arrow is appended to The script creates a backup of the original file on the node in the directory defined by the site table nodesyncfiledir attribute, which is **/var/xcat/node/syncfiles** by default. To update the original file when using the function, you need to rsync a new original file to the node, removed the old original from the **/var/xcat/node/syncfiles/org** directory. If you want to cleanup all the files for the append function on the node, you can use the ``xdsh -c`` flag. See man page for ``xdsh``. -Note:no order of execution may be assumed by the order that the **EXECUTE,EXECUTEALWAYS and APPEND** clause fall in the synclist file. +.. note:: no order of execution may be assumed by the order that the **EXECUTE,EXECUTEALWAYS and APPEND** clause fall in the synclist file. You can add an **MERGE** clause to your syncfile. This is only supported on Linux. @@ -184,9 +185,9 @@ For example, your synclist file may look like this :: /etc/mydir/mergeshadow -> /etc/shadow /etc/mydir/mergegroup -> /etc/group -When you use the **MERGE** clause, the file (left) of the arrow is merged into the file right of the arrow. It will replace any common userid's found in those files and add new userids. The /opt/xcat/share/xcat/scripts/xdcpmerge.sh is used to accomplish this. +When you use the **MERGE** clause, the file (left) of the arrow is merged into the file right of the arrow. It will replace any common userid's found in those files and add new userids. The **/opt/xcat/share/xcat/scripts/xdcpmerge.sh** is used to accomplish this. -Note: no order of execution may be assumed by the order that the **EXECUTE,EXECUTEALWAYS,APPEND and MERGE** clause fall in the synclist file. +.. note:: no order of execution may be assumed by the order that the **EXECUTE,EXECUTEALWAYS,APPEND and MERGE** clause fall in the synclist file. .. _the_localtion_of_synclist_file_for_updatenode_label: diff --git a/docs/source/guides/admin-guides/manage_clusters/common/deployment/use_kernel_patch.rst b/docs/source/guides/admin-guides/manage_clusters/common/deployment/use_kernel_patch.rst index f2c4f4b65..7e0131b69 100644 --- a/docs/source/guides/admin-guides/manage_clusters/common/deployment/use_kernel_patch.rst +++ b/docs/source/guides/admin-guides/manage_clusters/common/deployment/use_kernel_patch.rst @@ -21,4 +21,4 @@ The RPM names below are only examples, substitute your specific level and archit genitrd rhels7.3-ppc64le-install-compute --ignorekernelchk nodeset osimage=rhels7.3-ppc64le-install-compute --noupdateinitrd -#. Boot CN from net normallly. +#. Boot CN from net normally. diff --git a/docs/source/guides/admin-guides/manage_clusters/ppc64le/diskless/customize_image/localdisk.rst b/docs/source/guides/admin-guides/manage_clusters/ppc64le/diskless/customize_image/localdisk.rst index df0b3e202..7a2ad7b43 100644 --- a/docs/source/guides/admin-guides/manage_clusters/ppc64le/diskless/customize_image/localdisk.rst +++ b/docs/source/guides/admin-guides/manage_clusters/ppc64le/diskless/customize_image/localdisk.rst @@ -1,4 +1,3 @@ .. include:: ../../../common/deployment/enable_localdisk.rst -``Note``: - * To keep the contents on local disk after you using ``enablepart=yes`` to do the disk partitioning, make sure to set ``enablepart=no`` in partition configuration file after the node is booted. +.. note:: ``enablepart=yes`` in partition file will partition the local disk at every boot. If you want to preserve the contents on local disk at next boot, change to ``enablepart=no`` after the initial provision. A log file ``/.sllocal/log/localdisk.log`` on the target node can be used for debugging. diff --git a/docs/source/guides/admin-guides/references/man1/chzone.1.rst b/docs/source/guides/admin-guides/references/man1/chzone.1.rst index d99833df1..0aedb5e8d 100644 --- a/docs/source/guides/admin-guides/references/man1/chzone.1.rst +++ b/docs/source/guides/admin-guides/references/man1/chzone.1.rst @@ -30,8 +30,8 @@ chzone.1 The \ **chzone**\ command is designed to change the definition of a zone previous defined in the cluster. -The chzone command is only supported on Linux ( No AIX support). -The nodes are not updated with the new root ssh keys by chzone. You must run updatenode -k or xdsh -K to the nodes to update the root ssh keys to the new generated zone keys. This will also sync any service nodes with the zone keys, if you have a hierarchical cluster. +The \ **chzone**\ command is only supported on Linux ( No AIX support). +The nodes are not updated with the new root ssh keys by \ **chzone**\ . You must run \ **updatenode -k**\ or \ **xdsh -K**\ to the nodes to update the root ssh keys to the new generated zone keys. This will also sync any service nodes with the zone keys, if you have a hierarchical cluster. Note: if any zones in the zone table, there must be one and only one defaultzone. Otherwise, errors will occur. @@ -55,14 +55,14 @@ Note: if any zones in the zone table, there must be one and only one defaultzone \ **-k | -**\ **-sshkeypath**\ \ *full path to the ssh RSA private key*\ - This is the path to the id_rsa key that will be used to build new root's ssh keys for the zone. If -k is used, it will generate the ssh public key from the input ssh RSA private key, and store both in /etc/xcat/sshkeys//.ssh directory. + This is the path to the id_rsa key that will be used to build new root's ssh keys for the zone. If \ **-k**\ is used, it will generate the ssh public key from the input ssh RSA private key, and store both in /etc/xcat/sshkeys//.ssh directory. \ **-K | -**\ **-genkeys**\ Using this flag, will generate new ssh RSA private and public keys for the zone into the /etc/xcat/sshkeys//.ssh directory. - The nodes are not automatically updated with the new root ssh keys by chzone. You must run updatenode -k or xdsh -K to the nodes to update the root ssh keys to the new generated zone keys. This will also sync any service nodes with the zone keys, if you have a hierarchical cluster. + The nodes are not automatically updated with the new root ssh keys by chzone. You must run \ **updatenode -k**\ or \ **xdsh -K**\ to the nodes to update the root ssh keys to the new generated zone keys. This will also sync any service nodes with the zone keys, if you have a hierarchical cluster. @@ -79,7 +79,7 @@ Note: if any zones in the zone table, there must be one and only one defaultzone \ **-a | -**\ **-addnoderange**\ \ *noderange*\ For each node in the noderange, it will set the zonename attribute for that node to the input zonename. - If the -g flag is also on the command, then + If the \ **-g**\ flag is also on the command, then it will add the group name "zonename" to each node in the noderange. @@ -88,14 +88,14 @@ Note: if any zones in the zone table, there must be one and only one defaultzone For each node in the noderange, if the node is a member of the input zone, it will remove the zonename attribute for that node. If any of the nodes in the noderange is not a member of the zone, you will get an error and nothing will be changed. - If the -g flag is also on the command, then + If the \ **-g**\ flag is also on the command, then it will remove the group name "zonename" from each node in the noderange. \ **-s| -**\ **-sshbetweennodes**\ \ **yes|no**\ - If -s entered, the zone sshbetweennodes attribute will be set to yes or no based on the input. When this is set to yes, then ssh will be setup to allow passwordless root access between nodes. If no, then root will be prompted for a password when running ssh between the nodes in the zone. + If \ **-s**\ entered, the zone sshbetweennodes attribute will be set to yes or no based on the input. When this is set to yes, then ssh will be setup to allow passwordless root access between nodes. If no, then root will be prompted for a password when running ssh between the nodes in the zone. @@ -168,9 +168,7 @@ Note: if any zones in the zone table, there must be one and only one defaultzone -5. - - To remove a group of nodes (compute4) from zone4 and remove zone4 group from the nodes, enter: +5. To remove a group of nodes (compute4) from zone4 and remove zone4 group from the nodes, enter: .. code-block:: perl @@ -208,5 +206,5 @@ Location of the chzone command. **************** -L ,L ,L , updatenode(1)|updatenode.1 +mkzone(1)|mkzone.1, rmzone(1)|rmzone.1, xdsh(1)|xdsh.1, updatenode(1)|updatenode.1 diff --git a/docs/source/guides/admin-guides/references/man1/db2sqlsetup.1.rst b/docs/source/guides/admin-guides/references/man1/db2sqlsetup.1.rst index 0f1c23227..27bb72d59 100644 --- a/docs/source/guides/admin-guides/references/man1/db2sqlsetup.1.rst +++ b/docs/source/guides/admin-guides/references/man1/db2sqlsetup.1.rst @@ -175,9 +175,7 @@ EXAMPLES -5. - - To setup the DB2 database but not start xcat running with it: +5. To setup the DB2 database but not start xcat running with it: .. code-block:: perl diff --git a/docs/source/guides/admin-guides/references/man1/lstree.1.rst b/docs/source/guides/admin-guides/references/man1/lstree.1.rst index e6a4eeddf..efe936b48 100644 --- a/docs/source/guides/admin-guides/references/man1/lstree.1.rst +++ b/docs/source/guides/admin-guides/references/man1/lstree.1.rst @@ -112,9 +112,7 @@ EXAMPLES -2. - - To display the tree of service node hierarchy for service node "mysn01". +2. To display the tree of service node hierarchy for service node "mysn01". .. code-block:: perl @@ -135,9 +133,7 @@ EXAMPLES -3. - - To display the tree of hardware hierarchy for all the nodes. +3. To display the tree of hardware hierarchy for all the nodes. .. code-block:: perl diff --git a/docs/source/guides/admin-guides/references/man1/mkdsklsnode.1.rst b/docs/source/guides/admin-guides/references/man1/mkdsklsnode.1.rst index 8d7a389b7..d70d18c3a 100644 --- a/docs/source/guides/admin-guides/references/man1/mkdsklsnode.1.rst +++ b/docs/source/guides/admin-guides/references/man1/mkdsklsnode.1.rst @@ -247,9 +247,7 @@ EXAMPLES -4. - - Initialize an xCAT node called "node02" as an AIX diskless node. Create a new NIM machine definition name with the osimage as an extension to the xCAT node name. +4. Initialize an xCAT node called "node02" as an AIX diskless node. Create a new NIM machine definition name with the osimage as an extension to the xCAT node name. .. code-block:: perl diff --git a/docs/source/guides/admin-guides/references/man1/mkzone.1.rst b/docs/source/guides/admin-guides/references/man1/mkzone.1.rst index ea79d2102..ecbd71059 100644 --- a/docs/source/guides/admin-guides/references/man1/mkzone.1.rst +++ b/docs/source/guides/admin-guides/references/man1/mkzone.1.rst @@ -132,9 +132,7 @@ Note: if any zones in the zone table, there must be one and only one defaultzone -3. - - To make a new zone2A using the ssh id_rsa private key in /root/.ssh: +3. To make a new zone2A using the ssh id_rsa private key in /root/.ssh: .. code-block:: perl @@ -144,9 +142,7 @@ Note: if any zones in the zone table, there must be one and only one defaultzone -4. - - To make a new zone3 and assign the noderange compute3 to the zone enter: +4. To make a new zone3 and assign the noderange compute3 to the zone enter: .. code-block:: perl @@ -166,9 +162,7 @@ Note: if any zones in the zone table, there must be one and only one defaultzone -6. - - To make a new zone5 and assign the noderange compute5 to the zone and add zone5 as a group to each node but not allow passwordless ssh between the nodes enter: +6. To make a new zone5 and assign the noderange compute5 to the zone and add zone5 as a group to each node but not allow passwordless ssh between the nodes enter: .. code-block:: perl diff --git a/docs/source/guides/admin-guides/references/man1/nodechmac.1.rst b/docs/source/guides/admin-guides/references/man1/nodechmac.1.rst index 84a1dce0c..0d35e40dc 100644 --- a/docs/source/guides/admin-guides/references/man1/nodechmac.1.rst +++ b/docs/source/guides/admin-guides/references/man1/nodechmac.1.rst @@ -29,7 +29,7 @@ DESCRIPTION *********** -The \ **nodechmac**\ command changes the MAC address for provisioned node’s network interface. +The \ **nodechmac**\ command changes the MAC address for provisioned node's network interface. You can use this command to keep an existing node configuration. For example, if an existing node has hardware problems, the replacement node can use the old configurations. By using the nodechmac command, the node name and network settings of the old node can be used by the new node. diff --git a/docs/source/guides/admin-guides/references/man1/piflash.1.rst b/docs/source/guides/admin-guides/references/man1/piflash.1.rst index 1959a893e..887cab7c3 100644 --- a/docs/source/guides/admin-guides/references/man1/piflash.1.rst +++ b/docs/source/guides/admin-guides/references/man1/piflash.1.rst @@ -11,7 +11,7 @@ SYNOPSIS ******** -\ **piflash**\ -**\ **-package +\ **piflash**\ \ *noderange*\ -**\ **-package \ *filename*\ *********** diff --git a/docs/source/guides/admin-guides/references/man1/renergy.1.rst b/docs/source/guides/admin-guides/references/man1/renergy.1.rst index f05bdc684..59917da15 100644 --- a/docs/source/guides/admin-guides/references/man1/renergy.1.rst +++ b/docs/source/guides/admin-guides/references/man1/renergy.1.rst @@ -832,9 +832,7 @@ so no additional plugins are needed for BladeCenter.) -4 - - Query all the attirbutes for management module node MM1. (For chassis) +4 Query all the attributes for management module node MM1. (For chassis) .. code-block:: perl diff --git a/docs/source/guides/admin-guides/references/man1/rinv.1.rst b/docs/source/guides/admin-guides/references/man1/rinv.1.rst index 4f28900ab..a1e47f34f 100644 --- a/docs/source/guides/admin-guides/references/man1/rinv.1.rst +++ b/docs/source/guides/admin-guides/references/man1/rinv.1.rst @@ -384,9 +384,7 @@ Calling \ **rinv**\ for VMware will display the UUID/GUID, number of CPUs, amou -3. - - To retrieve 'config' information from the HMC-managed LPAR node3, enter: +3. To retrieve 'config' information from the HMC-managed LPAR node3, enter: .. code-block:: perl @@ -406,9 +404,7 @@ Calling \ **rinv**\ for VMware will display the UUID/GUID, number of CPUs, amou -4. - - To retrieve information about a VMware node vm1, enter: +4. To retrieve information about a VMware node vm1, enter: .. code-block:: perl @@ -433,9 +429,7 @@ Calling \ **rinv**\ for VMware will display the UUID/GUID, number of CPUs, amou -5. - - To list the defined network names available for a given node: +5. To list the defined network names available for a given node: .. code-block:: perl @@ -460,9 +454,7 @@ Calling \ **rinv**\ for VMware will display the UUID/GUID, number of CPUs, amou -6. - - To list the configuration for a given network: +6. To list the configuration for a given network: .. code-block:: perl @@ -483,9 +475,7 @@ Calling \ **rinv**\ for VMware will display the UUID/GUID, number of CPUs, amou -7. - - To list the disk pool names available: +7. To list the disk pool names available: .. code-block:: perl @@ -505,9 +495,7 @@ Calling \ **rinv**\ for VMware will display the UUID/GUID, number of CPUs, amou -8. - - List the configuration for a given disk pool: +8. List the configuration for a given disk pool: .. code-block:: perl @@ -527,9 +515,7 @@ Calling \ **rinv**\ for VMware will display the UUID/GUID, number of CPUs, amou -9. - - List the known zFCP pool names. +9. List the known zFCP pool names. .. code-block:: perl @@ -549,9 +535,7 @@ Calling \ **rinv**\ for VMware will display the UUID/GUID, number of CPUs, amou -10. - - List the SCSI/FCP devices contained in a given zFCP pool: +10. List the SCSI/FCP devices contained in a given zFCP pool: .. code-block:: perl diff --git a/docs/source/guides/admin-guides/references/man1/rmzone.1.rst b/docs/source/guides/admin-guides/references/man1/rmzone.1.rst index c59caa8a7..aebfb16ef 100644 --- a/docs/source/guides/admin-guides/references/man1/rmzone.1.rst +++ b/docs/source/guides/admin-guides/references/man1/rmzone.1.rst @@ -91,9 +91,7 @@ Note: if any zones in the zone table, there must be one and only one defaultzone -2. - - To remove zone2 from the zone table, the zone2 zonename attribute, and the zone2 group assigned to all nodes that were in zone2, enter: +2. To remove zone2 from the zone table, the zone2 zonename attribute, and the zone2 group assigned to all nodes that were in zone2, enter: .. code-block:: perl @@ -103,9 +101,7 @@ Note: if any zones in the zone table, there must be one and only one defaultzone -3. - - To remove zone3 from the zone table, all the node zone attributes and override the fact it is the defaultzone, enter: +3. To remove zone3 from the zone table, all the node zone attributes and override the fact it is the defaultzone, enter: .. code-block:: perl @@ -127,5 +123,5 @@ Location of the rmzone command. **************** -L ,L ,L , updatenode(1)|updatenode.1 +mkzone(1)|mkzone.1, chzone(1)|chzone.1, xdsh(1)|xdsh.1, updatenode(1)|updatenode.1 diff --git a/docs/source/guides/admin-guides/references/man1/rspconfig.1.rst b/docs/source/guides/admin-guides/references/man1/rspconfig.1.rst index 7655d078b..d85e1eb50 100644 --- a/docs/source/guides/admin-guides/references/man1/rspconfig.1.rst +++ b/docs/source/guides/admin-guides/references/man1/rspconfig.1.rst @@ -320,7 +320,7 @@ OPTIONS \ **community**\ ={\ **public**\ | \ *string*\ } - Get or set the SNMP commmunity value. The default is \ **public**\ . + Get or set the SNMP community value. The default is \ **public**\ . @@ -446,7 +446,7 @@ OPTIONS \ **vlan**\ - Get or set vlan ID. For get vlan ID, if vlan is not enabled, 'BMC VLAN disabled' will be outputed. For set vlan ID, the valid value are [1-4096]. + Get or set vlan ID. For get vlan ID, if vlan is not enabled, 'BMC VLAN disabled' will be displayed. For set vlan ID, the valid value are [1-4096]. @@ -1250,9 +1250,7 @@ EXAMPLES -27. - - To deconfigure memory bank 9 and 10 of Processing Unit 0 on mm01: +27. To deconfigure memory bank 9 and 10 of Processing Unit 0 on mm01: .. code-block:: perl @@ -1270,9 +1268,7 @@ EXAMPLES -28. - - To reset the network interface of the specified nodes: +28. To reset the network interface of the specified nodes: .. code-block:: perl diff --git a/docs/source/guides/admin-guides/references/man1/sinv.1.rst b/docs/source/guides/admin-guides/references/man1/sinv.1.rst index eaf902ae2..f6d94768a 100644 --- a/docs/source/guides/admin-guides/references/man1/sinv.1.rst +++ b/docs/source/guides/admin-guides/references/man1/sinv.1.rst @@ -163,7 +163,7 @@ Command Protocol can be used. See man \ **xdsh**\ for more details. for Ethernet switches and IB switches under \ */opt/xcat/share/xcat/devicetype*\ directory. If you want to overwrite any of the configuration files, copy them to \ */var/opt/xcat/*\ - directory and cutomize. + directory and customize. For example, \ *base/IBSwitch/Qlogic/config*\ is the configuration file location if devicetype is specified as IBSwitch::Qlogic. xCAT will first search config file using \ */var/opt/xcat/*\ as the base. @@ -329,9 +329,7 @@ using the exact match option, generating no additional templates, enter: -8. - - To execute \ **sinv**\ on the AIX NIM 611dskls spot and compare /etc/hosts to compute1 node, run the following: +8. To execute \ **sinv**\ on the AIX NIM 611dskls spot and compare /etc/hosts to compute1 node, run the following: .. code-block:: perl @@ -343,9 +341,7 @@ using the exact match option, generating no additional templates, enter: -9. - - To execute \ **sinv**\ on the device mswitch2 and compare to mswitch1 +9. To execute \ **sinv**\ on the device mswitch2 and compare to mswitch1 .. code-block:: perl @@ -367,5 +363,5 @@ Location of the sinv command. **************** -L , noderange(3)|noderange.3 +xdsh(1)|xdsh.1, noderange(3)|noderange.3 diff --git a/docs/source/guides/admin-guides/references/man1/xdcp.1.rst b/docs/source/guides/admin-guides/references/man1/xdcp.1.rst index d9acda7c2..7b1ea700d 100644 --- a/docs/source/guides/admin-guides/references/man1/xdcp.1.rst +++ b/docs/source/guides/admin-guides/references/man1/xdcp.1.rst @@ -47,7 +47,7 @@ If the Management Node is target node, it must be defined in the xCAT database w \ **REMOTE**\ \ **USER**\ : A user_ID can be specified for the remote copy command. Remote user -specification is identical for the xdcp and xdsh commands. See the xdsh +specification is identical for the \ **xdcp**\ and \ **xdsh**\ commands. See the \ **xdsh**\ command for more information. \ **REMOTE**\ \ **COMMAND**\ \ **COPY**\ : @@ -234,7 +234,7 @@ standard output or standard error is displayed. When you use the append script, the file (left) of the arrow is appended to the file right of the arrow. In this example, /etc/myappenddir/appendfile is appended to /etc/mysetup/setup file, which must already exist on the node. The /opt/xcat/share/xcat/scripts/xdcpappend.sh is used to accomplish this. - Another option is the \ **MERGE:**\ clause in the synclist file. The \ **MERGE:**\ clause is used to append the contents of the input file to /etc/passwd, /etc/group, or /etc/shadow on a Linux node. It is only supported for those files and only on Linux. You must not use both the APPEND and MERGE funcion for these three files. The processing could end up not creating the file you desire. The MERGE function is the preferred method, becuase APPEND only adds to the file. MERGE will add to the file but also insure there are no duplicate entries. + Another option is the \ **MERGE:**\ clause in the synclist file. The \ **MERGE:**\ clause is used to append the contents of the input file to /etc/passwd, /etc/group, or /etc/shadow on a Linux node. It is only supported for those files and only on Linux. You must not use both the APPEND and MERGE funcion for these three files. The processing could end up not creating the file you desire. The MERGE function is the preferred method, because APPEND only adds to the file. MERGE will add to the file but also insure there are no duplicate entries. For example, your rsynclist file may look like this: /tmp/share/file2 -> /tmp/file2 @@ -605,9 +605,7 @@ from the local host to node1 in the cluster, enter: -9. - - To rsync all the files in /home/mikev to the compute nodes: +9. To rsync all the files in /home/mikev to the compute nodes: Create a rsync file /tmp/myrsync, with this line: diff --git a/docs/source/guides/admin-guides/references/man1/xdsh.1.rst b/docs/source/guides/admin-guides/references/man1/xdsh.1.rst index ebc6ff7f9..1bedf8c7f 100644 --- a/docs/source/guides/admin-guides/references/man1/xdsh.1.rst +++ b/docs/source/guides/admin-guides/references/man1/xdsh.1.rst @@ -87,8 +87,7 @@ The remote shell is determined as follows, in order of precedence: 4. The \ **/usr/bin/ssh**\ command. -The remote shell options are determined as follows, in order of prece- -dence: +The remote shell options are determined as follows, in order of precedence: 1. The \ **-o**\ flag. @@ -664,11 +663,9 @@ on the service node fedora9 diskless image, enter: -9. - - To define the QLogic IB switch as a node and to set up the SSH keys for IB switch - \ **qswitch**\ with device configuration file - \ **/var/opt/xcat/IBSwitch/Qlogic/config**\ and user name \ **username**\ , enter +9. To define the QLogic IB switch as a node and to set up the SSH keys for IB switch +\ **qswitch**\ with device configuration file +\ **/var/opt/xcat/IBSwitch/Qlogic/config**\ and user name \ **username**\ , enter .. code-block:: perl @@ -703,9 +700,7 @@ on the service node fedora9 diskless image, enter: -12. - - To define a BNT Ethernet switch as a node and run a command to create a new vlan with vlan id 3 on the switch. +12. To define a BNT Ethernet switch as a node and run a command to create a new vlan with vlan id 3 on the switch. .. code-block:: perl @@ -727,9 +722,7 @@ on the service node fedora9 diskless image, enter: -13. - - To run \ **xdsh**\ with the non-root userid "user1" that has been setup as an xCAT userid and with sudo on node1 and node2 to run as root, do the following, see xCAT doc on Granting_Users_xCAT_privileges: +13. To run \ **xdsh**\ with the non-root userid "user1" that has been setup as an xCAT userid and with sudo on node1 and node2 to run as root, do the following, see xCAT doc on Granting_Users_xCAT_privileges: .. code-block:: perl diff --git a/docs/source/guides/admin-guides/references/man1/xdshbak.1.rst b/docs/source/guides/admin-guides/references/man1/xdshbak.1.rst index aa9e3a74e..efab1abda 100644 --- a/docs/source/guides/admin-guides/references/man1/xdshbak.1.rst +++ b/docs/source/guides/admin-guides/references/man1/xdshbak.1.rst @@ -166,10 +166,8 @@ the format used in the Description, enter: -2. - - To display the results of a command issued on several nodes with - identical output displayed only once, enter: +2. To display the results of a command issued on several nodes with +identical output displayed only once, enter: .. code-block:: perl diff --git a/docs/source/guides/admin-guides/references/man5/nodegroup.5.rst b/docs/source/guides/admin-guides/references/man5/nodegroup.5.rst index 8d6d32ade..8ec57df51 100644 --- a/docs/source/guides/admin-guides/references/man5/nodegroup.5.rst +++ b/docs/source/guides/admin-guides/references/man5/nodegroup.5.rst @@ -44,7 +44,7 @@ nodegroup Attributes: \ **grouptype**\ - The only current valid value is dynamic. We will be looking at having the object def commands working with static group definitions in the nodelist table. + Static or Dynamic. A static group is defined to contain a specific set of cluster nodes. A dynamic node group is one that has its members determined by specifying a selection criteria for node attributes. diff --git a/docs/source/guides/admin-guides/references/man5/site.5.rst b/docs/source/guides/admin-guides/references/man5/site.5.rst index af8cc6d31..a7f482df2 100644 --- a/docs/source/guides/admin-guides/references/man5/site.5.rst +++ b/docs/source/guides/admin-guides/references/man5/site.5.rst @@ -457,7 +457,7 @@ site Attributes: xcatlport: The port used by xcatd command log writer process to collect command output. - xcatsslversion: The ssl version by xcatd. Default is SSLv3. + xcatsslversion: The ssl version by xcatd. Default is TLSv1. xcatsslciphers: The ssl cipher by xcatd. Default is 3DES. diff --git a/docs/source/guides/admin-guides/references/man7/group.7.rst b/docs/source/guides/admin-guides/references/man7/group.7.rst index 0fd1d23b7..13ae364b2 100644 --- a/docs/source/guides/admin-guides/references/man7/group.7.rst +++ b/docs/source/guides/admin-guides/references/man7/group.7.rst @@ -331,7 +331,7 @@ group Attributes: \ **grouptype**\ (nodegroup.grouptype) - The only current valid value is dynamic. We will be looking at having the object def commands working with static group definitions in the nodelist table. + Static or Dynamic. A static group is defined to contain a specific set of cluster nodes. A dynamic node group is one that has its members determined by specifying a selection criteria for node attributes. diff --git a/docs/source/index.rst b/docs/source/index.rst index f971139ad..048b7095d 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,7 +1,7 @@ -Extreme Cloud/Cluster Administration Toolkit -============================================ +Extreme Cloud Administration Toolkit +==================================== -xCAT stands for E\ **x**\ treme **C**\ loud/\ **C**\ luster **A**\ dministration **T**\ oolkit. +xCAT stands for E\ **x**\ treme **C**\ loud **A**\ dministration **T**\ oolkit. xCAT offers complete management of clouds, clusters, HPC, grids, datacenters, renderfarms, online gaming infrastructure, and whatever tomorrows next buzzword may be. diff --git a/docs/source/overview/xcat2_release.rst b/docs/source/overview/xcat2_release.rst index 486faf10e..4c88d6396 100644 --- a/docs/source/overview/xcat2_release.rst +++ b/docs/source/overview/xcat2_release.rst @@ -14,13 +14,19 @@ xCAT 2.14.x |xCAT |New OS |New |New Feature | |Version | |Hardware | | +=================================+===============+=============+==================================+ +|| xCAT 2.14.4 2018/10/19 |- UBT18.04.1 | | | +|| | | | | +| `2.14.4 Release Notes `_ | | | | ++---------------------------------+---------------+-------------+----------------------------------+ || xCAT 2.14.3 2018/8/24 |- SLES12.3 | |- OpenBMC rflash enhancement | || | | | | | `2.14.3 Release Notes `_ | | |- goconserver v0.3.1 | +---------------------------------+---------------+-------------+----------------------------------+ -|| xCAT 2.14.2 2018/7/13 |- Ubuntu 18.04 | | | +|| xCAT 2.14.2 2018/7/13 |- UBT 18.04 | | | || |- RHEL6.10 | | | | `2.14.2 Release Notes ---service`` to get the path :: + # Display the directory of otherpkgdir + lsdef -t osimage rhels7.5-ppc64le-install-service -i otherpkgdir -c - # lsdef -t osimage rhels7.5-ppc64le-install-service | grep otherpkgdir - otherpkgdir=/install/post/otherpkgs/rhels7.5/ppc64le + # Create Packages directory + mkdir /install/post/otherpkgs/rhels7.5-alternate/ppc64le/xcat/Packages -#. Configure ``otherpkglist`` of the current osimage :: + # Copy rpms + cp /install/repos/fc28/ppc64le/Packages/*.rpm /install/post/otherpkgs/rhels7.5-alternate/ppc64le/xcat/Packages - # lsdef -t osimage rhels7.5-ppc64le-install-service | grep otherpkglist - otherpkglist=/opt/xcat/share/xcat/install/rh/service.rhels7.ppc64le.otherpkgs.pkglist + + +#. Configure ``otherpkglist`` attribute of the osimage :: + + chdef -t osimage rhels7.5-ppc64le-install-service otherpkglist=/opt/xcat/share/xcat/install/rh/service.rhels7.ppc64le.otherpkgs.pkglist + +#. Add the following entries to the contents of ``/opt/xcat/share/xcat/install/rh/service.rhels7.ppc64le.otherpkgs.pkglist`` :: - # cat /opt/xcat/share/xcat/install/rh/service.rhels7.ppc64le.otherpkgs.pkglist ... xcat/Packages/python2-gevent xcat/Packages/python2-greenlet xcat/xcat-core/xCAT-openbmc-py -Install on diskful SN by updatenode -``````````````````````````````````` +#. Choose one of the 3 methods below to complete the installation -If you have installed SN without ``xCAT-openbmc-py package``, could run updatenode to install it. +Install on diskful SN using updatenode +`````````````````````````````````````` -#. Sync epel repo and key file :: +If SN was installed without ``xCAT-openbmc-py`` package, ``updatenode`` can be used to install that package. - # rsync -v /etc/yum.repos.d/epel.repo root@10.3.17.17:/etc/yum.repos.d/ - # rsync -v /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 root@10.3.17.17:/etc/pki/rpm-gpg/ +#. Sync EPEL repository and key file :: + + rsync -v /etc/yum.repos.d/epel.repo root@:/etc/yum.repos.d/ + rsync -v /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 root@:/etc/pki/rpm-gpg/ #. Update packages on SN :: - # updatenode service -S + updatenode -S -Install on diskful SN -````````````````````` +Install on diskful SN using rinstall +```````````````````````````````````` -#. Configure ``synclists`` of osimage :: +#. Configure ``synclists`` attribute of osimage :: - # lsdef -t osimage rhels7.5-ppc64le-install-service | grep synclists - synclists=/install/custom/netboot/compute.synclist + chdef -t osimage rhels7.5-ppc64le-install-service synclists=/install/custom/netboot/compute.synclist + +#. Add the following to the contents of ``/install/custom/netboot/compute.synclist`` :: - # cat /install/custom/netboot/compute.synclist ... /etc/yum.repos.d/epel.repo -> /etc/yum.repos.d/epel.repo /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 -> /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 #. Install SN :: - # rinstall service osimage=rhels7.5-ppc64le-install-service + rinstall osimage=rhels7.5-ppc64le-install-service -Install on diskless SN -`````````````````````` +Install on diskless SN using rinstall +````````````````````````````````````` -#. Add epel online repo https://dl.fedoraproject.org/pub/epel/7/ppc64le to ``pkgdir`` :: +#. Add EPEL online repository https://dl.fedoraproject.org/pub/epel/7/ppc64le to ``pkgdir`` attribute of osimage:: - # lsdef -t osimage -o rhels7.5-ppc64le-netboot-service | grep pkgdir - pkgdir=/install/rhels7.5/ppc64le,https://dl.fedoraproject.org/pub/epel/7/ppc64le + chdef -t osimage -o rhels7.5-ppc64le-netboot-service -p pkgdir=https://dl.fedoraproject.org/pub/epel/7/ppc64le -#. Install SN :: +#. Install diskless SN :: - # genimage rhels7.5-ppc64le-netboot-service - # packimage rhels7.5-ppc64le-netboot-service - # rinstall service osimage=rhels7.5-ppc64le-netboot-service + genimage rhels7.5-ppc64le-netboot-service + packimage rhels7.5-ppc64le-netboot-service + rinstall osimage=rhels7.5-ppc64le-netboot-service diff --git a/perl-xCAT/README b/perl-xCAT/README index 52f308009..04b56cd36 100644 --- a/perl-xCAT/README +++ b/perl-xCAT/README @@ -1,5 +1,3 @@ -xCAT - eXtreme Cloud Administration Toolkit - xCAT is a toolkit for the deployment and administration of clusters. xCAT documentation is available at: http://xcat-docs.readthedocs.org/ diff --git a/perl-xCAT/xCAT/DSHCLI.pm b/perl-xCAT/xCAT/DSHCLI.pm index f95b55c36..ecafd5446 100644 --- a/perl-xCAT/xCAT/DSHCLI.pm +++ b/perl-xCAT/xCAT/DSHCLI.pm @@ -3441,7 +3441,7 @@ sub verify_targets { my $rsp = {}; $rsp->{error}->[0] = -"$user_target is not responding. No command will be issued to this host."; +"$user_target is not responding, make sure it is a node object and is defined in xCATdb. No command will be issued to this host."; xCAT::MsgUtils->message("E", $rsp, $::CALLBACK); # report error status --nodestatus diff --git a/perl-xCAT/xCAT/RSYNC.pm b/perl-xCAT/xCAT/RSYNC.pm index d36694cf0..ba8209929 100644 --- a/perl-xCAT/xCAT/RSYNC.pm +++ b/perl-xCAT/xCAT/RSYNC.pm @@ -151,7 +151,7 @@ sub remote_copy_command or die "Can not open file $rsyncfile"; my $dest_dir_list = join ' ', keys %{ $$config{'destDir_srcFile'} }; my $dest_user_host = $$config{'dest-host'}; - if ($$config{'dest-user'}) + if (getpwnam($$config{'dest-user'})) { $dest_user_host = "$$config{'dest-user'}@" . "$$config{'dest-host'}"; diff --git a/perl-xCAT/xCAT/SSH.pm b/perl-xCAT/xCAT/SSH.pm index f7b70fff1..f146db1d1 100644 --- a/perl-xCAT/xCAT/SSH.pm +++ b/perl-xCAT/xCAT/SSH.pm @@ -150,7 +150,7 @@ sub remote_copy_command { open SCPCMDFILE, "> $scpfile" or die "Can not open file $scpfile"; - if ($$config{'dest-user'}) + if (getpwnam($$config{'dest-user'})) { $dest_user_host = "$$config{'dest-user'}@" . "$$config{'dest-host'}"; diff --git a/perl-xCAT/xCAT/Schema.pm b/perl-xCAT/xCAT/Schema.pm index c5ab4ce9f..c2fc4ae60 100755 --- a/perl-xCAT/xCAT/Schema.pm +++ b/perl-xCAT/xCAT/Schema.pm @@ -585,7 +585,7 @@ passed as argument rather than by table value', table_desc => 'Contains group definitions, whose membership is dynamic depending on characteristics of the node.', descriptions => { groupname => 'Name of the group.', - grouptype => 'The only current valid value is dynamic. We will be looking at having the object def commands working with static group definitions in the nodelist table.', + grouptype => 'Static or Dynamic. A static group is defined to contain a specific set of cluster nodes. A dynamic node group is one that has its members determined by specifying a selection criteria for node attributes.', members => 'The value of the attribute is not used, but the attribute is necessary as a place holder for the object def commands. (The membership for static groups is stored in the nodelist table.)', membergroups => 'This attribute stores a comma-separated list of nodegroups that this nodegroup refers to. This attribute is only used by PCM.', wherevals => 'A list of "attr*val" pairs that can be used to determine the members of a dynamic group, the delimiter is "::" and the operator * can be ==, =~, != or !~.', @@ -1255,9 +1255,11 @@ passed as argument rather than by table value', " FQDNfirst: Fully Qualified Domain Name first. If set to 1/yes/enable, the /etc/hosts \n" . " entries generated by 'makehosts' will put the FQDN before the PQDN(Partially \n" . " Qualified Domain Name). Otherwise, the original behavior will be performed.\n\n" . -" hierarchicalattrs: Table attributes(e.g. postscripts, postbootscripts) that will be\n" . -" included hierarchically. Attribute values for all the node's groups\n" . +" hierarchicalattrs: A comma delimited list of table attributes(e.g. postscripts, postbootscripts)\n" . +" that will be included hierarchically. Attribute values for all the node's groups\n" . " will be applied to the node in the groups' order except the repeat one.\n" . +" By default, comma is used to combine the values. But some columns use different \n" . +" delimiter, to specify delimiter for those columns as format of 'column:delimiter'.\n\n" . " dbtracelevel: The trace level for the database access log. To activate this setting, please. \n". " restart xcatd or send HUP signal to the 'xcatd: DB Access' process, Like: .\n". " ps -ef | grep 'xcatd: DB Access' | grep -v grep | awk '{print \$2}' | xargs kill -HUP \n". diff --git a/perl-xCAT/xCAT/Table.pm b/perl-xCAT/xCAT/Table.pm index 103f8a09a..36ecc10fa 100644 --- a/perl-xCAT/xCAT/Table.pm +++ b/perl-xCAT/xCAT/Table.pm @@ -2324,12 +2324,8 @@ sub getNodesAttribs { } if (!exists($options{hierarchy_attrs})) { - my @hierarchy_attrs = (); - my $hierarchy_field = xCAT::TableUtils->get_site_attribute("hierarchicalattrs"); - if ($hierarchy_field) { - @hierarchy_attrs = split(/,/, $hierarchy_field); - } - $options{hierarchy_attrs} = \@hierarchy_attrs; + my $hierarchy_field = xCAT::TableUtils->getHierarchyAttrs(); + $options{hierarchy_attrs} = $hierarchy_field; } if ($dbworkerpid > 0) { @@ -2359,12 +2355,6 @@ sub getNodesAttribs { $self->{nodelist}->{_use_cache} = 1; } my $rethash; - #my @hierarchy_attrs = (); - #my $hierarchy_field = xCAT::TableUtils->get_site_attribute("hierarchicalattrs"); - #if ($hierarchy_field) { - # @hierarchy_attrs = split(/,/, $hierarchy_field); - #} - #$options{hierarchy_attrs} = \@hierarchy_attrs; foreach (@$nodelist) { my @nodeentries = $self->getNodeAttribs($_, \@realattribs, %options); $rethash->{$_} = \@nodeentries; #$self->getNodeAttribs($_,\@attribs); @@ -2755,12 +2745,8 @@ sub getNodeAttribs } if (!exists($options{hierarchy_attrs})) { - my @hierarchy_attrs = (); - my $hierarchy_field = xCAT::TableUtils->get_site_attribute("hierarchicalattrs"); - if ($hierarchy_field) { - @hierarchy_attrs = split(/,/, $hierarchy_field); - } - $options{hierarchy_attrs} = \@hierarchy_attrs; + my $hierarchy_field = xCAT::TableUtils->getHierarchyAttrs(); + $options{hierarchy_attrs} = $hierarchy_field; } if ($dbworkerpid > 0) { #TODO: should this be moved outside of the DB worker entirely? I'm thinking so, but I don't dare do so right now... #the benefit would be the potentially computationally intensive substitution logic would be moved out and less time inside limited @@ -3005,14 +2991,15 @@ sub getNodeAttribs_nosub_returnany my $attrib; my $result; - my @hierarchy_attrs = @{ $options{hierarchy_attrs} }; + my $hierarchy_attrs = $options{hierarchy_attrs}; my $data = $results[0]; if (defined {$data}) { #if there was some data for the node, loop through and check it foreach $result (@results) { foreach $attrib (keys %attribsToDo) { if (defined($result) && defined($result->{$attrib}) && $self->{tabname} ne 'nodelist' - && @hierarchy_attrs && grep (/^$attrib$/, @hierarchy_attrs)) { - $result->{$attrib} .= ',+=NEXTRECORD'; + && ref($hierarchy_attrs) eq "HASH" && exists $hierarchy_attrs->{$attrib}) { + $result->{$attrib} .= $hierarchy_attrs->{$attrib}; + $result->{$attrib} .= '+=NEXTRECORD'; } #check each item in the results to see which attributes were satisfied @@ -3072,8 +3059,9 @@ sub getNodeAttribs_nosub_returnany $attribsDone{$attrib} = 0; # for hierarchy attribute, append attributes from all the node's group - if (@hierarchy_attrs && grep (/^$attrib$/, @hierarchy_attrs)) { - $groupResult->{$attrib} .= ',+=NEXTRECORD'; + if (ref($hierarchy_attrs) eq "HASH" && exists $hierarchy_attrs->{$attrib}) { + $groupResult->{$attrib} .= $hierarchy_attrs->{$attrib}; + $groupResult->{$attrib} .= '+=NEXTRECORD'; } foreach $result (@results) { #loop through our existing results to add or modify the value for this attribute if (defined($result)) { @@ -3160,13 +3148,13 @@ sub getNodeAttribs_nosub_returnany for $result (@results) { for my $key (keys %$result) { $result->{$key} =~ s/\+=NEXTRECORD//g; - if (@hierarchy_attrs && grep (/^$key$/, @hierarchy_attrs)) { - my @attribs = split(/,/, $result->{$key}); + if (ref($hierarchy_attrs) eq "HASH" && exists $hierarchy_attrs->{$key}) { + my @attribs = split(/\Q$hierarchy_attrs->{$key}/, $result->{$key}); my %count; # remove the repeat value @attribs = grep { ++$count{$_} < 2; } @attribs; - $result->{$key} = join(',', @attribs); + $result->{$key} = join($hierarchy_attrs->{$key}, @attribs); } } } @@ -3430,11 +3418,7 @@ sub getAllNodeAttribs $self->{_use_cache} = 1; $self->{nodelist}->{_use_cache} = 1; - my @hierarchy_attrs = (); - my $hierarchy_field = xCAT::TableUtils->get_site_attribute("hierarchicalattrs"); - if ($hierarchy_field) { - @hierarchy_attrs = split(/,/, $hierarchy_field); - } + my $hierarchy_field = xCAT::TableUtils->getHierarchyAttrs(); while (my $data = $query->fetchrow_hashref()) { @@ -3462,7 +3446,7 @@ sub getAllNodeAttribs # @hierarchy_attrs = split(/,/, $hierarchy_field); #} my %options = (); - $options{hierarchy_attrs} = \@hierarchy_attrs; + $options{hierarchy_attrs} = $hierarchy_field; foreach (@nodes) { if ($donenodes{$_}) { next; } diff --git a/perl-xCAT/xCAT/TableUtils.pm b/perl-xCAT/xCAT/TableUtils.pm index 472a2aedc..dc18128da 100755 --- a/perl-xCAT/xCAT/TableUtils.pm +++ b/perl-xCAT/xCAT/TableUtils.pm @@ -1533,6 +1533,51 @@ sub get_site_Master } +#-------------------------------------------------------------------------------- + +=head3 getHierarchyAttrs + + Get the global hierarchy attributes in site table, and parse the corresponding delimiter. + + Arguments: + none + Returns: + Hash reference of hierarchy attributes defined at site.hierarchicalattrs. + { + 'begin' => '|', + 'postscripts' => ',' + } + Globals: + none + Error: + none + Example: + $attrs = xCAT::TableUtils->getHierarchyAttrs(); + Comments: + none + +=cut + +#-------------------------------------------------------------------------------- + +sub getHierarchyAttrs +{ + my %hierarchy_attrs = (); + my $hierarchy_field = xCAT::TableUtils->get_site_attribute("hierarchicalattrs"); + if ($hierarchy_field) { + # $hierarchy_field should be `attr1_name:delimiter1,attr2,attr3:delimiter2` + foreach my $item (split(/,/, $hierarchy_field)) { + $item = xCAT::Utils->strim($item); + next unless ($item); + my ($attr, $del) = split(/\s*:\s*/, $item, 2); + $del = ',' unless ($del); + $hierarchy_attrs{$attr} = $del if ($attr); + } + } + + return \%hierarchy_attrs; +} + #------------------------------------------------------------------------------- =head3 checkCredFiles diff --git a/perl-xCAT/xCAT/data/discinfo.pm b/perl-xCAT/xCAT/data/discinfo.pm index c3432566a..e4e132777 100755 --- a/perl-xCAT/xCAT/data/discinfo.pm +++ b/perl-xCAT/xCAT/data/discinfo.pm @@ -96,6 +96,8 @@ our %distnames = ( "1446216863.790260" => "rhels7.2", #x86_64 "1446216863.764721" => "rhels7.2", #ppc64 "1446216863.771788" => "rhels7.2", #ppc64le + "1527763142.409770" => "rhels8.0", #ppc64le + "1537463022.540933" => "rhels8.0", #ppc64le "1285193176.593806" => "rhelhpc6", #x86_64 "1305067719.718814" => "rhelhpc6.1", #x86_64 diff --git a/xCAT-OpenStack-baremetal/xpod2man b/xCAT-OpenStack-baremetal/xpod2man index 5a2b973f0..cbec892b8 100755 --- a/xCAT-OpenStack-baremetal/xpod2man +++ b/xCAT-OpenStack-baremetal/xpod2man @@ -9,7 +9,6 @@ use strict; -#use lib '.'; use Pod::Man; use Pod::Html; @@ -20,13 +19,6 @@ my $cachedir = '/tmp'; my @pods = getPodList($poddir); -#foreach (@pods) { print "$_\n"; } exit; - -# Build the cmd overview page. -#writesummarypage("$poddir/man1/xcat.1.pod", @pods); - -# Build the man page for each pod. -#mkdir($mandir) or die "Error: could not create $mandir.\n"; print "Converting PODs to man pages...\n"; foreach my $podfile (@pods) { my $manfile = $podfile; @@ -41,8 +33,6 @@ foreach my $podfile (@pods) { my @dummyPods = createDummyPods($poddir, \@pods); -# Build the html page for each pod. -#mkdir($htmldir) or die "Error: could not create $htmldir.\n"; print "Converting PODs to HTML pages...\n"; # have to clear the cache, because old entries can cause a problem @@ -55,7 +45,6 @@ foreach my $podfile (@pods) { $hdir =~ s|/[^/]*$||; # get rid of the basename part if (system("mkdir -p $hdir")) { die "Error: could not create $hdir.\n"; } - #print "$podfile, $htmlfile, $poddir, $htmldir\n"; convertpod2html($podfile, $htmlfile, $poddir, $htmldir); } @@ -74,16 +63,12 @@ sub createDummyPods { my ($poddir, $pods) = @_; my $cmd = "grep -r -E 'L<.+\\([57]\\)\\|.+\\.[57]>' " . $poddir; - #print "Running cmd: ", $cmd, "\n"; my @lines = `$cmd`; if ($?) { print "Did not find any section 5 man page, creating dummy pods...\n"; print join('', @lines); } - #my @lines; - #system($cmd); my @dummyPods; foreach my $l (@lines) { - #print "$l\n"; my @matches = $l =~ /L<([^\(]+)\(([57])\)\|\1\.[57]>/g; # get all the matches in the line # The above line should create the array with every other entry being the man page name # and every other entry is the section # (5 or 7) @@ -134,71 +119,6 @@ sub getPodList { } -# Create the xcat man page that gives a summary description of each xcat cmd. -# Not used -sub writesummarypage { - my $file = shift; # relative path file name of the man page - # the rest of @_ contains the pod files that describe each cmd - - open(FILE, ">$file") or die "Error: could not open $file for writing.\n"; - - print FILE <<'EOS1'; -=head1 NAME - -B - extreme Cluster Administration Tool. - -=head1 DESCRIPTION - -Extreme Cluster Administration Toolkit (xCAT). xCAT is a scalable distributed computing management -and provisioning tool that provides a unified interface for hardware control, discovery, and -OS diskful/diskfree deployment. - - -=head1 XCAT DATABASE - -All of the cluster configuration information is in the xCAT database. See L for -descriptions of every table in the database. - -=head1 XCAT COMMANDS - -What follows is a short description of each xCAT command. To get more information about a particular -command, see its man page. Note that the commands are listed in alphabetical order B, -i.e. all the commands in section 1, then the commands in section 3, etc. - -=over 12 -EOS1 - - # extract the summary for each cmd from its man page - foreach my $manpage (@_) { - my ($sectionnum) = $manpage =~ /\.(\d+)\.pod$/; - - # Suck in the whole file, then we will parse it. - open(MANPAGE, "$manpage") or die "Error: could not open $manpage for reading.\n"; - my @contents = ; - my $wholemanpage = join('', @contents); - close(MANPAGE); - - # This regex matches: optional space, =head1, space, title, space, cmd, space, description, newline - my ($cmd, $description) = $wholemanpage =~ /^\s*=head1\s+\S+\s+(\S+)\s+(.+?)\n/si; - if (!defined($cmd)) { print "Warning: $manpage is not in a recognized structure. It will be ignored.\n"; next; } - if (!defined($description)) { print "Warning: $manpage does not have a description for $cmd. It will be ignored.\n"; next; } - $cmd =~ s/^.<(.+)>$/$1/; # if the cmd name has pod formatting around it, strip it off - $description =~ s/^-\s*//; # if the description has a leading hypen, strip it off - print FILE "\n=item L<$cmd($sectionnum)|$cmd.$sectionnum>\n\n" . $description . "\n"; - } - - # Artificially add the xcattest cmd, because the xCAT-test rpm will add this - print FILE "\n=item L\n\nRun automated xCAT test cases.\n"; - - print FILE <<"EOS3"; - -=back -EOS3 - - close FILE; -} - - # Create the html page for one pod. sub convertpod2html { my ($podfile, $htmlfile, $poddir, $htmldir) = @_; diff --git a/xCAT-SoftLayer/xpod2man b/xCAT-SoftLayer/xpod2man index d867fd448..f28a08a72 100755 --- a/xCAT-SoftLayer/xpod2man +++ b/xCAT-SoftLayer/xpod2man @@ -9,7 +9,6 @@ use strict; -#use lib '.'; use Pod::Man; use Pod::Html; @@ -21,13 +20,6 @@ if (system("mkdir -p $cachedir")) { die "Error: could not create $cachedir.\n"; my @pods = getPodList($poddir); -#foreach (@pods) { print "$_\n"; } exit; - -# Build the cmd overview page. -#writesummarypage("$poddir/man1/xcat.1.pod", @pods); - -# Build the man page for each pod. -#mkdir($mandir) or die "Error: could not create $mandir.\n"; print "Converting PODs to man pages...\n"; foreach my $podfile (@pods) { my $manfile = $podfile; @@ -42,8 +34,6 @@ foreach my $podfile (@pods) { my @dummyPods = createDummyPods($poddir, \@pods); -# Build the html page for each pod. -#mkdir($htmldir) or die "Error: could not create $htmldir.\n"; print "Converting PODs to HTML pages...\n"; # have to clear the cache, because old entries can cause a problem @@ -56,7 +46,6 @@ foreach my $podfile (@pods) { $hdir =~ s|/[^/]*$||; # get rid of the basename part if (system("mkdir -p $hdir")) { die "Error: could not create $hdir.\n"; } - #print "$podfile, $htmlfile, $poddir, $htmldir\n"; convertpod2html($podfile, $htmlfile, $poddir, $htmldir); } @@ -75,16 +64,12 @@ sub createDummyPods { my ($poddir, $pods) = @_; my $cmd = "grep -r -E 'L<.+\\([57]\\)\\|.+\\.[57]>' " . $poddir; - #print "Running cmd: ", $cmd, "\n"; my @lines = `$cmd`; if ($?) { print "Did not find any section 5 man page, creating dummy pods...\n"; print join('', @lines); } - #my @lines; - #system($cmd); my @dummyPods; foreach my $l (@lines) { - #print "$l\n"; my @matches = $l =~ /L<([^\(]+)\(([57])\)\|\1\.[57]>/g; # get all the matches in the line # The above line should create the array with every other entry being the man page name # and every other entry is the section # (5 or 7) @@ -134,72 +119,6 @@ sub getPodList { return sort @files; } - -# Create the xcat man page that gives a summary description of each xcat cmd. -# Not used. -sub writesummarypage { - my $file = shift; # relative path file name of the man page - # the rest of @_ contains the pod files that describe each cmd - - open(FILE, ">$file") or die "Error: could not open $file for writing.\n"; - - print FILE <<'EOS1'; -=head1 NAME - -B - extreme Cluster Administration Tool. - -=head1 DESCRIPTION - -Extreme Cluster Administration Toolkit (xCAT). xCAT is a scalable distributed computing management -and provisioning tool that provides a unified interface for hardware control, discovery, and -OS diskful/diskfree deployment. - - -=head1 XCAT DATABASE - -All of the cluster configuration information is in the xCAT database. See L for -descriptions of every table in the database. - -=head1 XCAT COMMANDS - -What follows is a short description of each xCAT command. To get more information about a particular -command, see its man page. Note that the commands are listed in alphabetical order B, -i.e. all the commands in section 1, then the commands in section 3, etc. - -=over 12 -EOS1 - - # extract the summary for each cmd from its man page - foreach my $manpage (@_) { - my ($sectionnum) = $manpage =~ /\.(\d+)\.pod$/; - - # Suck in the whole file, then we will parse it. - open(MANPAGE, "$manpage") or die "Error: could not open $manpage for reading.\n"; - my @contents = ; - my $wholemanpage = join('', @contents); - close(MANPAGE); - - # This regex matches: optional space, =head1, space, title, space, cmd, space, description, newline - my ($cmd, $description) = $wholemanpage =~ /^\s*=head1\s+\S+\s+(\S+)\s+(.+?)\n/si; - if (!defined($cmd)) { print "Warning: $manpage is not in a recognized structure. It will be ignored.\n"; next; } - if (!defined($description)) { print "Warning: $manpage does not have a description for $cmd. It will be ignored.\n"; next; } - $cmd =~ s/^.<(.+)>$/$1/; # if the cmd name has pod formatting around it, strip it off - $description =~ s/^-\s*//; # if the description has a leading hypen, strip it off - print FILE "\n=item L<$cmd($sectionnum)|$cmd.$sectionnum>\n\n" . $description . "\n"; - } - - # Artificially add the xcattest cmd, because the xCAT-test rpm will add this - print FILE "\n=item L\n\nRun automated xCAT test cases.\n"; - - print FILE <<"EOS3"; - -=back -EOS3 - - close FILE; -} - - # Create the html page for one pod. sub convertpod2html { my ($podfile, $htmlfile, $poddir, $htmldir) = @_; diff --git a/xCAT-UI/debian/control b/xCAT-UI/debian/control index f9fe95278..d0020859d 100644 --- a/xCAT-UI/debian/control +++ b/xCAT-UI/debian/control @@ -9,5 +9,4 @@ Package: xcat-ui Architecture: all Depends: ${perl:Depends}, python (>= 2.3), apache2, libapache2-mod-php Description: Provides a browser-based interface for xCAT - Provides a browser-based interface for xCAT (extreme Cluster Administration - Tool). + Provides a browser-based interface for xCAT. diff --git a/xCAT-UI/lib/ui.php b/xCAT-UI/lib/ui.php index 458105a75..f7f96f3a1 100644 --- a/xCAT-UI/lib/ui.php +++ b/xCAT-UI/lib/ui.php @@ -72,7 +72,7 @@ function login() {
- + diff --git a/xCAT-UI/service.php b/xCAT-UI/service.php index 558d39f85..ed9cc89bd 100644 --- a/xCAT-UI/service.php +++ b/xCAT-UI/service.php @@ -57,7 +57,7 @@ if (!isAuthenticated()) {
eXtreme Cloud Administration Toolkit
xCAT
- + diff --git a/xCAT-UI/xCAT-UI.spec b/xCAT-UI/xCAT-UI.spec index 15b714315..a39fb564c 100644 --- a/xCAT-UI/xCAT-UI.spec +++ b/xCAT-UI/xCAT-UI.spec @@ -31,7 +31,7 @@ Requires: httpd %endif %description -Provides a browser-based interface for xCAT (Extreme Cloud Administration Toolkit). +Provides a browser-based interface for xCAT. %prep %setup -q -n xCAT-UI diff --git a/xCAT-client/bin/pping b/xCAT-client/bin/pping index 4bc3af11b..c5257d10a 100755 --- a/xCAT-client/bin/pping +++ b/xCAT-client/bin/pping @@ -199,9 +199,10 @@ sub nmap_pping { @nmap_options = xCAT::TableUtils->get_site_attribute("nmapoptions"); $more_options = $nmap_options[0]; } - open(FPING, "nmap -PE --system-dns --unprivileged --send-ip -sP $more_options " . join(' ', @$nodes) . " 2> /dev/null|") or die("Cannot open nmap pipe: $!"); + # Added port 22 for unprivileged case (#4324) + open(NMAP, "nmap -PE --system-dns --send-ip -sP --unprivileged -PA80,443,22 $more_options " . join(' ', @$nodes) . " 2> /dev/null|") or die("Cannot open nmap pipe: $!"); my $node; - while () { + while () { if (/Host (.*) \(.*\) appears to be up/) { $node = $1; unless ($deadnodes{$node}) { diff --git a/xCAT-client/pods/man1/chzone.1.pod b/xCAT-client/pods/man1/chzone.1.pod index 211dbd18c..b7b4c601c 100644 --- a/xCAT-client/pods/man1/chzone.1.pod +++ b/xCAT-client/pods/man1/chzone.1.pod @@ -12,8 +12,8 @@ B [B<-h> | B<-v>] =head1 B The B command is designed to change the definition of a zone previous defined in the cluster. -The chzone command is only supported on Linux ( No AIX support). -The nodes are not updated with the new root ssh keys by chzone. You must run updatenode -k or xdsh -K to the nodes to update the root ssh keys to the new generated zone keys. This will also sync any service nodes with the zone keys, if you have a hierarchical cluster. +The B command is only supported on Linux ( No AIX support). +The nodes are not updated with the new root ssh keys by B. You must run B or B to the nodes to update the root ssh keys to the new generated zone keys. This will also sync any service nodes with the zone keys, if you have a hierarchical cluster. Note: if any zones in the zone table, there must be one and only one defaultzone. Otherwise, errors will occur. =head1 B @@ -30,12 +30,12 @@ Displays command version and build date. =item B<-k | --sshkeypath> I -This is the path to the id_rsa key that will be used to build new root's ssh keys for the zone. If -k is used, it will generate the ssh public key from the input ssh RSA private key, and store both in /etc/xcat/sshkeys//.ssh directory. +This is the path to the id_rsa key that will be used to build new root's ssh keys for the zone. If B<-k> is used, it will generate the ssh public key from the input ssh RSA private key, and store both in /etc/xcat/sshkeys//.ssh directory. =item B<-K | --genkeys> Using this flag, will generate new ssh RSA private and public keys for the zone into the /etc/xcat/sshkeys//.ssh directory. -The nodes are not automatically updated with the new root ssh keys by chzone. You must run updatenode -k or xdsh -K to the nodes to update the root ssh keys to the new generated zone keys. This will also sync any service nodes with the zone keys, if you have a hierarchical cluster. +The nodes are not automatically updated with the new root ssh keys by chzone. You must run B or B to the nodes to update the root ssh keys to the new generated zone keys. This will also sync any service nodes with the zone keys, if you have a hierarchical cluster. =item B<--defaultzone> @@ -48,20 +48,20 @@ Note: if any zones in the zone table, there must be one and only one defaultzone =item B<-a | --addnoderange> I For each node in the noderange, it will set the zonename attribute for that node to the input zonename. -If the -g flag is also on the command, then +If the B<-g> flag is also on the command, then it will add the group name "zonename" to each node in the noderange. =item B<-r | --rmnoderange> I For each node in the noderange, if the node is a member of the input zone, it will remove the zonename attribute for that node. If any of the nodes in the noderange is not a member of the zone, you will get an error and nothing will be changed. -If the -g flag is also on the command, then +If the B<-g> flag is also on the command, then it will remove the group name "zonename" from each node in the noderange. =item B<-s| --sshbetweennodes> B -If -s entered, the zone sshbetweennodes attribute will be set to yes or no based on the input. When this is set to yes, then ssh will be setup to allow passwordless root access between nodes. If no, then root will be prompted for a password when running ssh between the nodes in the zone. +If B<-s> entered, the zone sshbetweennodes attribute will be set to yes or no based on the input. When this is set to yes, then ssh will be setup to allow passwordless root access between nodes. If no, then root will be prompted for a password when running ssh between the nodes in the zone. =item B<-f | --force> @@ -108,7 +108,6 @@ To add a new group of nodes (compute3) to zone3 and add zone3 group to the nodes chzone zone3 -a compute3 -g =item 5. - To remove a group of nodes (compute4) from zone4 and remove zone4 group from the nodes, enter: chzone> zone4 -r compute4 -g @@ -130,4 +129,4 @@ Location of the chzone command. =head1 B -L ,L ,L , L +L, L, L, L diff --git a/xCAT-client/pods/man1/db2sqlsetup.1.pod b/xCAT-client/pods/man1/db2sqlsetup.1.pod index 67f6a1d41..7c1ad1e7a 100644 --- a/xCAT-client/pods/man1/db2sqlsetup.1.pod +++ b/xCAT-client/pods/man1/db2sqlsetup.1.pod @@ -116,7 +116,6 @@ To setup the ODBC for DB2 xcatdb database access, on the SN : db2sqlsetup -o -C =item 5. - To setup the DB2 database but not start xcat running with it: db2sqlsetup -i -S -N diff --git a/xCAT-client/pods/man1/lstree.1.pod b/xCAT-client/pods/man1/lstree.1.pod index 99ecb1907..01f734f26 100644 --- a/xCAT-client/pods/man1/lstree.1.pod +++ b/xCAT-client/pods/man1/lstree.1.pod @@ -67,7 +67,6 @@ Output is similar to: ...... =item 2. - To display the tree of service node hierarchy for service node "mysn01". lstree -s mysn01 @@ -80,7 +79,6 @@ Output is similar to: |__mycn03 =item 3. - To display the tree of hardware hierarchy for all the nodes. lstree -H diff --git a/xCAT-client/pods/man1/mkdsklsnode.1.pod b/xCAT-client/pods/man1/mkdsklsnode.1.pod index a56d670ce..030f52583 100644 --- a/xCAT-client/pods/man1/mkdsklsnode.1.pod +++ b/xCAT-client/pods/man1/mkdsklsnode.1.pod @@ -176,7 +176,6 @@ Initialize diskless node "clstrn29" using the xCAT osimage called "61dskls". Al mkdsklsnode -i 61dskls clstrn29 psize=128 sparse_paging=yes =item 4. - Initialize an xCAT node called "node02" as an AIX diskless node. Create a new NIM machine definition name with the osimage as an extension to the xCAT node name. mkdsklsnode -n -i 61spot node02 diff --git a/xCAT-client/pods/man1/mkzone.1.pod b/xCAT-client/pods/man1/mkzone.1.pod index 77dc364b1..776ec229b 100644 --- a/xCAT-client/pods/man1/mkzone.1.pod +++ b/xCAT-client/pods/man1/mkzone.1.pod @@ -82,13 +82,11 @@ To make a new zone2 using defaults and make it the default zone enter: mkzone> zone2 --defaultzone -f =item 3. - To make a new zone2A using the ssh id_rsa private key in /root/.ssh: mkzone zone2A -k /root/.ssh =item 4. - To make a new zone3 and assign the noderange compute3 to the zone enter: mkzone zone3 -a compute3 @@ -99,7 +97,6 @@ To make a new zone4 and assign the noderange compute4 to the zone and add zone4 mkzone zone4 -a compute4 -g =item 6. - To make a new zone5 and assign the noderange compute5 to the zone and add zone5 as a group to each node but not allow passwordless ssh between the nodes enter: mkzone zone5 -a compute5 -g -s no diff --git a/xCAT-client/pods/man1/nodechmac.1.pod b/xCAT-client/pods/man1/nodechmac.1.pod index 0bf9830f8..c0a674cba 100644 --- a/xCAT-client/pods/man1/nodechmac.1.pod +++ b/xCAT-client/pods/man1/nodechmac.1.pod @@ -10,7 +10,7 @@ B I BI =head1 DESCRIPTION -The B command changes the MAC address for provisioned node’s network interface. +The B command changes the MAC address for provisioned node's network interface. You can use this command to keep an existing node configuration. For example, if an existing node has hardware problems, the replacement node can use the old configurations. By using the nodechmac command, the node name and network settings of the old node can be used by the new node. diff --git a/xCAT-client/pods/man1/piflash.1.pod b/xCAT-client/pods/man1/piflash.1.pod index 9d4752f5f..c689e024c 100644 --- a/xCAT-client/pods/man1/piflash.1.pod +++ b/xCAT-client/pods/man1/piflash.1.pod @@ -5,7 +5,7 @@ B - Remotely applies firmware updates to servers. =head1 SYNOPSIS -B --package +B I --package I =head1 DESCRIPTION diff --git a/xCAT-client/pods/man1/renergy.1.pod b/xCAT-client/pods/man1/renergy.1.pod index 18580e603..780a2ce10 100644 --- a/xCAT-client/pods/man1/renergy.1.pod +++ b/xCAT-client/pods/man1/renergy.1.pod @@ -699,8 +699,7 @@ The output of the query operation: ... =item 4 - -Query all the attirbutes for management module node MM1. (For chassis) +Query all the attributes for management module node MM1. (For chassis) renergy MM1 all diff --git a/xCAT-client/pods/man1/rinv.1.pod b/xCAT-client/pods/man1/rinv.1.pod index f7aed5981..815c9a81a 100644 --- a/xCAT-client/pods/man1/rinv.1.pod +++ b/xCAT-client/pods/man1/rinv.1.pod @@ -258,7 +258,6 @@ Output is similar to: =item 3. - To retrieve 'config' information from the HMC-managed LPAR node3, enter: rinv node3 config @@ -270,7 +269,6 @@ Output is similar to: node5: Total Memory (MB): 1024 =item 4. - To retrieve information about a VMware node vm1, enter: rinv vm1 @@ -287,7 +285,6 @@ Output is similar to: B =item 5. - To list the defined network names available for a given node: rinv pokdev61 --getnetworknames @@ -304,7 +301,6 @@ Output is similar to: pokdev61: VSWITCH SYSTEM VSW3 =item 6. - To list the configuration for a given network: rinv pokdev61 --getnetwork GLAN1 @@ -317,7 +313,6 @@ Output is similar to: pokdev61: Isolation Status: OFF =item 7. - To list the disk pool names available: rinv pokdev61 --diskpoolnames @@ -329,7 +324,6 @@ Output is similar to: pokdev61: POOL3 =item 8. - List the configuration for a given disk pool: rinv pokdev61 --diskpool POOL1 free @@ -342,7 +336,6 @@ Output is similar to: =item 9. - List the known zFCP pool names. rinv pokdev61 --zfcppoolnames @@ -354,7 +347,6 @@ Output is similar to: pokdev61: zfcp3 =item 10. - List the SCSI/FCP devices contained in a given zFCP pool: rinv pokdev61 --zfcppool zfcp1 diff --git a/xCAT-client/pods/man1/rmzone.1.pod b/xCAT-client/pods/man1/rmzone.1.pod index a0a0af222..d2ede20d3 100644 --- a/xCAT-client/pods/man1/rmzone.1.pod +++ b/xCAT-client/pods/man1/rmzone.1.pod @@ -58,13 +58,11 @@ To remove zone1 from the zone table and the zonename attribute on all it's assig rmzone zone1 =item 2. - To remove zone2 from the zone table, the zone2 zonename attribute, and the zone2 group assigned to all nodes that were in zone2, enter: rmzone zone2 -g =item 3. - To remove zone3 from the zone table, all the node zone attributes and override the fact it is the defaultzone, enter: rmzone zone3 -g -f @@ -79,4 +77,4 @@ Location of the rmzone command. =head1 B -L ,L ,L , L +L, L, L, L diff --git a/xCAT-client/pods/man1/rspconfig.1.pod b/xCAT-client/pods/man1/rspconfig.1.pod index 10df8ed4b..b4cd8b4d3 100644 --- a/xCAT-client/pods/man1/rspconfig.1.pod +++ b/xCAT-client/pods/man1/rspconfig.1.pod @@ -264,7 +264,7 @@ Get the BMC backup gateway ip address. =item B={B | I} -Get or set the SNMP commmunity value. The default is B. +Get or set the SNMP community value. The default is B. =item B=I @@ -348,7 +348,7 @@ Get or set hostname on the service processor. =item B -Get or set vlan ID. For get vlan ID, if vlan is not enabled, 'BMC VLAN disabled' will be outputed. For set vlan ID, the valid value are [1-4096]. +Get or set vlan ID. For get vlan ID, if vlan is not enabled, 'BMC VLAN disabled' will be displayed. For set vlan ID, the valid value are [1-4096]. =item B @@ -855,7 +855,6 @@ To force service processor failover for cec01: cec01: 192.168.2.2: sp=primary,ipadd=192.168.2.2,alt_ipadd=unavailable,state=LINE UP =item 27. - To deconfigure memory bank 9 and 10 of Processing Unit 0 on mm01: rspconfig mm01 memdecfg=deconfigure:bank:0:9,10 @@ -865,7 +864,6 @@ Output is similar to: mm01: Success =item 28. - To reset the network interface of the specified nodes: rspconfig --resetnet diff --git a/xCAT-client/pods/man1/sinv.1.pod b/xCAT-client/pods/man1/sinv.1.pod index 785859dd2..13a4fd740 100644 --- a/xCAT-client/pods/man1/sinv.1.pod +++ b/xCAT-client/pods/man1/sinv.1.pod @@ -135,7 +135,7 @@ xCAT ships some default configuration files for Ethernet switches and IB switches under I directory. If you want to overwrite any of the configuration files, copy them to I -directory and cutomize. +directory and customize. For example, I is the configuration file location if devicetype is specified as IBSwitch::Qlogic. xCAT will first search config file using I as the base. @@ -252,7 +252,6 @@ To execute B on the Linux osimage defined for cn1. First build a template sinv -c "xdsh -i /install/netboot/rhels6/ppc64/test_ramdisk_statelite/rootimg cat /etc/hosts" -e -t 1 -p /tmp/sinv.template -o /tmp/sinv.output =item 8. - To execute B on the AIX NIM 611dskls spot and compare /etc/hosts to compute1 node, run the following: xdsh compute1 "cat /etc/hosts" | xdshcoll > /tmp/sinv2/template" @@ -260,7 +259,6 @@ To execute B on the AIX NIM 611dskls spot and compare /etc/hosts to comput sinv -c "xdsh -i 611dskls cat /etc/hosts" -e -t1 -p /tmp/sinv.template -o /tmp/sinv.output =item 9. - To execute B on the device mswitch2 and compare to mswitch1 sinv -c "xdsh mswitch enable;show version" -s mswitch1 -p /tmp/sinv/template --devicetype IBSwitch::Mellanox -l admin -t 2 @@ -275,4 +273,4 @@ Location of the sinv command. =head1 B -L , L +L, L diff --git a/xCAT-client/pods/man1/xdcp.1.pod b/xCAT-client/pods/man1/xdcp.1.pod index 2495b6431..a4f2fc9db 100644 --- a/xCAT-client/pods/man1/xdcp.1.pod +++ b/xCAT-client/pods/man1/xdcp.1.pod @@ -31,7 +31,7 @@ If the Management Node is target node, it must be defined in the xCAT database w B B: A user_ID can be specified for the remote copy command. Remote user -specification is identical for the xdcp and xdsh commands. See the xdsh +specification is identical for the B and B commands. See the B command for more information. B B B: @@ -185,7 +185,7 @@ For example, your rsynclist file may look like this: When you use the append script, the file (left) of the arrow is appended to the file right of the arrow. In this example, /etc/myappenddir/appendfile is appended to /etc/mysetup/setup file, which must already exist on the node. The /opt/xcat/share/xcat/scripts/xdcpappend.sh is used to accomplish this. -Another option is the B clause in the synclist file. The B clause is used to append the contents of the input file to /etc/passwd, /etc/group, or /etc/shadow on a Linux node. It is only supported for those files and only on Linux. You must not use both the APPEND and MERGE funcion for these three files. The processing could end up not creating the file you desire. The MERGE function is the preferred method, becuase APPEND only adds to the file. MERGE will add to the file but also insure there are no duplicate entries. +Another option is the B clause in the synclist file. The B clause is used to append the contents of the input file to /etc/passwd, /etc/group, or /etc/shadow on a Linux node. It is only supported for those files and only on Linux. You must not use both the APPEND and MERGE funcion for these three files. The processing could end up not creating the file you desire. The MERGE function is the preferred method, because APPEND only adds to the file. MERGE will add to the file but also insure there are no duplicate entries. For example, your rsynclist file may look like this: /tmp/share/file2 -> /tmp/file2 @@ -469,7 +469,6 @@ Run: xdcp compute -F /tmp/myrsync =item 9. - To rsync all the files in /home/mikev to the compute nodes: Create a rsync file /tmp/myrsync, with this line: diff --git a/xCAT-client/pods/man1/xdsh.1.pod b/xCAT-client/pods/man1/xdsh.1.pod index 269a51446..c5572ca91 100644 --- a/xCAT-client/pods/man1/xdsh.1.pod +++ b/xCAT-client/pods/man1/xdsh.1.pod @@ -70,8 +70,7 @@ The remote shell is determined as follows, in order of precedence: 4. The B command. -The remote shell options are determined as follows, in order of prece- -dence: +The remote shell options are determined as follows, in order of precedence: 1. The B<-o> flag. @@ -525,7 +524,6 @@ To cleanup the servicenode directory that stages the copy of files to the nodes, xdsh servicenoderange -c =item 9. - To define the QLogic IB switch as a node and to set up the SSH keys for IB switch B with device configuration file B and user name B, enter @@ -548,7 +546,6 @@ B with and user name B, enter xdsh mswitch -l admin --devicetype IBSwitch::Mellanox 'enable;configure terminal;show ssh server host-keys' =item 12. - To define a BNT Ethernet switch as a node and run a command to create a new vlan with vlan id 3 on the switch. chdef myswitch groups=all @@ -562,7 +559,6 @@ If it is for Telnet, add I in front of the user name: I. dsh myswitch --devicetype EthSwitch::BNT 'enable;configure terminal;vlan 3;end;show vlan' =item 13. - To run B with the non-root userid "user1" that has been setup as an xCAT userid and with sudo on node1 and node2 to run as root, do the following, see xCAT doc on Granting_Users_xCAT_privileges: xdsh node1,node2 --sudo -l user1 "cat /etc/passwd" diff --git a/xCAT-client/pods/man1/xdshbak.1.pod b/xCAT-client/pods/man1/xdshbak.1.pod index fed91b77d..c315b2274 100644 --- a/xCAT-client/pods/man1/xdshbak.1.pod +++ b/xCAT-client/pods/man1/xdshbak.1.pod @@ -114,7 +114,6 @@ the format used in the Description, enter: xdsh node1,node2,node3 cat /etc/passwd | xdshbak =item 2. - To display the results of a command issued on several nodes with identical output displayed only once, enter: diff --git a/xCAT-client/share/xcat/tools/groupfiles4dsh b/xCAT-client/share/xcat/tools/groupfiles4dsh index faf2aeceb..2174d84d8 100755 --- a/xCAT-client/share/xcat/tools/groupfiles4dsh +++ b/xCAT-client/share/xcat/tools/groupfiles4dsh @@ -45,7 +45,7 @@ use xCAT::Utils; # Main my $rc = 0; &parse_args; -my $cmd = "lsdef -t group"; +my $cmd = "lsdef -t group | awk '{print \$1}'"; my @grpoutput = xCAT::Utils->runcmd($cmd, 0); if ($::RUNCMD_RC != 0) { # error diff --git a/xCAT-client/xpod2man b/xCAT-client/xpod2man index d7ee05ea9..908804ba7 100755 --- a/xCAT-client/xpod2man +++ b/xCAT-client/xpod2man @@ -9,7 +9,6 @@ use strict; -#use lib '.'; use Pod::Man; use Pod::Html; @@ -21,14 +20,10 @@ if (system("mkdir -p $cachedir")) { die "Error: could not create $cachedir.\n"; my @pods = getPodList($poddir); -#foreach (@pods) { print "$_\n"; } exit; - # Build the cmd overview page. writesummarypage("$poddir/man1/xcat.1.pod", @pods); push @pods, "$poddir/man1/xcat.1.pod"; -# Build the man page for each pod. -#mkdir($mandir) or die "Error: could not create $mandir.\n"; print "Converting PODs to man pages...\n"; foreach my $podfile (@pods) { my $manfile = $podfile; @@ -43,8 +38,6 @@ foreach my $podfile (@pods) { my @dummyPods = createDummyPods($poddir, \@pods); -# Build the html page for each pod. -#mkdir($htmldir) or die "Error: could not create $htmldir.\n"; print "Converting PODs to HTML pages...\n"; # have to clear the cache, because old entries can cause a problem @@ -57,7 +50,6 @@ foreach my $podfile (@pods) { $hdir =~ s|/[^/]*$||; # get rid of the basename part if (system("mkdir -p $hdir")) { die "Error: could not create $hdir.\n"; } - #print "$podfile, $htmlfile, $poddir, $htmldir\n"; convertpod2html($podfile, $htmlfile, $poddir, $htmldir); } @@ -76,16 +68,12 @@ sub createDummyPods { my ($poddir, $pods) = @_; my $cmd = "grep -r -E 'L<.+\\([57]\\)\\|.+\\.[57]>' " . $poddir; - #print "Running cmd: ", $cmd, "\n"; my @lines = `$cmd`; if ($?) { print "Did not find any section 5 man page, creating dummy pods...\n"; print join('', @lines); } - #my @lines; - #system($cmd); my @dummyPods; foreach my $l (@lines) { - #print "$l\n"; my @matches = $l =~ /L<([^\(]+)\(([57])\)\|\1\.[57]>/g; # get all the matches in the line # The above line should create the array with every other entry being the man page name # and every other entry is the section # (5 or 7) @@ -149,11 +137,11 @@ sub writesummarypage { print FILE <<'EOS1'; =head1 NAME -B - extreme Cluster Administration Tool. +B - Extreme Cloud Administration Toolkit. =head1 DESCRIPTION -Extreme Cluster Administration Toolkit (xCAT). xCAT is a scalable distributed computing management +Extreme Cloud Administration Toolkit (xCAT). xCAT is a scalable distributed computing management and provisioning tool that provides a unified interface for hardware control, discovery, and OS diskful/diskfree deployment. diff --git a/xCAT-confluent/xpod2man b/xCAT-confluent/xpod2man index d49af7443..346bb674e 100755 --- a/xCAT-confluent/xpod2man +++ b/xCAT-confluent/xpod2man @@ -9,7 +9,6 @@ use strict; -#use lib '.'; use Pod::Man; use Pod::Html; @@ -20,13 +19,6 @@ my $cachedir = '/tmp'; my @pods = getPodList($poddir); -#foreach (@pods) { print "$_\n"; } exit; - -# Build the cmd overview page. -#writesummarypage("$poddir/man1/xcat.1.pod", @pods); - -# Build the man page for each pod. -#mkdir($mandir) or die "Error: could not create $mandir.\n"; print "Converting PODs to man pages...\n"; foreach my $podfile (@pods) { my $manfile = $podfile; @@ -41,8 +33,6 @@ foreach my $podfile (@pods) { my @dummyPods = createDummyPods($poddir, \@pods); -# Build the html page for each pod. -#mkdir($htmldir) or die "Error: could not create $htmldir.\n"; print "Converting PODs to HTML pages...\n"; # have to clear the cache, because old entries can cause a problem @@ -55,7 +45,6 @@ foreach my $podfile (@pods) { $hdir =~ s|/[^/]*$||; # get rid of the basename part if (system("mkdir -p $hdir")) { die "Error: could not create $hdir.\n"; } - #print "$podfile, $htmlfile, $poddir, $htmldir\n"; convertpod2html($podfile, $htmlfile, $poddir, $htmldir); } @@ -74,27 +63,21 @@ sub createDummyPods { my ($poddir, $pods) = @_; my $cmd = "grep -r -E 'L<.+\\([57]\\)\\|.+\\.[57]>' " . $poddir; - #print "Running cmd: ", $cmd, "\n"; my @lines = `$cmd`; if ($?) { print "Did not find any section 5 man page, creating dummy pods...\n"; print join('', @lines); } - #my @lines; - #system($cmd); my @dummyPods; foreach my $l (@lines) { - #print "$l\n"; my @matches = $l =~ /L<([^\(]+)\(([57])\)\|\1\.[57]>/g; # get all the matches in the line # The above line should create the array with every other entry being the man page name # and every other entry is the section # (5 or 7) my $cmd; while ($cmd = shift @matches) { - #foreach my $m (@matches) { my $section = shift @matches; my $filename = "$poddir/man$section/$cmd.$section.pod"; - #print "$filename\n"; if (!(grep /^$filename$/, @$pods) && !(grep /^$filename$/, @dummyPods)) { push @dummyPods, $filename; } } } @@ -133,71 +116,6 @@ sub getPodList { return sort @files; } - -# Create the xcat man page that gives a summary description of each xcat cmd. -sub writesummarypage { - my $file = shift; # relative path file name of the man page - # the rest of @_ contains the pod files that describe each cmd - - open(FILE, ">$file") or die "Error: could not open $file for writing.\n"; - - print FILE <<'EOS1'; -=head1 NAME - -B - extreme Cluster Administration Tool. - -=head1 DESCRIPTION - -Extreme Cluster Administration Toolkit (xCAT). xCAT is a scalable distributed computing management -and provisioning tool that provides a unified interface for hardware control, discovery, and -OS diskful/diskfree deployment. - - -=head1 XCAT DATABASE - -All of the cluster configuration information is in the xCAT database. See L for -descriptions of every table in the database. - -=head1 XCAT COMMANDS - -What follows is a short description of each xCAT command. To get more information about a particular -command, see its man page. Note that the commands are listed in alphabetical order B, -i.e. all the commands in section 1, then the commands in section 3, etc. - -=over 12 -EOS1 - - # extract the summary for each cmd from its man page - foreach my $manpage (@_) { - my ($sectionnum) = $manpage =~ /\.(\d+)\.pod$/; - - # Suck in the whole file, then we will parse it. - open(MANPAGE, "$manpage") or die "Error: could not open $manpage for reading.\n"; - my @contents = ; - my $wholemanpage = join('', @contents); - close(MANPAGE); - - # This regex matches: optional space, =head1, space, title, space, cmd, space, description, newline - my ($cmd, $description) = $wholemanpage =~ /^\s*=head1\s+\S+\s+(\S+)\s+(.+?)\n/si; - if (!defined($cmd)) { print "Warning: $manpage is not in a recognized structure. It will be ignored.\n"; next; } - if (!defined($description)) { print "Warning: $manpage does not have a description for $cmd. It will be ignored.\n"; next; } - $cmd =~ s/^.<(.+)>$/$1/; # if the cmd name has pod formatting around it, strip it off - $description =~ s/^-\s*//; # if the description has a leading hypen, strip it off - print FILE "\n=item L<$cmd($sectionnum)|$cmd.$sectionnum>\n\n" . $description . "\n"; - } - - # Artificially add the xcattest cmd, because the xCAT-test rpm will add this - print FILE "\n=item L\n\nRun automated xCAT test cases.\n"; - - print FILE <<"EOS3"; - -=back -EOS3 - - close FILE; -} - - # Create the html page for one pod. sub convertpod2html { my ($podfile, $htmlfile, $poddir, $htmldir) = @_; diff --git a/xCAT-probe/lib/perl/LogParse.pm b/xCAT-probe/lib/perl/LogParse.pm index ec8cb98b7..eed2a80fd 100644 --- a/xCAT-probe/lib/perl/LogParse.pm +++ b/xCAT-probe/lib/perl/LogParse.pm @@ -126,10 +126,15 @@ sub obtain_log_file_list { my $self = shift; my %candidate_log; + my @loglist = ("/var/log/messages", + "/var/log/xcat/cluster.log", + "/var/log/xcat/computes.log", + "/var/log/syslog"); + my @candidate_log_set; - push @candidate_log_set, "/var/log/messages" if (-e "/var/log/messages"); - push @candidate_log_set, "/var/log/xcat/cluster.log" if (-e "/var/log/xcat/cluster.log"); - push @candidate_log_set, "/var/log/xcat/computes.log" if (-e "/var/log/xcat/computes.log"); + foreach my $log (@loglist){ + push @candidate_log_set, $log if (-e "$log"); + } my $filename; foreach my $log (@candidate_log_set) { diff --git a/xCAT-probe/lib/perl/probe_utils.pm b/xCAT-probe/lib/perl/probe_utils.pm index e68c005e5..039a9c8e7 100644 --- a/xCAT-probe/lib/perl/probe_utils.pm +++ b/xCAT-probe/lib/perl/probe_utils.pm @@ -375,16 +375,18 @@ sub is_tftp_ready { rename("/$test_dir/tftptestt.tmp", "/$test_dir/tftptestt.tmp.old") if (-e "/$test_dir/tftptestt.tmp"); rename("./tftptestt.tmp", "./tftptestt.tmp.old") if (-e "./tftptestt.tmp"); - system("touch /$test_dir/tftptestt.tmp"); + system("date > /$test_dir/tftptestt.tmp"); my $output = `tftp -4 -v $mnip -c get /tftptest/tftptestt.tmp 2>&1`; - if ((!$?) && (-e "./tftptestt.tmp")) { + if ((!$?) && (-s "./tftptestt.tmp")) { unlink("./tftptestt.tmp"); rename("./tftptestt.tmp.old", "./tftptestt.tmp") if (-e "./tftptestt.tmp.old"); rename("/$test_dir/tftptestt.tmp.old", "/$test_dir/tftptestt.tmp") if (-e "/$test_dir/tftptestt.tmp.old"); + system("rm -rf $test_dir"); return 1; } else { rename("./tftptestt.tmp.old", "./tftptestt.tmp") if (-e "./tftptestt.tmp.old"); rename("/$test_dir/tftptestt.tmp.old", "/$test_dir/tftptestt.tmp") if (-e "/$test_dir/tftptestt.tmp.old"); + system("rm -rf $test_dir"); return 0; } } @@ -512,6 +514,42 @@ sub parse_node_range { #------------------------------------------ +=head3 + Description: + Test if chrony service is ready to use in current operating system + Arguments: + errormsg_ref: (output attribute) if there is something wrong for chrony service, this attribute save the possible reason. + Returns: + 1 : yes + 0 : no +=cut + +#------------------------------------------ +sub is_chrony_ready { + my $errormsg_ref = shift; + $errormsg_ref = shift if (($errormsg_ref) && ($errormsg_ref =~ /probe_utils/)); + + my $chronycoutput = `chronyc tracking 2>&1`; + if ($?) { + if ($chronycoutput =~ /Cannot talk to daemon/) { + $$errormsg_ref = "chronyd service is not running! Please setup ntp in current node"; + return 0; + } + $$errormsg_ref = "command 'chronyc tracking' failed, could not get status of ntp service"; + return 0; + } + if ($chronycoutput =~ /Leap status : (.+)/) { + my $status = $1; + if ($status eq "Not synchronised") { + $$errormsg_ref = "chronyd did not synchronize."; + return 0; + } + } + return 1; +} + +#------------------------------------------ + =head3 Description: Test if ntp service is ready to use in current operating system @@ -525,7 +563,7 @@ sub parse_node_range { #------------------------------------------ sub is_ntp_ready{ my $errormsg_ref = shift; - $errormsg_ref= shift if (($errormsg_ref) && ($errormsg_ref =~ /probe_utils/)); + $errormsg_ref = shift if (($errormsg_ref) && ($errormsg_ref =~ /probe_utils/)); my $cmd = 'ntpq -c "rv 0"'; $| = 1; @@ -659,6 +697,72 @@ sub convert_second_to_time { #------------------------------------------ +=head3 + Description: + Call get_files_recursive to get all files under given dir, + and save to target file + Arguments: + dir: the dir want to get files + target_file: the file to save files list + +=cut + +#------------------------------------------ +sub list_files_to_file { + my $src_dir = shift; + $src_dir = shift if (($src_dir) && ($src_dir =~ /probe_utils/)); + my $target_file = shift; + my $errormsg_ref = shift; + + my @files = (); + get_files_recursive("$src_dir", \@files); + my $all_file = join("\n", @files); + + if (!open f,"> $target_file") { + $$errormsg_ref = "Can not open file $target_file to save files list"; + return 1; + } + print f $all_file; + close f; + + return 0; +} + +#------------------------------------------ + +=head3 + Description: + Get all files under the given dir + Arguments: + dir: the dir want to get files + files_path_ref: list of all files +=cut + +#------------------------------------------ +sub get_files_recursive { + my $dir = shift; + my $files_path_ref = shift; + + my $fd = undef; + opendir($fd, $dir); + for (; ;) + { + my $direntry = readdir($fd); + last unless (defined($direntry)); + next if ($direntry =~ m/^\.\w*/); + next if ($direntry eq '..'); + my $target = "$dir/$direntry"; + if (-d $target) { + get_files_recursive($target, $files_path_ref); + } else { + push(@{$files_path_ref}, glob("$target\n")); + } + } + closedir($fd); +} + +#------------------------------------------ + =head3 Description: print table diff --git a/xCAT-probe/subcmds/xcatmn b/xCAT-probe/subcmds/xcatmn index 1621ecd5b..9264a5174 100755 --- a/xCAT-probe/subcmds/xcatmn +++ b/xCAT-probe/subcmds/xcatmn @@ -87,8 +87,9 @@ sub do_main_job { $rc |= $rst; #check important directory - $rst = check_directory(\%sitetable, \$checkpoint, \@error); - print_check_result($checkpoint, "f", $rst, \@error); + ($rst, $flag) = check_directory(\%sitetable, \$checkpoint, \@error); + print_check_result($checkpoint, $flag, $rst, \@error); + $rst = 0 if ($flag == "w"); $rc |= $rst; #check if SElinux is disabled @@ -376,19 +377,28 @@ sub check_site_table { $$checkpoint_ref = "Checking 'site' table is configured..."; @$error_ref = (); - my @attr_list = ("master", "domain", "installdir", "tftpdir"); + my @attr_list = ("master", "domain", "installdir", "tftpdir", "sharedtftp", "installloc"); foreach my $attr (@attr_list) { my $value; $value = `lsdef -t site -i $attr -c 2>&1 | awk -F'=' '{print \$2}'`; chomp($value); if ($value eq "") { - push @$error_ref, "There isn't '$attr' definition in 'site' table"; - $rst = 1; - } else { - if (($attr eq "master") and (!probe_utils->is_ip_addr("$value"))) { - push @$error_ref, "The value of 'master' in 'site' table isn't an IP addres"; + if ($attr ne "sharedtftp" and $attr ne "installloc") { + push @$error_ref, "There isn't '$attr' definition in 'site' table"; $rst = 1; } + } else { + if (($attr eq "master") and (!xCAT::NetworkUtils->isIpaddr("$value"))) { + my $masterip = xCAT::NetworkUtils->getipaddr("$value"); + if (! defined $masterip){ + push @$error_ref, "The value of 'master' in 'site' table isn't an IP addres and can not be resolved to a IP addres"; + $rst = 1; + }else{ + probe_utils->send_msg("$output", "i", "The value of 'master' in 'site' table is $value, can be resolve to $masterip") if($verbose); + $value = $masterip; + } + } + $sitetable_ref->{$attr} = $value; } } @@ -523,6 +533,7 @@ sub check_directory { my $checkpoint_ref = shift; my $error_ref = shift; my $rst = 0; + my $flag = "f"; my @dir_list = ("installdir", "tftpdir"); my $dir_list_str = join(",",@dir_list); @@ -539,29 +550,67 @@ sub check_directory { $rst = 1; } else { if ($is_sn) { - my $mountoutput = `mount 2>&1| grep '$sitetable_ref->{$dir}'`; - chomp($mountoutput); + if (($dir eq "tftpdir" and $sitetable_ref->{sharedtftp} eq "1") or + ($dir eq "installdir" and $sitetable_ref->{installloc})) { + my $mountoutput = `mount 2>&1| grep '$sitetable_ref->{$dir}'`; + chomp($mountoutput); - my $mountip; - if ($mountoutput =~ /(.+):$sitetable_ref->{$dir} on $sitetable_ref->{$dir} /) { - my $mountsource = $1; - if (xCAT::NetworkUtils->isIpaddr($mountsource)) { - $mountip = $mountsource; - } else { - $mountip = xCAT::NetworkUtils->getipaddr($mountsource); + my $mountip; + if ($mountoutput =~ /(.+):$sitetable_ref->{$dir} on $sitetable_ref->{$dir} /) { + my $mountsource = $1; + if (xCAT::NetworkUtils->isIpaddr($mountsource)) { + $mountip = $mountsource; + } else { + $mountip = xCAT::NetworkUtils->getipaddr($mountsource); + } } - } - if ($mountip ne $sitetable_ref->{master}) { - push @$error_ref, "$dir '$sitetable_ref->{$dir}' isn't mounted from the management node,please check SN's configuration"; - $rst = 1; + if ($mountip ne $sitetable_ref->{master}) { + push @$error_ref, "$dir '$sitetable_ref->{$dir}' isn't mounted from the management node,please check SN's configuration"; + $rst = 1; + } + } elsif (($dir eq "tftpdir" and $sitetable_ref->{sharedtftp} ne "1") or + ($dir eq "installdir" and !$sitetable_ref->{installloc})) { + my $tmpdir = "/tmp/tmp_$dir"; + mkdir($tmpdir); + my $mountrst = `mount $sitetable_ref->{master}:$sitetable_ref->{$dir} $tmpdir 2>&1`; + if ($?) { + push @$error_ref, "mount $sitetable_ref->{master}:$sitetable_ref->{$dir} $tmpdir failed"; + $flag = "w" if (!$rst); + $rst = 1; + } else { + my $dir_list_file = "/tmp/$dir" . "_list"; + my $mnt_list_file = $tmpdir . "_list"; + my $error; + if (probe_utils->list_files_to_file($sitetable_ref->{$dir}, $dir_list_file, \$error)) { + push @$error_ref, "$error"; + $flag = "w" if (!$rst); + $rst = 1; + } elsif (probe_utils->list_files_to_file($tmpdir, $mnt_list_file, \$error)) { + push @$error_ref, "$error"; + $flag = "w" if (!$rst); + $rst = 1; + } else { + `sed -i "s|^$tmpdir|$sitetable_ref->{$dir}|g" $mnt_list_file`; + my $diffout = `diff $dir_list_file $mnt_list_file`; + if ($diffout) { + push @$error_ref, "$dir '$sitetable_ref->{$dir}' is not the same with MN's, may be error"; + $flag = "w" if (!$rst); + $rst = 1; + } + } + `umount $tmpdir`; + unlink($dir_list_file) if (-e "$dir_list_file"); + unlink($mnt_list_file) if (-e "$mnt_list_file"); + rmdir($tmpdir); + } } } } } } - return $rst; + return ($rst, $flag); } @@ -848,13 +897,22 @@ sub check_ntp_service{ $$checkpoint_ref = "Checking NTP service is configured..."; @$error_ref = (); - `which ntpq > /dev/null 2>&1`; + `which chronyc > /dev/null 2>&1`; if($?){ - push @$error_ref, "ntp service check need 'ntpq' tool, please install 'ntpq' toll and try again"; - $rst = 1; - }else{ + `which ntpq > /dev/null 2>&1`; + if ($?) { + push @$error_ref, "ntp service check need 'ntpq' or 'chronyc' tool, please install and try again"; + $rst = 1; + } else { + my $error; + if(!probe_utils->is_ntp_ready(\$error)){ + push @$error_ref, "$error"; + $rst = 1; + } + } + } else{ my $error; - if(!probe_utils->is_ntp_ready(\$error)){ + if(!probe_utils->is_chrony_ready(\$error)){ push @$error_ref, "$error"; $rst = 1; } @@ -1152,7 +1210,7 @@ sub get_attribute_value { if ($command_info =~ /$attr=(\d+)/) { $cmd_value = $1 } - print_check_result("Checking $table table attribute... $attr=$cmd_value", 0, 0, \@error); + probe_utils->send_msg("$output", "i", "Checking $table table attribute... $attr=$cmd_value") if($verbose); return $cmd_value } @@ -1281,7 +1339,7 @@ while ($hierarchy_instance->read_reply(\%reply_cache)) { #print ">>>$reply_cache{$servers}->[$_]<<<\n"; #For cases like below: #c910f02c04p04: [ok] :All xCAT daemons are running - if ($reply_cache{$servers}->[$_] =~ /^(\w+)\s*:\s*(\[\w+\]\s*):\s*(.*)/) { + if ($reply_cache{$servers}->[$_] =~ /^(\S+)\s*:\s*(\[\w+\]\s*):\s*(.*)/) { if ("$1" eq "$server") { $logmsg = "$2: $3"; $msg = "$2:[$server]: $3"; @@ -1289,7 +1347,7 @@ while ($hierarchy_instance->read_reply(\%reply_cache)) { #For cases like below: #sn02: ssh: connect to host sn02 port 22: No route to host - } elsif ($reply_cache{$servers}->[$_] =~ /^(\w+)\s*:\s*(ssh:.+)/){ + } elsif ($reply_cache{$servers}->[$_] =~ /^(\S+)\s*:\s*(ssh:.+)/){ if("$1" eq "$server") { $logmsg = "$2"; $msg = "[failed] :[$server]: $2"; @@ -1297,7 +1355,7 @@ while ($hierarchy_instance->read_reply(\%reply_cache)) { #For cases like below: #c910f02c04p05: IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! - } elsif ($reply_cache{$servers}->[$_] =~ /^(\w+)\s*:\s*(.*)/) { + } elsif ($reply_cache{$servers}->[$_] =~ /^(\S+)\s*:\s*(.*)/) { if ("$1" eq "$server") { $logmsg = "$2"; $msg = "[$server]: $2"; diff --git a/xCAT-server/lib/xcat/plugins/nodestat.pm b/xCAT-server/lib/xcat/plugins/nodestat.pm index 7486aae58..bdea53303 100644 --- a/xCAT-server/lib/xcat/plugins/nodestat.pm +++ b/xCAT-server/lib/xcat/plugins/nodestat.pm @@ -658,7 +658,7 @@ sub process_request_nmap { if ($ip6 and scalar(@ip6s)) { open($fping, "nmap --unprivileged -6 -PS$ports,3001 -n --send-ip -p $ports,3001 $more_options " . join(' ', @ip6s) . " 2> /dev/null|") or die("Can't start nmap: $!"); } elsif (not $ip6 and scalar(@ips)) { - open($fping, "nmap --unprivileged -PE -n --send-ip -p $ports,3001 $more_options " . join(' ', @ips) . " 2> /dev/null|") or die("Can't start nmap: $!"); + open($fping, "nmap --unprivileged -PA80,443,22 -PE -n --send-ip -p $ports,3001 $more_options " . join(' ', @ips) . " 2> /dev/null|") or die("Can't start nmap: $!"); } else { next; } while (<$fping>) { if (/Interesting ports on ([^ ]*)[: ]/ or /Nmap scan report for ([^ ]*)/) { diff --git a/xCAT-server/lib/xcat/plugins/prescripts.pm b/xCAT-server/lib/xcat/plugins/prescripts.pm index 36fbf64b7..08bdf780d 100644 --- a/xCAT-server/lib/xcat/plugins/prescripts.pm +++ b/xCAT-server/lib/xcat/plugins/prescripts.pm @@ -426,21 +426,19 @@ sub parseprescripts my $scripts = shift; my $action = shift; my $ret; - if ($scripts) { - if ($scripts =~ /:/) { - my @a = split(/\|/, $scripts); - foreach my $token (@a) { - #print "token=$token, action=$action\n"; + if ($scripts) { + foreach my $token (split(/\|/, $scripts)) { + if ($token =~ /:/) { if ($token =~ /^$action:(.*)/) { - $ret = $1; - last; + $ret .= "$1,"; } + } else { + $ret .= "$token,"; } - } else { - $ret = $scripts; } } + return $ret; } diff --git a/xCAT-server/share/xcat/netboot/rh/dracut_033/xcatroot b/xCAT-server/share/xcat/netboot/rh/dracut_033/xcatroot index e7bf8a4b8..924fe1c1c 100755 --- a/xCAT-server/share/xcat/netboot/rh/dracut_033/xcatroot +++ b/xCAT-server/share/xcat/netboot/rh/dracut_033/xcatroot @@ -201,7 +201,7 @@ elif [ -r /rootimg-statelite.gz ]; then MAXTRIES=5 ITER=0 if [ -z $MNTOPTS ]; then - MNT_OPTIONS="nolock,rsize=32768,tcp,nfsvers=3,timeo=14" + MNT_OPTIONS="nolock,rsize=32768,tcp,timeo=14" else MNT_OPTIONS=$MNTOPTS fi diff --git a/xCAT-server/share/xcat/netboot/rh/dracut_047/xcat-prepivot.sh b/xCAT-server/share/xcat/netboot/rh/dracut_047/xcat-prepivot.sh index ef97a8562..c09dfe486 100755 --- a/xCAT-server/share/xcat/netboot/rh/dracut_047/xcat-prepivot.sh +++ b/xCAT-server/share/xcat/netboot/rh/dracut_047/xcat-prepivot.sh @@ -53,7 +53,7 @@ if [ ! -z $SNAPSHOTSERVER ]; then MAXTRIES=5 ITER=0 if [ -z $MNTOPTS ]; then - MNT_OPTIONS="nolock,rsize=32768,tcp,nfsvers=3,timeo=14" + MNT_OPTIONS="nolock,rsize=32768,tcp,timeo=14" else MNT_OPTIONS=$MNTOPTS fi diff --git a/xCAT-server/share/xcat/netboot/rh/dracut_047/xcatroot b/xCAT-server/share/xcat/netboot/rh/dracut_047/xcatroot index df2a16c7d..1956735dd 100755 --- a/xCAT-server/share/xcat/netboot/rh/dracut_047/xcatroot +++ b/xCAT-server/share/xcat/netboot/rh/dracut_047/xcatroot @@ -202,7 +202,7 @@ elif [ -r /rootimg-statelite.gz ]; then MAXTRIES=5 ITER=0 if [ -z $MNTOPTS ]; then - MNT_OPTIONS="nolock,rsize=32768,tcp,nfsvers=3,timeo=14" + MNT_OPTIONS="nolock,rsize=32768,tcp,timeo=14" else MNT_OPTIONS=$MNTOPTS fi diff --git a/xCAT-server/share/xcat/tools/go-xcat b/xCAT-server/share/xcat/tools/go-xcat index 715e5745a..add91c1af 100755 --- a/xCAT-server/share/xcat/tools/go-xcat +++ b/xCAT-server/share/xcat/tools/go-xcat @@ -63,8 +63,8 @@ function usage() ${script} --xcat-core=http://xcat.org/path/to/xcat-core.tar.bz2 \\ --xcat-dep=http://xcat.org/path/to/xcat-dep.tar.bz2 install - xCAT (Extreme Cloud/Cluster Administration Toolkit): - Full documentation at: + xCAT: http://xcat.org + Full documentation at: http://xcat-docs.readthedocs.io/en/stable EOF } diff --git a/xCAT-test/autotest/bundle/pegas_ppc64le.bundle b/xCAT-test/autotest/bundle/pegas_ppc64le.bundle index 9a56c7cd9..884d5453e 100644 --- a/xCAT-test/autotest/bundle/pegas_ppc64le.bundle +++ b/xCAT-test/autotest/bundle/pegas_ppc64le.bundle @@ -265,14 +265,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V makentp_v makentp_h nodeset_check_warninginfo diff --git a/xCAT-test/autotest/bundle/rhels6.7_ppc64.bundle b/xCAT-test/autotest/bundle/rhels6.7_ppc64.bundle index 0c63b2152..063d23ab2 100644 --- a/xCAT-test/autotest/bundle/rhels6.7_ppc64.bundle +++ b/xCAT-test/autotest/bundle/rhels6.7_ppc64.bundle @@ -252,14 +252,6 @@ xdsh_t xdsh_q xdsh_T xdsh_o -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V makentp_v makentp_h nodeset_check_warninginfo diff --git a/xCAT-test/autotest/bundle/rhels6.7_x86_64.bundle b/xCAT-test/autotest/bundle/rhels6.7_x86_64.bundle index a7b7767d1..9fa4624ee 100644 --- a/xCAT-test/autotest/bundle/rhels6.7_x86_64.bundle +++ b/xCAT-test/autotest/bundle/rhels6.7_x86_64.bundle @@ -187,14 +187,6 @@ xdsh_t xdsh_q xdsh_T xdsh_o -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_check_warninginfo reg_linux_diskless_installation_flat reg_linux_statelite_installation_flat diff --git a/xCAT-test/autotest/bundle/rhels6.8_ppc64.bundle b/xCAT-test/autotest/bundle/rhels6.8_ppc64.bundle index a52f8f658..0498dc253 100644 --- a/xCAT-test/autotest/bundle/rhels6.8_ppc64.bundle +++ b/xCAT-test/autotest/bundle/rhels6.8_ppc64.bundle @@ -261,14 +261,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V makentp_v makentp_h nodeset_check_warninginfo diff --git a/xCAT-test/autotest/bundle/rhels6.8_x86_64.bundle b/xCAT-test/autotest/bundle/rhels6.8_x86_64.bundle index 3a466b4b6..8a2d4349d 100644 --- a/xCAT-test/autotest/bundle/rhels6.8_x86_64.bundle +++ b/xCAT-test/autotest/bundle/rhels6.8_x86_64.bundle @@ -196,14 +196,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_shell nodeset_cmdline nodeset_runimg diff --git a/xCAT-test/autotest/bundle/rhels6.9_ppc64.bundle b/xCAT-test/autotest/bundle/rhels6.9_ppc64.bundle index 6383297db..c782fe9f1 100644 --- a/xCAT-test/autotest/bundle/rhels6.9_ppc64.bundle +++ b/xCAT-test/autotest/bundle/rhels6.9_ppc64.bundle @@ -268,14 +268,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V makentp_v makentp_h nodeset_check_warninginfo diff --git a/xCAT-test/autotest/bundle/rhels6.9_x86_64.bundle b/xCAT-test/autotest/bundle/rhels6.9_x86_64.bundle index 0cbb8b1c9..331edf666 100644 --- a/xCAT-test/autotest/bundle/rhels6.9_x86_64.bundle +++ b/xCAT-test/autotest/bundle/rhels6.9_x86_64.bundle @@ -199,14 +199,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_check_warninginfo xcatconfig_u_check_xcatsslversion_rhels_sles xcatconfig_c diff --git a/xCAT-test/autotest/bundle/rhels7.2_ppc64.bundle b/xCAT-test/autotest/bundle/rhels7.2_ppc64.bundle index 8ec407b9c..1cef26cd5 100644 --- a/xCAT-test/autotest/bundle/rhels7.2_ppc64.bundle +++ b/xCAT-test/autotest/bundle/rhels7.2_ppc64.bundle @@ -262,14 +262,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_shell nodeset_cmdline nodeset_runimg diff --git a/xCAT-test/autotest/bundle/rhels7.2_ppc64le.bundle b/xCAT-test/autotest/bundle/rhels7.2_ppc64le.bundle index 5897e2359..adf0b2941 100644 --- a/xCAT-test/autotest/bundle/rhels7.2_ppc64le.bundle +++ b/xCAT-test/autotest/bundle/rhels7.2_ppc64le.bundle @@ -255,14 +255,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_shell nodeset_cmdline nodeset_runimg diff --git a/xCAT-test/autotest/bundle/rhels7.2_x86_64.bundle b/xCAT-test/autotest/bundle/rhels7.2_x86_64.bundle index 1e7349db9..3e93700ae 100644 --- a/xCAT-test/autotest/bundle/rhels7.2_x86_64.bundle +++ b/xCAT-test/autotest/bundle/rhels7.2_x86_64.bundle @@ -196,14 +196,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_check_warninginfo nodeset_shell nodeset_cmdline diff --git a/xCAT-test/autotest/bundle/rhels7.3_ppc64.bundle b/xCAT-test/autotest/bundle/rhels7.3_ppc64.bundle index 4a97903ff..833bae3a1 100644 --- a/xCAT-test/autotest/bundle/rhels7.3_ppc64.bundle +++ b/xCAT-test/autotest/bundle/rhels7.3_ppc64.bundle @@ -267,14 +267,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V makentp_v makentp_h nodeset_check_warninginfo diff --git a/xCAT-test/autotest/bundle/rhels7.3_ppc64le.bundle b/xCAT-test/autotest/bundle/rhels7.3_ppc64le.bundle index 53cf9a829..68ee9985d 100644 --- a/xCAT-test/autotest/bundle/rhels7.3_ppc64le.bundle +++ b/xCAT-test/autotest/bundle/rhels7.3_ppc64le.bundle @@ -261,14 +261,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_shell nodeset_cmdline nodeset_runimg diff --git a/xCAT-test/autotest/bundle/rhels7.3_x86_64.bundle b/xCAT-test/autotest/bundle/rhels7.3_x86_64.bundle index b90ff26e0..3d153a984 100644 --- a/xCAT-test/autotest/bundle/rhels7.3_x86_64.bundle +++ b/xCAT-test/autotest/bundle/rhels7.3_x86_64.bundle @@ -215,14 +215,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_check_warninginfo nodeset_shell nodeset_cmdline diff --git a/xCAT-test/autotest/bundle/rhels7.4_ppc64.bundle b/xCAT-test/autotest/bundle/rhels7.4_ppc64.bundle index 83f8a283c..bb5016a0d 100644 --- a/xCAT-test/autotest/bundle/rhels7.4_ppc64.bundle +++ b/xCAT-test/autotest/bundle/rhels7.4_ppc64.bundle @@ -311,14 +311,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V makentp_v makentp_h nodeset_check_warninginfo diff --git a/xCAT-test/autotest/bundle/rhels7.4_ppc64le.bundle b/xCAT-test/autotest/bundle/rhels7.4_ppc64le.bundle index adafb8ccf..1dacbd5cf 100644 --- a/xCAT-test/autotest/bundle/rhels7.4_ppc64le.bundle +++ b/xCAT-test/autotest/bundle/rhels7.4_ppc64le.bundle @@ -306,14 +306,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V makentp_v makentp_h nodeset_check_warninginfo diff --git a/xCAT-test/autotest/bundle/rhels7.4_x86_64.bundle b/xCAT-test/autotest/bundle/rhels7.4_x86_64.bundle index e6aa29dff..7324d4b32 100644 --- a/xCAT-test/autotest/bundle/rhels7.4_x86_64.bundle +++ b/xCAT-test/autotest/bundle/rhels7.4_x86_64.bundle @@ -267,14 +267,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_check_warninginfo xcatconfig_u_check_xcatsslversion_rhels_sles xcatconfig_c diff --git a/xCAT-test/autotest/bundle/sles11.4_ppc64.bundle b/xCAT-test/autotest/bundle/sles11.4_ppc64.bundle index 6142bd51d..d129a70cb 100644 --- a/xCAT-test/autotest/bundle/sles11.4_ppc64.bundle +++ b/xCAT-test/autotest/bundle/sles11.4_ppc64.bundle @@ -250,14 +250,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V makentp_v makentp_h nodeset_check_warninginfo diff --git a/xCAT-test/autotest/bundle/sles11.4_x86_64.bundle b/xCAT-test/autotest/bundle/sles11.4_x86_64.bundle index a485ef8cd..8a5bcdd14 100644 --- a/xCAT-test/autotest/bundle/sles11.4_x86_64.bundle +++ b/xCAT-test/autotest/bundle/sles11.4_x86_64.bundle @@ -204,14 +204,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_check_warninginfo xcatd_start xcatd_stop diff --git a/xCAT-test/autotest/bundle/sles12.1_ppc64le.bundle b/xCAT-test/autotest/bundle/sles12.1_ppc64le.bundle index 909d022ac..7918fd3a1 100644 --- a/xCAT-test/autotest/bundle/sles12.1_ppc64le.bundle +++ b/xCAT-test/autotest/bundle/sles12.1_ppc64le.bundle @@ -204,14 +204,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_shell nodeset_cmdline nodeset_runimg diff --git a/xCAT-test/autotest/bundle/sles12.1_x86_64.bundle b/xCAT-test/autotest/bundle/sles12.1_x86_64.bundle index 732813702..7eafdae75 100644 --- a/xCAT-test/autotest/bundle/sles12.1_x86_64.bundle +++ b/xCAT-test/autotest/bundle/sles12.1_x86_64.bundle @@ -200,14 +200,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_shell nodeset_cmdline nodeset_runimg diff --git a/xCAT-test/autotest/bundle/sles12.2_ppc64le.bundle b/xCAT-test/autotest/bundle/sles12.2_ppc64le.bundle index 96783dcb4..e424b8db1 100644 --- a/xCAT-test/autotest/bundle/sles12.2_ppc64le.bundle +++ b/xCAT-test/autotest/bundle/sles12.2_ppc64le.bundle @@ -219,14 +219,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V xcatd_start xcatd_stop xcatd_restart diff --git a/xCAT-test/autotest/bundle/sles12.2_x86_64.bundle b/xCAT-test/autotest/bundle/sles12.2_x86_64.bundle index 17d4379c4..9fc44f715 100644 --- a/xCAT-test/autotest/bundle/sles12.2_x86_64.bundle +++ b/xCAT-test/autotest/bundle/sles12.2_x86_64.bundle @@ -216,14 +216,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_check_warninginfo xcatd_start xcatd_stop diff --git a/xCAT-test/autotest/bundle/sles12_ppc64le.bundle b/xCAT-test/autotest/bundle/sles12_ppc64le.bundle index 90f286d24..8aac7b486 100644 --- a/xCAT-test/autotest/bundle/sles12_ppc64le.bundle +++ b/xCAT-test/autotest/bundle/sles12_ppc64le.bundle @@ -187,14 +187,6 @@ xdsh_t xdsh_q xdsh_T xdsh_o -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_shell nodeset_cmdline nodeset_runimg diff --git a/xCAT-test/autotest/bundle/sles12_x86_64.bundle b/xCAT-test/autotest/bundle/sles12_x86_64.bundle index 43c40e086..caabadd4f 100644 --- a/xCAT-test/autotest/bundle/sles12_x86_64.bundle +++ b/xCAT-test/autotest/bundle/sles12_x86_64.bundle @@ -191,14 +191,6 @@ xdsh_t xdsh_q xdsh_T xdsh_o -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_shell nodeset_cmdline nodeset_runimg diff --git a/xCAT-test/autotest/bundle/ubuntu14.04.3_ppc64le.bundle b/xCAT-test/autotest/bundle/ubuntu14.04.3_ppc64le.bundle index dafbd0dad..49e695d05 100644 --- a/xCAT-test/autotest/bundle/ubuntu14.04.3_ppc64le.bundle +++ b/xCAT-test/autotest/bundle/ubuntu14.04.3_ppc64le.bundle @@ -182,14 +182,6 @@ xdsh_t xdsh_q xdsh_T xdsh_o -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_shell nodeset_cmdline nodeset_runimg diff --git a/xCAT-test/autotest/bundle/ubuntu14.04.3_x86_64.bundle b/xCAT-test/autotest/bundle/ubuntu14.04.3_x86_64.bundle index ad0655416..9f72b934c 100644 --- a/xCAT-test/autotest/bundle/ubuntu14.04.3_x86_64.bundle +++ b/xCAT-test/autotest/bundle/ubuntu14.04.3_x86_64.bundle @@ -183,14 +183,6 @@ xdsh_t xdsh_q xdsh_T xdsh_o -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_shell nodeset_cmdline nodeset_runimg diff --git a/xCAT-test/autotest/bundle/ubuntu14.04.4_ppc64le.bundle b/xCAT-test/autotest/bundle/ubuntu14.04.4_ppc64le.bundle index 3ca8d13d4..6943f4cc8 100644 --- a/xCAT-test/autotest/bundle/ubuntu14.04.4_ppc64le.bundle +++ b/xCAT-test/autotest/bundle/ubuntu14.04.4_ppc64le.bundle @@ -207,14 +207,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V xcatd_start xcatd_stop xcatd_restart diff --git a/xCAT-test/autotest/bundle/ubuntu14.04.4_x86_64.bundle b/xCAT-test/autotest/bundle/ubuntu14.04.4_x86_64.bundle index c1706a460..6356faf94 100644 --- a/xCAT-test/autotest/bundle/ubuntu14.04.4_x86_64.bundle +++ b/xCAT-test/autotest/bundle/ubuntu14.04.4_x86_64.bundle @@ -205,14 +205,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_check_warninginfo Full_installation_flat_docker rpower_stop_docker diff --git a/xCAT-test/autotest/bundle/ubuntu16.04.1_ppc64le.bundle b/xCAT-test/autotest/bundle/ubuntu16.04.1_ppc64le.bundle index 709e43129..9a8f49bf5 100644 --- a/xCAT-test/autotest/bundle/ubuntu16.04.1_ppc64le.bundle +++ b/xCAT-test/autotest/bundle/ubuntu16.04.1_ppc64le.bundle @@ -208,14 +208,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V xcatd_start xcatd_stop xcatd_restart diff --git a/xCAT-test/autotest/bundle/ubuntu16.04.1_x86_64.bundle b/xCAT-test/autotest/bundle/ubuntu16.04.1_x86_64.bundle index 37312f202..a8bee6335 100644 --- a/xCAT-test/autotest/bundle/ubuntu16.04.1_x86_64.bundle +++ b/xCAT-test/autotest/bundle/ubuntu16.04.1_x86_64.bundle @@ -205,14 +205,6 @@ prsync_h prsync_v prsync_dir_node prsync_file_node -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V xcatd_start xcatd_stop xcatd_restart diff --git a/xCAT-test/autotest/bundle/ubuntu16.04_ppc64le.bundle b/xCAT-test/autotest/bundle/ubuntu16.04_ppc64le.bundle index 6842c7d2c..72d4b4d6e 100644 --- a/xCAT-test/autotest/bundle/ubuntu16.04_ppc64le.bundle +++ b/xCAT-test/autotest/bundle/ubuntu16.04_ppc64le.bundle @@ -183,14 +183,6 @@ xdsh_t xdsh_q xdsh_T xdsh_o -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V xcatd_start xcatd_stop xcatd_restart diff --git a/xCAT-test/autotest/bundle/ubuntu16.04_x86_64.bundle b/xCAT-test/autotest/bundle/ubuntu16.04_x86_64.bundle index c0229238d..77b971384 100644 --- a/xCAT-test/autotest/bundle/ubuntu16.04_x86_64.bundle +++ b/xCAT-test/autotest/bundle/ubuntu16.04_x86_64.bundle @@ -183,14 +183,6 @@ xdsh_t xdsh_q xdsh_T xdsh_o -switchdiscover_range_default -switchdiscover_h -switchdiscover_range_s -switchdiscover_range_default_w -switchdiscover_range_r -switchdiscover_range_x -switchdiscover_range_z -switchdiscover_range_z_V nodeset_shell nodeset_cmdline nodeset_runimg diff --git a/xCAT-test/autotest/testcase/rinv/cases0 b/xCAT-test/autotest/testcase/rinv/cases0 index e9f50487d..99bf3dfee 100644 --- a/xCAT-test/autotest/testcase/rinv/cases0 +++ b/xCAT-test/autotest/testcase/rinv/cases0 @@ -154,6 +154,7 @@ check:rc==0 cmd:rinv $$CN all check:rc==1 check:output=~$$CN: (\[.*?\]: )?Error:.+Invalid username or password|Error: (\[.*?\]: )?ERROR: Incorrect password provided +cmd:chdef $$CN bmcpassword= cmd:cat /tmp/testnode.stanza | chdef -z;rm -rf /tmp/testnode.stanza check:rc==0 end diff --git a/xCAT-test/autotest/testcase/xcat-inventory/cases.common b/xCAT-test/autotest/testcase/xcat-inventory/cases.common index ff1e9c844..ac062fadc 100644 --- a/xCAT-test/autotest/testcase/xcat-inventory/cases.common +++ b/xCAT-test/autotest/testcase/xcat-inventory/cases.common @@ -1,5 +1,6 @@ start:xcat_inventory_option_h description:This case is used to test xcat-inventory usage information +label:others,xcat_inventory cmd:xcat-inventory -h check:ouptut=~usage: xcat-inventory check:ouptut!~usage: xcat-inventory export @@ -24,6 +25,7 @@ end start:xcat_inventory_option_V description:This case is used to test xcat-inventory option V which used to get version information +label:others,xcat_inventory cmd:xcat-inventory -V check:ouptut=~\d\.\d check:rc==0 @@ -31,6 +33,7 @@ end start:xcat_inventory_invalid_subcmd description:This case is used to test xcat-inventory export subcommand to handle invalid subcommand. The vaild subcommand are export and import. +label:others,xcat_inventory cmd:xcat-inventory aaa check:output=~ Error: not a valid subcommand to run check:output=~ usage: @@ -39,6 +42,7 @@ end start:xcat_inventory_export_option_t_invalid_type description:This case is used to test xcat-inventory export subcommand to handle invalid type for option t +label:others,xcat_inventory cmd:xcat-inventory export -t aaa check:output=~Invalid object type check:output!~Traceback (most recent call last): @@ -47,6 +51,7 @@ end start:xcat_inventory_export_option_format_invalid_type description:This case is used to test xcat-inventory export subcommand to handle invalid type for option format +label:others,xcat_inventory cmd:xcat-inventory export --format aaa check:output=~Invalid exporting format: aaa check:output!~Traceback (most recent call last): @@ -55,6 +60,7 @@ end start:xcat_inventory_export_option_f description:This case is used to test xcat-inventory export subcommand to handle option f +label:others,xcat_inventory cmd:dir="/tmp/xcat_inventory_export_option_f";echo ${dir}".old";if [ -d "${dir}" ];then mv ${dir} ${dir}".old"; fi; mkdir -p $dir check:rc==0 cmd:lsdef bogusnode > /dev/null 2>&1;if [[ $? -eq 0 ]]; then lsdef bogusnode -z >/tmp/xcat_inventory_export_option_f/bogusnode.stanza ;rmdef bogusnode;fi @@ -99,6 +105,7 @@ end start:xcat_inventory_import_option_f_invalid_file description:This case is used to test xcat-inventory import subcommand to handle invalid file for option f +label:others,xcat_inventory cmd:mkdir -p /tmp/xcat_inventory_import_option_f_invalid_file check:rc==0 #to handle a non-existed file @@ -150,6 +157,7 @@ end start:xcat_inventory_import_option_t_invalid_type description:This case is used to test xcat-inventory import subcommand to handle invalid type for option t +label:others,xcat_inventory cmd:xcat-inventory import -t aaa check:output=~Invalid object type check:output!~Traceback (most recent call last): @@ -159,6 +167,7 @@ end start:xcat_inventory_import_miss_option description:This case is used to test xcat-inventory import subcommand to handle missing -t or -o option +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_nodes_delimited_with_comma_by_json check:rc==0 cmd:#!/usr/bin/bash diff --git a/xCAT-test/autotest/testcase/xcat-inventory/cases.network b/xCAT-test/autotest/testcase/xcat-inventory/cases.network index 6453ceb68..a3ce0b1cc 100644 --- a/xCAT-test/autotest/testcase/xcat-inventory/cases.network +++ b/xCAT-test/autotest/testcase/xcat-inventory/cases.network @@ -1,5 +1,6 @@ start:xcat_inventory_import_validation_network description:This case is used to test network validation function of xcat-inventory import yaml and json file. To test "net" "mask" "dynamicrange" and "staticrange" attributes +label:others,xcat_inventory cmd:lsdef -t network -o autotestnet > /dev/null 2>&1;if [[ $? -eq 0 ]]; then lsdef -t network -o autotestnet -z >/tmp/xcat_inventory_import_validation_network_bak/autotestnet.stanza ;rmdef -t network -o autotestnet;fi check:rc==0 cmd:mkdir -p /tmp/xcat_inventory_import_validation_network_bak diff --git a/xCAT-test/autotest/testcase/xcat-inventory/cases.node b/xCAT-test/autotest/testcase/xcat-inventory/cases.node index c08329e40..f4c66a182 100644 --- a/xCAT-test/autotest/testcase/xcat-inventory/cases.node +++ b/xCAT-test/autotest/testcase/xcat-inventory/cases.node @@ -1,6 +1,7 @@ start:export_import_single_ppc_by_json description:This case is used to test xcat-inventory export and import one ppc definition by json between 2 exact same MNs. This case can cover hmc,lpar. Before running this case, make sure these two MNs have been installed same exactly, and the current MN can connect the other MN by ssh without password. This case also can be run in one MN, this is, export from currnet node then import back to currnet node, in this case, just need to set $$DSTMN= Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_single_ppc_by_json check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_import_single_ppc_by_json_$$DSTMN/' @@ -53,6 +54,7 @@ end start:export_import_single_ppc_by_yaml description:This case is used to test xcat-inventory export and import one ppc definition by yaml between 2 exact same MNs. This case can cover hmc,lpar. Before running this case, make sure these two MNs have been installed same exactly, and the current MN can connect the other MN by ssh without password. This case also can run in one MN, this is, export from currnet node then import back to currnet node, in this case, just need to set $$DSTMN= Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_single_ppc_by_yaml check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_import_single_ppc_by_yaml_$$DSTMN/' @@ -105,6 +107,7 @@ end start:export_import_single_kvm_by_json description:This case is used to test xcat-inventory export and import one kvm definition by json between 2 exact same MNs. Before running this case, make sure these two MNs have been installed same exactly, and the current MN can connect the other MN by ssh without password. This case also can be run in one MN, this is, export from currnet node then import back to currnet node, in this case, just need to set $$DSTMN= Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_single_kvm_by_json check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_import_single_kvm_by_json_$$DSTMN/' @@ -158,6 +161,7 @@ end start:export_import_single_kvm_by_yaml description:This case is used to test xcat-inventory export and import one kvm definition by yaml between 2 exact same MNs. Before running this case, make sure these two MNs have been installed same exactly, and the current MN can connect the other MN by ssh without password. This case also can be run in one MN, this is, export from currnet node then import back to currnet node, in this case, just need to set $$DSTMN= Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_single_kvm_by_yaml check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_import_single_kvm_by_yaml_$$DSTMN/' @@ -211,6 +215,7 @@ end start:export_import_single_pdu_by_json description:This case is used to test xcat-inventory export and import one pdu definition by json between 2 exact same MNs. Before running this case, make sure these two MNs have been installed same exactly, and the current MN can connect the other MN by ssh without password. This case also can be run in one MN, this is, export from currnet node then import back to currnet node, in this case, just need to set $$DSTMN= Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_single_pdu_by_json check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_import_single_pdu_by_json_$$DSTMN/' @@ -263,6 +268,7 @@ end start:export_import_single_pdu_by_yaml description:This case is used to test xcat-inventory export and import one pdu definition by yaml between 2 exact same MNs. Before running this case, make sure these two MNs have been installed same exactly, and the current MN can connect the other MN by ssh without password. This case also can be run in one MN, this is, export from currnet node then import back to currnet node, in this case, just need to set $$DSTMN= Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_single_pdu_by_yaml check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_import_single_pdu_by_yaml_$$DSTMN/' @@ -315,6 +321,7 @@ end start:export_import_single_boston_by_yaml description:This case is used to test xcat-inventory export and import one boston node definition by yaml between 2 exact same MNs. This case can also cover p8 physical node, x86 physical node. Before running this case, make sure these two MNs have been installed same exactly, and the current MN can connect the other MN by ssh without password. This case also can be run in one MN, this is, export from currnet node then import back to currnet node, in this case, just need to set $$DSTMN= Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_single_boston_by_yaml check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_import_single_boston_by_yaml_$$DSTMN/' @@ -366,6 +373,7 @@ end start:export_import_single_boston_by_json description:This case is used to test xcat-inventory export and import one boston node definition by json between 2 exact same MNs. This case can also cover p8 physical node, x86 physical node. Before running this case, make sure these two MNs have been installed same exactly, and the current MN can connect the other MN by ssh without password. This case also can be run in one MN, this is, export from currnet node then import back to currnet node, in this case, just need to set $$DSTMN= Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_single_boston_by_json check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_import_single_boston_by_json_$$DSTMN/' @@ -417,6 +425,7 @@ end start:export_import_single_witherspoon_by_yaml description:This case is used to test xcat-inventory export and import one witherspoon node definition by yaml between 2 exact same MNs. Before running this case, make sure these two MNs have been installed same exactly, and the current MN can connect the other MN by ssh without password. This case also can be run in one MN, this is, export from currnet node then import back to currnet node, in this case, just need to set $$DSTMN= Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_single_witherspoon_by_yaml check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_import_single_witherspoon_by_yaml_$$DSTMN/' @@ -468,6 +477,7 @@ end start:export_import_single_witherspoon_by_json description:This case is used to test xcat-inventory export and import one witherspoon node definition by json between 2 exact same MNs. Before running this case, make sure these two MNs have been installed same exactly, and the current MN can connect the other MN by ssh without password. This case also can be run in one MN, this is, export from currnet node then import back to currnet node, in this case, just need to set $$DSTMN= Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_single_witherspoon_by_json check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_import_single_witherspoon_by_json_$$DSTMN/' @@ -520,6 +530,7 @@ end start:export_import_single_switch_by_json description:This case is used to test xcat-inventory export and import one switch node definition by json between 2 exact same MNs. Before running this case, make sure these two MNs have been installed same exactly, and the current MN can connect the other MN by ssh without password. This case also can be run in one MN, this is, export from currnet node then import back to currnet node, in this case, just need to set $$DSTMN= Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_single_switch_by_json check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_import_single_switch_by_json_$$DSTMN/' @@ -571,6 +582,7 @@ end start:export_import_single_switch_by_yaml description:This case is used to test xcat-inventory export and import one switch node definition by yaml between 2 exact same MNs. Before running this case, make sure these two MNs have been installed same exactly, and the current MN can connect the other MN by ssh without password. This case also can be run in one MN, this is, export from currnet node then import back to currnet node, in this case, just need to set $$DSTMN= Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_single_switch_by_yaml check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_import_single_switch_by_yaml_$$DSTMN/' @@ -623,6 +635,7 @@ end start:export_import_nodes_delimited_with_comma_by_yaml description:This case is used to test xcat-inventory export and import the definition of nodes delimited with comma by yaml between 2 exact same MNs.Before running this case, make sure these two MNs have been installed same exactly, and the current MN can connect the other MN by ssh without password. This case also can be run in one MN, this is, export from currnet node then import back to currnet node, in this case, just need to set $$DSTMN= Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_nodes_delimited_with_comma_by_yaml check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_import_nodes_delimited_with_comma_by_yaml_$$DSTMN/' @@ -674,6 +687,7 @@ end start:export_import_nodes_delimited_with_comma_by_json description:This case is used to test xcat-inventory export and import the definition of nodes delimited with comma by json between 2 exact same MNs.Before running this case, make sure these two MNs have been installed same exactly, and the current MN can connect the other MN by ssh without password. This case also can be run in one MN, this is, export from currnet node then import back to currnet node, in this case, just need to set $$DSTMN= Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_nodes_delimited_with_comma_by_json check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_import_nodes_delimited_with_comma_by_json_$$DSTMN/' @@ -725,6 +739,7 @@ end start:xcat_inventory_try_to_export_nonexisted_node description:This case is used to test xcat-inventory export a nonexisted node +label:others,xcat_inventory cmd:mkdir -p /tmp/xcat_inventory_try_to_export_nonexisted_node check:rc==0 cmd:lsdef bogusnode > /dev/null 2>&1;if [[ $? -eq 0 ]]; then lsdef bogusnode -z >/tmp/xcat_inventory_try_to_export_nonexisted_node/bogusnode.stanza ;rmdef bogusnode;fi @@ -743,6 +758,7 @@ end start:xcat_inventory_try_to_import_nonexisted_node description:This case is used to test xcat-inventory import a nonexisted node +label:others,xcat_inventory cmd:mkdir -p /tmp/xcat_inventory_try_to_import_nonexisted_node check:rc==0 cmd:lsdef bogusnode > /dev/null 2>&1;if [[ $? -eq 0 ]]; then lsdef bogusnode -z >/tmp/xcat_inventory_try_to_import_nonexisted_node/bogusnode.stanza ;rmdef bogusnode;fi @@ -768,6 +784,7 @@ check:rc==0 end start:xcat_inventory_try_to_export_all_type_is_node_default_format +label:others,xcat_inventory description:This case is used to test xcat-inventory export all definition which type is node by default format. I.e, do not specify the format of export. cmd:mkdir -p /tmp/xcat_inventory_try_to_export_all_type_is_node_default_format check:rc==0 @@ -810,6 +827,7 @@ end start:xcat_inventory_try_to_export_all_type_is_node_yaml_format +label:others,xcat_inventory description:This case is used to test xcat-inventory export all definition which type is node by yaml format. cmd:mkdir -p /tmp/xcat_inventory_try_to_export_all_type_is_node_yaml_format check:rc==0 @@ -852,6 +870,7 @@ end start:xcat_inventory_try_to_export_all_type_is_node_json_format +label:others,xcat_inventory description:This case is used to test xcat-inventory export all definition which type is node by json format. cmd:mkdir -p /tmp/xcat_inventory_try_to_export_all_type_is_node_json_format check:rc==0 @@ -892,6 +911,7 @@ check:rc==0 end start:xcat_inventory_try_to_import_all_type_is_node_yaml_format +label:others,xcat_inventory description:This case is used to test xcat-inventory import all definition which type is node from a yaml file. cmd:mkdir -p /tmp/xcat_inventory_try_to_import_all_type_is_node_yaml_format check:rc==0 @@ -1216,6 +1236,7 @@ end start:xcat_inventory_try_to_import_all_type_is_node_json_format +label:others,xcat_inventory description:This case is used to test xcat-inventory import all definition which type is node from a yaml file. cmd:mkdir -p /tmp/xcat_inventory_try_to_import_all_type_is_node_json_format check:rc==0 @@ -1618,6 +1639,7 @@ check:rc==0 end start:export_more_nodes_import_part_nodes_json +label:others,xcat_inventory description:This case is used to test xcat-inventory import all definition which type is node from a yaml file. cmd:mkdir -p /tmp/export_more_nodes_import_part_nodes_json check:rc==0 @@ -1660,6 +1682,7 @@ check:rc==0 end start:export_more_nodes_import_part_nodes_yaml +label:others,xcat_inventory description:This case is used to test xcat-inventory import all definition which type is node from a yaml file. cmd:mkdir -p /tmp/export_more_nodes_import_part_nodes_yaml check:rc==0 @@ -1702,6 +1725,7 @@ check:rc==0 end start:export_single_node_then_modify_yaml_then_import +label:others,xcat_inventory description:This case is used to test xcat-inventory import a node , then modify the export yaml file, then import the yaml file Attribute: $$DSTMN - the ip of MN which is used to run import operation. cmd:mkdir -p /tmp/export_single_node_then_modify_yaml_then_import @@ -1782,6 +1806,7 @@ end start:export_single_node_then_modify_json_then_import description:This case is used to test xcat-inventory import a node , then modify the export json file, then import the json file Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_single_node_then_modify_json_then_import check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_single_node_then_modify_json_then_import_$$DSTMN/' @@ -1856,6 +1881,7 @@ check:rc==0 end start:export_import_single_group_json +label:others,xcat_inventory description:This case is used to test xcat-inventory export and import the definition of group cmd:mkdir -p /tmp/export_import_single_group_json check:rc==0 @@ -1918,6 +1944,7 @@ check:rc==0 end start:export_import_single_group_yaml +label:others,xcat_inventory description:This case is used to test xcat-inventory export and import the definition of group cmd:mkdir -p /tmp/export_import_single_group_yaml check:rc==0 @@ -1980,6 +2007,7 @@ check:rc==0 end start:import_validation_node_obj_type +label:others,xcat_inventory description:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "obj_type" attribute cmd:mkdir -p /tmp/import_validation_node_obj_type_bak check:rc==0 @@ -2004,6 +2032,7 @@ check:rc==0 end start:import_validation_node_obj_info_groups +label:others,xcat_inventory description:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "obj_info.groups" attribute cmd:mkdir -p /tmp/import_validation_node_obj_info_groups_bak check:rc==0 @@ -2024,6 +2053,7 @@ check:rc==0 end start:import_validation_node_device_type +label:others,xcat_inventory description:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "device_type" attribute cmd:mkdir -p /tmp/import_validation_node_device_type_bak check:rc==0 @@ -2054,6 +2084,7 @@ check:rc==0 end start:import_validation_node_device_info_arch +label:others,xcat_inventory description:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "device_info.arch" attribute cmd:mkdir -p /tmp/import_validation_node_device_info_arch_bak check:rc==0 @@ -2084,6 +2115,7 @@ check:rc==0 end start:import_validation_node_security_info_snmp_securitylevel +label:others,xcat_inventory description:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "security_info.snmp.securitylevel" attribute cmd:mkdir -p /tmp/import_validation_node_security_info_snmp_securitylevel_bak check:rc==0 @@ -2112,6 +2144,7 @@ check:rc==0 end start:import_validation_node_security_info_snmp_authprotocol +label:others,xcat_inventory description:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "security_info.snmp.authprotocol" attribute cmd:mkdir -p /tmp/import_validation_node_security_info_snmp_authprotocol_bak check:rc==0 @@ -2143,6 +2176,7 @@ end start:import_validation_node_security_info_snmp_privacyprotocol +label:others,xcat_inventory description:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "security_info.snmp.privacyprotocol" attribute cmd:mkdir -p /tmp/import_validation_node_security_info_snmp_privacyprotocol_bak check:rc==0 @@ -2172,6 +2206,7 @@ end start:import_validation_node_security_info_remotecontrol_remoteprotocol +label:others,xcat_inventory descrremoteprotocoltion:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "security_info.remotecontrol.remoteprotocol" attribute cmd:mkdir -p /tmp/import_validation_node_security_info_remotecontrol_remoteprotocol_bak check:rc==0 @@ -2198,6 +2233,7 @@ check:rc==0 end start:import_validation_node_network_info_primarynic_ip +label:others,xcat_inventory description:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "network_info.primarynic.ip" attribute cmd:mkdir -p /tmp/import_validation_node_network_info_primarynic_ip_bak check:rc==0 @@ -2224,6 +2260,7 @@ check:rc==0 end start:import_validation_node_network_info_primarynic_mac +label:others,xcat_inventory descrmaction:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "network_info.primarynic.mac" attribute cmd:mkdir -p /tmp/import_validation_node_network_info_primarynic_mac_bak check:rc==0 @@ -2248,6 +2285,7 @@ check:rc==0 end start:import_validation_node_nics_network_info_nics_ips +label:others,xcat_inventory descrnics_network_info_nics_ipstion:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "network_info.nics.ips" attribute cmd:mkdir -p /tmp/import_validation_node_nics_network_info_nics_ips_bak check:rc==0 @@ -2275,6 +2313,7 @@ end start:import_validation_node_network_info_primarynic_switchport +label:others,xcat_inventory descrswitchporttion:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "network_info.primarynic.switchport" attribute cmd:mkdir -p /tmp/import_validation_node_network_info_primarynic_switchport_bak check:rc==0 @@ -2298,6 +2337,7 @@ end start:import_validation_node_engines_hardware_mgt_engine_engine_type +label:others,xcat_inventory descrengine_typetion:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "engines.hardware_mgt_engine.engine_type" attribute cmd:mkdir -p /tmp/import_validation_node_engines_hardware_mgt_engine_engine_type_bak check:rc==0 @@ -2342,6 +2382,7 @@ end start:import_validation_node_engines_netboot_engine_engine_type +label:others,xcat_inventory descrengine_typetion:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "engines.netboot_engine.engine_type" attribute cmd:mkdir -p /tmp/import_validation_node_engines_netboot_engine_engine_type_bak check:rc==0 @@ -2375,6 +2416,7 @@ end start:import_validation_node_role +label:others,xcat_inventory descrroletion:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "role" attribute cmd:mkdir -p /tmp/import_validation_node_role_bak check:rc==0 @@ -2401,6 +2443,7 @@ check:rc==0 end start:import_validation_node_role_info_setuptftp +label:others,xcat_inventory descrsetuptftption:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "role_info.setuptftp" attribute cmd:mkdir -p /tmp/import_validation_node_role_info_setuptftp_bak check:rc==0 @@ -2427,6 +2470,7 @@ check:rc==0 end start:import_validation_node_role_info_setupnameserver +label:others,xcat_inventory descrsetupnameservertion:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "role_info.setupnameserver" attribute cmd:mkdir -p /tmp/import_validation_node_role_info_setupnameserver_bak check:rc==0 @@ -2455,6 +2499,7 @@ end start:import_validation_node_role_info_setupdhcp +label:others,xcat_inventory descrsetupdhcption:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "role_info.setupdhcp" attribute cmd:mkdir -p /tmp/import_validation_node_role_info_setupdhcp_bak check:rc==0 @@ -2480,6 +2525,7 @@ cmd:rm -rf /tmp/import_validation_node_role_info_setupdhcp_bak end start:import_validation_node_role_info_setupntp +label:others,xcat_inventory descrsetupntption:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "role_info.setupntp" attribute cmd:mkdir -p /tmp/import_validation_node_role_info_setupntp_bak check:rc==0 @@ -2505,6 +2551,7 @@ cmd:rm -rf /tmp/import_validation_node_role_info_setupntp_bak end start:import_validation_node_role_info_setupldap +label:others,xcat_inventory descrsetupldaption:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "role_info.setupldap" attribute cmd:mkdir -p /tmp/import_validation_node_role_info_setupldap_bak check:rc==0 @@ -2530,6 +2577,7 @@ cmd:rm -rf /tmp/import_validation_node_role_info_setupldap_bak end start:import_validation_node_role_info_setupproxydhcp +label:others,xcat_inventory descrsetupproxydhcption:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "role_info.setupproxydhcp" attribute cmd:mkdir -p /tmp/import_validation_node_role_info_setupproxydhcp_bak check:rc==0 @@ -2555,6 +2603,7 @@ cmd:rm -rf /tmp/import_validation_node_role_info_setupproxydhcp_bak end start:import_validation_node_role_info_setupipforward +label:others,xcat_inventory descrsetupipforwardtion:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "role_info.setupipforward" attribute cmd:mkdir -p /tmp/import_validation_node_role_info_setupipforward_bak check:rc==0 @@ -2580,6 +2629,7 @@ cmd:rm -rf /tmp/import_validation_node_role_info_setupipforward_bak end start:import_validation_node_role_info_setupconserver +label:others,xcat_inventory descrsetupnfstion:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "role_info.setupconserver" attribute cmd:mkdir -p /tmp/import_validation_node_role_info_setupconserver_bak check:rc==0 @@ -2609,6 +2659,7 @@ end start:import_validation_node_role_info_setupnfs +label:others,xcat_inventory descrsetupconservertion:This case is used to test node validation function of xcat-inventory import yaml and json file. To test "role_info.setupnfs" attribute cmd:mkdir -p /tmp/import_validation_node_role_info_setupnfs_bak check:rc==0 diff --git a/xCAT-test/autotest/testcase/xcat-inventory/cases.osimage b/xCAT-test/autotest/testcase/xcat-inventory/cases.osimage index 27df1ce48..953649020 100644 --- a/xCAT-test/autotest/testcase/xcat-inventory/cases.osimage +++ b/xCAT-test/autotest/testcase/xcat-inventory/cases.osimage @@ -1,6 +1,7 @@ start:export_import_single_osimage_by_yaml description:This case is used to test xcat-inventory export and import one linux osimage definition by yaml between 2 exact same MNs. Before running this case, make sure these two MNs have been installed same exactly, and the current MN can connect the other MN by ssh without password. This case also can be run in one MN, this is, export from currnet node then import back to currnet node, in this case, just need to set $$DSTMN= Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_single_osimage_by_yaml check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_import_single_osimage_by_yaml_$$DSTMN/' @@ -44,6 +45,7 @@ end start:export_import_single_osimage_by_json description:This case is used to test xcat-inventory export and import one linux osimage definition by json between 2 exact same MNs. Before running this case, make sure these two MNs have been installed same exactly, and the current MN can connect the other MN by ssh without password. This case also can be run in one MN, this is, export from currnet node then import back to currnet node, in this case, just need to set $$DSTMN= Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_single_osimage_by_json check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_import_single_osimage_by_json_$$DSTMN/' @@ -87,6 +89,7 @@ end start:xcat_inventory_try_to_export_all_type_is_osimage_default_format +label:others,xcat_inventory description:This case is used to test xcat-inventory export all definition which type is osimage by default format, i.e. json format. cmd:mkdir -p /tmp/xcat_inventory_try_to_export_all_type_is_osimage_default_format check:rc==0 @@ -127,6 +130,7 @@ check:rc==0 end start:xcat_inventory_try_to_export_all_type_is_osimage_json_format +label:others,xcat_inventory description:This case is used to test xcat-inventory export all definition which type is osimage by json format. cmd:mkdir -p /tmp/xcat_inventory_try_to_export_all_type_is_osimage_json_format check:rc==0 @@ -167,6 +171,7 @@ check:rc==0 end start:xcat_inventory_try_to_export_all_type_is_osimage_yaml_format +label:others,xcat_inventory description:This case is used to test xcat-inventory export all definition which type is osimage by yaml format. cmd:mkdir -p /tmp/xcat_inventory_try_to_export_all_type_is_osimage_yaml_format check:rc==0 @@ -208,6 +213,7 @@ end start:xcat_inventory_try_to_import_all_type_is_osimage_yaml_format +label:others,xcat_inventory description:This case is used to test xcat-inventory import all definition which type is osimage from a yaml file. cmd:mkdir -p /tmp/xcat_inventory_try_to_import_all_type_is_osimage_yaml_format check:rc==0 @@ -470,6 +476,7 @@ check:rc==0 end start:xcat_inventory_try_to_import_all_type_is_osimage_json_format +label:others,xcat_inventory description:This case is used to test xcat-inventory import all definition which type is osimage from a json file. cmd:mkdir -p /tmp/xcat_inventory_try_to_import_all_type_is_osimage_json_format check:rc==0 @@ -802,6 +809,7 @@ end start:export_single_osimage_then_modify_json_then_import +label:others,xcat_inventory description:This case is used to test xcat-inventory import a osimage , then modify the export json file, then import the json file cmd:mkdir -p /tmp/export_single_osimage_then_modify_json_then_import check:rc==0 @@ -858,6 +866,7 @@ check:rc==0 end start:export_single_osimage_then_modify_yaml_then_import +label:others,xcat_inventory description:This case is used to test xcat-inventory import a osimage , then modify the export yaml file, then import the yaml file cmd:mkdir -p /tmp/export_single_osimage_then_modify_yaml_then_import check:rc==0 @@ -915,6 +924,7 @@ end start:export_import_single_osimage_by_dir +label:others,xcat_inventory description:This case is used to test xcat-inventory export and import one linux osimage definition by files. cmd:if [ -e /tmp/otherpkglist ]; then cp -f /tmp/otherpkglist /tmp/otherpkglist.bak; fi cmd:echo "test" >> /tmp/otherpkglist @@ -985,6 +995,7 @@ cmd:file="/tmp/partitionfile"; rm -rf $file; if [ -d ${file}".bak" ];then mv ${f end start:export_import_multiple_osimages_by_dir +label:others,xcat_inventory description:This case is used to test xcat-inventory export and import several linux osimages definition by dir. cmd:if [ -e /tmp/otherpkglist ]; then cp -f /tmp/otherpkglist /tmp/otherpkglist.bak; fi cmd:echo "test" >> /tmp/otherpkglist @@ -1116,6 +1127,7 @@ cmd:file="/opt/xcat/share/xcat/install/rh/template"; rm -rf $file; if [ -d ${fil end start:export_import_all_osimages_by_dir +label:others,xcat_inventory description:This case is used to test xcat-inventory export and import all linux osimage definition by files. cmd:lsdef -t osimage -z | tee /tmp/osimage.list check:rc==0 @@ -1257,6 +1269,7 @@ cmd:if [ -e /tmp/osimages.bak ]; then mv -f /tmp/osimages.bak /tmp/osimages; fi end start:export_import_osimages_by_dir_with_c +label:others,xcat_inventory description:This case is used to test xcat-inventory export and import linux osimage definition witch -c option. label:others,xcat_inventory cmd:dir="/tmp/export";if [ -e "${dir}" ];then mv ${dir} ${dir}".bak"; fi; mkdir -p $dir diff --git a/xCAT-test/autotest/testcase/xcat-inventory/cases.osimage.import_from_osimage_dir b/xCAT-test/autotest/testcase/xcat-inventory/cases.osimage.import_from_osimage_dir index 237956de5..07969ab3e 100644 --- a/xCAT-test/autotest/testcase/xcat-inventory/cases.osimage.import_from_osimage_dir +++ b/xCAT-test/autotest/testcase/xcat-inventory/cases.osimage.import_from_osimage_dir @@ -1,5 +1,6 @@ start:export_import_an_osimage_directory description: import an osimage diretory with `xcat-inventroy import -d ` +label:others,xcat_inventory #backup any existing test_myimage cmd:mkdir -p /tmp/export_import_an_osimage_directory/backup check:rc==0 @@ -38,6 +39,7 @@ end start:export_import_multiple_osimages_from_osimage_directory description: import multiple osimage diretories with `xcat-inventroy import -d ` +label:others,xcat_inventory #backup any existing test_myimage,test_myimage2 cmd:mkdir -p /tmp/export_import_multiple_osimages_from_osimage_directory/backup check:rc==0 @@ -91,6 +93,7 @@ end start:export_import_specified_from_osimage_directory description: import specified osimage from osimage diretory with `xcat-inventroy import -d -t osimage -o` +label:others,xcat_inventory #backup any existing test_myimage cmd:mkdir -p /tmp/export_import_specified_from_osimage_directory/backup check:rc==0 diff --git a/xCAT-test/autotest/testcase/xcat-inventory/cases.osimage.validation b/xCAT-test/autotest/testcase/xcat-inventory/cases.osimage.validation index 998fb2c0f..334ca2ae3 100644 --- a/xCAT-test/autotest/testcase/xcat-inventory/cases.osimage.validation +++ b/xCAT-test/autotest/testcase/xcat-inventory/cases.osimage.validation @@ -1,6 +1,6 @@ start: xcat_inventory_import_validation_osimage description: verify the validation mechanisom while importing osimage object - +label:others,xcat_inventory cmd: rm -rf /tmp/xcat_inventory_import_validation_osimage cmd: mkdir -p /tmp/xcat_inventory_import_validation_osimage cmd: mkdir -p /tmp/xcat_inventory_import_validation_osimage/trash/ diff --git a/xCAT-test/autotest/testcase/xcat-inventory/cases.passwd b/xCAT-test/autotest/testcase/xcat-inventory/cases.passwd index a6a605d97..14d06445f 100644 --- a/xCAT-test/autotest/testcase/xcat-inventory/cases.passwd +++ b/xCAT-test/autotest/testcase/xcat-inventory/cases.passwd @@ -1,5 +1,6 @@ start:xcat_inventory_import_validation_passwd description:This case is used to test passwd validation function of xcat-inventory import yaml and json file. To test "cryptmethod" attribute +label:others,xcat_inventory cmd:tabdump -w 'key==autotest' passwd |grep autotest > /dev/null 2>&1;if [[ $? -eq 0 ]]; then xcat-inventory export -t passwd -o autotest >/tmp/xcat_inventory_import_validation_passwd_bak/autotest ;tabch -d 'key==autotest' passwd;fi check:rc==0 cmd:mkdir -p /tmp/xcat_inventory_import_validation_passwd_bak diff --git a/xCAT-test/autotest/testcase/xcat-inventory/cases.route b/xCAT-test/autotest/testcase/xcat-inventory/cases.route index eb070b3e5..cb0157fff 100644 --- a/xCAT-test/autotest/testcase/xcat-inventory/cases.route +++ b/xCAT-test/autotest/testcase/xcat-inventory/cases.route @@ -1,5 +1,6 @@ start:xcat_inventory_import_validation_route description:This case is used to test route validation function of xcat-inventory import yaml and json file. To test "net" and "mask" attributes +label:others,xcat_inventory cmd:mkdir -p /tmp/xcat_inventory_import_validation_route_bak check:rc==0 cmd:lsdef -t route -o autotestnet > /dev/null 2>&1;if [[ $? -eq 0 ]]; then lsdef -t route -o autotestnet -z >/tmp/xcat_inventory_import_validation_route_bak/autotestnet.stanza ;rmdef -t route -o autotestnet;fi diff --git a/xCAT-test/autotest/testcase/xcat-inventory/cases.site b/xCAT-test/autotest/testcase/xcat-inventory/cases.site index c123b1c6c..9d1dc6d35 100644 --- a/xCAT-test/autotest/testcase/xcat-inventory/cases.site +++ b/xCAT-test/autotest/testcase/xcat-inventory/cases.site @@ -1,6 +1,7 @@ start:export_import_site_by_yaml description:This case is used to test xcat-inventory export and import site table by yaml between 2 excat same MNs. Before running this case, make sure these two MNs have been installed same excatly, and the current MN can connect the other MN by ssh without password.This case also can be run in one MN, this is, export from currnet node then import back to currnet node, in this case, just need to set $$DSTMN= Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_site_by_yaml check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_import_site_by_yaml_$$DSTMN/' @@ -47,6 +48,7 @@ end start:export_import_site_by_json description:This case is used to test xcat-inventory export and import site table by json between 2 excat same MNs. Before running this case, make sure these two MNs have been installed same excatly, and the current MN can connect the other MN by ssh without password.This case also can be run in one MN, this is, export from currnet node then import back to currnet node, in this case, just need to set $$DSTMN= Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_import_site_by_json check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_import_site_by_json_$$DSTMN/' @@ -91,6 +93,7 @@ end start:xcat_inventory_try_to_export_all_type_is_site_default_format +label:others,xcat_inventory description:This case is used to test xcat-inventory export all definition which type is site to default file. I.e. json file cmd:mkdir -p /tmp/xcat_inventory_try_to_export_all_type_is_site_default_format check:rc==0 @@ -207,6 +210,7 @@ check:rc==0 end start:xcat_inventory_try_to_export_all_type_is_site_json_format +label:others,xcat_inventory description:This case is used to test xcat-inventory export all definition which type is site to default file. I.e. json file cmd:mkdir -p /tmp/xcat_inventory_try_to_export_all_type_is_site_json_format check:rc==0 @@ -323,6 +327,7 @@ check:rc==0 end start:xcat_inventory_try_to_export_all_type_is_site_yaml_format +label:others,xcat_inventory description:This case is used to test xcat-inventory export all definition which type is site to default file. I.e. json file cmd:mkdir -p /tmp/xcat_inventory_try_to_export_all_type_is_site_yaml_format check:rc==0 @@ -436,6 +441,7 @@ end start:xcat_inventory_try_to_import_all_type_is_site_json_format +label:others,xcat_inventory description:This case is used to test xcat-inventory impport all definition which type is site from json file. cmd:mkdir -p /tmp/xcat_inventory_try_to_import_all_type_is_site_json_format check:rc==0 @@ -866,6 +872,7 @@ check:rc==0 end start:xcat_inventory_try_to_import_all_type_is_site_yaml_format +label:others,xcat_inventory description:This case is used to test xcat-inventory impport all definition which type is site from json file. cmd:mkdir -p /tmp/xcat_inventory_try_to_import_all_type_is_site_yaml_format check:rc==0 @@ -1235,6 +1242,7 @@ end start:export_site_table_then_modify_yaml_then_import This case is used to test xcat-inventory import a site , then modify the export yaml file, then import the yaml file Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_site_table_then_modify_yaml_then_import check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_site_table_then_modify_yaml_then_import_$$DSTMN/' @@ -1298,6 +1306,7 @@ end start:export_site_table_then_modify_json_then_import This case is used to test xcat-inventory import a site , then modify the export json file, then import the json file Attribute: $$DSTMN - the ip of MN which is used to run import operation. +label:others,xcat_inventory cmd:mkdir -p /tmp/export_site_table_then_modify_json_then_import check:rc==0 cmd:ssh $$DSTMN 'mkdir -p /tmp/export_site_table_then_modify_json_then_import_$$DSTMN/' diff --git a/xCAT-test/autotest/testcase/xcat-inventory/cases.site.validation b/xCAT-test/autotest/testcase/xcat-inventory/cases.site.validation index 4008a2bfc..dd49edf01 100644 --- a/xCAT-test/autotest/testcase/xcat-inventory/cases.site.validation +++ b/xCAT-test/autotest/testcase/xcat-inventory/cases.site.validation @@ -1,6 +1,6 @@ start: xcat_inventory_import_validation_site description: verify the validation mechanisom while importing site object - +label:others,xcat_inventory cmd: rm -rf /tmp/xcat_inventory_import_validation_site cmd: mkdir -p /tmp/xcat_inventory_import_validation_site cmd: mkdir -p /tmp/xcat_inventory_import_validation_site/trash/ diff --git a/xCAT-test/autotest/testcase/xdsh/cases0 b/xCAT-test/autotest/testcase/xdsh/cases0 index b891da7ec..bab5e3f52 100644 --- a/xCAT-test/autotest/testcase/xdsh/cases0 +++ b/xCAT-test/autotest/testcase/xdsh/cases0 @@ -96,7 +96,7 @@ start:xdsh_t label:cn_os_ready,parallel_cmds cmd:date +%s > /tmp/start.txt check:rc==0 -cmd:xdsh $$CN -t 5 "ssh 1.1.1.1" +cmd:xdsh $$CN -t 5 "sleep 10" check:rc!=0 check:output=~Error: (\[.*?\]: )?Caught SIGINT - terminating the child processes. cmd:date +%s > /tmp/end.txt diff --git a/xCAT-vlan/xpod2man b/xCAT-vlan/xpod2man index 36a5a78a2..1135f3957 100755 --- a/xCAT-vlan/xpod2man +++ b/xCAT-vlan/xpod2man @@ -9,7 +9,6 @@ use strict; -#use lib '.'; use Pod::Man; use Pod::Html; @@ -21,13 +20,6 @@ if (system("mkdir -p $cachedir")) { die "Error: could not create $cachedir.\n"; my @pods = getPodList($poddir); -#foreach (@pods) { print "$_\n"; } exit; - -# Build the cmd overview page. -#writesummarypage("$poddir/man1/xcat.1.pod", @pods); - -# Build the man page for each pod. -#mkdir($mandir) or die "Error: could not create $mandir.\n"; print "Converting PODs to man pages...\n"; foreach my $podfile (@pods) { my $manfile = $podfile; @@ -42,8 +34,6 @@ foreach my $podfile (@pods) { my @dummyPods = createDummyPods($poddir, \@pods); -# Build the html page for each pod. -#mkdir($htmldir) or die "Error: could not create $htmldir.\n"; print "Converting PODs to HTML pages...\n"; # have to clear the cache, because old entries can cause a problem @@ -56,7 +46,6 @@ foreach my $podfile (@pods) { $hdir =~ s|/[^/]*$||; # get rid of the basename part if (system("mkdir -p $hdir")) { die "Error: could not create $hdir.\n"; } - #print "$podfile, $htmlfile, $poddir, $htmldir\n"; convertpod2html($podfile, $htmlfile, $poddir, $htmldir); } @@ -75,27 +64,21 @@ sub createDummyPods { my ($poddir, $pods) = @_; my $cmd = "grep -r -E 'L<.+\\([57]\\)\\|.+\\.[57]>' " . $poddir; - #print "Running cmd: ", $cmd, "\n"; my @lines = `$cmd`; if ($?) { print "Did not find any section 5 man page, creating dummy pods...\n"; print join('', @lines); } - #my @lines; - #system($cmd); my @dummyPods; foreach my $l (@lines) { - #print "$l\n"; my @matches = $l =~ /L<([^\(]+)\(([57])\)\|\1\.[57]>/g; # get all the matches in the line # The above line should create the array with every other entry being the man page name # and every other entry is the section # (5 or 7) my $cmd; while ($cmd = shift @matches) { - #foreach my $m (@matches) { my $section = shift @matches; my $filename = "$poddir/man$section/$cmd.$section.pod"; - #print "$filename\n"; if (!(grep /^$filename$/, @$pods) && !(grep /^$filename$/, @dummyPods)) { push @dummyPods, $filename; } } } @@ -134,71 +117,6 @@ sub getPodList { return sort @files; } - -# Create the xcat man page that gives a summary description of each xcat cmd. -sub writesummarypage { - my $file = shift; # relative path file name of the man page - # the rest of @_ contains the pod files that describe each cmd - - open(FILE, ">$file") or die "Error: could not open $file for writing.\n"; - - print FILE <<'EOS1'; -=head1 NAME - -B - extreme Cluster Administration Tool. - -=head1 DESCRIPTION - -Extreme Cluster Administration Toolkit (xCAT). xCAT is a scalable distributed computing management -and provisioning tool that provides a unified interface for hardware control, discovery, and -OS diskful/diskfree deployment. - - -=head1 XCAT DATABASE - -All of the cluster configuration information is in the xCAT database. See L for -descriptions of every table in the database. - -=head1 XCAT COMMANDS - -What follows is a short description of each xCAT command. To get more information about a particular -command, see its man page. Note that the commands are listed in alphabetical order B, -i.e. all the commands in section 1, then the commands in section 3, etc. - -=over 12 -EOS1 - - # extract the summary for each cmd from its man page - foreach my $manpage (@_) { - my ($sectionnum) = $manpage =~ /\.(\d+)\.pod$/; - - # Suck in the whole file, then we will parse it. - open(MANPAGE, "$manpage") or die "Error: could not open $manpage for reading.\n"; - my @contents = ; - my $wholemanpage = join('', @contents); - close(MANPAGE); - - # This regex matches: optional space, =head1, space, title, space, cmd, space, description, newline - my ($cmd, $description) = $wholemanpage =~ /^\s*=head1\s+\S+\s+(\S+)\s+(.+?)\n/si; - if (!defined($cmd)) { print "Warning: $manpage is not in a recognized structure. It will be ignored.\n"; next; } - if (!defined($description)) { print "Warning: $manpage does not have a description for $cmd. It will be ignored.\n"; next; } - $cmd =~ s/^.<(.+)>$/$1/; # if the cmd name has pod formatting around it, strip it off - $description =~ s/^-\s*//; # if the description has a leading hypen, strip it off - print FILE "\n=item L<$cmd($sectionnum)|$cmd.$sectionnum>\n\n" . $description . "\n"; - } - - # Artificially add the xcattest cmd, because the xCAT-test rpm will add this - print FILE "\n=item L\n\nRun automated xCAT test cases.\n"; - - print FILE <<"EOS3"; - -=back -EOS3 - - close FILE; -} - - # Create the html page for one pod. sub convertpod2html { my ($podfile, $htmlfile, $poddir, $htmldir) = @_;
eXtreme Cloud Administration Toolkit
xCAT