diff --git a/Version b/Version index 3caff04ae..3c5ed7828 100644 --- a/Version +++ b/Version @@ -1 +1 @@ -2.13.10 +2.13.11 diff --git a/build-python-deb b/build-python-deb new file mode 100755 index 000000000..50148e301 --- /dev/null +++ b/build-python-deb @@ -0,0 +1,91 @@ +#!/bin/bash +# +# Author: Yuan Bai (bybai@cn.ibm.com) +# +# +printusage() +{ + echo "Usage : build-python-deb xcat-openbmc-py" +} +# For the purpose of getting the distribution name +if [[ ! -f /etc/lsb-release ]]; then + echo "ERROR: Could not find /etc/lsb-release, is this script executed on a Ubuntu machine?" + exit 1 +fi +. /etc/lsb-release +# Check the necessary commands before starting the build +for cmd in dch dpkg-buildpackage +do + if ! type "$cmd" >/dev/null 2>&1 + then + echo "ERROR: Required command, $package, not found." >&2 + exit 1 + fi +done + +# Supported distributions +pkg_name=$1 + +if [ "$pkg_name" != "xcat-openbmc-py" ]; then + printusage + exit 1 +fi + +# Find where this script is located to set some build variables +old_pwd=`pwd` +cd `dirname $0` +curdir=`pwd` + +if [ -z "$REL" ]; then + t=${curdir%/src/xcat-core} + REL=`basename $t` +fi + +if [ "$PROMOTE" != 1 ]; then + ver=`cat Version` + + echo "###############################" + echo "# Building xcat-openbmc-py package #" + echo "###############################" + + #the package type: local | snap | alpha + #the build introduce string + build_string="Snap_Build" + xcat_release="snap$(date '+%Y%m%d%H%M')" + pkg_version="${ver}-${xcat_release}" + packages="xCAT-openbmc-py" + for file in $packages + do + file_low="${file,,}" + target_archs="all" + for target_arch in $target_archs + do + cd $file + CURDIR=$(pwd) + dch -v $pkg_version -b -c debian/changelog $build_string + if [ "$target_arch" = "all" ]; then + CURDIR=$(pwd) + cp ${CURDIR}/debian/control ${CURDIR}/debian/control.save.998 + sed -i -e "s#>= 2.13-snap000000000000#= ${pkg_version}#g" ${CURDIR}/debian/control + dpkg-buildpackage -rfakeroot -uc -us + mv ${CURDIR}/debian/control.save.998 ${CURDIR}/debian/control + dh_testdir + dh_testroot + dh_clean -d + fi + rc=$? + if [ $rc -gt 0 ]; then + echo "Error: $file build package failed exit code $rc" + exit $rc + fi + rm -f debian/files + rm -f debian/xcat-openbmc-py.debhelper.log + rm -f debian/xcat-openbmc-py.substvars + sed -i -e "s/* Snap_Build//g" debian/changelog + cd - + rm -f ${file_low}_*.tar.gz + rm -f ${file_low}_*.changes + rm -f ${file_low}_*.dsc + done + done +fi diff --git a/build-ubunturepo b/build-ubunturepo index 7511a168d..97ce0a1c1 100755 --- a/build-ubunturepo +++ b/build-ubunturepo @@ -183,8 +183,8 @@ then short_short_ver=`cat Version|cut -d. -f 1` build_time=`date` build_machine=`hostname` - commit_id=`git rev-parse --short HEAD` commit_id_long=`git rev-parse HEAD` + commit_id="${commit_id_long:0:7}" package_dir_name=debs$REL #TODO: define the core path and tarball name diff --git a/buildcore.sh b/buildcore.sh index bab8ce3b0..7ed9e277e 100755 --- a/buildcore.sh +++ b/buildcore.sh @@ -70,7 +70,7 @@ if [ -z "$UP" ]; then fi # These are the rpms that should be built for each kind of xcat build -ALLBUILD="perl-xCAT xCAT-client xCAT-server xCAT-test xCAT-buildkit xCAT xCATsn xCAT-genesis-scripts xCAT-SoftLayer xCAT-vlan xCAT-confluent xCAT-probe xCAT-csm" +ALLBUILD="perl-xCAT xCAT-client xCAT-server xCAT-test xCAT-buildkit xCAT xCATsn xCAT-genesis-scripts xCAT-SoftLayer xCAT-vlan xCAT-confluent xCAT-probe xCAT-csm xCAT-openbmc-py" ZVMBUILD="perl-xCAT xCAT-server xCAT-UI" ZVMLINK="xCAT-client xCAT xCATsn" # xCAT and xCATsn have PCM specific configuration - conserver-xcat, syslinux-xcat @@ -188,8 +188,8 @@ function setversionvars { SHORTSHORTVER=`echo $VER|cut -d. -f 1` BUILD_TIME=`date` BUILD_MACHINE=`hostname` - COMMIT_ID=`git rev-parse --short HEAD` COMMIT_ID_LONG=`git rev-parse HEAD` + COMMIT_ID="${COMMIT_ID_LONG:0:7}" XCAT_RELEASE="snap$(date '+%Y%m%d%H%M')" echo "$XCAT_RELEASE" >Release } @@ -323,7 +323,7 @@ if [ "$OSNAME" = "AIX" ]; then fi # Build the rest of the noarch rpms -for rpmname in xCAT-client xCAT-server xCAT-IBMhpc xCAT-rmc xCAT-UI xCAT-test xCAT-buildkit xCAT-SoftLayer xCAT-vlan xCAT-confluent xCAT-probe xCAT-csm; do +for rpmname in xCAT-client xCAT-server xCAT-IBMhpc xCAT-rmc xCAT-UI xCAT-test xCAT-buildkit xCAT-SoftLayer xCAT-vlan xCAT-confluent xCAT-probe xCAT-csm xCAT-openbmc-py; do if [[ " $EMBEDBUILD " != *\ $rpmname\ * ]]; then continue; fi if [ "$OSNAME" = "AIX" -a "$rpmname" = "xCAT-buildkit" ]; then continue; fi # do not build xCAT-buildkit on aix if [ "$OSNAME" = "AIX" -a "$rpmname" = "xCAT-SoftLayer" ]; then continue; fi # do not build xCAT-softlayer on aix diff --git a/docs/source/advanced/pdu/irpdu.rst b/docs/source/advanced/pdu/irpdu.rst index c7a557ed7..dccaf049a 100644 --- a/docs/source/advanced/pdu/irpdu.rst +++ b/docs/source/advanced/pdu/irpdu.rst @@ -47,6 +47,14 @@ The following commands are supported against a compute node: The following commands are supported against a PDU: + * To change hostname of IR PDU: :: + + # rspconfig f5pdu3 hosname=f5pdu3 + + * To change ip address of IR PDU: :: + + # rsconfig f5pdu3 ip=x.x.x.x netmaks=255.x.x.x + * Check the status of the full PDU: :: # rpower f5pdu3 stat diff --git a/docs/source/advanced/pdu/pdu.rst b/docs/source/advanced/pdu/pdu.rst index 0157ee8da..6e0ca6862 100644 --- a/docs/source/advanced/pdu/pdu.rst +++ b/docs/source/advanced/pdu/pdu.rst @@ -20,7 +20,7 @@ xCAT uses snmp scan method to discover PDU. Make sure net-snmp-utils package is -x XML formatted output. -z Stanza formatted output. -w Writes output to xCAT database. - --setup Process switch-based pdu discovery and configure the PDUs(it included passwordless , change ip address from dhcp to static and snmp configuration). It required predefined PDU node definition with switch name and switch port attributes for mapping. (Notes: only support for crpdu for now for this options) + --setup Process switch-based pdu discovery and configure the PDUs. For crpdu, --setup options will configure passwordless , change ip address from dhcp to static, hostname changes and snmp v3 configuration. For irpdu, it will configure ip address and hostname. It required predefined PDU node definition with switch name and switch port attributes for mapping. Define PDU Objects diff --git a/docs/source/guides/admin-guides/manage_clusters/common/deployment/enable_kdump.rst b/docs/source/guides/admin-guides/manage_clusters/common/deployment/enable_kdump.rst index a6c0765d2..8a6158914 100644 --- a/docs/source/guides/admin-guides/manage_clusters/common/deployment/enable_kdump.rst +++ b/docs/source/guides/admin-guides/manage_clusters/common/deployment/enable_kdump.rst @@ -108,7 +108,7 @@ For system x machine, on sles10 set the crashkernelsize attribute like this: :: chdef -t osimage crashkernelsize=M@16M -On sles11 and rhels6 set the crashkernelsize attribute like this: :: +On sles11, rhels6 and above set the crashkernelsize attribute like this: :: chdef -t osimage crashkernelsize=M @@ -118,13 +118,21 @@ Where recommended value is 256. For more information about the size can r ``_. ``_. + + ``_. For system p machine, set the crashkernelsize attribute to this: :: chdef -t osimage crashkernelsize=@32M +For Power System AC922, set the crashkernelsize attribute to this: :: + + chdef -t osimage crashkernelsize=M + Where recommended value is 256, more information can refer the kdump document for the system x. +**Notes**: The ``crashkernel=`` option can be defined in multiple ways. If it is hard to decide the specific crashkernelsize, auto value can be used, the auto value enables automatic configuration of reserved memory based on the total amount of memory in the system like ``crashkernel=auto``. + When your node starts, and you get a kdump start error like this: :: Your running kernel is using more than 70% of the amount of space you reserved for kdump, you should consider increasing your crashkernel diff --git a/docs/source/guides/admin-guides/manage_clusters/common/deployment/network/cfg_routes.rst b/docs/source/guides/admin-guides/manage_clusters/common/deployment/network/cfg_routes.rst index d9a4bcb70..b1903bc93 100644 --- a/docs/source/guides/admin-guides/manage_clusters/common/deployment/network/cfg_routes.rst +++ b/docs/source/guides/admin-guides/manage_clusters/common/deployment/network/cfg_routes.rst @@ -10,6 +10,8 @@ There are 2 ways to configure OS route in xCAT: Before using ``makeroutes`` or ``setroute`` to configure OS route, details of the routes data such as routename, subnet, net mask and gateway should be stored in ``routes`` table. +**Notes**: the ``gateway`` in the ``networks`` table assigns ``gateway`` from DHCP to compute node, so if use ``makeroutes`` or ``setroute`` to configure OS static route for compute node, make sure there is no ``gateway`` for the specific network in ``networks`` table. + Configure ``routes`` table `````````````````````````` diff --git a/docs/source/guides/admin-guides/references/man1/rbeacon.1.rst b/docs/source/guides/admin-guides/references/man1/rbeacon.1.rst index 800f7e553..8ace5fc08 100644 --- a/docs/source/guides/admin-guides/references/man1/rbeacon.1.rst +++ b/docs/source/guides/admin-guides/references/man1/rbeacon.1.rst @@ -11,11 +11,28 @@ SYNOPSIS ******** +\ **rbeacon**\ [\ **-h | -**\ **-help | -v | -**\ **-version | -V | -**\ **-verbose**\ ] + +BMC (using IPMI): +================= + + \ **rbeacon**\ \ *noderange*\ {\ **on | blink | off | stat**\ } -\ **rbeacon**\ [\ **-h | -**\ **-help**\ ] -\ **rbeacon**\ {\ **-v | -**\ **-version**\ } +OpenPOWER BMC (using IPMI): +=========================== + + +\ **rbeacon**\ \ *noderange*\ {\ **on | blink | off | stat**\ } + + +OpenPOWER OpenBMC: +================== + + +\ **rbeacon**\ \ *noderange*\ {\ **on | off**\ } + *********** diff --git a/docs/source/guides/admin-guides/references/man1/rflash.1.rst b/docs/source/guides/admin-guides/references/man1/rflash.1.rst index 4eb48fa80..5e833a139 100644 --- a/docs/source/guides/admin-guides/references/man1/rflash.1.rst +++ b/docs/source/guides/admin-guides/references/man1/rflash.1.rst @@ -19,15 +19,15 @@ Name **************** -\ **rflash**\ [\ **-h | -**\ **-help**\ | \ **-v | -**\ **-version**\ ] +\ **rflash**\ [\ **-h | -**\ **-help**\ | \ **-v | -**\ **-version**\ | \ **-V | -**\ **-verbose**\ ] PPC (with HMC) specific: ======================== -\ **rflash**\ \ *noderange*\ \ **-p**\ \ *directory*\ [\ **-**\ **-activate**\ {\ **concurrent | disruptive**\ }] [\ **-V | -**\ **-verbose**\ ] +\ **rflash**\ \ *noderange*\ \ **-p**\ \ *directory*\ [\ **-**\ **-activate**\ {\ **concurrent | disruptive**\ }] -\ **rflash**\ \ *noderange*\ {\ **-**\ **-commit | -**\ **-recover**\ } [\ **-V | -**\ **-verbose**\ ] +\ **rflash**\ \ *noderange*\ {\ **-**\ **-commit | -**\ **-recover**\ } PPC (without HMC, using Direct FSP Management) specific: @@ -50,7 +50,7 @@ OpenPOWER BMC specific (using IPMI): ==================================== -\ **rflash**\ \ *noderange*\ [\ *hpm_file_path*\ | \ **-d**\ \ *data_directory*\ ] [\ **-c | -**\ **-check**\ ] [\ **-**\ **-retry=**\ \ *count*\ ] [\ **-V**\ ] +\ **rflash**\ \ *noderange*\ [\ *hpm_file_path*\ | \ **-d**\ \ *data_directory*\ ] [\ **-c | -**\ **-check**\ ] [\ **-**\ **-retry=**\ \ *count*\ ] \ **rflash**\ \ *noderange*\ \ **-**\ **-recover**\ \ *bmc_file_path*\ diff --git a/docs/source/guides/admin-guides/references/man1/rmdef.1.rst b/docs/source/guides/admin-guides/references/man1/rmdef.1.rst index 221319ff5..e2190cf6b 100644 --- a/docs/source/guides/admin-guides/references/man1/rmdef.1.rst +++ b/docs/source/guides/admin-guides/references/man1/rmdef.1.rst @@ -90,7 +90,7 @@ OPTIONS \ **-C|-**\ **-cleanup**\ - Perform additional cleanup by running \ **nodeset offline**\ and \ **makeconservercf -d**\ on the objects specified in the \ *noderange*\ . + Perform additional cleanup by running \ **nodeset offline**\, \ **makeconservercf -d**\ and \ **makegocons --cleanup**\ on the objects specified in the \ *noderange*\ . diff --git a/docs/source/guides/admin-guides/references/man1/rpower.1.rst b/docs/source/guides/admin-guides/references/man1/rpower.1.rst index 1dee1d74a..71bdc73a8 100644 --- a/docs/source/guides/admin-guides/references/man1/rpower.1.rst +++ b/docs/source/guides/admin-guides/references/man1/rpower.1.rst @@ -27,7 +27,7 @@ BMC (using IPMI): ================= -\ **rpower**\ \ *noderange*\ [\ **on | off | softoff | reset | boot | stat | state | status | wake | suspend**\ [\ **-w**\ \ *timeout*\ ] [\ **-o**\ ] [\ **-r**\ ]] +\ **rpower**\ \ *noderange*\ [\ **on | off | softoff | reset | boot | cycle | stat | state | status | wake | suspend**\ [\ **-w**\ \ *timeout*\ ] [\ **-o**\ ] [\ **-r**\ ]] \ **rpower**\ \ *noderange*\ [\ **pduon | pduoff | pdustat | pdureset**\ ] diff --git a/docs/source/guides/admin-guides/references/man1/rsetboot.1.rst b/docs/source/guides/admin-guides/references/man1/rsetboot.1.rst index da5c3876e..f25aa0bed 100644 --- a/docs/source/guides/admin-guides/references/man1/rsetboot.1.rst +++ b/docs/source/guides/admin-guides/references/man1/rsetboot.1.rst @@ -13,7 +13,7 @@ SYNOPSIS \ **rsetboot**\ \ *noderange*\ [\ **hd | net | cd | default | stat**\ ] [\ **-u**\ ] [\ **-p**\ ] -\ **rsetboot**\ [\ **-h | -**\ **-help | -v | -**\ **-version**\ ] +\ **rsetboot**\ [\ **-h | -**\ **-help | -v | -**\ **-version | -V | -**\ **-verbose**\ ] *********** @@ -62,7 +62,7 @@ OPTIONS \ **-u**\ - To specify the next boot mode to be "UEFI Mode". + To specify the next boot mode to be "UEFI Mode". (Not supported for OpenBMC) 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 118a39de1..3e61e08ba 100644 --- a/docs/source/guides/admin-guides/references/man1/rspconfig.1.rst +++ b/docs/source/guides/admin-guides/references/man1/rspconfig.1.rst @@ -19,7 +19,7 @@ SYNOPSIS ******** -\ **rspconfig**\ [\ **-h | -**\ **-help | -v | -**\ **-version**\ ] +\ **rspconfig**\ [\ **-h | -**\ **-help | -v | -**\ **-version | -V | -**\ **-verbose**\ ] BMC/MPA specific: ================= @@ -47,10 +47,32 @@ OpenBMC specific: ================= -\ **rspconfig**\ \ *noderange*\ {\ **ipsrc | ip | netmask | gateway | hostname | vlan | sshcfg**\ } +\ **rspconfig**\ \ *noderange*\ {\ **ipsrc | ip | netmask | gateway | vlan**\ } + +\ **rspconfig**\ \ *noderange*\ \ **admin_passwd**\ ={\ *currentpasswd,newpasswd*\ } + +\ **rspconfig**\ \ *noderange*\ \ **autoreboot**\ + +\ **rspconfig**\ \ *noderange*\ \ **autoreboot={0|1}**\ + +\ **rspconfig**\ \ *noderange*\ \ **bootmode**\ + +\ **rspconfig**\ \ *noderange*\ \ **bootmode={safe|regular|setup}**\ \ **rspconfig**\ \ *noderange*\ \ **dump**\ [\ **-l | -**\ **-list**\ ] [\ **-g | -**\ **-generate**\ ] [\ **-c | -**\ **-clear**\ {\ *id*\ | \ **all**\ }] [\ **-d | -**\ **-download**\ {\ *id*\ | \ **all**\ }] +\ **rspconfig**\ \ *noderange*\ \ **gard -c|-**\ **-clear**\ + +\ **rspconfig**\ \ *noderange*\ \ **ip=dhcp**\ + +\ **rspconfig**\ \ *noderange*\ \ **hostname**\ + +\ **rspconfig**\ \ *noderange*\ \ **hostname**\ ={\* | \ *name*\ } + +\ **rspconfig**\ \ *noderange*\ \ **ntpservers**\ + +\ **rspconfig**\ \ *noderange*\ \ **ntpservers**\ ={\ *ntpservers*\ } + \ **rspconfig**\ \ *noderange*\ \ **powerrestorepolicy**\ \ **rspconfig**\ \ *noderange*\ \ **powerrestorepolicy={always_on|restore|always_off}**\ @@ -59,13 +81,11 @@ OpenBMC specific: \ **rspconfig**\ \ *noderange*\ \ **powersupplyredundancy={disabled|enabled}**\ -\ **rspconfig**\ \ *noderange*\ \ **autoreboot**\ +\ **rspconfig**\ \ *noderange*\ \ **sshcfg**\ -\ **rspconfig**\ \ *noderange*\ \ **autoreboot={0|1}**\ +\ **rspconfig**\ \ *noderange*\ \ **timesyncmethod**\ -\ **rspconfig**\ \ *noderange*\ \ **bootmode**\ - -\ **rspconfig**\ \ *noderange*\ \ **bootmode={safe|regular|setup}**\ +\ **rspconfig**\ \ *noderange*\ \ **timesyncmethod={manual|ntp}**\ MPA specific: @@ -131,9 +151,9 @@ FSP/CEC specific: \ **rspconfig**\ \ *noderange*\ \ **admin_passwd**\ ={\ *currentpasswd,newpasswd*\ } -\ **rspconfig**\ \ *noderange*\ \ **general_passwd**\ ={\ **currentpasswd,newpasswd**\ } +\ **rspconfig**\ \ *noderange*\ \ **general_passwd**\ ={\ *currentpasswd,newpasswd*\ } -\ **rspconfig**\ \ *noderange*\ \*\ **_passwd**\ ={\ **currentpasswd,newpasswd**\ } +\ **rspconfig**\ \ *noderange*\ \*\ **_passwd**\ ={\ *currentpasswd,newpasswd*\ } \ **rspconfig**\ \ *noderange*\ {\ *hostname*\ } @@ -194,9 +214,9 @@ FSP/CEC (using Direct FSP Management) Specific: \ **rspconfig**\ \ *noderange*\ \ **admin_passwd**\ ={\ *currentpasswd,newpasswd*\ } -\ **rspconfig**\ \ *noderange*\ \ **general_passwd**\ ={\ **currentpasswd,newpasswd**\ } +\ **rspconfig**\ \ *noderange*\ \ **general_passwd**\ ={\ *currentpasswd,newpasswd*\ } -\ **rspconfig**\ \ *noderange*\ \*\ **_passwd**\ ={\ **currentpasswd,newpasswd**\ } +\ **rspconfig**\ \ *noderange*\ \*\ **_passwd**\ ={\ *currentpasswd,newpasswd*\ } \ **rspconfig**\ \ *noderange*\ {\ **sysname**\ } @@ -233,9 +253,9 @@ BPA/Frame (using Direct FSP Management) Specific: \ **rspconfig**\ \ *noderange*\ \ **admin_passwd**\ ={\ *currentpasswd,newpasswd*\ } -\ **rspconfig**\ \ *noderange*\ \ **general_passwd**\ ={\ **currentpasswd,newpasswd**\ } +\ **rspconfig**\ \ *noderange*\ \ **general_passwd**\ ={\ *currentpasswd,newpasswd*\ } -\ **rspconfig**\ \ *noderange*\ \*\ **_passwd**\ ={\ **currentpasswd,newpasswd**\ } +\ **rspconfig**\ \ *noderange*\ \*\ **_passwd**\ ={\ *currentpasswd,newpasswd*\ } \ **rspconfig**\ \ *noderange*\ {\ **frame**\ } @@ -358,6 +378,12 @@ OPTIONS +\ **gard -c|-**\ **-clear**\ + + Clear gard file. [OpenBMC] + + + \ **garp**\ =\ *time*\ Get or set Gratuitous ARP generation interval. The unit is number of 1/2 second. @@ -450,31 +476,31 @@ OPTIONS \ **powerrestorepolicy**\ - Display or control BMC Power Restore Policy attribute setting. + Display or control BMC Power Restore Policy attribute setting. [OpenBMC] \ **powersupplyredundancy**\ - Display or control BMC Power Supply Redundancy attribute setting. + Display or control BMC Power Supply Redundancy attribute setting. [OpenBMC] \ **autoreboot**\ - Display or control BMC Auto Reboot attribute setting. + Display or control BMC Auto Reboot attribute setting. [OpenBMC] \ **bootmode**\ - Display or control BMC Boot Mode attribute setting. + Display or control BMC Boot Mode attribute setting. [OpenBMC] \ **dump**\ - Manage OpenBMC system dumps. If no sub-option is provided, will generate, wait, and download the dump. + Generate/Manage BMC system dumps. If no sub-option is provided, will generate, wait, and download the dump. [OpenBMC] \ **-c**\ will clear a single specified dump, or use 'all' to clear all dumps on the BMC. @@ -495,6 +521,12 @@ OPTIONS +\ **timesyncmethod**\ + + Set the method for time synchronization on the BMC. [OpenBMC] + + + \ **network**\ ={[\ *ip*\ ],[\ *host*\ ],[\ *gateway*\ ],[\ *netmask*\ ]|\*} For MPA: get or set the MPA network parameters. If '\*' is specified, all parameters are read from the xCAT database. @@ -542,6 +574,12 @@ OPTIONS +\ **ntpservers**\ + + Get or set NTP servers name. [OpenBMC] + + + \ **pd1**\ ={\ **nonred | redwoperf | redwperf**\ } Power Domain 1 - determines how an MPA responds to a loss of redundant power. diff --git a/docs/source/guides/admin-guides/references/man5/nodehm.5.rst b/docs/source/guides/admin-guides/references/man5/nodehm.5.rst index ef568e90f..aa12ce4b2 100644 --- a/docs/source/guides/admin-guides/references/man5/nodehm.5.rst +++ b/docs/source/guides/admin-guides/references/man5/nodehm.5.rst @@ -19,7 +19,7 @@ SYNOPSIS ******** -\ **nodehm Attributes:**\ \ *node*\ , \ *power*\ , \ *mgt*\ , \ *cons*\ , \ *termserver*\ , \ *termport*\ , \ *conserver*\ , \ *serialport*\ , \ *serialspeed*\ , \ *serialflow*\ , \ *getmac*\ , \ *cmdmapping*\ , \ *consoleondemand*\ , \ *comments*\ , \ *disable*\ +\ **nodehm Attributes:**\ \ *node*\ , \ *power*\ , \ *mgt*\ , \ *cons*\ , \ *termserver*\ , \ *termport*\ , \ *conserver*\ , \ *serialport*\ , \ *serialspeed*\ , \ *serialflow*\ , \ *getmac*\ , \ *cmdmapping*\ , \ *consoleondemand*\ , \ *consoleenabled*\ , \ *comments*\ , \ *disable*\ *********** @@ -114,6 +114,12 @@ nodehm Attributes: +\ **consoleenabled**\ + + A flag field to indicate whether the node is registered in the console server. If '1', console is enabled, if not set, console is not enabled. + + + \ **comments**\ Any user-written notes. diff --git a/docs/source/guides/admin-guides/references/man8/makegocons.8.rst b/docs/source/guides/admin-guides/references/man8/makegocons.8.rst index 76eb7a5fc..b9ba5e686 100644 --- a/docs/source/guides/admin-guides/references/man8/makegocons.8.rst +++ b/docs/source/guides/admin-guides/references/man8/makegocons.8.rst @@ -19,9 +19,9 @@ SYNOPSIS ******** -\ **makegocons**\ [\ **-V|-**\ **-verbose**\ ] [\ **-d|-**\ **-delete**\ ] [\ *noderange*\ ] +\ **makegocons**\ [\ **-V|-**\ **-verbose**\ ] [\ **-d|-**\ **-delete**\ ] [\ **-q|-**\ **-query**\ ] [\ *noderange*\ ] -\ **makeconservercf**\ [\ **-h|-**\ **-help|-v|-**\ **-version**\ ] +\ **makegocons**\ [\ **-V|-**\ **-verbose**\ ] [\ **-C|-**\ **-cleanup**\ ] *********** @@ -46,17 +46,18 @@ In the case of a hierarchical cluster (i.e. one with service nodes) \ **makegoco which nodes will have their consoles accessed from the management node and which from a service node (based on the nodehm.conserver attribute). +To start goconserver on the specified service node, setup goconserver package on that service node, then set +the \ **console**\ column of \ **servicenode**\ table to \ **2**\ . + +To support diskless service node, a new column \ **consoleenabled**\ has been added in \ **nodehm**\ table, it is used by \ **makegocons**\ +command to save the current console state for the node. After reinstalling the service node, the console storage file which maintain +the console nodes for goconserver is lost, xCAT would register the console nodes into goconserver based on \ **consoleenabled**\ attribute +when restarting xcatd service. + For openbmc which uses ssh as the terminal session connection method, goconserver can help save the system resources as goconserver could handle the ssh connection within goroutine which is more light-weighted than the command process. -\ **Note:**\ goconserver is an experimental feature, it will not be installed with xcat and will only support the systemd based systems. -Download and setup the rpm or deb package manually. Release link: - - -.. code-block:: perl - - https://github.com/chenglch/goconserver/releases - +\ **Note:**\ goconserver only support the systemd based systems. It has been integrated with xCAT as a recommended package. ******* @@ -71,6 +72,18 @@ OPTIONS +\ **-C|-**\ **-cleanup**\ + + Remove the entries for the nodes whose definitions have been removed from xCAT db. + + + +\ **-q|-**\ **-query**\ + + List the console connection of the nodes. If noderange is not specified, all of the console nodes will be displayed. + + + \ **-v|-**\ **-version**\ Display version. @@ -141,6 +154,16 @@ EXAMPLES +4. To list console connection for node01. + + + .. code-block:: perl + + makegocons -q node01 + + + + ******** SEE ALSO diff --git a/makepythonrpm b/makepythonrpm deleted file mode 100755 index 4ee5b60b7..000000000 --- a/makepythonrpm +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html - -function makepythonrpm { - RPMNAME="$1" - SPEC_FILE="$RPMNAME.spec" - tar --exclude .svn -czvf $RPMROOT/SOURCES/$RPMNAME-${VER}.tar.gz $RPMNAME - rm -f $RPMROOT/SRPMS/$RPMNAME-$VER*rpm $RPMROOT/RPMS/noarch/$RPMNAME-$VER*rpm - echo "Building $RPMROOT/RPMS/noarch/$RPMNAME-$VER-snap*.noarch.rpm $EMBEDTXT..." - rpmbuild --quiet -ta $RPMROOT/SOURCES/$RPMNAME-${VER}.tar.gz --define "version $VER" $REL "$EASE" - if [ $? -eq 0 ]; then - exit 0 - else - exit 1 - fi -} - -# Main code.... -OSNAME=$(uname) -VER=`cat Version` -REL="--define" -EASE='usedate 1' -RPMROOT=/root/rpmbuild -mkdir -p $RPMROOT/SOURCES -rpmbuild --version > /dev/null -if [ $? -gt 0 ]; then - echo "Error: rpmbuild does not appear to be installed or working." - exit 2 -fi - -if [ -n "$1" -a "$1" = "xCAT-openbmc-py" ]; then - makepythonrpm $1 -else - echo 'Usage: makepythonrpm xCAT-openbmc-py' - exit 1 -fi - diff --git a/makegenesisbuilderrpm b/makerpm-genesisbuilder similarity index 100% rename from makegenesisbuilderrpm rename to makerpm-genesisbuilder diff --git a/perl-xCAT/xCAT/DBobjUtils.pm b/perl-xCAT/xCAT/DBobjUtils.pm index 9eb185374..fc9e9b0fd 100755 --- a/perl-xCAT/xCAT/DBobjUtils.pm +++ b/perl-xCAT/xCAT/DBobjUtils.pm @@ -1676,13 +1676,10 @@ sub readFileInput # could have different default stanzas for different object types - if ($objectname =~ /default/) { + if ($objectname =~ /^default-([^-]+)$/) { - ($junk1, $objtype) = split(/-/, $objectname); - - if ($objtype) { - $objectname = 'default'; - } + $objtype = $1; + $objectname = 'default'; next; } diff --git a/perl-xCAT/xCAT/RemoteShellExp.pm b/perl-xCAT/xCAT/RemoteShellExp.pm index 959405f35..a9388d512 100755 --- a/perl-xCAT/xCAT/RemoteShellExp.pm +++ b/perl-xCAT/xCAT/RemoteShellExp.pm @@ -541,7 +541,7 @@ sub sendnodeskeys # command to make the temp directory on the node my $spawnmkdir = - "$remoteshell $node -l $to_userid /bin/mkdir -p /tmp/$to_userid/.ssh"; + "$remoteshell -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null $node -l $to_userid /bin/mkdir -p /tmp/$to_userid/.ssh"; # command to copy the needed files to the node @@ -588,6 +588,11 @@ sub sendnodeskeys ########################################## # Expect error - report ########################################## + if($rc==1){ + my $rsp = {}; + $rsp->{error}->[0] = "Permission denied, please make sure the user $to_userid has been created on the node $node and the input password is right\n"; + xCAT::MsgUtils->message("E", $rsp, $::CALLBACK); + } if (defined($result[1])) { my $msg = $result[1]; @@ -629,11 +634,11 @@ sub sendnodeskeys my $spawncopyfiles; if ($ENV{'DSH_ENABLE_SSH'}) { # we will enable node to node ssh $spawncopyfiles = -"$remotecopy $home/.ssh/id_rsa $home/.ssh/id_rsa.pub $home/.ssh/copy.sh $home/.ssh/tmp/authorized_keys $to_userid\@$node:/tmp/$to_userid/.ssh"; +"$remotecopy -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null $home/.ssh/id_rsa $home/.ssh/id_rsa.pub $home/.ssh/copy.sh $home/.ssh/tmp/authorized_keys $to_userid\@$node:/tmp/$to_userid/.ssh"; } else { # no node to node ssh ( don't send private key) $spawncopyfiles = -"$remotecopy $home/.ssh/id_rsa.pub $home/.ssh/copy.sh $home/.ssh/tmp/authorized_keys $to_userid\@$node:/tmp/$to_userid/.ssh"; +"$remotecopy -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null $home/.ssh/id_rsa.pub $home/.ssh/copy.sh $home/.ssh/tmp/authorized_keys $to_userid\@$node:/tmp/$to_userid/.ssh"; } # send copy command @@ -715,7 +720,7 @@ sub sendnodeskeys # command to run copy.sh my $spawnruncopy = - "$remoteshell $node -l $to_userid /tmp/$to_userid/.ssh/copy.sh $to_userid"; + "$remoteshell -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null $node -l $to_userid /tmp/$to_userid/.ssh/copy.sh $to_userid"; # send mkdir command unless ($sendkeys->spawn($spawnruncopy)) diff --git a/perl-xCAT/xCAT/Schema.pm b/perl-xCAT/xCAT/Schema.pm index 49bbd68f7..d06d4c780 100755 --- a/perl-xCAT/xCAT/Schema.pm +++ b/perl-xCAT/xCAT/Schema.pm @@ -594,7 +594,7 @@ passed as argument rather than by table value', }, }, nodehm => { - cols => [qw(node power mgt cons termserver termport conserver serialport serialspeed serialflow getmac cmdmapping consoleondemand comments disable)], + cols => [qw(node power mgt cons termserver termport conserver serialport serialspeed serialflow getmac cmdmapping consoleondemand consoleenabled comments disable)], keys => [qw(node)], tablespace => 'XCATTBS16K', table_desc => "Settings that control how each node's hardware is managed. Typically, an additional table that is specific to the hardware type of the node contains additional info. E.g. the ipmi, mp, and ppc tables.", @@ -612,6 +612,7 @@ passed as argument rather than by table value', getmac => 'The method to use to get MAC address of the node with the getmac command. If not set, the mgt attribute will be used. Valid values: same as values for mgmt attribute.', cmdmapping => 'The fully qualified name of the file that stores the mapping between PCM hardware management commands and xCAT/third-party hardware management commands for a particular type of hardware device. Only used by PCM.', consoleondemand => "This overrides the value from site.consoleondemand. Set to 'yes', 'no', '1' (equivalent to 'yes'), or '0' (equivalent to 'no'). If not set, the default is the value from site.consoleondemand.", + consoleenabled => "A flag field to indicate whether the node is registered in the console server. If '1', console is enabled, if not set, console is not enabled.", comments => 'Any user-written notes.', disable => "Set to 'yes' or '1' to comment out this row.", }, @@ -2184,6 +2185,10 @@ my @nodeattrs = ( tabentry => 'nodehm.consoleondemand', access_tabentry => 'nodehm.node=attr:node', }, + { attr_name => 'consoleenabled', + tabentry => 'nodehm.consoleenabled', + access_tabentry => 'nodehm.node=attr:node', + }, ################## # vpd table # ################## @@ -4245,22 +4250,7 @@ push(@{ $defspec{group}->{'attrs'} }, @nodeattrs); tabentry => 'pdu.outlet', access_tabentry => 'pdu.node=attr:node', }, - { attr_name => 'machinetype', - only_if => 'nodetype=pdu', - tabentry => 'pdu.machinetype', - access_tabentry => 'pdu.node=attr:node', - }, - { attr_name => 'modelnum', - only_if => 'nodetype=pdu', - tabentry => 'pdu.modelnum', - access_tabentry => 'pdu.node=attr:node', - }, - { attr_name => 'serialnum', - only_if => 'nodetype=pdu', - tabentry => 'pdu.serialnum', - access_tabentry => 'pdu.node=attr:node', - }, -); + ); diff --git a/perl-xCAT/xCAT/TableUtils.pm b/perl-xCAT/xCAT/TableUtils.pm index a84c90b8b..ffe5d88e3 100755 --- a/perl-xCAT/xCAT/TableUtils.pm +++ b/perl-xCAT/xCAT/TableUtils.pm @@ -186,6 +186,8 @@ sub bldnonrootSSHFiles if (xCAT::Utils->isMN()) { # if on Management Node if (!(-e "$home/.ssh/id_rsa.pub")) { + $rsp->{data}->[0] = "$home/.ssh/id_rsa.pub does not exist!"; + xCAT::MsgUtils->message("I", $rsp, $::CALLBACK); return 1; } } @@ -208,6 +210,11 @@ sub bldnonrootSSHFiles if (xCAT::Utils->isMN()) { # if on Management Node $cmd = " cp $home/.ssh/id_rsa.pub $home/.ssh/tmp/authorized_keys"; } else { # SN + if(!(-e "$home/.ssh/authorized_keys")){ + $rsp->{data}->[0] = "$home/.ssh/authorized_keys does not exist, make sure you have setup the ssh-keys on this service node.\n"; + xCAT::MsgUtils->message("E", $rsp, $::CALLBACK); + return (1); + } $cmd = " cp $home/.ssh/authorized_keys $home/.ssh/tmp/authorized_keys"; } xCAT::Utils->runcmd($cmd, 0); @@ -344,6 +351,11 @@ sub setupSSH # Get the home directory my $home = xCAT::Utils->getHomeDir($from_userid); + unless($home){ + $rsp->{data}->[0] = "Cannot get the home directory for user \"$from_userid\", please make sure \"$from_userid\" user exists!"; + xCAT::MsgUtils->message("E", $rsp, $::CALLBACK); + return 1; + } $ENV{'DSH_FROM_USERID_HOME'} = $home; if ($from_userid eq "root") { @@ -356,6 +368,10 @@ sub setupSSH # generates new keys for root, if they do not already exist ~/.ssh # nodes not used on this option but in there to preserve the interface + if($::VERBOSE){ + $rsp->{data}->[0] = "Generating SSH keys for $from_userid.\n"; + xCAT::MsgUtils->message("I", $rsp, $::CALLBACK); + } my $rc = xCAT::RemoteShellExp->remoteshellexp("k", $::CALLBACK, $::REMOTE_SHELL, $n_str, $expecttimeout); if ($rc != 0) { @@ -363,11 +379,20 @@ sub setupSSH xCAT::MsgUtils->message("E", $rsp, $::CALLBACK); } } - # build the shell copy script, needed Perl not always there # for root and non-root ids - open(FILE, ">$home/.ssh/copy.sh") - or die "cannot open file $home/.ssh/copy.sh\n"; + if($::VERBOSE){ + $rsp->{data}->[0] = "Creating helper script \"$home/.ssh/copy.sh\" to install the ssh key files, which will be sent and invoked to target node then.\n"; + xCAT::MsgUtils->message("I", $rsp, $::CALLBACK); + } + + + unless(open(FILE, ">$home/.ssh/copy.sh")) + { + $rsp->{data}->[0] ="cannot create file $home/.ssh/copy.sh, please make sure the directory \"$home/.ssh\" exists and ssh keys have been setup on this node!\n"; + xCAT::MsgUtils->message("E", $rsp, $::CALLBACK); + return 1; + } print FILE "#!/bin/sh umask 0077 home=`egrep \"^$to_userid:\" /etc/passwd | cut -f6 -d :` diff --git a/perl-xCAT/xCAT/Usage.pm b/perl-xCAT/xCAT/Usage.pm index 40e510247..14052c8be 100755 --- a/perl-xCAT/xCAT/Usage.pm +++ b/perl-xCAT/xCAT/Usage.pm @@ -22,88 +22,124 @@ my %usage = ( rnetboot [-h|--help|-v|--version] zVM specific: rnetboot [ipl= address]", - "rpower" => -"Usage: rpower [--nodeps] [on|onstandby|off|suspend|reset|stat|state|boot] [-V|--verbose] [-m table.colum==expectedstatus][-m table.colum==expectedstatus...] [-r ] [-t ] + "rpower" => "", + "rpower.common" => + "Usage: + Common: + rpower [--nodeps] [on|onstandby|off|suspend|reset|stat|state|boot] [-V|--verbose] [-m table.colum==expectedstatus][-m table.colum==expectedstatus...] [-r ] [-t ] rpower [-h|--help|-v|--version] - BMC (using IPMI): - rpower noderange [on|off|softoff|reset|boot|stat|state|status|wake|suspend [-w timeout] [-o] [-r]] + ", + "rpower.begin" => + "BMC (using IPMI): + rpower noderange [on|off|softoff|reset|boot|cycle|stat|state|status|wake|suspend [-w timeout] [-o] [-r]] rpower noderange [pduon|pduoff|pdustat] - OpenPOWER BMC: + OpenPOWER BMC: rpower noderange [on|off|reset|boot|stat|state|status] rpower noderange [pduon|pduoff|pdustat] - OpenPOWER OpenBMC: + ", + "rpower.openbmc" => + "OpenPOWER OpenBMC: rpower noderange [on|off|softoff|reset|boot|bmcreboot|bmcstate|stat|state|status] - KVM Virtualization specific: + ", + "rpower.end" => + "KVM Virtualization specific: rpower [boot] [ -c ] - PPC (with IVM or HMC) specific: + PPC (with IVM or HMC) specific: rpower [--nodeps] [of] [-V|--verbose] - CEC (with HMC) specific: + CEC (with HMC) specific: rpower [on|off|reset|boot|onstandby] - LPAR(with HMC) specific: + LPAR(with HMC) specific: rpower [on|off|reset|stat|state|boot|of|sms|softoff] - CEC(using Direct FSP Management) specific: + CEC(using Direct FSP Management) specific: rpower [on|onstandby|off|stat|state|resetsp] - Frame(using Direct FSP Management) specific: + Frame(using Direct FSP Management) specific: rpower [stat|state|rackstandby|exit_rackstandby|resetsp] - LPAR(using Direct FSP Management) specific: + LPAR(using Direct FSP Management) specific: rpower [on|off|reset|stat|state|boot|of|sms] - Blade(using Direct FSP Management) specific: + Blade(using Direct FSP Management) specific: rpower [on|onstandby|off|cycle|state|sms] - Blade(using AMM) specific: + Blade(using AMM) specific: rpower [cycle|softoff] [-V|--verbose] Lenovo high-density server specific: rpower [on|off|reset|boot|reseat] - zVM specific: + zVM specific: rpower noderange [on|off|reset|stat|softoff] - MIC specific: + MIC specific: rpower noderange [stat|state|on|off|reset|boot] - docker specific: + docker specific: rpower noderange [start|stop|restart|pause|unpause|state] - pdu specific: + pdu specific: rpower noderange [off|on|stat|status|reset] rpower noderange [pduoff|pduon|pdustat|pdustatus|pdureset] ", - "rbeacon" => - "Usage: rbeacon [on|off|stat] [-V|--verbose] - rbeacon [-h|--help|-v|--version]", - "rvitals" => + "rbeacon" =>"", + "rbeacon.common" => + "Usage: + Common: + rbeacon [-h|--help|-v|--version|-V|--verbose] + ", + "rbeacon.begin" => + "BMC specific: + rbeacon [on|blink|off|stat] + OpenPOWER (IPMI) specific: + rbeacon [on|blink|off|stat] + ", + "rbeacon.openbmc" => + "OpenPOWER (OpenBMC) specific: + rbeacon [on|off] + ", + "rvitals" => "", + "rvitals.common" => "Usage: - Common: - rvitals [-h|--help|-v|--version] - FSP/LPAR (with HMC) specific: - rvitals noderange {temp|voltage|lcds|all} - CEC/LPAR/Frame (using Direct FSP Management) specific: - rvitals noderange {rackenv|lcds|all} - MPA specific: - rvitals noderange {temp|voltage|wattage|fanspeed|power|leds|summary|all} - Blade specific: - rvitals noderange {temp|wattage|fanspeed|leds|summary|all} - BMC specific: - rvitals noderange {temp|voltage|wattage|fanspeed|power|leds|all} - OpenPOWER (IPMI) specific: - rvitals noderange [temp|voltage|wattage|fanspeed|power|leds|chassis|all] - OpenPOWER (OpenBMC) specific: - rvitals noderange [temp|voltage|wattage|fanspeed|power|leds|altitude|all] - MIC specific: - rvitals noderange {thermal|all} - pdu specific: - rvitals noderange ", + Common: + rvitals [-h|--help|-v|--version] + ", + "rvitals.begin" => + "FSP/LPAR (with HMC) specific: + rvitals noderange {temp|voltage|lcds|all} + CEC/LPAR/Frame (using Direct FSP Management) specific: + rvitals noderange {rackenv|lcds|all} + MPA specific: + rvitals noderange {temp|voltage|wattage|fanspeed|power|leds|summary|all} + Blade specific: + rvitals noderange {temp|wattage|fanspeed|leds|summary|all} + BMC specific: + rvitals noderange {temp|voltage|wattage|fanspeed|power|leds|all} + OpenPOWER (IPMI) specific: + rvitals noderange [temp|voltage|wattage|fanspeed|power|leds|chassis|all] + ", + "rvitals.openbmc" => + "OpenPOWER (OpenBMC) specific: + rvitals noderange [temp|voltage|wattage|fanspeed|power|leds|altitude|all] + ", + "rvitals.end" => + "MIC specific: + rvitals noderange {thermal|all} + pdu specific: + rvitals noderange ", "reventlog" => "Usage: reventlog [all [-s]|clear| [-s]] [-V|--verbose] reventlog [resolved={|LED}] reventlog [-h|--help|-v|--version]", - "rinv" => + "rinv" => "", + "rinv.common" => "Usage: Common: rinv [all|model|serial] [-V|--verbose] rinv [-h|--help|-v|--version] - BMC/MPA specific: + ", + "rinv.begin" => + "BMC/MPA specific: rinv [model|serial|asset|vpd|deviceid|guid|firm|dimm|mprom|all] OpenPOWER (IPMI) server specific: rinv [model|serial|deviceid|uuid|guid|vpd|mprom|firm|all] - OpenPOWER (OpenBMC) server specific: + ", + "rinv.openbmc" => + "OpenPOWER (OpenBMC) server specific: rinv [model|serial|firm|cpu|dimm|all] [-V|--verbose] - PPC specific(with HMC): + ", + "rinv.end" => + "PPC specific(with HMC): rinv [all|bus|config|serial|model|firm] PPC specific(using Direct FSP Management): rinv [firm] @@ -142,8 +178,13 @@ my %usage = ( ", "rspconfig.openbmc" => "OpenBMC specific: - rspconfig [ipsrc|ip|netmask|gateway|hostname|vlan] + rspconfig [ipsrc|ip|netmask|gateway|vlan] + rspconfig admin_passwd= rspconfig dump [-l|--list] [-g|--generate] [-c|--clear {|all}] [-d|--download {|all}] + rspconfig gard -c|--clear + rspconfig [hostname|ntpservers] + rspconfig [hostname=<*|hostname>|ntpservers=] + rspconfig sshcfg ", "rspconfig.begin" => "BMC/MPA Common: @@ -349,20 +390,26 @@ my %usage = ( "makentp" => "Usage: makentp [-h|--help|-v|--version] makentp [-a|--all] [-V|--verbose]", - "rflash" => - "Usage: - rflash [ -h|--help|-v|--version] - PPC (with HMC) specific: - rflash -p [--activate {concurrent | disruptive}] [-V|--verbose] - rflash {--commit | --recover} [-V|--verbose] + "rflash" => "", + "rflash.common" => + "Usage: + Common: + rflash [ -h|--help|-v|--version|-V|--verbose] + ", + "rflash.begin" => + "PPC (with HMC) specific: + rflash -p [--activate {concurrent | disruptive}] + rflash {--commit | --recover} PPC (using Direct FSP Management) specific: rflash -p [--activate {disruptive|deferred}] [-d ] - rflash [--commit | --recover] [-V|--verbose] + rflash [--commit | --recover] rflash [--bpa_acdl] OpenPOWER BMC specific (using IPMI): - rflash [|-d ] [-c|--check] [--retry=] [-V] + rflash [|-d ] [-c|--check] [--retry=] rflash --recover - OpenPOWER OpenBMC specific: + ", + "rflash.openbmc" => + "OpenPOWER OpenBMC specific: rflash {[-c|--check] | [-l|--list]} rflash {[-c|--check] | [-a|--activate] | [-u|--upload]} rflash [-d] [--no-host-reboot] @@ -556,6 +603,49 @@ $usage{"rspconfig"} = $usage{"rspconfig.common"} . $usage{"rspconfig.openbmc"} = $usage{"rspconfig.common"} . $usage{"rspconfig.openbmc"}; +$usage{"rinv"} = $usage{"rinv.common"} . + $usage{"rinv.begin"} . + $usage{"rinv.openbmc"} . + " " . + $usage{"rinv.end"}; + +$usage{"rinv.openbmc"} = $usage{"rinv.common"} . + $usage{"rinv.openbmc"}; + +$usage{"rbeacon"} = $usage{"rbeacon.common"} . + $usage{"rbeacon.begin"} . + $usage{"rbeacon.openbmc"}; + +$usage{"rbeacon.openbmc"} = $usage{"rbeacon.common"} . + $usage{"rbeacon.openbmc"}; + +$usage{"rvitals"} = $usage{"rvitals.common"} . + $usage{"rvitals.begin"} . + $usage{"rvitals.openbmc"} . + " " . + $usage{"rvitals.end"}; + +$usage{"rvitals.openbmc"} = $usage{"rvitals.common"} . + $usage{"rvitals.openbmc"}; + +$usage{"rflash"} = $usage{"rflash.common"} . + $usage{"rflash.begin"} . + $usage{"rflash.openbmc"} . + " " . + $usage{"rflash.end"}; + +$usage{"rflash.openbmc"} = $usage{"rflash.common"} . + $usage{"rflash.openbmc"}; + +$usage{"rpower"} = $usage{"rpower.common"} . + $usage{"rpower.begin"} . + $usage{"rpower.openbmc"} . + " " . + $usage{"rpower.end"}; + +$usage{"rpower.openbmc"} = $usage{"rpower.common"} . + $usage{"rpower.openbmc"}; + my $vers = xCAT::Utils->Version(); my %version = ( "rnetboot" => "$vers", diff --git a/perl-xCAT/xCAT/Utils.pm b/perl-xCAT/xCAT/Utils.pm index 6a7f12c3a..cc03a05b5 100644 --- a/perl-xCAT/xCAT/Utils.pm +++ b/perl-xCAT/xCAT/Utils.pm @@ -4949,4 +4949,23 @@ sub natural_sort_cmp($$) { } } +#-------------------------------------------------------------------------------- + +=head3 console_sleep + A wrap for sleep subroutine, if goconserver is used, just exit immidiately + as goconserver has its own sleep mechanism. +=cut + +#-------------------------------------------------------------------------------- +sub console_sleep { + my $time = shift; + my $message = shift; + if($ENV{CONSOLE_TYPE} && $ENV{CONSOLE_TYPE} eq "gocons") { + # sleep time is handled by goconserver itself + exit(1); + } + print $message if $message; + sleep($time); +} + 1; diff --git a/travis.pl b/travis.pl index 785879435..9478ab275 100644 --- a/travis.pl +++ b/travis.pl @@ -101,6 +101,8 @@ sub check_pr_format{ my $pr_content = decode_json($pr_url_resp); my $pr_title = $pr_content->{title}; my $pr_body = $pr_content->{body}; + my $pr_milestone = $pr_content->{milestone}; + my $pr_labels_len = @{$pr_content->{labels}}; #print "[check_pr_format] Dumper pr_content:\n"; #print Dumper $pr_content; @@ -115,6 +117,14 @@ sub check_pr_format{ $checkrst.="Miss description."; } + if(! $pr_milestone){ + $checkrst.="Miss milestone."; + } + + if(! $pr_labels_len){ + $checkrst.="Miss labels."; + } + if(length($checkrst) == 0){ $check_result_str .= "> **PR FORMAT CORRECT**"; send_back_comment("$check_result_str"); diff --git a/xCAT-client/pods/man1/rbeacon.1.pod b/xCAT-client/pods/man1/rbeacon.1.pod index 7f2de147d..8fc04ad4e 100644 --- a/xCAT-client/pods/man1/rbeacon.1.pod +++ b/xCAT-client/pods/man1/rbeacon.1.pod @@ -5,11 +5,19 @@ B - Turns beacon on/off/blink or gives status of a node or noderange. =head1 SYNOPSIS +B [B<-h>|B<--help>|B<-v>|B<--version>|B<-V>|B<--verbose>] + +=head2 BMC (using IPMI): + B I {B|B|B|B} -B [B<-h>|B<--help>] +=head2 OpenPOWER BMC (using IPMI): -B {B<-v>|B<--version>} +B I {B|B|B|B} + +=head2 OpenPOWER OpenBMC: + +B I {B|B} =head1 DESCRIPTION diff --git a/xCAT-client/pods/man1/rflash.1.pod b/xCAT-client/pods/man1/rflash.1.pod index f6985b970..94d0db3bc 100644 --- a/xCAT-client/pods/man1/rflash.1.pod +++ b/xCAT-client/pods/man1/rflash.1.pod @@ -4,13 +4,13 @@ B - Performs Licensed Internal Code (LIC) update or firmware update on s =head1 B -B [B<-h>|B<--help> | B<-v>|B<--version>] +B [B<-h>|B<--help> | B<-v>|B<--version> | B<-V>|B<--verbose>] =head2 PPC (with HMC) specific: -B I B<-p> I [B<--activate> {B|B}] [B<-V>|B<--verbose>] +B I B<-p> I [B<--activate> {B|B}] -B I {B<--commit>|B<--recover>} [B<-V>|B<--verbose>] +B I {B<--commit>|B<--recover>} =head2 PPC (without HMC, using Direct FSP Management) specific: @@ -24,7 +24,7 @@ B I I =head2 OpenPOWER BMC specific (using IPMI): -B I [I | B<-d> I] [B<-c>|B<--check>] [B<--retry=>I] [B<-V>] +B I [I | B<-d> I] [B<-c>|B<--check>] [B<--retry=>I] B I B<--recover> I diff --git a/xCAT-client/pods/man1/rmdef.1.pod b/xCAT-client/pods/man1/rmdef.1.pod index 38b67b077..347cf18a1 100644 --- a/xCAT-client/pods/man1/rmdef.1.pod +++ b/xCAT-client/pods/man1/rmdef.1.pod @@ -58,7 +58,7 @@ A set of comma delimited object types. =item B<-C|--cleanup> -Perform additional cleanup by running B and B on the objects specified in the I. +Perform additional cleanup by running B, B and B on the objects specified in the I. =item B<-V|--verbose> diff --git a/xCAT-client/pods/man1/rpower.1.pod b/xCAT-client/pods/man1/rpower.1.pod index 2c5683fb1..6d7a0933c 100644 --- a/xCAT-client/pods/man1/rpower.1.pod +++ b/xCAT-client/pods/man1/rpower.1.pod @@ -10,7 +10,7 @@ B [B<-h>|B<--help>|B<-v>|B<--version>] =head2 BMC (using IPMI): -B I [B|B|B|B|B|B|B|B|B|B [B<-w> I] [B<-o>] [B<-r>]] +B I [B|B|B|B|B|B|B|B|B|B|B [B<-w> I] [B<-o>] [B<-r>]] B I [B|B|B|B] diff --git a/xCAT-client/pods/man1/rsetboot.1.pod b/xCAT-client/pods/man1/rsetboot.1.pod index 75a2e9ef7..fea274f5d 100644 --- a/xCAT-client/pods/man1/rsetboot.1.pod +++ b/xCAT-client/pods/man1/rsetboot.1.pod @@ -7,7 +7,7 @@ B - Sets the boot device to be used for BMC-based servers for the next B I [B|B|B|B|B] [B<-u>] [B<-p>] -B [B<-h>|B<--help>|B<-v>|B<--version>] +B [B<-h>|B<--help>|B<-v>|B<--version>|B<-V>|B<--verbose>] =head1 DESCRIPTION @@ -40,7 +40,7 @@ Display the current boot setting. =item B<-u> -To specify the next boot mode to be "UEFI Mode". +To specify the next boot mode to be "UEFI Mode". (Not supported for OpenBMC) =item B<-p> diff --git a/xCAT-client/pods/man1/rspconfig.1.pod b/xCAT-client/pods/man1/rspconfig.1.pod index c75d8dae7..e05e4ae9c 100644 --- a/xCAT-client/pods/man1/rspconfig.1.pod +++ b/xCAT-client/pods/man1/rspconfig.1.pod @@ -4,7 +4,7 @@ B - Configures nodes' service processors =head1 SYNOPSIS -B [B<-h>|B<--help>|B<-v>|B<--version>] +B [B<-h>|B<--help>|B<-v>|B<--version>|B<-V>|B<--verbose>] =head2 BMC/MPA specific: @@ -24,10 +24,32 @@ B I B=I