Compare commits

..

1321 Commits

Author SHA1 Message Date
lissav 9db88139d3 Defect 4061 2014-04-30 09:56:53 +01:00
arif a9068dbd0f Revert "temporary fix for postscripts for EXECUTE and EXECUTEALWAYS"
This reverts commit 06cad71050.
2014-04-30 09:56:21 +01:00
arif 06cad71050 temporary fix for postscripts for EXECUTE and EXECUTEALWAYS 2014-04-29 07:45:15 +01:00
arif 3e52ee0c40 defect #4061: fix DSHCLI.pm for append in hierarchy 2014-04-24 14:44:30 +01:00
lissav 993e2f77a8 defect 4061 2014-04-24 14:44:23 +01:00
arif da0431e69a defect #4061: fix DSHCLI.pm for merge in hierarchy 2014-04-24 14:44:14 +01:00
Jarrod Johnson ccb66ff793 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-11-14 15:53:46 -05:00
Jarrod Johnson cfb4a4cbaa Fix problem where bnx2x dependency tree needs special handling in sles 2013-11-14 15:53:12 -05:00
sjing 92692d6939 only try to stop named if restartneeded=1
because on linux, if the named is already stopped, when we tried
to stop named, the return code is 0 with a warning message;
while on AIX, if the named is already stopped, when we tried to
stop named, the return code is 1, it's different with Linux.
2013-11-13 01:58:44 -05:00
jjhua d9e220238d Merge branch '2.8' of ssh://jjhua@git.code.sf.net/p/xcat/xcat-core into 2.8 2013-11-13 11:20:16 -05:00
xq2005 805adea8be cacl broadcast address in configeth 2013-11-12 18:44:14 -08:00
John Simpson e6a4b0d8fb udpate to rflash man page for NeXtScale FPC 2013-11-12 16:47:46 -05:00
jjhua 11e7b02653 create the /install/chef-cookbooks directory in spec file 2013-11-12 15:51:50 -05:00
jjhua 55af05f8a3 update the spec file for chef-cookbooks 2013-11-12 15:43:00 -05:00
jjhua 93a98c256c fixed a minor issue in the cloud template file 2013-11-12 15:37:07 -05:00
jjhua 3b18b981c5 fixed bug3890. When there are two interfaces(pubinterface and mgtinterface) on the controller node,
There are something wrong with the cookbooks. fixed it
2013-11-12 15:31:50 -05:00
jjhua 1bf4253477 the two template files are in ./xCAT-OpenStack/templates/cloud_environment/.
So remove them from the chef-cookbooks directory.
2013-11-12 10:31:48 -05:00
jjhua 467d0873de add the openstack-chef-cookbook for grizzly 2013-11-12 10:24:04 -05:00
Jarrod Johnson 77cea20b24 Fix problem where fsm pulled in mic support 2013-11-12 10:02:42 -05:00
Jarrod Johnson e868887a29 Remove ipmi.pm.legacy removal from fsm/zvm builds 2013-11-12 09:37:45 -05:00
sjing be04c5c896 update perl-Net_SSLeay.pm to 1.55-3 for AIX7.1.3 and above 2013-11-12 09:27:36 -05:00
sjing 369a9e9b1e update perl-Net_SSLeay.pm to 1.55-3 for AIX7.1.3 and above 2013-11-12 09:10:03 -05:00
xq2005 dd9b1b51ba build xcat-openstack on ubuntu 2013-11-12 01:41:23 -08:00
John Simpson 28f0ef85cd updated the rflash man page with the NeXtScale FPC information 2013-11-11 19:17:54 -05:00
John Simpson 367c5a1ec6 update to fix configtfpc problems with running in xcatd 2013-11-11 17:48:14 -05:00
Jarrod Johnson 15061d46a9 Add ability for appliances to forbid 32 bit architectures for RHEL 2013-11-11 15:32:01 -05:00
Jarrod Johnson 102a6bbbf1 Recognize and translate invalid url message 2013-11-11 09:25:58 -05:00
xq2005 eeaf1cdd72 build xcat-openstack on ubuntu 2013-11-11 03:00:38 -08:00
jjhua 10c87ba9b6 include the mypostscript_cloud.tmpl template 2013-11-11 16:22:21 -05:00
jjhua 882d46d0b1 checkin the configgw script 2013-11-11 16:07:59 -05:00
jjhua d247f968fa Merge branch '2.8' of ssh://jjhua@git.code.sf.net/p/xcat/xcat-core into 2.8 2013-11-11 16:04:21 -05:00
jjhua 29dbe8ed09 fixed bug 3888.
initialize the variable uselocalhost;
add new script configgw to configure the public gw
2013-11-11 15:59:45 -05:00
jjhua c2275ad894 remove the -vx flag 2013-11-11 14:54:42 -05:00
jjhua 4e54d58318 clean the chef-server data and stop the chef-server before uninstall the chef-server 2013-11-11 13:42:38 -05:00
xq2005 4afaf438ea build xcat-openstack on ubuntu 2013-11-11 01:47:01 -08:00
xq2005 d654045adc bug 3885: confignics need network name and nic type 2013-11-09 23:56:53 -08:00
Jarrod Johnson b085606352 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-11-08 15:58:20 -05:00
Jarrod Johnson d5893b8ee0 Fix bug with genimage and sles 2013-11-08 15:58:03 -05:00
John Simpson 2f98fffc04 update to rvitals man page to remove summary option 2013-11-08 10:52:11 -05:00
John Simpson 81c3bfd1ff update to rvitals man page to remove lcds from the options for BMC 2013-11-08 10:30:52 -05:00
John Simpson eacb1f7561 update to rinv man page to add descriptions for mprom, deveid, and guid 2013-11-08 10:24:02 -05:00
John Simpson 8d062e9649 update to process firm the same as firmware 2013-11-08 09:58:12 -05:00
John Simpson 61b359fb11 updated messages in ipmi.pm to correct double colon problem with IBM::EnergyManager in the string 2013-11-08 09:27:11 -05:00
Bruce Potter 51f297a6fa remove ipmi.pm.legacy 2013-11-08 08:32:58 -05:00
daniceexi 5068f7999d changed the description for column name powermgt in mic table 2013-11-07 23:02:31 -05:00
Jarrod Johnson 5fce308c49 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-11-07 13:44:26 -05:00
Jarrod Johnson 71cd1093ea Fix problem where SLES11 SP3 SDK disk 3 would overwrite disk 1 2013-11-07 13:44:04 -05:00
Bruce Potter b4fa9ff479 automatically save previous bld 2013-11-07 12:13:50 -05:00
Jarrod Johnson edc62bb346 Add option to xcoll for individual output (-i) 2013-11-07 10:31:38 -05:00
Jarrod Johnson 0b6473f202 Fix problem where reventlog would fail against a management module 2013-11-07 09:59:59 -05:00
xq2005 1f68b5b240 build xcat-openstack on ubuntu 2013-11-07 00:53:21 -08:00
xq2005 f1ee97941e build xcat-openstack on ubuntu 2013-11-07 00:50:29 -08:00
xq2005 57ec0d82b6 build xcat-openstack on ubuntu 2013-11-07 00:12:55 -08:00
Bruce Potter 770f50f9ba fix chgrp problem in build scripts on aix 2013-11-06 10:25:30 -05:00
wanghuaz 2af02291a6 Fixing bug 3876, reutrn with usage if no kitcomponent specified to addkitcomp/rmkitcomp 2013-11-06 18:22:11 +08:00
wanghuaz c9c4bca217 still fixing bug 3815, dhcp.pm process_request with different makedhcp options -n and -a are triggerd by AAsn.pm twice during xcatd restarting on SN. the first -n option is enabled and not get cleanup because it is a global variable. and then second call with -a option conficts with -n option in last makedhcp context. we have to clean up -n before call the second makedhcp. 2013-11-06 17:28:26 +08:00
daniceexi 4ccaef4f22 Xeon Phi support. Support nfs mount to any server which set in statelite table. Support power management setting. 2013-11-06 07:08:10 -05:00
wanghuaz bc7ddd1f35 fixing bug 3815: check options again in process_request to make sure makedhcp options can be processes on service node. 2013-11-06 15:51:49 +08:00
xq2005 6b1b4f2253 bug 3824: systeimager install failed on sles10 golden client 2013-11-04 23:39:47 -08:00
xq2005 f6ea3147a7 bug 3824: systeimager install failed on sles10 golden client 2013-11-04 23:34:59 -08:00
xq2005 107c598a46 bug3872: stay on 'booting' when installing sles10 2013-11-04 22:51:25 -08:00
baiyuan 7de10e0ff5 add test cases for cn installation with sn in x86_64 redhat vm with kvm 2013-11-04 03:49:50 -05:00
baiyuan 3514d539fa add testcase for sn installation in x86_64 redhat vm with kvm 2013-11-04 03:33:48 -05:00
baiyuan 74739ca5b1 add testcase for cn diskfull installation with sn in x86_64 sles vm with kvm 2013-11-04 03:17:53 -05:00
baiyuan b92312d0d2 add testcase for cn installatiion with sn in x86_64 sles vm with kvm 2013-11-04 03:11:46 -05:00
baiyuan 923daaa8ba add testcase for cn installation with sn in x86_64 sles vm with kvm 2013-11-04 03:02:31 -05:00
baiyuan 7e96eb2478 add testcase for sn installation in x86_64 sles vm with kvm 2013-11-04 02:39:25 -05:00
immarvin 475bbf71ac correct a syntax 2013-11-03 22:01:35 -08:00
daniceexi 80ac6ee67d complete comments 2013-11-03 09:39:27 -05:00
daniceexi fcc0f6fa12 code drop for xeon phi (mic) support phase 2. 1. Support mpss 3.1; 2. Support to install software in .filelist, rpm and simple format; 3. Support the hcp software to be installed in .filelist format by genimage command; 4. Support the nfs mount setting for mic node (base on litefile table); 5. Support Internal bridge setting for mic host 2013-11-03 09:36:55 -05:00
Bruce Potter f383337d78 add blding man pages to openstack spec 2013-11-01 19:00:04 -04:00
Bruce Potter 019c780fcd add db2man for blding xCAT-OpenStack man pages 2013-11-01 18:52:05 -04:00
Bruce Potter fdbf81c1cf build openstack db man pages 2013-11-01 18:43:22 -04:00
immarvin 9cb3991fec fix defect #2980 install kernel-source fail in genimage in rh6/centos 2013-11-01 04:09:15 -07:00
xq2005 f85ad98f06 use ip address to find the network name 2013-11-01 03:34:35 -07:00
Bruce Potter 039fac937d add check for git pull success to build script 2013-10-31 13:11:44 -04:00
John Simpson c627c320bf updated message and fixed verbose error msg for runxcmd 2013-10-31 10:24:06 -04:00
jjhua 1e7149a25a copy the template files to the destination 2013-10-31 16:55:56 -04:00
jjhua 710b096765 add the cloud environment template files 2013-10-31 16:45:06 -04:00
immarvin 72a4379087 fix defect #3813 imgexport 2.7 will not imgimport 2.8 2013-10-31 01:30:57 -07:00
yinle 1a48279d68 Fix bug #3712 p6 IH full-disk install fails with no /tftpboot/yaboot 2013-10-31 07:07:37 -07:00
jjhua bbe98da471 fixed some issues about errors and messages found by Linda 2013-10-31 16:06:38 -04:00
ligc bef22ea3d2 backport dhcp.pm code from 2.9 to 2.8.3 2013-10-31 15:22:02 +08:00
wanghuaz d910e66cee fixing bug 2866, create some tmp files to avoid rpmbuild warnings 2013-10-31 13:21:04 +08:00
Jarrod Johnson 735127be0b Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-10-30 16:31:54 -04:00
John Simpson 3ca11580ae added static arp setting and cleaned up some messages 2013-10-30 16:03:41 -04:00
immarvin 24948a701d fix defect #3393 xcat 2.8 mgt server(rhels6.4-ppc64) hang on Generating /etc/rndc.key during reboot 2013-10-30 07:14:38 -07:00
xq2005 564abe331c bug 3831: install ubuntu hang 2013-10-30 03:08:48 -07:00
wanghuaz 250258dbb7 fixed bug 3867, 2013-10-30 00:42:53 -07:00
nott e52d129d30 buildkit fixes 3845, 3855, 3857 2013-10-29 14:42:24 -04:00
jwsimpson e3c48f5dbd adding check for -n to 2.8.3 2013-10-29 11:39:53 -04:00
lissav a4ec5d2e92 3865,3864 2013-10-29 11:07:02 -04:00
ligc 1dfb366a1b temp fix for bug 3792: multiple nics in the same subnet, use the first nic that in the subnet for dhcp 2013-10-29 10:46:17 +08:00
John Simpson 4366fd508a update to configfpc to add support for verbose and -i <int_adapter> option and a ping verification 2013-10-28 16:14:27 -04:00
Jarrod Johnson 2aee379b84 Add formatdisk to esx plugin, to be called by mkstorage 2013-10-28 16:07:06 -04:00
John Simpson 7e1b001ea4 configfpc updated to exit when a MAC address cannot be resolved to an FPC node definition 2013-10-28 16:00:56 -04:00
John Simpson fc64737727 configfpc updated to exit when a MAC address cannot be resolved to an FPC node definition 2013-10-28 15:48:43 -04:00
Jarrod Johnson bf79f4ea50 Fix stateless esxi warning about ssh 2013-10-28 10:45:00 -04:00
Jarrod Johnson 06cd041d4c Suppress warnings about ssh/tech support shell 2013-10-28 10:43:49 -04:00
yinle 862c94cbd1 Add AIX check in confignics 2013-10-28 04:46:25 -07:00
jjhua b1c7fda43c move setup_openstack_repo from xCAT/postscripts/ to xCAT-OpenStack/postscripts, and it will be packed into xCAT-OpenStack package 2013-10-28 10:58:45 -04:00
jjhua 2cb204a14a remove the print Dumper() 2013-10-27 16:17:55 -04:00
wanghuaz c1147d3e08 fixing bug 3821 give better description for chkkitcomp 2013-10-26 00:22:08 +08:00
John Simpson 300113c21a update to add the configfpc man page 2013-10-25 12:17:17 -04:00
lissav 0b18242922 defect 3859 2013-10-25 08:27:59 -04:00
immarvin 8c4b0edc52 fix defect #3694 [PCM] Showing booting status always for NGP X node status after power reset: update site.status during normal diskful reboot 2013-10-25 00:23:55 -07:00
jjhua 0a80486708 add a new postscript configbr-ex to configure the external bridge for Cloud 2013-10-25 14:48:59 -04:00
jjhua 63573b4138 Merge branch '2.8' of ssh://jjhua@git.code.sf.net/p/xcat/xcat-core into 2.8 2013-10-25 14:47:00 -04:00
jjhua b21ee18901 add a new postscript configbr-ex to configure the external bridge for Cloud 2013-10-25 14:45:37 -04:00
zhaoertao ecf7b06d5a fix bug 3856: rmvm could remove cec 2013-10-24 23:30:54 -07:00
zhaoertao 0059b61600 fix bug 3850: "chtab key=fsp,username=HMC ..." doesn't work for Powerlinux 2013-10-24 22:57:58 -07:00
yinle 6dd853fc65 Add check in configeth to give message to AIX user. 2013-10-25 05:05:38 -07:00
yinle 59ba6304fd Add lsslp support for IMM2. 2013-10-25 02:34:36 -07:00
lissav 6f1d4d616f defect 3851, further enhancements 2013-10-24 08:07:31 -04:00
Chuck Brazie 736bcf95bb Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-10-24 07:29:13 -04:00
lissav 713c85179f defect 3851, further enhancements 2013-10-24 07:15:58 -04:00
lissav 95fff778c2 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-10-24 06:46:06 -04:00
daniceexi bb5c8469c7 defect 3789: fixed the issue that xcatdebug command kill the xcatd ssl listening process. The fix is that just remove the handling debug message from plugin modules since xcatd loads plugin modules for each command run, don't need xcatdebug for plugin any more. 2013-10-24 10:42:39 -04:00
lissav 14331df196 defect 3851, further enhancements 2013-10-24 06:45:23 -04:00
zhaoertao ffe7ccbf3b fix bug 3820: rinv for feihu FPC is producing errors 2013-10-24 02:09:20 -07:00
daniceexi 9b89fdcc07 defect 3588: For rpower reset on kvm, in the case persistkvmguests is enabled, check the domain is inactive before resetting the domain 2013-10-24 08:59:03 -04:00
daniceexi 0c5aa5d8bf defect 3369: to add the flag -g for genimage command like for sles that make rh could handle the case that the kernel version is different with the name of kernel rpm when using -k to specify a new kernel version. 2013-10-24 08:05:29 -04:00
sjing 2ff2cfe4e2 Handle the case where networks.nameservers is a comma delimited list 2013-10-24 04:13:55 -04:00
zhaoertao 07ee30b7bb fix bug 3651: rspconfig with cmm does not execute or provide error when entry found in ipmi table 2013-10-23 23:44:04 -07:00
wanghuaz 14d49836f8 fixing bug 3848: add prerequisite component as dependency of kit component meta rpm 2013-10-24 14:45:38 +08:00
John Simpson 25ab6e5f52 update to configfpc to add support for verbose and -i <int_adapter> option and a ping verification 2013-10-23 17:01:35 -04:00
Chuck Brazie 180ed68679 zVM specific files 2013-10-23 15:40:25 -04:00
daniceexi 969244bbe9 change the position to run localdisk script that put it before killing udev. For stateless only. 2013-10-23 15:07:02 -04:00
jjhua 66ea7851a6 add the ./sbin/makeclouddata command in xCAT-OpenStack package 2013-10-23 22:29:58 -04:00
jjhua 3e71121c3f Merge branch '2.8' of ssh://jjhua@git.code.sf.net/p/xcat/xcat-core into 2.8 2013-10-23 22:10:53 -04:00
jjhua 7057cd4439 change loadchefdata to loadclouddata; move the code related to read from cloud/clouds table from Postage.pm to Cloud.pm in xCAT-OpenStack 2013-10-23 22:08:52 -04:00
daniceexi 78c6150219 add more kernel modules of scsi for localdisk support 2013-10-23 14:00:09 -04:00
lissav 68649e7ee1 defect 3851- handle multiple MN in DB 2013-10-23 13:23:37 -04:00
Jarrod Johnson 93dd1e0e68 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-10-23 11:03:17 -04:00
Jarrod Johnson 46cab0033d Have fsm server build drop seqdiscovery incurred requirements 2013-10-23 11:02:31 -04:00
immarvin a8cbfbff02 correct xcat-yaboot in error message to yaboot-xcat 2013-10-22 05:10:07 -07:00
immarvin 8519f75881 fix defect #3626 yaboot.pm needs to use pkgdir 2013-10-22 04:54:50 -07:00
immarvin 4d4b18ce31 fix defect #3626 yaboot.pm needs to use pkgdir 2013-10-22 00:51:50 -07:00
jjhua 99dba1777a Add the chef-client to invoke the config_chef_client script 2013-10-22 14:33:58 -04:00
jjhua f87877d2fb fixed a minor problem 2013-10-22 13:24:04 -04:00
jjhua bfbb333379 changes for the command makeclouddata 2013-10-22 10:47:28 -04:00
jjhua 3e51471614 Postscripts for OpenStack-Chef-cookbook/xCAT integration 2013-10-22 09:52:58 -04:00
jjhua d659213d9b code for OpenStack-Chef-cookbook/xCAT intergration 2013-10-22 09:42:15 -04:00
lissav 47a29edaf8 defect 3819 2013-10-21 11:27:35 -04:00
Jarrod Johnson daceb8d876 For newer versions of esxi for which we have selected a less vague name, ensure we remake it every time. 2013-10-21 10:44:15 -04:00
zhaoertao 53ba1913c4 fix bug 3774 :getmacs <noderange> -D -V failed 2013-10-21 02:51:36 -07:00
xq2005 ec3d146259 delete 127.0.1.1 from /etc/hosts on ubuntu compute node 2013-10-21 01:10:39 -07:00
John Simpson 0b0c923519 Adding a new plugin confgifpc to support discovery and configuring of NeXtScale FPCs 2013-10-18 16:13:52 -04:00
nott 84c818fbc6 check return from find_latest_pkg 2013-10-18 07:53:38 -04:00
nott 3003110003 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-10-18 07:52:51 -04:00
nott 0b7a707179 check return from find_latest_pkg 2013-10-18 07:51:50 -04:00
lissav 47a5a4c536 defect 3844 2013-10-18 07:42:10 -04:00
lissav 0ea77b281a defect 3841 2013-10-18 07:22:38 -04:00
immarvin 72de3aedfb fix defect #3843 copycds complains Use of uninitialized value in numeric eq (==) at /opt/xcat/lib/perl/xCAT_plugin/esx.pm line 148. 2013-10-18 02:38:17 -07:00
immarvin 92b9ca4b9e fix defect #3843 copycds complains Use of uninitialized value in numeric eq (==) at /opt/xcat/lib/perl/xCAT_plugin/esx.pm line 148. 2013-10-18 02:24:36 -07:00
immarvin 4fc4988238 fix defect #3370 Create osimage definition for the Management Node 2013-10-18 01:55:17 -07:00
ligc 3e8f68fe7f fix for bug 3841: syntax error in remoteshell postscript 2013-10-18 15:57:34 +08:00
ligc b4dce6b70f Update Clouds table for xCAT-OpenStack 2013-10-18 15:54:20 +08:00
nott 59e57a1e84 add -F option to lskit man 2013-10-17 15:19:26 -04:00
nott c6a0e6d4e5 add -F option to lskit 2013-10-17 15:00:19 -04:00
lissav 46c9d5d788 additional flowcontrol error handling defect 3819 2013-10-17 11:43:56 -04:00
lissav cad8c86a6b enhance error reporting 2013-10-17 11:03:19 -04:00
xq2005 f89163a501 add env parameters in runxcatpost 2013-10-17 02:20:12 -07:00
zhaoertao 4a48117c42 fix bug 3835: 'rspconfig blade network=*' result need to be enhanced 2013-10-16 23:49:51 -07:00
xq2005 201427c9de bug 3801: the booted status after syslone reboot 2013-10-16 20:13:44 -07:00
nott d155c8c68a add build_input subdir to complete kit 2013-10-16 15:02:11 -04:00
xq2005 0868963ef6 bug 3801: the booted status after syslone reboot 2013-10-16 08:44:06 -07:00
zhaoertao 56636cf4e8 fix bug 3834: 'lsslp -s CMM -w' write different id for cmm01 with 'rscan cmm01 -u' 2013-10-16 02:31:38 -07:00
zhaoertao e1ba890613 modify the operating for CMM doesn't rely on 'id' attribute 2013-10-16 02:20:54 -07:00
zhaoertao 62f367a8ab modifying 'rscan -u|-w' for working through DFM 2013-10-15 19:38:18 -07:00
Bruce Potter 856b80e2a1 remove xcat.1.pod, it is generated by xpod2man 2013-10-15 21:09:17 -04:00
Bruce Potter 9c14ddc07d require perl-IO-Stty on x86_64 too, in case managing ppc64 nodes 2013-10-15 20:46:16 -04:00
lissav b089d456d7 defect 3819, changes for xcatdsklspost and setuppostbootscripts 2013-10-15 10:19:42 -04:00
lissav 12c91fbc60 defect 3819 enhance -s behavior 2013-10-15 09:03:23 -04:00
lissav e39dbcd055 defect 3819 2013-10-15 08:13:35 -04:00
wanghuaz d65ae4c854 fixing bug 3510 remove useless repos after genimage 2013-10-15 17:53:34 +08:00
ligc a5c16ad171 sequential discovery phase 2: add -n, osimage and -s flags 2013-10-15 15:59:47 +08:00
wanghuaz bd27ca23be fixing bug 3821, use better description for chkkitcomp command 2013-10-15 15:40:10 +08:00
ligc 2486f856c3 fix for bug 3833: if ip forwarding is not enabled, do not use the MN as gateway 2013-10-15 09:50:13 +08:00
nott 3414416d01 change pkgdir description 2013-10-14 10:19:29 -04:00
xq2005 c8fbcc8541 for bug 3817 modification 2013-10-14 04:30:43 -07:00
xq2005 6bb48f05a9 bug 3817: sysclone support rhels 5.9 2013-10-14 03:49:38 -07:00
Sheng Feng Xing f8f872641b Do not import lpar node if FSP network associated with it 2013-10-14 15:02:17 +08:00
jjhua 6c9234df79 fixed bug 3683. In rhels 6.x, the mksquashfs doesn't have the -le and -be options. 2013-10-14 12:30:07 -04:00
nott 82157e991e change kit framework to 2 2013-10-13 10:35:51 -04:00
nott 020a114452 change kit framework to 2 2013-10-13 10:33:57 -04:00
nott c902672c60 add -v and aix note 2013-10-12 12:50:55 -04:00
nott cf42c4e10b add -v and aix note 2013-10-12 12:47:49 -04:00
Bruce Potter bd094db1b4 filter out signing msg in build script 2013-10-11 17:43:08 -04:00
Bruce Potter c85e2b60a4 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-10-11 17:30:57 -04:00
Bruce Potter 9972e77adb set group for files/dirs to root instead of xcat, because the xcat group does not exist on users mn 2013-10-11 17:29:12 -04:00
nott a1179f3018 add framework to -v and check for aix 2013-10-11 16:37:24 -04:00
Jarrod Johnson 0257de0ef2 Rework previous changeset somewhat and add gateway support 2013-10-11 14:58:22 -04:00
Jarrod Johnson e60f695efb Attempt to set ip and netmask remotely 2013-10-11 14:58:17 -04:00
Bruce Potter dc2afed5c1 updated description of useflowcontrol attr 2013-10-11 13:32:53 -04:00
lissav c026a3d7fe defect 3819 2013-10-11 07:16:43 -04:00
lissav 316b58bd88 defect 3819 2013-10-11 06:42:47 -04:00
immarvin 09c4277002 fix defect #3830 [DEV] rinstall complains inappropriate message 2013-10-11 01:11:39 -07:00
lissav 83eb5d2628 defect 3819 2013-10-10 14:52:38 -04:00
lissav b96e107a7c defect 3819 2013-10-10 13:42:47 -04:00
lissav 410217ac31 defect 3819 2013-10-10 11:22:18 -04:00
lissav 56f75cc342 defect 3823 2013-10-10 09:07:45 -04:00
xq2005 47200ff1c8 build ubutnu packages for prega 2013-10-10 02:57:06 -07:00
Jia Zhao 3c5b618ff0 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-10-10 15:27:41 +08:00
Jia Zhao 6a3bdba935 fix nodeimport message problem 2013-10-10 15:26:29 +08:00
Bruce Potter cb77ac92d7 fix setversionvars command not found problem during promote 2013-10-09 19:55:40 -04:00
lissav 09dc9a129e defect 3819 2013-10-09 15:23:47 -04:00
lissav cd79e33f7c defect 3819 2013-10-09 13:43:45 -04:00
lissav ded2be133e defect 3760 2013-10-09 12:17:42 -04:00
lissav 066696686f defect 3816 2013-10-08 15:31:17 -04:00
jjhua 90c24d0ff7 fixed bug 3796. At the end of genimage, remove the repositories of zypper. 2013-10-08 16:38:48 -04:00
xq2005 80deb78f25 bug 3808: error info when running confignics 2013-10-08 01:42:55 -07:00
xq2005 7ec38c7be8 bug 3809: get the dhcp info from lease file 2013-10-07 22:59:22 -07:00
Jarrod Johnson 8d68a17dec Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-10-03 15:40:18 -04:00
jbjohnso 8521b46ab2 Add information about IBM backup firmware to rinv
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@17017 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-10-03 15:40:08 -04:00
nott 3790ae7b65 add find_latest_pkg 2013-10-02 14:24:24 -04:00
nott 37d616d5fb pkgdir support 2013-10-02 14:22:02 -04:00
nott b117fb3dbc pkgdir support 2013-10-02 11:50:35 -04:00
nott 57b6ff1af7 add find_latest_pkg 2013-10-02 11:32:00 -04:00
nott fb71204859 support multi pakage dirs 2013-10-02 11:29:07 -04:00
lissav 5392fb7e34 defect 3797 2013-10-02 09:12:29 -04:00
lissav 83308c89e4 defect 3811 2013-10-01 08:22:07 -04:00
John Simpson 6dec17db73 Add support for missing NeXtScale sensors 2013-09-30 17:09:29 -04:00
lissav 1fa9bdb32f temp fix for defect 3797, at least get it working on SLES 2013-09-27 09:56:45 -04:00
xq2005 4dd43607b8 ubuntu 13.04 stateful support 2013-09-27 02:57:55 -07:00
xq2005 daab6a0cde ubuntu 13.04 stateful support 2013-09-27 02:51:23 -07:00
daniceexi efd7d6eadb defect 3803: appending the default drvier list even new driver is specified in netdrivers attr; change the output message of genimage 2013-09-27 01:57:59 -04:00
xq2005 9a9705a1bf bug:3804 2013-09-26 19:31:06 -07:00
daniceexi 9dcd216ac1 check in the code to support the driver injection for stateless: 1. genimage will copy the generated initrd to /tftpboot;2. support nodeset --noupdateinitrd 2013-09-26 03:07:46 -04:00
lissav 6e14118bcd sync back up 2.8.3 and 2.9 2013-09-25 08:13:00 -04:00
lissav 3d31d5f112 defect 3800 2013-09-25 08:07:16 -04:00
lissav 8b6feb6b30 add /install/custom directory 2013-09-25 07:23:16 -04:00
daniceexi f1976a7b99 defect 3783: add the missing driver for sles11.3; fix the bug of adding new drivers with incorrect order 2013-09-25 02:05:39 -04:00
daniceexi 089855bcd2 defect 3779: change the output of driver injection to make it sensible 2013-09-25 01:52:45 -04:00
Jarrod Johnson 239add6be2 Revert "Phase 1 of SVC plugin implementation"
This reverts commit 203d7025ad.
2013-09-24 21:04:02 -04:00
Jarrod Johnson 203d7025ad Phase 1 of SVC plugin implementation
This commit is able to create storage in an existing mdisk grp.

It hardcodes the iogrp to 0 for now.  The next step is to make hosts and vhostmap.
mkhost -name <name> -hbawwpn <wwpn> -force

And then map them together:
mkvdiskhostmap -host <host> -force <vdisk>

If boot, store the wwn into storage.osvolume for future use.

Commands to do:
attachstorage
detachstorage
showstorage
rmstorage

suspect frontending:
lsmdiskgrp to show state of avail space
will be appropriate
2013-09-24 20:58:48 -04:00
lissav 1141e9cd7d defect 3799 2013-09-24 10:24:49 -04:00
xq2005 f4296702e2 bug 3798: confignics -s failed on sles11 sp3 2013-09-24 02:16:39 -07:00
lissav 3583d5b59d defect 3618 2013-09-23 12:01:35 -04:00
xq2005 4934dba5ea confignics modification for syntactics 2013-09-23 02:56:23 -07:00
Sheng Feng Xing e651a540d7 Commit new nodeimport man page into 2.8 branch for Power rack-mount node support 2013-09-23 15:29:30 +08:00
xq2005 8bcf0a8717 bug 3795: node can not boot after cloning sles11.3 with legacy mode 2013-09-23 01:08:58 -07:00
Sheng Feng Xing e342bd876c Merge PowerLinux 7R2 support patches into 2.8 branch 2013-09-23 14:31:43 +08:00
wanghuaz 2b453aea6f Fixing bug 3406, using md5 hash algorithm for centos 5.x during createrepo 2013-09-23 11:02:12 +08:00
wanghuaz 2433281aa5 Fixing bug 3406, using md5 hash algorithm for centos 5.x during createrepo 2013-09-23 10:36:59 +08:00
xq2005 99f1ac8b79 bug 3794 2013-09-22 00:58:55 -07:00
Sheng Feng Xing c9508a7966 Fix #3793: CFMUtils.pm can not sync-up symbolic link directory under cfmdir 2013-09-22 14:29:44 +08:00
Jarrod Johnson 75bb52802e Add support for esxi5.5 2013-09-19 15:57:23 -04:00
lissav 80d3424855 defect 3150, check for errors from DB. We can do itgit diff tabutils.pm 2013-09-19 13:04:40 -04:00
lissav caed010c3d defect 3580 2013-09-19 10:46:36 -04:00
lissav 84b503a443 defect 3785 2013-09-19 07:36:16 -04:00
lissav 39c66d052f document xcatmaxbatchconnections update 2013-09-18 14:25:51 -04:00
lissav 5f0da1b2de document xcatmaxbatchconnections, try 2013-09-18 14:08:34 -04:00
lissav 76edfcf670 defect 3785 2013-09-18 13:41:16 -04:00
lissav 5d02531baa fix extra output on -k interface 2013-09-18 08:20:28 -04:00
lissav a0370be23f update database immediately for defect 3785 2013-09-18 06:53:42 -04:00
ligc f79ec9bdbd fix for bug 3748: lsdef --osimage need to list all osimage attributes 2013-09-18 13:46:34 +08:00
ligc 44f26b478d fix bug 3745: makehosts -d to delete otherinterfaces hosts 2013-09-18 07:56:13 +08:00
Jarrod Johnson 777c00e8d4 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-09-17 17:27:02 -04:00
Jarrod Johnson 7754845c7c Fix pasu with multi-node eX5 systems 2013-09-17 17:26:36 -04:00
lissav 9a64ca9b84 fix defect 3786 2013-09-17 12:19:52 -04:00
lissav 1e3fa1a1e9 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-09-17 12:14:37 -04:00
lissav 5e728c73a1 fix for defect 3785(PCM) requirement 2013-09-17 10:36:12 -04:00
zhaoertao 74d5d437d5 enhancement of supporting partition on IBM power 7R1/7R2 machines. 2013-09-17 07:18:22 -07:00
xq2005 af6b21edb0 bug 3763:write install nics's configuration file 2013-09-17 00:48:22 -07:00
litingt 4bbda3998f confignics test case part one 2013-09-16 23:31:20 -04:00
Sheng Feng Xing de3184b24a Fix #3784: CFMUtils.pm reports error messages in Verbose model if osimage.cfmdir is not set 2013-09-17 10:23:38 +08:00
lissav 219badd6f2 defect 3781 2013-09-16 09:27:45 -04:00
xq2005 77ea7d4e41 bug 3776: post install script hung when deploy rhels5.9 2013-09-16 01:50:23 -07:00
zhaoertao 431470e035 Enhancement of fixing for bug 3780: Incorrect password selected for blade 2013-09-15 23:15:34 -07:00
immarvin 1ca9533e61 add fedora19 diskful install support 2013-09-14 07:36:58 -07:00
lissav 7db86eedff add support for -a (addrows) flag 2013-09-13 14:13:44 -04:00
lissav d8e840bafd add support for -a (addrows) flag 2013-09-13 13:58:52 -04:00
lissav e861a7c0a9 add support for -a (addrows) flag 2013-09-13 13:57:32 -04:00
lissav 42af194434 defect 3750 2013-09-13 08:00:12 -04:00
xq2005 643952493a setupntp do not return directly 2013-09-13 02:06:56 -07:00
zhaoertao 5653f343a3 fix bug 3780: Incorrect password selected for blade 2013-09-13 00:44:47 -07:00
lissav 1b5cf5e044 defect 3750 2013-09-12 09:24:20 -04:00
lissav ffc621cf29 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-09-12 08:15:13 -04:00
lissav 4082f1da22 add -t info 2013-09-12 07:56:39 -04:00
xq2005 7c29fd4757 confignics modify -s option 2013-09-11 23:51:05 -07:00
Jarrod Johnson e1635a9b48 Implement rflash support for NeXtScale Enclosure manager 2013-09-11 14:33:46 -04:00
lissav f58a3f2f9a defect 3766 2013-09-11 08:54:22 -04:00
lissav 817f8ce411 defect 3778 2013-09-11 07:13:59 -04:00
zhaoertao f1dc5da446 Modifications of setting memory for partitions on Power Machines 2013-09-11 02:43:02 -07:00
xq2005 4f91b33757 bug3767:Target node doesn't return 'booted' status in sysclone 2013-09-11 03:16:51 -07:00
xq2005 031bc1e3bd bug 3755, No way to setup CN hardware clock 2013-09-11 03:10:15 -07:00
sjing 8b8b932213 Enhance usability of makedns with more checks and better messages. 2013-09-11 05:31:27 -04:00
daniceexi 9704a7b176 defect 3759: fix the man page for power 6 that attributes syssbpower,sysIPLtime were not in the command line list 2013-09-11 08:48:24 -04:00
lissav 716bb97084 fix defect 3777 2013-09-10 14:21:54 -04:00
lissav 815e2d6583 add centos6 2013-09-10 09:12:55 -04:00
xq2005 dbcab937da fix the postinst script for xcat-server on ubuntu 2013-09-10 02:25:58 -07:00
wanghuaz 3e0d22db7c fixing bug 3764, add osminor version for sles. 2013-09-10 14:51:45 +08:00
wanghuaz 01c3a1070d enable snmpv3 monitrong on 2.8 2013-09-10 13:52:07 +08:00
zhaoertao 5205218f1a Add a column 'physlots' for 'vm' table, it is used for partitioning. 2013-09-08 23:29:06 -07:00
xq2005 84e9d74314 bug 3765 2013-09-08 23:57:05 -07:00
Jarrod Johnson 464c4b0d3c Provide rpower reseat for NeXTScale 2013-09-06 11:17:32 -04:00
nott a96f96e2d4 #3655 - oops - remove dup subroutine 2013-09-05 13:11:06 -04:00
nott 0fe302f9e8 #3655 - add two new subroutines for comparing rpm versions 2013-09-05 12:53:35 -04:00
nott 7ad12aba70 #3674 - add error return code 2013-09-05 12:32:38 -04:00
nott d9e9515cf5 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-09-05 11:06:02 -04:00
nott 91d27eb358 #3752 - change tmp work dir location 2013-09-05 10:56:49 -04:00
zhaoertao 890555235e Modify manpage for mkvm, lsvm, rmvm. And checking if parition is disabled. 2013-09-05 01:07:45 -07:00
zhaoertao f0c6bcdbad Supporting full-partition and physical-partition with DFM 2013-09-04 23:27:28 -07:00
xq2005 115aef46f3 bug 3768,3769,3770 2013-09-04 20:56:50 -07:00
ligc 53209a79d1 add the storage.rhels6.pkglist 2013-09-05 09:56:42 +08:00
sjing e1603a0242 add an error message if mn's hostname can not be resolved. 2013-09-04 05:48:40 -04:00
xq2005 552063ef57 for bug 3762 2013-09-04 02:46:23 -07:00
Bruce Potter 6483bbc18e specify --checksum for createrepo so the repo will work on rhel5 2013-08-31 11:07:01 -04:00
ligc 70c9b7c583 add rhelhpc6.4 support 2013-08-30 09:09:43 +08:00
lissav 3c86356e3b add timeout support to updatenode to pass into xdsh 2013-08-29 13:52:46 -04:00
lissav 5a09a9b34a add timeout support to updatenode to pass into xdsh 2013-08-29 13:45:24 -04:00
lissav 28fba7f066 implement timeout in xdsh -K 2013-08-29 09:11:14 -04:00
lissav ac79179400 more code to enable user input timeout on xdsh -K 2013-08-29 07:59:02 -04:00
xq2005 e91888a79b add syscloneimgupdate scripts to update the target nodes files 2013-08-29 03:01:10 -07:00
lissav 1a5b1e9086 add support to supply expect timeout 2013-08-28 13:06:56 -04:00
lissav 0fa516df77 add check for servicenodes and computenodes in noderange for nodeset. Also remove very old commented out code defect 3750 2013-08-27 13:12:19 -04:00
lissav 25b028a5fd add check for servicenodes and computenodes in noderange for nodeset. Also remove very old commented out code defect 3750 2013-08-27 12:51:50 -04:00
Bruce Potter f4ddcdb9de fix bld script change 2013-08-27 12:49:33 -04:00
Bruce Potter 2374e40b4e Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-08-27 12:36:41 -04:00
lissav cae2da8eba add check for servicenodes and computenodes in noderange for nodeset. Also remove very old commented out code defect 3750 2013-08-27 12:24:02 -04:00
Bruce Potter e313b49839 change git cmd used to get current branch 2013-08-27 11:25:29 -04:00
lissav 80e8c21af7 fixes for defect 3750 2013-08-27 09:46:55 -04:00
xq2005 9c0032b3c1 sysclone support sles11 on uefi mode 2013-08-26 20:55:11 -07:00
lissav 624fce5e4d changes for defect 3758 git patch 2013-08-26 11:10:35 -04:00
xq2005 814974aaa8 sles.pm mksysclone for sles 2013-08-26 00:17:08 -07:00
lissav 1810107998 add additonal ethernet setup 2013-08-24 06:31:21 -04:00
daniceexi 045011b168 kill the child processes when create socket failed 2013-08-23 06:43:09 -04:00
xq2005 67a663131e add mksysclone in sles.pm 2013-08-22 23:30:45 -07:00
xq2005 6853cbc89f postscripts modification for sysclone on sles 2013-08-22 23:00:08 -07:00
Jarrod Johnson cb9794ccdb Correct more issues with noderange 2013-08-22 14:35:41 -04:00
lissav 9b3f5a15d0 fix schema definition 2013-08-22 12:04:11 -04:00
daniceexi 2b0caf0346 make geninitrd could run against statelite image to generate initrd 2013-08-22 07:06:22 -04:00
daniceexi 62ee471f89 Remove the validity checking base machine type so that any power machines can be run with renergy command 2013-08-22 06:34:15 -04:00
xq2005 19a77111f6 remove klogd from genesis base 2013-08-21 19:51:35 -07:00
lissav e6f7e461e4 defect 3754 2013-08-21 12:54:41 -04:00
xq2005 56cab3f2c8 build packages on ubuntu 2013-08-21 09:49:09 -07:00
xq2005 adf53e32cd add reiserfs into genesis to support sysclone for sels 2013-08-21 09:10:16 -07:00
xq2005 77bcb15656 add kvm pkglist and template for ubuntu 2013-08-21 07:36:46 -07:00
xq2005 ef7fe69e19 modification for builing xcat on ubuntu 2013-08-21 03:11:04 -07:00
Jarrod Johnson 67a7fab655 Fix problem where values after parenthitcal group were not evaluated correctly 2013-08-20 15:36:07 -04:00
wanghuaz b81e4cee2d sync the bug fix for 3746 and 3721 from master to 2.8 branch. 2013-08-20 23:32:12 +08:00
lissav c93aeba53c fix defect 3750 2013-08-20 10:22:32 -04:00
xq2005 c057f231a0 postscripts modifiction about sysclone supporting for sles on 2.8 2013-08-20 02:12:07 -07:00
xq2005 5eaaf7369c add debianpreconf into xcatlib.sh on 2.8 2013-08-19 23:52:29 -07:00
lissav 0bdae5e4c4 fix pid files did not get removed and the kill term showing up 2013-08-19 13:29:11 -04:00
Bruce Potter 37118daaf9 add --nonodecheck to the psh usage and man page 2013-08-17 11:50:50 -04:00
lissav a9acb42b1e add flow control 2013-08-16 07:05:32 -04:00
lissav b3cf456fae flow control 2013-08-16 06:58:10 -04:00
immarvin 7dd70c12d2 update the nodelist.status to installing/netbooting via feedback from node during provision 2013-08-16 00:06:25 -07:00
zhaoertao f2b4b14a53 The item of updating pre-defined groups for nodes 2013-08-15 23:27:38 -07:00
daniceexi 11b99248a9 Enchancement for drvier injection to initrd: 1. add the updateonly keyword for netdrivers att that only update the existed drivers from new distro update instead of copying all the drivers, this is helpful to reduce the size of new built initrd; 2. the drivers for old kernel will be removed if there's new kernel will be used. 2013-08-16 01:26:06 -04:00
Jarrod Johnson 8600f159b0 Default in user/password in the same way that ipmi works in plugin 2013-08-15 11:35:51 -04:00
lissav c03f4d202f fix syntax 2013-08-15 07:34:01 -04:00
lissav 88914d3493 new man page for xcatconfig -t 2013-08-14 09:55:29 -04:00
lissav a2a9dc9efd setup interface for setting tunables 2013-08-14 09:48:02 -04:00
Jarrod Johnson 4cdeeb0b22 Correct spelling mistake in xCAT-genesis that got in the way of interface bring up 2013-08-14 08:58:41 -04:00
Bruce Potter 5ca816b0c4 fix bld script to put rpms in release specific place 2013-08-13 18:29:42 -04:00
Jarrod Johnson 529597d3c1 Try to bring up extra interfaces for discovery 2013-08-13 13:29:00 -04:00
Jarrod Johnson 08f4ed81e5 Add support for rinv and faster DDR3 dimms 2013-08-13 10:13:06 -04:00
Jarrod Johnson d6ce28f954 Fix ipmi FRU parser to give up once malformed data is encountered 2013-08-12 16:04:41 -04:00
Jarrod Johnson 16be3f4902 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-08-12 15:08:57 -04:00
Jarrod Johnson 1808cbf129 Correct IPMI breakage from previous commit that removed ipmi2support scope 2013-08-12 15:08:26 -04:00
lissav 6969c52f82 defect 3731 2013-08-12 13:53:38 -04:00
lissav 09bf36a323 Defect 3731 2013-08-12 12:56:50 -04:00
daniceexi 1b5ff23093 Add usage message and manpage for geninitrd command; Add --noupdateinitrd flag for nodeset manpage; Make geninitrd to check the provmethod if no image name is specified 2013-08-12 11:24:04 -04:00
xq2005 73ab8e8a7f add comments in anaconda.pm 2013-08-12 02:59:17 -07:00
Jarrod Johnson 0995a924dc Do sparse allocation for non-lvm raw format images 2013-08-09 10:31:26 -04:00
xq2005 311d3aafac fix symbo error 2013-08-09 01:21:00 -07:00
immarvin d948f8c69e fix defect 3734 makehosts throw exceptions when node ip is not illegal 2013-08-08 21:27:01 -07:00
immarvin 368d0d1e83 fix defect 3734 makehosts throw exceptions when node ip is not illegal 2013-08-08 21:03:39 -07:00
Jarrod Johnson 18db706c89 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-08-08 16:26:53 -04:00
Jarrod Johnson 020889ad3c Implement vm.storagecache and vm.storageformat
It has been requested to make these tunables available since different storage schemes
can benefit greatly from them
2013-08-08 16:26:00 -04:00
daniceexi 76a47d856c defect 3703: make the configmic and flashmic could get the correct hostname on the host node 2013-08-08 13:00:37 -04:00
daniceexi 4225daa29f defect 3703: to support command [nodeset <node> osimage] when the provmethod has been set 2013-08-08 12:58:00 -04:00
ligc 3c874d9555 update test case lsdef_nics 2013-08-08 17:18:00 +08:00
ligc 839c6d85a3 add testcase lsdef_nics 2013-08-08 16:20:07 +08:00
ligc fbd772e8cd add testcase lsdef_t_h_i 2013-08-08 16:02:18 +08:00
ligc 92ec068fe4 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-08-08 16:01:32 +08:00
jjhua 68b4a0b5c7 fixed bug 3732, centos 5.x needs the url rpository 2013-08-08 14:41:41 -04:00
Jarrod Johnson 650928ad15 Fix for noderange parentheses handling 2013-08-07 16:59:49 -04:00
daniceexi 4e79b8d8d7 Merge branch '2.8' of ssh://daniceexi@git.code.sf.net/p/xcat/xcat-core into 2.8 2013-08-07 08:39:45 -04:00
daniceexi 67a48e2ee6 defect 3726: for the initrd of sles, the /modules in initrd should symbol link to the new kernel dir if there's new kernel dir 2013-08-07 08:36:41 -04:00
immarvin 5459cf6a60 fix defect 3719 [DEV] rcons fails when nodehm.mgt=kvm 2013-08-07 00:38:15 -07:00
yinqing 600ab740ae #220993 Can not import node by auto discovery switch and switch port. 2013-08-07 13:29:25 +08:00
yinqing 5f8d394346 #221180 There is no mechanism to prevent error message printed in kitimagepostdelete when disassociated kit with the image profile 2013-08-07 11:30:21 +08:00
linggao 6fb47b1d50 fixed defect 3729 imgexport does not honor rootimgdir 2013-08-06 20:21:03 -04:00
lissav 780fbaaad8 use MAXMIN routine 2013-08-06 12:15:26 -04:00
Jarrod Johnson 63edd565d1 Correct language in sensor decode 2013-08-06 10:57:26 -04:00
lissav 2bca640ffa fix bug 2013-08-06 09:44:52 -04:00
root cbb73b46a7 Merge branch '2.8' of ssh://jjhua@git.code.sf.net/p/xcat/xcat-core into 2.8 2013-08-06 16:19:40 -04:00
root e88a680e6b fixed bug 3706. When genimage, it generated the CentOS-Base.repo in the /etc/yum.repos.d, but the internet repositories were not enabled=0. disable it 2013-08-06 16:02:31 -04:00
immarvin 8921bc2734 fix defect 3245 2.8:return value of nodeset does not equal to 0 on ppc64 2013-08-06 00:53:30 -07:00
lissav df1c520161 add MAX/MIN function 2013-08-05 14:10:20 -04:00
lissav 861794f576 fix defect 3464 2013-08-05 10:36:29 -04:00
lissav d0411a285f fix defect 2959 2013-08-05 10:05:05 -04:00
lissav cf502073f4 fix defect 3479 2013-08-05 09:52:45 -04:00
lissav 0f0046ca9d add support for updatenode -g flag to generate mypostcripts files 2013-08-05 09:36:08 -04:00
Jia Zhao b7701969ed fix noderegenips scalability problem 2013-08-05 19:19:00 +08:00
xq2005 918bd4270a comment the useless apt repo in full installation on ubuntu 2013-08-05 02:22:35 -07:00
xq2005 3f56f0775e xhrm_satisfy getting vlan information from nics table 2013-08-05 01:50:29 -07:00
xq2005 56b6f4c1b2 xHRM support ubuntu/debian 2013-08-05 01:46:05 -07:00
xq2005 ecd518e31e import sha.pm on ubuntu instands of sha1.pm 2013-08-05 01:35:40 -07:00
xq2005 a7e3e9ec2a load sha.pm on ubuntu instand of sha1.pm 2013-08-05 01:26:15 -07:00
Lei Ai 008e72d316 initialize global variables to avoid Cannot re-provision the node which has been removed 2013-08-05 15:10:16 +08:00
xcat ubuntu build machine 1de09a51c9 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-08-05 03:08:56 +00:00
xcat ubuntu build machine 106dc7874a changes to build-ubunturepo for git repo 2013-08-05 03:08:50 +00:00
xq2005 bf183224c7 transfer the confignics and configeth to shell 2013-08-02 03:14:45 -07:00
ligc 4a2b39754f Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-08-02 13:46:52 +08:00
immarvin df9fa2b101 fix defect 3722: replace die with MsgUtils->message and exit 2013-08-01 19:26:14 -07:00
ligc 3847fe71c0 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-08-02 09:47:13 +08:00
linggao 4a91bb39cc document tabdump -n 2013-08-01 12:17:05 -04:00
linggao a81d66c124 add tabdump -n for auditlog and eventlog 2013-08-01 12:07:30 -04:00
immarvin dab5a33b3f fix defect 3724 makehosts should report error/warning messages when entrys in hosts table are not correct 2013-08-01 01:23:45 -07:00
daniceexi 016a947428 Change the insert_dd function for handling the initrd hacking. 2013-07-31 07:05:18 -04:00
ligc 79748cf356 fix README 2013-07-31 11:41:21 +08:00
ligc 85bf65876e Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-07-31 10:17:38 +08:00
ligc 8c2e36a02c this is a test 2013-07-31 10:16:58 +08:00
Jarrod Johnson f2fcf48b5d Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-07-30 09:16:26 -04:00
lissav f52348bc1a Update version to the next release 2013-07-30 13:16:25 +00:00
lissav 64d03a8212 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-07-29 14:12:56 -04:00
lissav 811a3eda65 Fix for defect 3717 2013-07-29 14:07:02 -04:00
Jarrod Johnson 9e71285c78 Merge branch '2.8' of ssh://git.code.sf.net/p/xcat/xcat-core into 2.8 2013-07-29 14:01:19 -04:00
lissav d3bf022de7 Update version to the next release 2013-07-29 18:01:13 +00:00
lissav 4bd8a0e020 Update version to the next release 2013-07-29 13:56:39 -04:00
bp-sawyers 3ddce5fb90 Update bld script for different git branches
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@17035 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-29 15:36:37 +00:00
jbjohnso 52c1236f4e Fix problem where setting a string that happened to contain the letters 'NULL' somewhere would fail
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@17033 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-26 19:17:10 +00:00
bp-sawyers d258f3a3c0 update build script to build from git
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@17032 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-26 18:29:23 +00:00
simba372 143f106f7d 211979: [low rank][PCM4.1][unmanaged node]Failed to create unmanaged node with the length of device name which is less than three letters
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@17027 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-26 09:37:43 +00:00
jbjohnso 29b94ff6a2 Revert "Add information about IBM backup firmware to rinv"
This reverts commit e518020aa4.

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@17023 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-25 15:01:16 +00:00
sjing 0682ed07d3 Remove klogd binary since it's not included in mcp 7.3
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@17020 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-25 01:39:08 +00:00
jbjohnso e518020aa4 Add information about IBM backup firmware to rinv
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@17018 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-24 18:40:09 +00:00
bp-sawyers b67fcaed89 update xCAT-genesis-builder for mcp build - does NOT require rebuild of xcat 2.8.2
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@17014 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-23 19:38:46 +00:00
lissav 0a55da08fe fix defect 3707
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@17009 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-22 17:09:22 +00:00
chudegao 7b7085742f fix#220182,The node is not rebooted automatically while use new image profile during re-installation process
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@17007 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-22 06:53:49 +00:00
asirxing 487daef0d6 Skip to add root relative information into CFM merge files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@17005 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-22 05:51:46 +00:00
jbjohnso f9533a6843 Fix problem where name resolution was used instead of certificate subject to identify 'trusted' peer
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@17003 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-19 13:25:51 +00:00
wanghuaz bc96478730 Fixing bug 3697: addkitcomp -a option works with pessl automatically makes a wrong perte/compiler order in postbootscript for diskfull installation. compiler's postinstall script should always run before perte's postbootscripts.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16986 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-17 08:35:06 +00:00
wanghuaz c0aeae7dd1 fixing bug 3653 on sles and ubuntu.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16984 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-17 02:55:13 +00:00
nott 7d90895a38 add check for sles10 and rh5
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16982 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-16 16:26:41 +00:00
bp-sawyers dd74f95007 Improve performance of makeconservercf - bug 3691
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16973 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-13 20:03:19 +00:00
phamt 465409982d Enlarged division width of bar chart so it could accommodate more data.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16971 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-13 14:10:26 +00:00
phamt 04d832ce3d Enhanced z/VM resources page with bar chart to show disk pool space.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16970 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-13 13:25:22 +00:00
daniceexi 9f8a9efc4b remove the checking of netdrviers so that geninitrd could handle the kernel,initrd copying to /tftpboot for general osimage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16967 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-12 05:33:09 +00:00
daniceexi 6b26f84cf9 roll back the change in 16956,16959. I did not see the problem of last change. Just roll back and see what's going on of building process
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16966 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-12 03:00:47 +00:00
daniceexi a70323051f add the link for new command geninitrd
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16964 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-12 02:41:13 +00:00
zhaoertao 6996dc4f8a fix bug 3689: Modifying manpage for rspconfig and rscan
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16963 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-12 02:40:19 +00:00
daniceexi 77e5889721 Add the new plugin to handle the geninitrd command that regenerate (hack) initrd for stateful osimage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16962 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-12 02:38:17 +00:00
daniceexi e9d378a484 Changed the insert_dd that the kernel will be updated from the new update distro.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16961 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-12 02:36:52 +00:00
lissav d17e10419d mkdir the mic directory to fix build
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16959 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 15:48:25 +00:00
jbjohnso 392472e328 Change bmcsetup to disable cipher suites 0 and 1 in the face of peculiar cipher suite support or enumeration
Also change to enable cipher suites 2 and 3 to facilitate sites without Rijndael

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16958 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 14:59:39 +00:00
lissav 32e5e85a08 fix defect 3687
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16956 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 14:52:37 +00:00
nott 3065b2d394 add call to updtvpkg in instoss
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16954 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 14:00:48 +00:00
wanghuaz 594d5ce981 Fixing a problem while adding multiple kits, several data structures are not initialized in last feature checkin. Updated the data structures and did strong UTs today. Open bugs tonight.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16952 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 10:02:25 +00:00
daniceexi f95c0026eb fixed a typo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16951 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 08:31:44 +00:00
ligc f5d013dc48 fix for bug 3671: use autocommit => 1 instead of autocommit => 0 when opening a table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16949 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 08:19:00 +00:00
zhaoertao eb102a0d36 modify man page for "rspconfig <node> USERID=\*"
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16946 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 07:13:13 +00:00
daniceexi 570cd821e3 fixed the code to display error messages
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16944 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 07:01:51 +00:00
daniceexi b4a5ddf4dc two changes: 1. run mount -a anyway to make sure the osimage has been mounted from MN; 2. set the STDIN/STDOUT/STDERR to /dev/null so that mpss start can daemonized cleanly
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16943 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 06:45:27 +00:00
daniceexi c28fe1ef3b defect 3685: fixed the source path for link /opt/xcat/share/xcat/cons/mic
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16940 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 06:20:31 +00:00
wanghuaz a20d2ed496 Fixing a problem on sles that we need to use tar --wildcards option while extracting a file from kit tarball.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16939 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 05:24:13 +00:00
xq2005 965059d45c bug 3684, configeth on ubuntu/debian need File::Path
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16937 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 05:04:19 +00:00
xq2005 3f38f26761 bug 3684, configeth on ubuntu/debian need File::Path
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16936 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 03:22:07 +00:00
xq2005 223002d905 bug 3684, configeth on ubuntu/debian need File::Copy
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16935 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 03:12:04 +00:00
jjhua 35457cb9ac fixed bug 3682. In some case, the attribute BOOT_IMAGE added into the /proc/cmdline, using another method to get the nex-server value to fix this issue.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16930 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-10 09:07:38 +00:00
wanghuaz 39501e0b6c Fixing bug 3643: remove createrepo from buildkit spec and add error check while using it.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16929 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-10 09:07:25 +00:00
xq2005 cb8a813820 bug 3679, delete all ib nics' configuration files before configure them
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16927 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-10 09:06:42 +00:00
wanghuaz 624a45bfa3 Fixing bug 3669: passing envlist to yum upgrade command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16924 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-10 08:27:51 +00:00
xq2005 793cb090c4 bug 3678, does not display the error message
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16923 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-10 08:23:04 +00:00
phamt f099ffd1a5 Enable noderes.primarynic to be specified and used during nodeset.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16922 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-09 21:07:17 +00:00
lissav 49aad9e6bd fix 3668 Ubuntu also
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16920 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-09 16:41:25 +00:00
lissav 465c5471a0 fix defect 3668
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16918 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-09 16:30:51 +00:00
phamt 9524019f0b Fixed the target disk address to be the same as the source disk address in cloning.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16916 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-09 12:30:20 +00:00
phamt b12951579b Fixed the target disk address to be the same as the source disk address in cloning.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16915 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-09 12:26:42 +00:00
lissav 1d2391454e fix spelling
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16906 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-08 18:41:02 +00:00
phamt f15ce9f06e Disable IPL column if advanced tab is selected on xCAT-UI z/VM provision page.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16905 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-08 13:14:38 +00:00
xq2005 e5e7e4687d get the current configured static ip address in configeth
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16904 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-08 09:16:31 +00:00
xq2005 75bfe9b646 build the ubuntu packages
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16902 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-08 07:14:10 +00:00
xq2005 1144077591 build the ubuntu packages
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16901 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-08 07:10:42 +00:00
immarvin 8ea54a435f update node provision status based on the feedback of nodes instead of rpower/rnetboot for ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16899 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-06 13:41:38 +00:00
xq2005 42b3c0c596 get the timzone automatic on ubuntu/debian
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16896 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-05 07:11:28 +00:00
daniceexi 7ed707c67b defect 3673: fix a typo which affects the nodeset next
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16894 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-05 07:10:30 +00:00
xq2005 1bb5051da7 roolback to the last version
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16892 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-05 06:59:22 +00:00
xq2005 95226fa3a8 xCAT::TableUtils->enablessh in postage.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16890 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-05 06:16:41 +00:00
jjhua 23d64d7acc chef client/workstation installation based on the cfgmgt table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16888 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-05 03:28:53 +00:00
jjhua 55fc5d4064 modifiy the install chef server/client/workstation scripts and the mypostscript.tmpl to support the cfgmgt table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16886 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-05 02:17:44 +00:00
xq2005 b20ccd2905 add the double quote for --otherpkgdir option in genimage.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16883 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-05 01:58:14 +00:00
phamt b802a02442 Added option to select IPL device. Added more error handling.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16881 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-04 13:49:23 +00:00
wanghuaz 987d47a43d Fixed a potential problem with kitcomponent.prerequisite that in some cases prerequisite is not removed from KIT_RMPKGS.otherpkg.pkglist during addkitcomp.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16880 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-04 05:56:49 +00:00
daniceexi 19241bce05 Make nodeset can pass parameter --noupdateinitrd to mkinstall command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16877 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-04 05:17:03 +00:00
daniceexi e7f9eadd1e Make nodeset can pass parameter --noupdateinitrd to mkinstall command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16875 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-04 05:09:44 +00:00
daniceexi acc28bb0ed Enhance of initrd hack: Additional drivers loading from osdistroupdate and support the --noupdateinitrd for nodeset command to avoid the initrd hack
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16873 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-04 05:03:10 +00:00
mellor 1dd5758ff7 defect 3670 - add xcatd reload to post section for xCAT-OpenStack rpm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16872 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-03 15:31:59 +00:00
phamt 05778c7853 Simplified z/VM provision page by abstracting the creation of the user directory entry.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16870 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-03 14:27:36 +00:00
creativezj ca700dca54 fix nodeimport same ip error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16869 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-03 14:05:03 +00:00
xq2005 fa4a8e6e28 use 'mac' by default if installnic and primarynic are not defined
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16867 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-03 07:59:12 +00:00
jjhua 90c22ee298 in some of the mlnxofedinstall script from Mellanox OFED iso, there is not --nodeps to uninstall the libibverbs package. But the new pe kits are depended on the libibberbs. So I add the rpm -e --nodeps --allmatches libibverbs in mlnxofed_ib_install to uninstall the libibverbs before invoking the mlnxofedinstall script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16866 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-03 06:11:41 +00:00
daniceexi 10986247e3 To make the mount of /install check to be accurate.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16864 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-03 03:14:56 +00:00
phamt 559c75e567 Added option under rinv to collect z/VM user profile names.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16862 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-02 20:43:58 +00:00
phamt dc432e7139 Added option under rinv to collect z/VM user profile names.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16861 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-02 20:34:09 +00:00
immarvin 2e3dd4761e correct the return value of filter_nostatusupdate
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16860 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-02 08:06:36 +00:00
leiaibj 2b2d482aac Merge commit 16858 from trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16859 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-02 02:36:49 +00:00
wanghuaz 1ef39d6ef8 Fixing bug 3409, added the handle for postscripts, missing in last checkin.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16856 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-01 10:17:28 +00:00
daniceexi 3260c52a35 defect 3660: display the correct message when run nodediscoverdef command defines a request a node which has not correct IP.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16854 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-01 09:10:18 +00:00
xq2005 ec54b30aa4 add changelog for building xcat-openstack on ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16852 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-01 07:59:21 +00:00
xq2005 804fd22cf2 change the source format into 1.0 on ubuntu/debian
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16851 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-01 07:53:40 +00:00
wanghuaz b58ab630a6 Fixing bug 3659: adjust the file order to work in some specific scenario
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16850 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-01 07:49:44 +00:00
xq2005 b27065d834 build xcat-openstack on ubuntu/debian
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16847 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-01 07:33:10 +00:00
wanghuaz e917ce1579 fixing several kit related bugs: 3657,3629,3409. the major change is now addkitcomp -a will add its dependency recursively, and in each level, it will check if the dependency fits to the osimage.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16841 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-01 02:24:15 +00:00
daniceexi 3ddb75d072 add symbol link from share/xcat/cons/kvm to share/xcat/cons/mic
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16839 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 04:38:55 +00:00
daniceexi 3724aed861 Code drop for Xeon Phi (mic) support. manage the image for mic.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16834 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 04:26:38 +00:00
daniceexi 4d3ee33232 Code drop for Xeon Phi (mic) support. The plugin to handle the rpower, rinv, nodeset, rcons commands for mic
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16833 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 04:25:58 +00:00
daniceexi 3910ec03e1 Code drop for Xeon Phi (mic) support. manage the image for mic.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16832 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 04:24:14 +00:00
daniceexi b08b9a3c77 Code drop for Xeon Phi (mic) support. Ron on host to flash the mic
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16831 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 04:23:20 +00:00
daniceexi f787c85ddc Code drop for Xeon Phi (mic) support. Run on host node to configure the mic (network,hostname,onboot,vlog)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16830 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 04:22:22 +00:00
daniceexi 201f9895ed the permission has problem
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16829 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 04:19:27 +00:00
daniceexi 33693f8486 Code drop for Xeon Phi (mic) support. Run on host node to configure the mic (network,hostname,onboot,vlog)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16828 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 04:18:19 +00:00
daniceexi 0f9d930de3 Code drop for Xeon Phi (mic) support. Add the usage message for mic
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16823 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 03:50:22 +00:00
daniceexi e20198b86b Code drop for Xeon Phi (mic) support. Add the mic table.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16822 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 03:49:31 +00:00
daniceexi 2959fea562 Code drop for Xeon Phi (mic) support. Add the rscan to scan mic from x86 host node
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16821 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 03:48:32 +00:00
daniceexi 7e90f3e8ea Code drop for Xeon Phi (mic) support. add the handling of tar format src to call the copytar command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16820 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 03:47:58 +00:00
phamt 9af0a72bfc Changed tabs to spaces. Fixed error in xcatconf4z script.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16819 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-28 18:14:52 +00:00
wanghuaz f570a29c5c Fixing bug 3653: with more than 9 new_install_list sessions in otherpkgs.pkglist, perl 'sort' take the integers as string, and so does not sort the order correctly
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16818 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-28 06:30:24 +00:00
jbjohnso 26e8951512 Restore xcatws understanding of existing code
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16816 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 19:09:17 +00:00
phamt 7ad5f1a53a Removed unnecessary use statement.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16814 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 18:59:34 +00:00
lissav a5e8f44514 Add they are not hierarchical
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16812 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 16:51:24 +00:00
lissav cb290f429d Add they are not hierarchical
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16811 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 16:39:30 +00:00
phamt 9f9c6d2c79 Fixed bug in xCAT-UI where empty inputs are not set as empty values in the policy table.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16810 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 15:25:13 +00:00
xq2005 aa9d9140d0 upload the promote tar ball to xcat/<version>.x_Ubuntu/
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16808 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 14:42:25 +00:00
lissav f4dca63e79 fix defect 3461
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16806 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 14:02:14 +00:00
xq2005 1c027a87d7 delete useless ip alias in configeth
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16805 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 13:51:51 +00:00
xq2005 0916af5577 delete useless ip alias in configeth
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16804 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 09:18:04 +00:00
ligc d4816f7159 fix for bug 3648: set xCAT::Client::EXITCODE=1 with error communication with the xCAT server seems to have been ended prematurely
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16802 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 08:22:32 +00:00
immarvin 4e54ba0682 add discinfo of centos5.9
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16800 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 08:12:00 +00:00
jjhua 396d8b304f defect 3598 , the compute.tmpl was only checked into trunk, and not in 2.8. Checked it into xCAT 2.8
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16799 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 07:22:26 +00:00
bp-sawyers c2afea1cb8 fix building of xCAT-OpenStack
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16798 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 07:03:45 +00:00
immarvin d7d330966d sync code with rh,add localdisk support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16796 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 06:15:56 +00:00
xq2005 b9377d7251 configeth support on ubuntu/debian
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16795 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 06:09:09 +00:00
immarvin d3846f47f8 add new dracut scripts to support status feedback
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16794 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 06:09:05 +00:00
immarvin 9c2a7d275b add new dracut scripts to support status feedback
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16793 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 05:51:04 +00:00
immarvin ec5be914c9 update node provision status based on the feedback of nodes instead of rpower/rnetboot
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16792 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 05:10:49 +00:00
immarvin 16e0d2179a update node provision status based on the feedback of nodes instead of rpower/rnetboot
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16791 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 04:59:44 +00:00
immarvin 869ae04a45 git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16790 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd 2013-06-27 04:55:39 +00:00
immarvin 80f923b96c update node provision status based on the feedback of nodes instead of rpower/rnetboot
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16789 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 04:24:17 +00:00
immarvin ef8b638460 add a subroutine filter_nostatusupdate to support updating provision status thru feedback instead of rpower/rnetboot
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16788 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 04:11:30 +00:00
zhaoertao de974743c9 delete internal information for rspconfig <celogin1>
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16786 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 03:23:36 +00:00
jjhua 5f97813937 accept Bruce's suggestion, not re-copy the hash every time. And it's really more efficient to have an inner foreach that just adds the keys to the hash
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16784 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 01:26:23 +00:00
mellor 3a5af60c3f build tool changes for new xCAT-OpenStack rpm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16777 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 18:50:51 +00:00
mellor c1bad5bcf6 files for new xCAT-OpenStack rpm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16776 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 18:48:02 +00:00
lissav 611a5ff463 fix defect 3641
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16774 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 18:08:14 +00:00
jbjohnso dbd453d0a6 Have rvitals avoid requesting the same sensor multiple times
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16773 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 17:26:16 +00:00
mellor 0ae570f73d add new cfgmgt table to xCAT database
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16771 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 15:36:33 +00:00
nott d80d963951 enhance msgs for cpcosi error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16769 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 13:53:58 +00:00
chudegao af005c6a31 fix #218490:There is no any case-sensitive checking of mac address when import the node by hostinfo file.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16765 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 09:41:04 +00:00
xq2005 707e24b981 change the Maintainer to xCAT when building genesis base on ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16762 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 07:37:10 +00:00
xq2005 58249c8b14 change the Maintainer to xCAT when building packages on ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16759 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 07:30:41 +00:00
jjhua b5765f2fcf defect 3605. correct the nodesetstate value.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16758 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 06:59:36 +00:00
xq2005 10caf24da8 for bug 3438 on ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16755 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 06:54:52 +00:00
xq2005 5435fec0e5 upload the GA build on ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16754 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 06:10:43 +00:00
lissav eaf843d6c4 fix defect 3642
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16751 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-25 15:29:10 +00:00
lissav 0716b8596d fix defect 3642
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16749 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-25 14:54:38 +00:00
xq2005 b0805684cc bug 3563, fix the post install script error when install xcat-genesis-base-amd64
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16747 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-25 14:02:32 +00:00
phamt b14a373512 Make IP and hostname optional when configuring the group for the self service page.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16746 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-25 14:00:37 +00:00
xq2005 f0872d459e bug 3474 for removing the rpm error message on ubuntu/debian
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16745 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-25 13:53:28 +00:00
jbjohnso ab3a23346b Fix problem where dbworkersocket rename could indicate a missing path
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16742 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-25 13:28:26 +00:00
jjhua cf06cc036d defect 3605. 1, change ENABLESSHBETWEENNODES=$ENABLESSHBETWEENNODES in the template, and add new subroutine TableUtil::enableSSH() 2, change NODESETSTATE=$NSETSTATE in the mypostscript.tmpl, and invoke the xCAT::SvrUtils->getNodesetStates()
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16741 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-25 10:33:05 +00:00
jjhua 0b410a596b defect 3605. 1, change ENABLESSHBETWEENNODES=$ENABLESSHBETWEENNODES in the template, and add new subroutine TableUtil::enableSSH() 2, change NODESETSTATE=$NSETSTATE in the mypostscript.tmpl, and invoke the xCAT::SvrUtils->getNodesetStates()
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16740 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-25 10:31:23 +00:00
immarvin 9799ef78e6 update the nodelist.status to installing/netbooting via feedback from node during provision
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16738 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-25 07:16:57 +00:00
phamt 73fb28f6d0 Added a hypervisor field in the storage table to handle z/VM native SCSI disks. In z/VM native SCSI disks must be configured for one or more hypervisors before they can be used.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16735 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-24 14:24:46 +00:00
lissav a758cdf573 fix defect 3642
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16733 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-24 12:56:11 +00:00
xq2005 9d65034701 find SHA.pm in /usr/lib/perl on ubuntu/debian
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16730 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-24 07:36:44 +00:00
creativezj 11df32128f fix nodeimport generate ip error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16728 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-24 07:16:19 +00:00
lissav 22468165b6 add req->{status} to runxcmd for defect 3641
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16725 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-23 10:50:24 +00:00
lissav 5c045ed61c add example of plugin to plugin call
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16724 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-22 11:59:35 +00:00
lissav e2684acebe fix defect 3639
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16719 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-21 17:00:46 +00:00
lissav c48f202bdd fix defect 3639
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16717 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-21 10:28:17 +00:00
wanghuaz 89ba8006f4 fixing bug 3608: give error msg while kitrepo is not valid for 'buildkit cleanrepo <kitrepo>' command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16715 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-21 01:19:09 +00:00
lissav e57868c1c6 fix defect 3637
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16713 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-20 13:00:24 +00:00
wanghuaz 38cea20397 Fixing bug 3636 for error msg outputing
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16709 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-20 03:47:57 +00:00
duowang 2f669c1ac6 enhanced profilenodes.pm to acquire chain attribute from hardwareprofile and append it to the node
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16707 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-20 03:22:46 +00:00
zhaoertao d5e329e4c7 supportting x222 in "rscan cmm"
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16705 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-20 03:19:41 +00:00
linggao 34bb809cc4 enhance postscrit perfomance when getting monitoring variables. defect 3605
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16703 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 20:13:12 +00:00
phamt c2cd84dbca Changed xcatconf4z logging.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16702 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 20:04:58 +00:00
phamt 0edc77694f Undo some disabled buttons made with last checkin.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16700 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 19:24:53 +00:00
bp-sawyers 8ac0f31915 require xCAT-buildkit so it is installed by default
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16699 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 19:00:11 +00:00
phamt 4ce4e7c0fd In imgcapture, added option for specifying device to capture (only s390x). In rmimage, added support to remove provmethod = raw (native SCSI/FCP) images. In imgimport and imgexport, added remote host option to download from a node not managed by xCAT, fixed indentation issues, and added support for provmethod = raw (native SCSI/FCP device image)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16693 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 16:01:18 +00:00
phamt 69f6fa5693 Added support for capture and deploy of system images for z/VM. This includes capturing ECKD/FBA and native SCSI/FCP devices. Each device is captured and stored as an image (.img) file. Note that mkvm has to be used to create the VM definition and chvm has to be used to add the disks. nodeset is used to put the .img contents onto existing disks.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16692 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 15:58:26 +00:00
phamt edbad6e498 Updated REST-API to support more xCAT commands and more z/VM options.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16691 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 15:26:59 +00:00
phamt f5a31b7f4f Fixed bugs in xCAT-UI: fixed spacing issues, set default commands for guest users, set default arch and hypervisor for add z/VM node, and fixed dialog for adding SCSI/FCP device directly using WWPN & LUN.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16690 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 15:25:12 +00:00
lissav c68a422c44 defect 3617
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16688 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 11:53:35 +00:00
immarvin 3d06ddda0d correct some typo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16687 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 08:26:21 +00:00
immarvin f890d03ef3 add nonodestatus to kcmdline for both nfs-based statelite, ramdisk based statelite and stateless
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16686 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 08:24:34 +00:00
immarvin 9ecfc50b91 busybox awk does not support network socket writing, use nc instead
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16685 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 07:55:54 +00:00
immarvin 78af39e06f close file handle after writing
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16684 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 07:32:34 +00:00
immarvin 645c602ce2 update the nodelist.status to installing/netbooting via feedback from node during provision
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16683 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 07:28:32 +00:00
immarvin a6aab0c6d0 update the nodelist.status to installing/netbooting via feedback from node during provision
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16682 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 06:55:03 +00:00
sjing 592a0d508c add "sysclone" as a valid osimage.provmethod.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16680 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 03:37:20 +00:00
wanghuaz 7d5bcba0d5 fixing bug 3179: adding a sleep and reorder the steps
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16678 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 03:34:17 +00:00
creativezj 594facc9a0 fix nodeimport generate brocadcast ip or gateway ip
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16676 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 02:39:52 +00:00
ligc e2d8a38928 fix for bug 3630: typo with opt_nc and opt_c
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16674 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 01:38:20 +00:00
jbjohnso b6969b9817 Correct deref in previous commit
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16669 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 17:07:40 +00:00
jbjohnso cd406905a8 Change flexdiscover to separate imm and cmm search
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16668 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 17:07:34 +00:00
jbjohnso be3e25ce00 Add support for flexdiscover to work with x222 servers
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16667 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 17:07:27 +00:00
jbjohnso e4d371d2e8 Fix problem with getipmicons
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16666 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 17:07:21 +00:00
jjhua 0244b031cf fixed bug 3605
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16662 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 09:07:02 +00:00
creativezj 8fac597977 fix modify multiple nodes profile error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16660 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 08:28:02 +00:00
sjing 6738d6caba bug2830 - use xCAT::TableUtils->get_site_attribute("installdir") instead of gettab.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16657 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 08:06:28 +00:00
jjhua 30c92ba536 fixed bug 3605, improve the code according to Bruce's suggestion, except xCAT_monitoring::monitorctrl->getNodeConfData()
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16656 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 07:42:29 +00:00
creativezj cff0e482eb fix regenerate ip error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16653 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 05:02:53 +00:00
lissav 47fc94d842 modify limitation on policy table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16648 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-17 18:13:26 +00:00
lissav 60ca873f6c fix defect 3625
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16645 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-17 17:33:48 +00:00
lissav c5bba25f7e fix defect 3625
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16643 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-17 15:57:39 +00:00
immarvin a55349b5af update the nodelist.status to installing/netbooting via feedback from node during provision
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16642 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-17 15:13:41 +00:00
lissav d1b41732b5 document non supported fields in policy table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16640 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-17 12:35:56 +00:00
daniceexi db6e509b4a defect 3619: backup the req before dispatch to a xCAT module and recover it after the dispatch
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16639 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-15 10:47:27 +00:00
billwajda 252e7dd3de Support for bug 3623: support for removing nics on linux (Tested on redhat 6.3. confignics modified to take -r flag and configeth is modified to take -c nics to configure and -u nics to unconfigure. configeth has not been updated for AIX yet and configib has not been updated yet.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16637 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-14 18:54:50 +00:00
jjhua b2838fdca8 fixed bug 3569, add #INSTALL_SOURCES# to the storage template file
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16632 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-14 08:18:28 +00:00
xq2005 0ef6f64ab2 makeroutes support on stateless debian/ubuntu nodes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16629 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-14 07:23:59 +00:00
xq2005 4e7720631b makeroutes support on stateless debian/ubuntu nodes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16628 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-14 07:03:49 +00:00
nott c4a211ddd3 cleanup comment
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16624 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-13 15:17:51 +00:00
nott 6e3206d31d clarify cleantar option
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16622 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-13 15:12:42 +00:00
nott 1dfe0cb135 make cleantar remove ALL tar files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16620 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-13 14:35:36 +00:00
lissav f53574d1c6 checkin for defect 3613
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16616 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-12 12:59:11 +00:00
bp-sawyers 5d4aace149 remove man pages for tools mkrrbc and mkrrnodes that were removed previously
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16615 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-12 12:30:02 +00:00
daniceexi 961c3951e6 For auto created bmc, add it to hosts.otherinterfaces instead of creating a new entry in the hosts table for bmc individually. That means auto created bmc will not be a individual node.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16613 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-12 02:57:33 +00:00
nott dcde28a213 allow kit location and kit name to be different
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16610 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-11 14:50:38 +00:00
nott bc386fd56a more - better description of kit location
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16609 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-11 14:46:21 +00:00
nott 636d866a40 better description of kit location
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16607 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-11 13:00:10 +00:00
lissav 36c4a83005 defect 3613
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16602 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-10 19:58:47 +00:00
lissav 2649d44ed4 defect 3613
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16601 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-10 19:56:32 +00:00
lissav e057ae26fd defect 3613
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16600 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-10 19:55:27 +00:00
jbjohnso 8754a7ee0c Avoid reapers trouncing $! for other system calls
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16598 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-10 14:43:50 +00:00
daniceexi 193bea48f6 added the checking of path for runimage, if cannot download, display an error message for nodeset command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16595 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-09 09:17:39 +00:00
daniceexi 685e039254 defect 3612: add one line to handle variable like in the runimage; And added the checking code logic to display error message if wget failed
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16593 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-09 09:14:24 +00:00
daniceexi 6a72e5feb6 fix the issue that nodediscoverdef -u -n command cannot move the discovered node to next destiny. And also formatted the indention that replace the tab with four space
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16591 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-08 23:39:56 +00:00
daniceexi f6c559ca0a Change the code logic that get bmc name from ipmi.bmc instead of using default <node>-bmc. If user uses hostiprange or bmciprange and did not define ipmi.bmc, the default bmc name will be <node>-bmc.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16589 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-08 23:32:38 +00:00
wanghuaz 03584e81fb update addkit command according to revision 16568 for kit framework
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16586 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-08 09:28:28 +00:00
ligc d7bc639fc6 include hamn scripts cronEdit, activate-mn and deactivate-mn
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16584 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-08 08:31:31 +00:00
ligc 5b846b46a4 Two scripts active-mn and deactive-mn for HAMN configuration, based on scripts from John Williams
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16583 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-08 08:24:47 +00:00
ligc 07023c0634 add a new tool cronEdit, to edit crontab entries in scripts. Based on the script from John Williams
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16582 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-08 08:23:18 +00:00
sjing 756c176f53 bug 3478 - exclude the net with external namesserver configured from dns zones.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16581 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-08 07:18:19 +00:00
wanghuaz dabe1aafca Fixing bug 3610: not add prerequisite to full kit if there is no 'prerequisite' in kit.conf of partial kit
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16578 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-08 04:58:26 +00:00
nott 422c7cfef4 clarify alt client cleanup
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16576 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-07 17:37:03 +00:00
bp-sawyers 37a2bfde40 Add hfi option to rbootseq man page
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16574 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-07 14:01:35 +00:00
nott 1ea7732f00 add #'s
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16571 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-07 13:22:54 +00:00
nott 25bfbdee5e remove xCAT dependencies
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16569 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-07 13:15:59 +00:00
nott 9585feebb8 add kitloc, create_frameworks, and misc updates
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16567 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-07 13:08:28 +00:00
zhaoertao 5921d3cd95 adding predefined groups based on hardware types
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16564 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-06 03:22:53 +00:00
immarvin e8d1d7cf00 if nodetype.provmethod is not set, use install as default value; call rsetboot net to set boot over network for ipmi nodes before rpower
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16562 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-06 03:14:34 +00:00
wanghuaz 0479d3682c not export buildkit -n option by default.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16560 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-06 00:47:28 +00:00
bp-sawyers b1c996ad2e fix xCATsn install problem running mknb
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16559 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-05 23:05:05 +00:00
bp-sawyers 5985c790d0 stop building i386 version of xcat pkgs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16557 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-05 21:01:34 +00:00
nott f5bb7a2bc6 kitloc and misc updates
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16553 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-05 16:59:28 +00:00
lissav 0cb3d901d8 fix defect 3603
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16551 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-05 16:25:31 +00:00
jbjohnso f930deea97 Have syswrite retry on EAGAIN or ECHILD
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16550 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-05 14:04:34 +00:00
jbjohnso 8d855e9e20 Have xcatd recognize EAGAIN and ECHILD as equivalent in syswrite due to flawed platform behavior
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16549 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-05 14:04:28 +00:00
duowang 0df81a3dfa modified method gen_new_hostinfo_string() in profilenodes.pm to sort the nodes' name
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16545 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-05 10:34:30 +00:00
wanghuaz b662046e19 code checkin for ordering rpm installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16544 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-05 07:29:31 +00:00
jbjohnso aedb671f1b Have kvm update vm.memory if chvm is called
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16538 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-04 18:45:52 +00:00
jbjohnso aba2b94d5c Recognize some common variants on chvm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16537 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-04 18:45:45 +00:00
jwsimpson 1cd456419a Updated to add comments only
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16534 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-04 17:52:59 +00:00
sjing 726c05134c support adding/removing nichostnames as well as the given noderange
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16531 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-04 08:20:52 +00:00
jjhua 8945c5ca33 remove the #INSTALL_SOURCES# from some .tmpl
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16528 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-04 07:49:02 +00:00
jjhua 24a2928e03 service node pool supports for sles
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16527 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-04 07:43:19 +00:00
jjhua d991d97332 service node pool supports for sles11
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16526 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-04 07:40:23 +00:00
creativezj 2b35adf1f8 fix multiple nics problem
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16525 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-04 06:05:39 +00:00
lissav d4d56cbc91 fix code assumes only XCATSERVER entry in xcatinfo, we have now added NODE
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16522 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-03 15:36:10 +00:00
immarvin 8210f4d82a add code comments
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16519 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-01 12:13:14 +00:00
nott b8e32de9c8 add workdir
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16518 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 19:51:52 +00:00
nott 607a2cc927 add support for workdir and new spec attrs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16515 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 19:23:10 +00:00
nott 581739c5e5 add holders for new attrs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16513 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 19:07:07 +00:00
nott 608ecae96e add new attr descriptions
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16511 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 19:02:54 +00:00
jbjohnso 52a0a5a4f4 Serial console and vdagent support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16510 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 18:50:03 +00:00
lissav f170fe9c0f remove LInux restricction on precreatemypostscript
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16509 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 18:48:51 +00:00
lissav 223d288cff redesign to match more closely the processing in xcatdsklspost
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16504 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 18:33:47 +00:00
lissav f9841836f9 add new lines for array return
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16503 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 18:30:00 +00:00
immarvin 4e9d9d0b7a fix defect #3463 rinstall does not support provmethod=osimagename
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16501 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 10:33:15 +00:00
jjhua 268d20215e improve the code for last checkin
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16498 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 08:48:53 +00:00
jjhua 3a71acedeb for rhels6, move the repos generattion to pre-script in kickstart
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16494 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 08:29:20 +00:00
jjhua 09f4a16b24 use the variable INSTALL_SOURCES_IN_PRE
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16493 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 08:26:35 +00:00
jjhua 61effb412e use the variable INSTALL_SOURCES_IN_PRE
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16492 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 08:22:40 +00:00
jjhua 4b75dd3c03 for rhels6, move the repos generattion to pre-script in kickstart
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16491 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 08:05:44 +00:00
jjhua 456bd50c46 for rhels6, move the repos generattion to pre-script in kickstart
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16490 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 08:03:24 +00:00
jjhua f1cd22e0f8 for rhels6, move the repos generattion to pre-script in kickstart
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16489 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 08:01:41 +00:00
jjhua 4b57fe95f4 service node pool does not support system X rhels5.x
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16488 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 07:59:43 +00:00
jjhua 310287347a service node pool support for system x rhels6.x
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16487 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 07:55:56 +00:00
jjhua 5b497df6e3 move the repos generation to pre-scripts in kickstart for rhels6 ppc64
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16486 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 07:54:18 +00:00
jjhua 8e64beb962 service node pool support for system X rhels6.x
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16485 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 07:51:08 +00:00
jjhua 4cdc6dab13 service node pool support for system X rhesl6.x
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16484 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 07:44:08 +00:00
jjhua 61569206a1 service node pool supports for system X rhels6.x
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16483 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 07:19:06 +00:00
wanghuaz 040ae224e5 fixed the problem that xcat failed to replace some system environments if there are mulitple levels of #INCLUDE. we should firstly expand the #INCLUDE and then to replace the system environements
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16482 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 06:53:35 +00:00
jbjohnso 9980daedc4 Add some chassis status support to rvitals
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16480 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-30 14:47:29 +00:00
lissav 81ec3ad929 get rid of duplicate messages on updatenode -k
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16477 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-30 11:47:00 +00:00
xq2005 962772547d sudoer support on ubuntu/debian
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16475 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-30 09:03:02 +00:00
daniceexi 3341f2399b force to boot from pxe before the reboot in the genesis
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16473 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-30 08:45:42 +00:00
sjing a5ec8dcc36 use reboot in genesis instead of shutdown. Add a check for rsync service to make sure it's running.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16470 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-30 06:11:56 +00:00
amy0701 66f9824509 change rhsn to 23619SN in testcase linux_cn_with_sn_statelite_installation_x86_64_redhat
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16467 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-30 03:21:09 +00:00
amy0701 348ccaf564 add test bundle for x86_64
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16464 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-30 03:01:41 +00:00
jbjohnso 41aa89541c Fix autoula windows scheme to use the delimiter for mac that windows prefers
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16463 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 18:08:48 +00:00
immarvin 8a476a618b fix defect #3599 syslog-ng is shutting down in sles xCAT MN Edit, enable the settings that will log to local files in syslog-ng
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16458 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 12:21:38 +00:00
lissav 27ba4fcdbe defect 3596
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16452 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 11:31:59 +00:00
lissav 4fd57c08e5 defect 3596
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16451 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 11:30:30 +00:00
lissav 95b4be91eb defect 3596
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16450 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 11:29:22 +00:00
jjhua 8d2eeda1b3 fixed bug 3598 for PCM Ai Lei, support it for rhels5.9.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16447 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 07:49:44 +00:00
jjhua c48d82729c remove the code which passes the into the subvars() in Template.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16446 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 07:48:48 +00:00
jjhua a2fb35c9c5 fixed bug 3598 for PCM Ai Lei, support it for rhels5.9.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16441 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 07:22:22 +00:00
jjhua 3154df9b77 fixed bug 3598 for PCM Ai Lei, support it for rhels5.9.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16440 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 07:19:12 +00:00
asirxing 47fbbd2230 Move codes to call makedns and makehosts for kitnoderemove request from 00kitnodebase.pm to profilednodes.pm as other kitnoderemove plugins need the node name for some operations
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16439 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 03:51:34 +00:00
jbjohnso aa01feda37 Try to correct autoula function in windows
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16437 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-28 18:21:53 +00:00
lissav a8323e599a use NODE name defined in /opt/xcat/xcatinfo file, if there
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16434 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-28 13:53:47 +00:00
lissav 62e8e445b9 up tablespace of servicenode for DB2 , it is close to the8K limit, if more attributes added we would be over
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16432 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-28 12:28:39 +00:00
lissav ea7577eb8f add NODE=<nodename> to kcmdline
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16430 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-28 12:24:30 +00:00
xq2005 8c4dfd3470 makeroutes support on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16422 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-24 09:48:00 +00:00
ligc 019f6da484 fix for bug 3593: check_options error with makedhcp -s statements
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16419 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-24 09:22:34 +00:00
xq2005 ce63e80e96 change tabs to spaces
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16418 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-24 09:09:01 +00:00
xq2005 91fc845782 routeop support on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16416 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-24 08:38:48 +00:00
xq2005 dbd59da228 change tabs to spaces
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16413 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-24 06:21:42 +00:00
lissav 1f963dc243 fix for 3591
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16410 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-23 19:08:38 +00:00
zhaoertao e0c25f0672 enhancement of "rspconfig noderange USERID=<password>"
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16407 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-23 08:13:22 +00:00
qyin cbdd1d4a9a fix #215702 nodeimport can import the same host info file for switch auto discovery twice or more
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16406 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-23 08:01:58 +00:00
xq2005 273c3098fc change tabs to spaces
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16404 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-23 03:10:33 +00:00
lissav d3590828a7 fix defect 3580/3586
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16402 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-22 18:30:07 +00:00
jbjohnso dd66c4427a Add event log cmdlets to powershell
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16400 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-22 18:15:55 +00:00
jbjohnso 2cb38161a8 Add some more commands, have powershell recognize the multiple natures of data elements in api
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16399 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-22 18:15:50 +00:00
jbjohnso 2660c46a24 Fixes and trimming of exported internal function
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16398 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-22 18:15:45 +00:00
lissav 3ae9f03fe1 remove unused getNodeSpecAttribs routine
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16397 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-22 17:24:31 +00:00
lissav 0ed2145239 improve grep for error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16394 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-22 17:06:06 +00:00
daniceexi 546bf507ab support the predefined bmc is set in the hosts.otherinterfaces
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16393 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-22 14:58:46 +00:00
lissav b13c713888 support long hostnames
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16390 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-22 12:41:14 +00:00
lissav 29aa9d83a7 cleanup tmp files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16389 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-22 12:40:06 +00:00
zhaoertao a7537857db fix bug 3583: mkhwconn -s cannnot work for firebird in rh mn
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16386 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-22 06:13:18 +00:00
lissav af3ac58d23 remove version 2
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16384 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-21 18:16:33 +00:00
lissav fb453010c4 fix getpostscript.pm call (noversion)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16382 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-21 18:11:46 +00:00
lissav 607866fb4a fix defect 16288, verified with Jarrod
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16379 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-21 14:33:15 +00:00
jbjohnso aa5e95f28a Commit powershell files to windows style line wrap in case of notepad
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16377 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-21 13:00:43 +00:00
jbjohnso df158b4411 Try to make powershell module more tolerant of pathing situations
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16376 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-21 13:00:38 +00:00
jwsimpson 57bfbd67ad updates to dhcp.pm to fix the problem with plugins calling it without arguements
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16374 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-21 12:22:17 +00:00
xq2005 4d3bfb86c9 ubuntu provision need the mirror/http/hostname configuration
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16373 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-21 08:28:04 +00:00
sjing 944a84bc0a new otherpkg list for sysclone
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16371 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-21 06:49:15 +00:00
jbjohnso fd942bcf5a Fix problem when request did not have adequate arg in dhcp.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16368 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-20 17:59:46 +00:00
jbjohnso 3456243248 Fix error in vbscript
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16366 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-20 14:56:32 +00:00
bp-sawyers 7731929803 Add genericrange option to noderange function so we can remove NameRange.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16364 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-20 13:14:26 +00:00
lissav ee3e6061f0 Add setup of postgresql
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16362 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-20 11:02:04 +00:00
lissav b784427dbd fix defect 3575
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16358 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-18 10:21:20 +00:00
jbjohnso e439bfa3d9 Note to future self about tabooseq scope
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16357 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-17 20:55:10 +00:00
phamt f4b3f09bb0 Fixed issue with AutoYast where it expects the FCP channel, WWPN, and LUN to all be in lower-case. Otherwise, AutoYast would not find the SCSI/FCP device.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16355 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-17 20:20:59 +00:00
jbjohnso cd354d6634 Have fixupunattend check the process, user, and system environment space for value before giving up (MS env handling is madness)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16354 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-17 14:28:48 +00:00
jbjohnso 5562af5751 Provide hook for OS volume selection
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16353 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-17 14:28:40 +00:00
zhaoertao 4896b906d4 the feature:enhancement of rspconfig for blacktip blade
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16348 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-17 09:22:32 +00:00
zhaoertao 2e53f21b7d fix bug 3578: "rscan cmm -u|-w" will write information of System p blade into ipmi table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16346 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-17 02:40:15 +00:00
ligc 97f11587b0 fix the issue with XCATHOST=ipv6-lla%eth0:3001 and remote xcatd
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16345 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-17 02:39:16 +00:00
jbjohnso 07da4182ab Should someone decide to switch from generated to static password on vm(s), remove expiry if present
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16342 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 19:52:21 +00:00
jbjohnso 01ab6d41ea Remove debug output from Client
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16339 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 18:30:16 +00:00
lissav f7208c1e81 use new interface to makescript
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16338 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 17:07:33 +00:00
lissav 56d12b7105 add check for nofiles and more than one node
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16335 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 16:45:16 +00:00
lissav 1e4a3631cc more postage removal
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16333 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 16:04:11 +00:00
lissav c176287626 add info
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16332 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 15:59:46 +00:00
lissav e81e433f1e remove debug code
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16330 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 15:45:03 +00:00
lissav e514305d5e remove comment out call to writescript
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16328 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 14:19:26 +00:00
lissav 0170a13ab4 remove writescript
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16327 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 14:18:00 +00:00
jwsimpson daa650686d Update for makedhcp to support query
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16324 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 14:10:05 +00:00
lissav de0872c616 remove postage xCAT command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16323 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 14:09:18 +00:00
lissav a50b572e6e first update for enhance precreatemypostscript handling, more todo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16320 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 13:55:55 +00:00
jbjohnso f65080fb4b Support LLA with scope index XCATHOST
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16319 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 13:35:10 +00:00
daniceexi b9bac72399 add the man page for nodediscoverdef command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16317 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 13:08:17 +00:00
daniceexi 3dc5351cb4 add the manual type of discovery method
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16315 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 08:37:27 +00:00
daniceexi d10259eed1 add link for nodediscoverdef command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16312 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 08:25:42 +00:00
daniceexi 42cb3d8799 add the nodediscoverdef command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16311 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 08:19:53 +00:00
daniceexi d256906e89 filter off several inside attributes from request
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16310 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 08:19:13 +00:00
jjhua e853c4c7e2 feature-request#157 Some Improvements to the mlnxofed_ib_install script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16307 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 07:50:06 +00:00
amy0701 2ad903b713 add testcase in bat.bundle
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16305 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 07:21:34 +00:00
jbjohnso 32943f0a7a Add very thin support for x222 servers in 'blade.pm', *just* enough to facilitate discovery
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16302 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-15 15:04:53 +00:00
phamt 9a08f260ef Make IP and hostname inputs optional when configuring the group profile.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16300 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-15 14:20:55 +00:00
phamt 4b65890eca Fixed bug where the profile conf file is not updated on 1st edit. Fixed error messages in to use double quotes so that variables are interpreted.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16299 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-15 14:10:28 +00:00
jbjohnso a6c2909603 Fix networkutils to work with CIDR again
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16298 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 15:28:16 +00:00
jbjohnso 06c90dd2e6 Fix problem erroneously requiring per-net config in ipv6 case not required in ipv4 case
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16296 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 15:13:39 +00:00
jbjohnso a5ea4c5332 Fix problem where default gateway was interpreted oddly in makedhcp ipv6
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16294 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 14:52:21 +00:00
amy0701 f2fe9bd17e add testcase chdef_group_p
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16292 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 09:32:00 +00:00
ligc 38f585626d fix for bug 3574: the blank grptype means static nodegroup
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16290 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 07:17:41 +00:00
sjing cac34c9f5a back port sysclone support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16287 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 03:06:00 +00:00
sjing 985de85cad back port sysclone support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16286 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 02:47:44 +00:00
sjing e6970bd97a back port sysclone support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16284 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 02:41:44 +00:00
sjing a392cfbe78 back port sysclone support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16282 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 02:39:51 +00:00
sjing b3a9a398dc back port sysclone support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16280 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 02:33:37 +00:00
daniceexi d302ccb027 add comment to support multiple actions for the nodeset state
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16279 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 02:29:25 +00:00
daniceexi 79a7d3e4cc add comment for why the /etc/mtab needs special case
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16278 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 02:20:47 +00:00
bp-sawyers aca25db4c9 Fix noderange bug 3572 by switching back to jarrod's bracket noderange fix
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16275 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 02:18:33 +00:00
lissav 428c90336d Add NODE to the /opt/xcat/xcatinfo file
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16273 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 15:51:46 +00:00
lissav 043303d1d7 defect 3565
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16271 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 13:34:40 +00:00
lissav c600b54122 fix defecct 3554 and 3549
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16270 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 12:17:20 +00:00
lissav 62d58ee68e xdsh will send the node name in the NODE environment variable on execution, used for new precreatepostscript support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16269 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 12:14:03 +00:00
daniceexi d8f8c7e49a change the shift to get the blade server bay from 24 to 18, this may caused by the firmware update
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16268 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 11:23:34 +00:00
daniceexi d1b10a4109 Change the kernel parameter name which passed to localdisk script to indicate the action
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16267 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 11:21:02 +00:00
daniceexi d7c626da34 run localdisk in stateless
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16266 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 11:10:39 +00:00
daniceexi 48b21d9656 defect 3543: fixed the issue that /etc/ cannot be set to tmpfs. It was caused by the /etc/mtab which is a speicfic file which is needed for mount command. And move the localdisk mount point creating to genimage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16265 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 11:08:43 +00:00
daniceexi f212c3c7b3 change the mount point of localdisk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16264 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 11:03:24 +00:00
daniceexi 75980fabbf Make localdisk script do mount for stateless node. Add log to node:/.sllocal/log/
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16263 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 11:01:31 +00:00
daniceexi 5eb7f30342 create localdisk directories during genimage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16261 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 09:24:47 +00:00
zhaoertao a95e58f482 fix bug 3562:"rspconfig cmm USERID=<password>" doesn't update password properly for existing hdwr connection
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16260 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 09:23:38 +00:00
daniceexi 082db86c77 support localdisk to run on stateless
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16259 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 09:22:56 +00:00
daniceexi 05415e6588 Change the kernel parameter name which passed to localdisk script to indicate the action
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16258 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 09:20:40 +00:00
daniceexi 15ecb156d4 defect 3346: support that the argument of nodeset could be multiple actions which separated with ,; e.g. runimage=xxx,osimage=xxx
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16257 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 09:15:11 +00:00
xq2005 9736ea127e sync from trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16256 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 09:08:22 +00:00
sjing dfbfa103ec back port sysclone support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16254 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 08:50:34 +00:00
sjing 2e54ebc370 back port sysclone support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16253 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 08:48:46 +00:00
xq2005 0724220b72 sync from the trunk for hardware discovery on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16252 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 08:12:21 +00:00
xq2005 e2055a8251 sync from the trunk for hardware discovery on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16251 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 08:11:11 +00:00
xq2005 88e689b996 build perl-xCAT when build xcat package
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16250 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 08:05:28 +00:00
xq2005 e12bb46487 lsxcatd -v return error revision on debian/ubuntu(bug 3564)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16246 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 07:53:50 +00:00
bp-sawyers 73f0454a44 fix bug 3429 - noderange with multiple brackets do not show all nodes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16242 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-10 17:40:35 +00:00
nott bcf9e0aff2 add check for blank file name
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16239 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-10 16:50:58 +00:00
lissav a0f0bc1e07 update version number
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16236 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-10 14:49:09 +00:00
xq2005 16521bee18 rollback for 2.8.1 tag
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16229 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-09 01:52:27 +00:00
xq2005 a899468623 rollback fro 2.8.1 tag
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16228 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-09 01:50:07 +00:00
xq2005 a8d2c285e0 roolback for 2.8.1 tag
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16227 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-09 01:48:59 +00:00
mellor a2deab209f remove template directory. added by mistake with HPC kit build files.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16225 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-08 20:41:17 +00:00
mellor c417dedd8c remove ppedev HPC kit build files. moved to git repository in GSA
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16222 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-08 20:07:51 +00:00
mellor 2038645410 remove HPC kit build files. moved to git repository in GSA
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16221 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-08 20:06:04 +00:00
xq2005 4936c5bf4d arp command location is different between redhat and debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16219 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-08 09:53:19 +00:00
xq2005 f6e8475fc0 arp command location is different between redhat and debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16217 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-08 09:50:25 +00:00
xq2005 9b59bb8c1f upload the building packages to sourceforge by default
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16215 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-08 08:27:22 +00:00
ligc 6fc19c33fc backout changes for bug 3429, revision 16191, wait for 2.8.2
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16211 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-07 12:16:21 +00:00
zhaoertao b5a2045b3d fix bug 3552, using mp.id and ipmi.bmc to judge whether it is a x blade.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16209 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-07 10:52:21 +00:00
amy0701 815b733659 add noderange test cases into bundle
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16206 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-07 07:51:24 +00:00
daniceexi b6a22759e0 change filter_nodes subroutine that (renergy relhistogram) goto ipmi.pm and (rspconfig network|textid) goto blade.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16200 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-07 04:34:46 +00:00
daniceexi 0b08676d8c only set the groups attribute to default value when it was null
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16198 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-07 04:22:48 +00:00
amy0701 d4da62ff92 update testcase for noderange_group_intersection and noderange_individual_grp
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16197 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-07 02:41:58 +00:00
daniceexi dce814e616 Change the default bmc name to be (node name)-bmc instead of bmc(#)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16195 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-07 02:26:40 +00:00
linggao 241de0adc3 added openstack grizzly repository for ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16193 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-06 21:03:44 +00:00
jbjohnso 0ea2f46895 Attempt to correct dual bracketed noderanges
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16191 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-06 18:01:46 +00:00
jbjohnso f6907796af Fix blade to once again work correctly with bladecenter
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16188 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-06 15:25:50 +00:00
jbjohnso d3f9b881f5 Have rspconfig textid work for x86 ngp blades
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16187 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-06 14:50:11 +00:00
jbjohnso a2ac89d215 Fix problem when staticv6 failed to adequately space out a comment
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16186 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-06 14:03:19 +00:00
zhaoertao 02aa34a40e fix bug 3552 rpower/rinv getting incorrect password with Blacktip flex blade check password tables
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16183 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-06 08:48:45 +00:00
jbjohnso 421a20be05 Rely upon storage detection code in ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16180 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-03 21:05:45 +00:00
jbjohnso 562852decd Fixes for ubuntu enhancements
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16179 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-03 21:05:07 +00:00
phamt 9704b4db41 Fixed issue in user table so it parses the policy table correctly. Changed the order of the refresh button in the self-service cnfigure page.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16176 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-03 15:02:06 +00:00
jbjohnso 5b4e678952 Have nic detection happen sooner
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16175 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-03 14:07:18 +00:00
xyye f8068d6b95 remove makedhcp command for adding the unmanagement node
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16172 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-03 05:56:26 +00:00
phamt 111d0ada77 Removed code that adds the any node to the "all" group.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16170 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-02 21:56:53 +00:00
phamt a51ddf27d4 Fixed table ID used when shutdown button is clicked.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16169 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-02 21:44:21 +00:00
phamt 789c6ede3c Disabled SELinux in default kickstart template. Added check in rpower softoff to check if node is pingable, if not proceed to shutdown instead of waiting. Rearranged buttons on action bar in self-service page. Added shutdown button in nodes page to shutdown node gracefully.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16168 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-02 21:24:26 +00:00
bp-sawyers 4646d343f6 added help back into mktoolscenter
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16166 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-02 19:10:20 +00:00
jbjohnso 055629b901 Have debian no longer require setting of noderes.nfsserver
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16164 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-02 18:32:12 +00:00
bp-sawyers c2f9aae59f Updated nodediscover man pages
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16162 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-02 16:43:31 +00:00
lissav c38886fc70 fix defect 3477 PCM
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16157 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-02 11:26:31 +00:00
billwajda 6b5ce463ae added NM_CONTROLLED=no for configib and configeth and changed BOOTPROTO=none for redhat in both files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16156 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-02 10:59:37 +00:00
jbjohnso e96ada6593 Add storage detection logic to debian deploy
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16154 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-01 21:00:14 +00:00
jbjohnso f9f1d61069 Have debian support support BOOTIF autodetection
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16153 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-01 20:20:36 +00:00
jbjohnso 9a2aee8fbc Fix from Shadd Gallegos on mktoolscenter
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16151 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-01 18:30:47 +00:00
phamt 9a672c7329 Fixed how MAC address prefix is obtained by using VMCP Q VMLAN instead of using VMCP Q V NIC. VMCP Q VMLAN is more accurate for z/VM 6.2 SSI clusters.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16149 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-01 17:16:28 +00:00
phamt 4f8e82198a Changed rpower off to use Image_Deactivate with IMMED flag because without the flag, sometimes the VM would not power off correctly.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16145 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-01 14:22:01 +00:00
jbjohnso f5e89691d4 Actually fix LVM with 6.4
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16143 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-30 19:48:48 +00:00
jbjohnso 86f8818f75 Remove senseless indication of primarynic in ubuntu template, this file isn't even read until network is already up
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16141 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-30 19:31:15 +00:00
jbjohnso 962e478345 Fix problem with certain versions of libvirt and lvm storage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16140 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-30 19:28:14 +00:00
jbjohnso 636f0bd5f6 Fix problem where ubuntu needlessly mandates noderes.primarynic in one place, one to go
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16138 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-30 19:11:30 +00:00
jbjohnso 325b3cedd4 Fix problem with esxi detection of image template availability
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16136 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-30 18:53:14 +00:00
mellor c50fe660e0 defect 3546 add kit framework info to kit.conf files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16134 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-30 18:42:47 +00:00
jbjohnso de0d1d84ec Fix a problem where partition recipe was incorrectly written out
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16131 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-30 17:48:02 +00:00
mellor 06a0dcb472 defect 3505 - fix manpage typos
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16128 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-30 13:07:18 +00:00
linggao ad0e9d09d4 fixed a defect #3543 running confignics has authority issues on statelite nfs_based cn
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16126 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-29 20:25:27 +00:00
jbjohnso 90c6689438 Fix problem where makedns suddenly required hosts table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16124 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-29 17:58:39 +00:00
phamt 8fa5961b27 Changed nodeset tab to accept osimage argument. Allow z/VM identities to be specified in directory entry. Allow an admin username to log into the main xCAT UI.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16123 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-29 17:13:20 +00:00
phamt 8cb2dd56b9 Fixed how broadcast address is calculated using IP and netmask, instead of relying on ifcfg file.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16122 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-29 16:59:46 +00:00
phamt a25f969d2d Simplified selection of user types when creating an xCAT user from the UI.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16121 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-29 15:37:23 +00:00
phamt 2515cfc4d4 Fixed bug in how jQuery dialogs are closed. If you use dialog('close'), it will only hide the dialog. But if you use dialog('destroy').remove(), the entire dialog will be removed from the page.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16120 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-29 15:08:10 +00:00
zhaoertao e6c6be8827 fix bug 3536 rscan cmm -z for Blacktip blades has wrong hwtype=xblade and missing cons
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16116 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-28 06:21:21 +00:00
xyye d7892547c3 make dns after adding the unmanagement node in profilenodes.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16114 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-28 06:04:19 +00:00
qyin 19c63b2412 fix 215709 nodeimport can use host info file mixed with switch , switchport and mac address
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16112 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-28 05:50:46 +00:00
sjing fa9bb0c3ca fix for bug 3542 - duplicated script name for efibootmgr, so changed it to configefi.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16110 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-28 02:49:30 +00:00
sjing 910948236c fix for bug 3542 - duplicated script name for efibootmgr, so changed it to configefi.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16108 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-28 02:44:06 +00:00
ligc 95bdb18675 fix for bug 3533: rnetboot hang for Power5 servers
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16096 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-27 07:22:59 +00:00
sjing 49667756cb Fix for bug 3538 - sometimes stopsrc -s named takes a longer time to take effect.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16094 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-27 06:04:50 +00:00
qyin 2eff25fb6a #215407 Typo in man page: nodeimport
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16092 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-27 05:43:49 +00:00
zhaoertao 3560655bc6 fix bug 3531: New CMM firmware is adding node # ( textid ) wrapper around textd - breaks rscan -u
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16090 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-27 02:30:38 +00:00
willn256 ce5ec17fcd Make sample kit plugin modules end with 1; and fix buildkit to rename kit plugin files correctly
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16087 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 22:27:54 +00:00
phamt 8acceb8579 Enabled multiple volumes to be removed. Allowed delete button to delete using noderm instead of rmvm if checked.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16085 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 20:19:37 +00:00
jbjohnso f79c178354 Change nextdestiny to use system context rather than nebulous user context in powershell
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16083 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 20:15:15 +00:00
jbjohnso 49e21e3a8d Make local system work and also clean out messages
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16080 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 19:54:58 +00:00
jbjohnso 4ffb6b22a8 Modify xCAT powershell module to:
-Support it's own per-user cert store
-Use more capable .Net x509 management functions
-Work with lower .net requirement

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16079 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 19:54:47 +00:00
phamt 6f94c8dcbe Removed the use of "-f IMMED" when powering off a VM because using smcli Image_Deactivate without the "-f" option powers off the VM more cleanly and accomplished the same thing.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16077 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 15:32:59 +00:00
jbjohnso 0d67ef61e7 Fix breakage where recent changes broke nodeset shell and friends
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16074 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 14:07:02 +00:00
jbjohnso 11f93c43ae Fix issues with bmcsetup
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16073 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 14:06:49 +00:00
lissav dae618c4bb put rsh/rcp deprecated in comments
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16071 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 11:28:19 +00:00
jjhua c546de11e5 fixed bug 3354
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16067 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 02:15:18 +00:00
daniceexi a7a5e0aa70 defect 3520: fixed a typo that using - replace =
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16066 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 02:10:57 +00:00
wanghuaz 01be6f53fe Check if the deploy parameter is used by other kitcomponent that is not in the same kit
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16065 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-25 12:59:42 +00:00
immarvin 8bad0490c3 support for addkcmdline of osimage. According to the design, the linuximage:addkcmdline should be appended to kernel arguments of the nodes after "nodeset osimage=".
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16063 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-25 12:15:09 +00:00
sjing 6410db445d fix for bug 3526 - remove litetree.table from inst_root for the update.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16060 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-25 07:54:06 +00:00
jjhua 37234b42cc fixed bug 3490.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16056 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-24 08:10:36 +00:00
immarvin 3c0983f60f 1. fill in the proper value in /etc/sysconfig/clock and set the timezone of the stateless/statelite node with site:timezone
2. copy libnss_files.so.2 from directory lib(for 32bit system) or lib64(for 64 bit system) into initrd 

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16053 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-24 07:57:24 +00:00
jjhua af2e791dc3 fixed the bug 3490. put the insserv message into /dev/null
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16051 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-24 07:51:37 +00:00
linggao 2a38296b67 added --dryrun flag for genimage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16048 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-23 19:13:15 +00:00
mellor b644f217d6 rebuild gpfs kitcomponents to not include gpfs.src and gpfs.libsrc rpms
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16046 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-23 19:06:57 +00:00
lissav cf51a10163 fix defect 3512
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16045 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-23 18:27:51 +00:00
daniceexi bf18ab507c defect 3516: fixed the typo to handle the getnextdestiny result
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16040 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-23 08:21:35 +00:00
xq2005 5afad2b6c8 fix the SHA1.pm miss problem on ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16038 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-23 02:32:16 +00:00
mellor 722355e373 rebuild teal kits to only include kitcomponents for base,ib,syslog
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16035 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-22 20:17:52 +00:00
jbjohnso fecdc35716 If lzma is older than gzip genesis, prefer newer
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16034 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-22 19:18:53 +00:00
jbjohnso 317676b98b Have ddns.pm call the code that hosts plugin uses to support extra interfaces
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16032 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-22 19:09:36 +00:00
jjhua 6b74b9ae3f fixed one minor issue
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16029 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-22 07:13:24 +00:00
jjhua baddac4d4c remove the xcat-otherpkgs*repo from ospkgs script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16026 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-22 06:28:24 +00:00
daniceexi 53dfc9e005 Fixed the method to receive http payload with chunk format
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16025 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-19 14:03:11 +00:00
wanghuaz 1e4a158fb4 Remove teal-gpfs and teal-gpfs-sn
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16023 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-19 12:28:59 +00:00
xq2005 08bd9b2907 start ttyS0 in stateless boot on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16022 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-19 12:24:25 +00:00
jjhua d6ada83292 fixed bug 3513
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16017 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-19 05:57:40 +00:00
jbjohnso ab3b74fef4 Fix problem where KMS key not being used as default
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16014 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 18:38:31 +00:00
jwsimpson 2c5ce1a401 Update rpower usage to add onstandby and sms
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16011 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 14:51:55 +00:00
mellor 16e114ede4 defect 3508 - change teal kitcomponent names to avoid conflicts with product rpms
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16008 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 14:09:42 +00:00
jbjohnso b1f539a5e5 Fix openssl template for 'server' to also allowed to be a 'client' to restore hierarchy
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16007 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 13:53:47 +00:00
jjhua 9acd1e0a62 fixed the bug when updatenode on ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16005 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 08:19:32 +00:00
zhaoertao c03aeddd19 fix bug 3502 rspconfig support for USERID=<password> for CMM in genesis case
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16002 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 07:17:42 +00:00
jjhua 1f29d3705d fixed bug 3506, at the beginning of the ospkgs/otherpkgs, only remove the repos which are created by xCAT.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@16000 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 07:07:19 +00:00
daniceexi 719ce7458c Add the help for flex and iDataplex support for renergy command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15997 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 06:57:24 +00:00
qyin abf2a60062 solution:215058 enable switch auto discovery for PCM
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15994 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 06:49:19 +00:00
xq2005 3c0eea3f26 Using debined subroutine on hash object imports warning message
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15993 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 06:39:56 +00:00
phamt 574b11fc1b Fixed bug in event log page, where the wrong option flag is specified for the destination directory.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15991 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-16 19:38:11 +00:00
mellor 829dd22b6c added other PE kit files to make this dir complete
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15988 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-16 18:12:48 +00:00
mellor ba2193e39a set PE env var for kit build
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15987 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-16 18:07:22 +00:00
phamt 6336859884 Enabled disk and zFCP pool tables to be generated even if no disk or zFCP pools exit.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15986 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-16 17:49:43 +00:00
mellor 00cd0a4e67 defect 3482 - fix find wildcarding
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15984 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-16 15:16:53 +00:00
mellor 15a76588d6 defect 3503 - remove duplicates and sort output of lskmodules
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15982 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-16 13:19:58 +00:00
amy0701 5075ed8045 update testcases related to makedns
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15980 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-16 08:16:23 +00:00
jjhua ab04cdafc3 only remove the repositories which were created by xCAT for sles
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15979 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-16 05:36:51 +00:00
ligc 093e1cb8e4 fix for bug 3476: set @::finalTypeList based on both CLI and FILEATTR
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15976 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-16 02:48:33 +00:00
lissav 9c89936b69 fix 3477
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15974 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-15 12:30:15 +00:00
xq2005 63b5ea43c9 support pgsql on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15972 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-15 07:13:00 +00:00
ligc 575100ab75 fix for bug 3496: disable SELinux on RHEL, check rc problem
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15970 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-15 04:53:23 +00:00
daniceexi d8b7c905a6 Change how to get the bmc for a predefined node
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15968 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-12 08:12:12 +00:00
daniceexi b7d1915698 Update the code that get the correct switch infor for the install nic
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15967 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-12 08:11:56 +00:00
daniceexi bd8f5021f5 Change the collaboration with sequential discovery for the output of nodediscover* message
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15966 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-12 08:11:39 +00:00
linggao 538e43dfa2 modified puppet kit version
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15962 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-11 20:33:03 +00:00
jbjohnso 66a5a01733 Remove debug output from wcons
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15953 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-11 14:29:18 +00:00
nott 26dcd874de remove use of global variable DELNODE
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15952 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-11 14:29:01 +00:00
jbjohnso e61792e180 Have wcons not call nodels as a subprocess
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15951 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-11 14:28:35 +00:00
jbjohnso 0fc0fbfcff start fixing wcons
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15949 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-11 14:17:09 +00:00
daniceexi f4b76731c4 Add cappingGmin support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15947 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-11 04:21:35 +00:00
daniceexi bda7f19bc4 Add cappingstatus support and support the capping setting for double wide blade
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15946 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-11 03:19:01 +00:00
mellor c8ee86a306 hpc kit build file updates for kit osarch and osbasename updates
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15944 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 22:37:12 +00:00
jbjohnso aa204c02fb Fix problem where psh -f would go more than requested
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15943 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 21:01:47 +00:00
bp-sawyers 4ca934115b fix syntax errors in nodediscoverls and nodediscoverstart pod pages
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15941 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 20:50:53 +00:00
mellor 283d9711e5 add arch and other attrs to full kitname
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15938 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 19:38:57 +00:00
lissav 76ccff5b66 fix defect 3483
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15936 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 15:53:33 +00:00
amy0701 a8094a6ec4 spelling mistake for Script_Post make script_post fail to work
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15933 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 11:39:29 +00:00
jjhua 9c42853e1c remove the debug flage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15929 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 09:33:45 +00:00
jjhua 1f23d67e4d add some code to make the config_chef_server work during post boot period
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15927 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 09:32:25 +00:00
jjhua 3a7d35f220 1. modifies some comments 2. add the rpm post script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15924 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 09:23:56 +00:00
jjhua ed369ce3b8 add the rpm version to the kit version # and the kitcomponet version #
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15923 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 09:09:38 +00:00
wanghuaz 2751c2cb43 Updated lskit to 'SEE ALSO' section in manpage of addkit/rmkit/addkitcomp/rmkitcomp/chkkitcomp
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15922 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 06:48:34 +00:00
yinle 5c437d385a fix bug 3462 no any output executing lsslp --flexdiscover. Remove manual information of lsslp --flexdiscover.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15911 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 02:53:57 +00:00
yinle 07ad36c9d2 fix bug 3462 no any output executing lsslp --flexdiscover. Remove the --flexdiscover from help information.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15910 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 02:49:38 +00:00
mellor 8ef2221595 defect 3465 ppedev 1.2.0-2 kits
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15909 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 02:34:05 +00:00
yinle e9caf6e420 Continue to fix bug 3428 lsslp -n does not check xCAT DB properly for current objects, support using mtms to match cmm.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15907 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 02:20:37 +00:00
lissav 43a383bd68 fix defect 3477
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15905 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 18:24:53 +00:00
mellor 1bb3f61a84 defect 3474 - fix parsing of rpm names for kitpkgdeps
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15900 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 13:08:39 +00:00
daniceexi a57b1bbfa6 Update the man page for sequential discovery support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15898 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 12:03:02 +00:00
wanghuaz 309b357920 Checkin the partial-teal kit source files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15894 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 10:31:16 +00:00
ligc ac13f9a177 fix for bug 3454: handle the object name like fd59::/64
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15891 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 08:19:57 +00:00
jjhua 805e0d5fd1 make it work during postboot period
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15890 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 08:03:47 +00:00
immarvin 2226a4e58d replace nfs-utils with nfs-kernel-server in sles11 pkglist
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15886 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 06:46:00 +00:00
ligc ceb308e21d fix for bug 3353: remove lsvpd and busybox-anaconda
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15882 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 06:31:01 +00:00
daniceexi f7b2205e92 support the regular expression in the hosts table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15874 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 08:37:01 +00:00
immarvin 60f393ea20 add /lib64/libnss_files.so.2 into initrd, this is needed by mount.nfs in sles11.2
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15873 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 08:23:14 +00:00
jjhua edd1ecd3d7 remove the repeated infor
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15869 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 08:14:25 +00:00
zhaoertao 8d54d0c251 update manpage for mkdef|chdef that adding option \'-u\' for them to fill in osimage attributes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15867 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 07:34:13 +00:00
ligc 19cd9c4766 fix for bug 3470: remove the ifname from the /etc/sysconfig/network/routes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15866 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 07:29:14 +00:00
ligc ad308476bd fix for bug 3471: print message if the persistent route does not exist
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15863 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 07:11:43 +00:00
daniceexi be14247f0e move the switch info update and nodediscoverydata update before the final communication for restart to avoid the sock missing
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15861 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 06:37:08 +00:00
zhaoertao 002c6f54d5 add \'-u\' for mkdef|chdef command to have osimage find custom files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15860 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 06:36:12 +00:00
jjhua 612a83d020 remove the -vx from the shell script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15857 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 06:30:07 +00:00
jjhua cc6acc6bb0 Added code for xCAT chef intergration on Ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15855 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 06:24:24 +00:00
jjhua 3b071e27a0 Added code for xCAT chef intergration on RH
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15854 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 06:20:46 +00:00
jjhua 540dc00882 remove the repositoris whose prefix is -path
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15851 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 01:37:27 +00:00
xq2005 4de74e13fb buildkit support on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15850 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-07 08:44:05 +00:00
ligc c308aa725e fix for bug 3476: remove empty nics definition from nics table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15847 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-07 06:53:05 +00:00
asirxing 64bae37fe1 Merge lskit/lskitcomp/lskitdeployparam codes to xCAT 2.8 brunch
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15846 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-07 06:35:15 +00:00
wanghuaz f1471cd5f7 Fixed an error in last checkin.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15845 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-07 06:32:50 +00:00
daniceexi e63dc81a22 Code drop for sequential discovery support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15841 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-06 09:40:39 +00:00
jbjohnso 3e01b29a0d Fix AAsn to not die horribly when non-reference is returned from some function
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15837 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-05 20:51:06 +00:00
phamt 0df98e654c Fixed grep to be case insensitive and find SCSI device using both WPN and LUN, instead of just LUN. A WPN and LUN uniquely identify a device.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15836 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-05 02:35:29 +00:00
jbjohnso 056ee611fd Correct syntax error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15833 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-04 20:16:12 +00:00
jbjohnso 5d8c72397f Fix typo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15832 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-04 20:14:18 +00:00
jbjohnso 486f8cf81a Apply methodology from previous commit to a number of other places
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15829 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-04 20:11:12 +00:00
jbjohnso d3107ef14b Simplify a lot of xcat IPC by removing the silly 'endoffreeze' in favor of store_fd and retrieve_fd
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15828 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-04 20:11:05 +00:00
phamt 501b7f1f7e Fixed how default route was specified in autoyast template. Moved 'add SCSI' to disk panel on xCAT-UI because 'add SCSI' creates an EDEV.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15827 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-04 16:01:24 +00:00
jbjohnso f4a9ec312c Fix for template recognition to detect major release generic templates
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15826 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-04 13:04:00 +00:00
jbjohnso d652fa96fb Use a different error code
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15822 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 20:56:11 +00:00
jbjohnso a2205b8fab Have copycds error set exit code on client
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15821 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 20:55:13 +00:00
linggao 8a53557d7d bug fix for puppet kit
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15820 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 20:40:49 +00:00
jbjohnso af9428ed10 Support per-node product keys, defaulting to 'os key' if nothing specified
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15818 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 20:34:26 +00:00
jbjohnso 250336787e Fix nextdestiny powershell script to have WinPE skip trying to retrieve CA certs mid-connection
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15815 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 20:19:18 +00:00
jbjohnso 2702329dda Fix error in esxi plugin
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15813 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 18:20:58 +00:00
xq2005 3cc7478097 pgsqlsetup support postgresql on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15812 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 16:30:24 +00:00
lissav 99dd2a7520 add back the csm to xcat migration tools
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15810 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 13:16:56 +00:00
xq2005 811829c9b5 debian/ubuntu support internet repo for otherpkgs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15807 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 09:20:33 +00:00
xq2005 04889ca0c2 debian/ubuntu support internet repo for otherpkgs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15806 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 09:18:55 +00:00
ligc cfcf63be3a fix for bug 3460: add ipv6 default gateway setup for configib
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15803 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 09:16:20 +00:00
zhaoertao 9e50bea3e6 3461 Undefined subroutine &xCAT::FSPUtils::defiend called at /opt/xcat/lib/perl/xCAT/FSPUtils.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15801 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 09:07:03 +00:00
phamt bf4b276286 Updated output message of purgerdr option.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15799 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 20:34:15 +00:00
phamt 9b378cdf85 Enabled remote Linux repositories to be specified in noderes.nfsserver. When specified, noderes.nfsserver will be used instead of the local /install directory.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15798 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 20:26:28 +00:00
jbjohnso cfbefff7c7 Add support for Windows to do autoula mode and indicate non-support of static managed address mode in windows context
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15797 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 19:58:03 +00:00
mellor 0cb19bfa2b defect 3385 again - need separate subs for both real kitname and modified kitname
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15794 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 19:49:43 +00:00
jbjohnso feadffbc7b Provide a mechanism for bundled xCAT instances to forbid image import without existing templates
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15793 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 19:20:09 +00:00
mellor d72811fe49 update kit template with various changes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15791 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 17:56:19 +00:00
mellor 96c92e083a defect 3406 createrepo for RH5 and 3407 correctly handle blank osminorversion value
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15789 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 17:39:03 +00:00
mellor b0740da8c4 buildkit man page update for addpkg and other changes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15784 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 13:36:46 +00:00
zhaoertao 83e36d1d07 fix bug:3451 New xCAT Support for mkhwconn -s and sfp for Flex P blades with HMC
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15783 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 09:10:20 +00:00
wanghuaz d421ad766a Updated addkitcomp manpage for --noupgrade option
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15781 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 05:00:41 +00:00
mellor 486d2c3027 defect 3385 fix string subs in plugins and finish defect 3366 kit version and release subs in addpkgs support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15779 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 21:27:18 +00:00
jbjohnso fefe378467 Rename site value to something more specific
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15777 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 19:11:28 +00:00
jbjohnso d616ef7269 Provide site value to suppress credential check messages
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15776 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 19:11:22 +00:00
nott ee67cada6f more usage msgs and error checking
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15774 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 18:51:06 +00:00
bp-sawyers ce65f31188 fixed typo in regex example in xcatdb man page
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15772 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 18:46:49 +00:00
nott 049afdbdf0 support xCAT long hostname
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15769 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 17:24:37 +00:00
lissav 8b680bb3b6 fix defect 3412
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15767 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 16:50:16 +00:00
wanghuaz 317368df00 Output erros if there is any failure during DB operation, in case DB operation didn't output any error on failures.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15763 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 12:50:20 +00:00
wanghuaz 8428a71e7b Fixing a problem that sles enables all the repos for new #NEW_INSTALL_LIST set, it prevents putting multiple versions of a packages with different repos into otherpkgs dir. Now we only enable the necessary repos for each zypper command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15762 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 12:11:05 +00:00
wanghuaz 89209d885b Fixing bug 3410: don't remove kitrepo if there is other kitcomponent assigned to the osimage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15759 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 10:37:42 +00:00
yinle ef7ebb34b8 Modify the man of rscan to support rscan with system-x-nodes in flex.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15756 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 07:57:04 +00:00
yinle 87497e65c5 Modify man page of rspconfig, add support of rspconfig system-x-nodes network=*
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15754 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 07:50:20 +00:00
creativezj 5ea143c734 fix multiple nic error while all nics in same network
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15752 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 07:17:34 +00:00
phamt 41c00b59e2 Fixed bug where argument size check was not correct. Added default mode for chvm --add9336 option.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15750 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 01:46:31 +00:00
wanghuaz 0bc40f667a Fixing two problems: 1. previously all the repos are enabled for all the yum commands. now we only enable the required repos for each yum command. 2. run yum clean in the diskless image to cleanup the repo meta data. this is required if there are multiple versions for one package name to be installed
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15749 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-31 22:45:18 +00:00
wanghuaz 2091c7a1c7 added addkitcomp --noupgrade option to install multiple PE RTE PTFs.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15746 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-31 22:34:56 +00:00
xq2005 aa807e7dca statelss image support internet repo on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15745 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-31 14:41:00 +00:00
phamt 631fa6d9ca Fixed typo in output string
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15743 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-30 21:47:51 +00:00
phamt 1f07c5c769 Fixed disk format bug where code continues to run even though link is only R/O.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15742 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-30 21:38:55 +00:00
linggao 5165ce4098 Openstack support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15741 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-30 21:15:19 +00:00
wanghuaz e70bea3edb Create osimage with profile compute for management node
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15739 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-30 07:55:41 +00:00
linggao cb3ccba715 bug fix in otherpkgs, keep the repofile because sometimes the error is caused by other repos
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15737 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-30 02:11:14 +00:00
linggao 5ae42f335c Added code for xCAT puppet integration on RH
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15735 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 19:54:27 +00:00
linggao 7211b9c3d5 Added code for xCAT puppet integration on Ubuntu.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15733 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 19:04:31 +00:00
phamt 700b9a6483 Changed mount point during cloning so that multiple clones could be run independently.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15731 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 16:30:41 +00:00
phamt f0cd1b890a Allowed dialog box to show up when adding disks or NICs, even when no disk pool or network exists.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15730 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 15:38:05 +00:00
nott d83a06c0c3 add default for nichostnamesuffixes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15728 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 13:19:19 +00:00
nott bb7ec57c23 description change for nicaliases - again
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15727 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 12:58:23 +00:00
nott 980e17ea82 description cahnge for nicaliases
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15725 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 12:37:26 +00:00
lissav 3c42ae7c06 fix defect 3426
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15724 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 11:38:14 +00:00
creativezj 44d26e560f support multiple nics in nodeimport
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15722 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 06:00:43 +00:00
xq2005 9a584bdb4b copycds support option -i on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15719 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 03:45:31 +00:00
xq2005 e977c2b2d8 load firmware in debian/ubuntu stateless initrd
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15717 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 03:05:24 +00:00
jbjohnso 2e91fbbf48 Have provision for per-node AD admin credentials
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15715 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 20:52:24 +00:00
jbjohnso 082f7f3e3a Make allowances for per-node activedirectory enablement
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15713 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 19:00:56 +00:00
jbjohnso 21bbe861a5 Add entry to allow per-node authentication domain configuration
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15711 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 18:54:03 +00:00
jbjohnso 3ca8c9a561 Now that we can specify domain per node, take out check that would reject a valid config
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15709 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 18:51:09 +00:00
jbjohnso c6005f0dac Add more IPv6 magic to ESXi setup
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15707 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 18:31:15 +00:00
jbjohnso d5ab1780ab Add flag for appliance use to recognize static addressing modes not yet supported in xCAT mainline
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15706 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 18:30:59 +00:00
lissav 5795765011 handle easy regx expressions
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15704 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 12:07:25 +00:00
immarvin 337ca536f0 nfs-utils package not exist in sles11 iso, use nfs-client instead or remove it from pkglist
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15698 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 08:34:58 +00:00
yinle c16a9a31d7 support rspconfig system-x-node network=*
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15693 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 08:04:37 +00:00
yinle cc4b65dfa8 support rspconfig system-x-node network=*
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15692 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 08:01:28 +00:00
yinle dd835f744c support rspconfig system-x-nodes network=*
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15691 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 08:00:21 +00:00
immarvin f21047b44e replace xntp with ntp in sles pkglist
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15686 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 06:18:51 +00:00
immarvin 28e50efbef add ntp to the sles pkglist
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15685 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 06:10:04 +00:00
mellor f5eb7b6713 added kit.release attr
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15681 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 02:34:42 +00:00
mellor 15ad3d4144 rewrote buildkit buildtar and addpkgs for kit verrel substitution support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15679 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 02:30:49 +00:00
ligc a799e2602e fix for bug 3446: add 69 into ports list, chkconfig SuSEfirewall2_init on
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15677 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 01:40:54 +00:00
bp-sawyers e748ed903d corrected chain.chain attribute description
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15674 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-27 20:39:49 +00:00
wanghuaz 47bcc75d71 enhanced function Utils->osver() to accept paramerters to output different data. If no parameter, the output will be same as before.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15670 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-27 10:19:30 +00:00
jbjohnso de3aa1ae04 Fix DNS client configuration for Windows when doing static assignment
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15667 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-26 14:38:49 +00:00
jbjohnso 27c9f9dbb3 Fix missing close tag on xml in last windows commit
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15665 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 21:08:19 +00:00
jbjohnso 90ec9da165 Switch to server side fill in attempt for interface identifier in dns client config in windows
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15664 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 20:52:51 +00:00
jbjohnso ce684e0108 Add directive to support alternate DNS server for windows deployments if DHCP is not to be trusted
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15662 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 20:02:31 +00:00
jbjohnso 094aee795f Fix issues with previous commit
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15660 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 19:37:36 +00:00
jbjohnso 1dcd7a42b1 Fix issue where powershell instrumentation fired up with no hope of successfully performing SSL
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15659 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 19:37:29 +00:00
mellor b6260d6a70 new kits for PE RTE 1.3.0.2 and GPFS 3.5.0.9
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15656 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 17:59:46 +00:00
jbjohnso 91d690e502 Fix for anaconda claiming toolscenter oses
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15654 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 17:39:42 +00:00
jbjohnso 95d973258c Have upflag try to use powershell when available instead of exes.
Have xCAT powershell client attempt without a certificate when no client certificate specified

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15652 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 13:58:09 +00:00
jbjohnso cf0bfb9d11 Show errors in default formatting.
Add function to import exported credential package

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15651 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 13:58:01 +00:00
jbjohnso df39576937 Finish xcoll, add some more objects to control formatting better, have NodeRange on pipeline attempt to join for chaining after xcoll
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15650 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 13:57:55 +00:00
jbjohnso e6cee5014a Work towards an xcoll workalike, also likely a xcsv workalike
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15649 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 13:57:47 +00:00
jbjohnso c1ee6f6383 Add familiar aliases for PS usage
Add more commands
Support pipelined strings and xCATNodeData for indicating noderange

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15648 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 13:57:42 +00:00
jbjohnso 50a575c952 Add some inital table formatting for typical output
Fix problem where Powershell replaces commas with spaces (hopefully fixed)

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15647 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 13:57:37 +00:00
jbjohnso 6c97efdae9 Spice things up a little by putting in a vitals and a power test case, testing out the command send command
TODO: repackage the xml object into intended powershell objects
Output types:
-xCATData
-xCATNodeData
-xCATNoderangeData
xCAT Data has error and data not contained within a node
xCATNodeData has error and data contained within a node
xCATNoderangeData will be an aggregation of the above (to be treated differently ps1xml wise hopefully)

The original noderange will be chucked into any of these, for Merge-xCATNodeData to have as a hint maybe

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15646 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 13:57:30 +00:00
jbjohnso d820388726 Actually have the powershell module successfully be able to run commands
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15645 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 13:57:22 +00:00
jbjohnso 354269134a Actually have a test case that will get to the permission denied phase
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15644 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 13:57:16 +00:00
jbjohnso 6ef1671e23 Milestone for powershell client code, can now add the CA and successfully verify server:
PS R:\pst> import-module .\xCAT.psd1
PS R:\pst> Import-xCATCA .\ca-cert.pem
PS R:\pst> Connect-xCAT odin 3001
PS R:\pst>
(commit best reviewed while listening to O Fortuna)

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15643 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 13:57:10 +00:00
jbjohnso b28f6f307f A little more PowerShell experimentation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15642 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 13:57:04 +00:00
jbjohnso 64b30e639c Add a manifest for the powershell xCAT client
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15641 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 13:56:56 +00:00
jbjohnso 6055da9ab6 Rename xCAT powershell module
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15640 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 13:56:49 +00:00
jbjohnso 6e36a72117 Modify xCAT Powershell libs to load without warning/error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15639 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 13:56:44 +00:00
jbjohnso 4f8cacb6bb Check in more comments and code into the still yet non-functional powershell module
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15638 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 13:56:39 +00:00
jbjohnso 311e4d2e1d First pass at some xCAT powershell functions to build updatemynodestat/reportip/updateflag out of in name of removing compiled code
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15637 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 13:56:33 +00:00
jbjohnso 60ced905aa HTTP/1.1 sends headers back more, tolerate that
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15636 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 13:44:59 +00:00
zhaoertao bfe01b3aeb modify "rvitals <flex node> lcds" using pblade_query_lcds to get the lcds info
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15634 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 02:52:16 +00:00
nott 3b984994b8 add support for nicaliases
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15631 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-22 14:25:53 +00:00
nott 17d12747a8 add to nicaliases description
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15629 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-22 14:13:36 +00:00
xq2005 29cbd7344e genimage on ubuntu12.04.2 meet package installation error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15627 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-22 10:21:53 +00:00
phamt b2910a9ff7 Enable graphics tab on xCAT-UI to handle nodes where the nodetype is not specified.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15625 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 21:40:53 +00:00
phamt daada72738 Added new columns into the storage table to handle z/VM's SCSI-FCP devices.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15624 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 20:32:28 +00:00
nott f618da03b0 add nicaliases support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15623 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 19:26:26 +00:00
phamt 994a61b23f Fixed toggle of options to be triggered by input box vs. list item.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15621 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 18:46:00 +00:00
phamt d83ddb7f69 Fixed eventlog tab on xCAT UI to use a textarea instead of input box for log options.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15620 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 18:36:20 +00:00
nott 3759698b55 fix bad hosts file entry - 3439
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15619 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 18:21:32 +00:00
jwsimpson 8b4949d1fd lsslp support for transAM
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15616 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 17:29:43 +00:00
nott 25c43dac30 add bash to aix bundles
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15614 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 17:11:56 +00:00
nott 28a4eccb48 fix rmnimres subroutine
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15612 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 13:58:55 +00:00
xq2005 e65799ab28 delete the uesless genimage.old
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15608 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 08:26:32 +00:00
jjhua c063fe1a6f made some updates in the pkglist for bug 3444
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15606 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 06:57:22 +00:00
ligc 2f1908c0fe update xcatstanzafile manpage to inidicate the attribute might include the character dot (.)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15603 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 06:49:34 +00:00
ligc 69898aee7a chdef,mkdef enhancements to support nic attributes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15601 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 06:39:44 +00:00
jjhua 745e92baec fixed bug 3437
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15599 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 05:19:26 +00:00
phamt cb171eab7a Cleaned up how smcli calls are logged in syslog.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15597 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-20 20:47:12 +00:00
xq2005 35ea34acc3 support copycds -i on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15596 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-20 08:10:01 +00:00
yinle fee4fccf1b minor fix.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15593 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-20 03:28:50 +00:00
yinle 7fddd47f72 Modify rscan to support system x node for blade.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15592 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-20 03:00:36 +00:00
linggao 170647e000 fixed SF bug#2433
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15591 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 21:18:43 +00:00
lissav 123abffe4f fix for defect 3436
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15589 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 17:59:15 +00:00
jbjohnso c911961b09 HTTP/1.1 seems to be required for RHEV-M to respond right
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15585 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 15:47:36 +00:00
jbjohnso 03a445a74a Fix xCAT-server rpm build srpm problem
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15583 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 14:48:15 +00:00
jbjohnso 7bb722ae35 Add more objdef mappings for table data
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15582 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 14:32:05 +00:00
jbjohnso fc69abc703 Add node/group level nameserver indication to schema
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15581 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 14:31:44 +00:00
jbjohnso 23847c14c7 Have sshd directory contain public keys, as some pieces of software are expecting, whether they should or not
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15579 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 13:35:10 +00:00
jbjohnso c4368dc065 Support per-node ssh host keys if detected - Thanks to Frank Schwichtenberg
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15578 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 13:25:12 +00:00
lissav dfd8ebdf2a add use File::Path used in code,but missing. Result of Utils.pm split. Broke zvm build
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15576 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 13:21:06 +00:00
lissav 6c304ce11c fix for defect 3434
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15574 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 11:15:43 +00:00
xq2005 20c386bac4 setup odbc for mysql on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15572 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 08:55:34 +00:00
xq2005 7d7e447c3d use mysql db on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15569 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 07:43:02 +00:00
immarvin df101c0356 fixed some syntax in storage.rhels6.tmpl, as some variables are no longer supported in the kickstart. rename storage.pglist to storage.pkglist
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15568 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 07:21:57 +00:00
xq2005 16b5f241de use mysql db on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15566 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 07:14:22 +00:00
amy0701 df072efeb1 update testcase for geninitrd
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15563 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 06:48:10 +00:00
wanghuaz e88555600a Added the manpage of addkit -i|--inspection option to show the summary of the given kits without adding them.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15560 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-18 08:59:06 +00:00
amy0701 bc1554306b add testcase for statelite installation on x86_64_redhat
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15556 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-18 06:09:52 +00:00
amy0701 a301b0ac25 update testcase for servicenode installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15555 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-18 06:03:04 +00:00
amy0701 25bce09a12 add testcase for diskfull install with SN on x86_64 redhat
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15554 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-18 05:58:54 +00:00
amy0701 ba0f3429f7 add testcase for diskless installation with sn on x86_64 redhat
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15553 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-18 05:51:03 +00:00
amy0701 858a39687d add testcase for servicenode installaton for x86_64 redhat
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15552 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-18 05:42:24 +00:00
jwsimpson ce4891f5c2 FSPpower.pm updated to allow sms option
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15541 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-15 21:39:20 +00:00
jbjohnso 21618dde89 Correct Sys::Virt version check
Fix broken LVM behavior when faced with a pre-built LVM VG/PV (as reported by Michael Fenn)

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15536 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-15 19:43:05 +00:00
jwsimpson 8555e39312 lsslp Usage update to add FSP and IMM2 to -s option
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15532 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-15 13:46:24 +00:00
yinle e0e4031f68 fix bug 3428: lsslp -n does not check xCAT DB properly for current objects
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15530 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-15 07:50:43 +00:00
yinle e36818588b fix the issue that lsslp put in the SLP request messages into the "stana" files working with lsslp -z flag
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15525 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-15 06:08:50 +00:00
yinle 74ac16a3ad fix the issue that lsslp put in the SLP request messages into the "stana" files working with lsslp -z flag
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15523 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-15 06:03:54 +00:00
nott 4def0472ed misc cleanup
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15521 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 16:03:11 +00:00
bp-sawyers d3b43b6f9c added author to tools help
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15519 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 14:20:31 +00:00
xq2005 bda8a294b6 use the default pkglist on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15517 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 08:56:03 +00:00
xq2005 e3073a442f use the default pkglist on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15516 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 08:55:31 +00:00
xq2005 e682391071 support comment in the pkglist on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15514 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 08:51:46 +00:00
jjhua 5e1d6d912c Before adding the os repos and otherpkgs repos, check if the repos were already added by xCAT in the previous run, if yes, update these repos; otherwise, create these repos directly. For the os repo added by addsiteyum, it should be deleted by ospkgs and otherpkgs, the ospkg and otherpkgs will add the os repos point to more directories. After ospkg/otherpkgs is done, do not remove the repos.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15510 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 07:46:42 +00:00
jjhua bfcfd7311a Before adding the os repos and otherpkgs repos, check if the repos were already added by xCAT in the previous run, if yes, update these repos; otherwise, create these repos directly. For the os repo added by addsiteyum, it should be deleted by ospkgs and otherpkgs, the ospkg and otherpkgs will add the os repos point to more directories. After ospkg/otherpkgs is done, do not remove the repos.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15509 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 07:46:19 +00:00
ligc fe5e749dfc lsdef enhancements to support nics, display and set nics info more easily
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15508 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 07:44:32 +00:00
ligc f07a2af37c lsdef enhancements to support nics, display and set nics info more easily
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15507 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 07:41:51 +00:00
zhaoertao 0062a95fed update manpage for reventlog <-s>
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15506 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 07:31:26 +00:00
xq2005 0226f26fc6 buildkit support external non_native_pkgs on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15504 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 07:22:28 +00:00
zhaoertao 1ecc7a08db add option '-s' for reventlog to output the event from latest to oldest
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15501 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 07:07:40 +00:00
daniceexi 35f86b5f09 Add the support for flex
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15500 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 06:29:46 +00:00
jjhua 04112294b3 fixed bug 3259, have the addsiteyum be called before running the postscripts, the repos might be needed by some other user customized scripts.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15497 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 02:43:26 +00:00
jjhua 0ceaa7466b fixed bug 3259, disabled the the centos internet repos added by the os.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15496 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 02:31:11 +00:00
daniceexi a0a6db72ff Fix bug with optional persistence where reset no longer survives
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15493 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 02:27:30 +00:00
bp-sawyers 199505c28b automatically build readme for tools
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15491 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 23:48:24 +00:00
jwsimpson 0fa5e225b0 Updated to skip Flex power blades when "-s CEC" is specified - also corrected model to not filter on 8236 for flex
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15487 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 19:20:05 +00:00
linggao 044848b35d fix sf bug #3422 updatenode -P fails to resolve name of mypostscript file on the MN
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15485 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 19:12:32 +00:00
nott 1c34bf0180 changes to finding xcat node name
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15483 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 18:40:05 +00:00
daniceexi 8bb98b06de Support site key persistkvmguests
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15481 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 13:19:09 +00:00
xq2005 fafee79e70 support makeknowhosts on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15480 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 10:42:14 +00:00
wanghuaz a3875d16d1 Fixing bug 3372:Don't mount /proc fs since it will confuse the rpm or scripts that they are on diskfull nodes.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15479 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 10:14:12 +00:00
xq2005 77f206907b sync from trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15473 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 06:39:54 +00:00
sjing 810bf5f8b7 backported from trunk.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15471 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 06:07:41 +00:00
phamt e02c1b8b67 Fixed cloning issue where code was looking for a case-sensitive NIC address and not modifying the network configuration correctly. Added logging of smcli calls into syslog to improve debugging. Add loop to find the correct partition with file -s /dev/dasd*. This fixes a cloning issue where flashcopy is not instantaneous and flashed copy volumes do not appear immediately when linked.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15470 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 23:10:58 +00:00
jbjohnso a67cacfdbe Add centos6.4 discid
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15469 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 18:13:59 +00:00
nott c2bb10e13c add xcat node name to /etc/xcatinfo file
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15467 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 16:38:03 +00:00
lissav a7e6eafbac add /share/xcat/tools to the path AIX and Linux, for AIX xcatconfig will also handle the update path
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15465 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 13:26:09 +00:00
lissav 86d6fd80b3 add /opt/xcat/share/xcat/tools to the path for AIX
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15462 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 12:37:12 +00:00
daniceexi f7571ecb81 defect 3195: change the search pattern to the uxspi binary path
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15458 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 11:11:00 +00:00
daniceexi b964b3f563 code drop for flex energy management support through cmm snmp interface
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15457 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 10:50:18 +00:00
immarvin 773f4d0fc0 add rhels5.9 support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15454 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 08:08:05 +00:00
immarvin 8b57285cc1 add anaconda template for compute.rhel5.ppc64
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15452 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 07:39:33 +00:00
wanghuaz 0ded16368b Only ppe_rte_license 1.3.0.0 can be used with PTF1.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15451 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 07:38:48 +00:00
nott 716a006d2b fix -m and xcat node name issue
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15447 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-11 19:34:21 +00:00
bp-sawyers 4e91fb6cc7 Backporting brian finleys fix of adding / to var path in genesis-scripts doxcat
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15446 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-11 15:49:32 +00:00
zhaoertao 74db2d9120 snyc from trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15445 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-11 01:57:06 +00:00
phamt 10d1f08e23 Added check for return code on Linux dd.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15444 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 22:50:16 +00:00
linggao 611aa5f994 More fix for SF bug #3404 configib for aix
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15443 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 19:50:19 +00:00
phamt 43de2697b3 Backport z/VM code in trunk to 2.8 branch.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15441 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 17:41:44 +00:00
wanghuaz 91fbf65bbf Sync xcat-buildkit files from trunk to 2.8 branch
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15439 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 15:18:12 +00:00
nott 6c2c51d3d5 clarify results of -f and -r options
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15438 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 15:14:27 +00:00
lissav 00c79814f4 Add info to the help
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15436 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 11:37:59 +00:00
lissav b17cbaf52c fixed example to match new location of traceleve*
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15435 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 11:33:27 +00:00
jjhua 5eaf51ad77 add the image name and timestamp into diskless image when it is packed
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15433 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 06:06:39 +00:00
immarvin e9cae5c5d6 correct some format issues
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15432 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 03:31:54 +00:00
immarvin 07295f7953 support genimage -l for dracut mode
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15431 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 03:14:46 +00:00
xq2005 036bab9e21 sync from trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15430 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 03:11:12 +00:00
immarvin a2eb94fd1c support genimage -l for dracut mode
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15429 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 03:10:32 +00:00
jjhua baca52bda8 support multiple paths of pkg for centos compute
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15428 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 03:09:35 +00:00
xq2005 fb420f6330 sync from trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15427 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 03:06:21 +00:00
xq2005 ed1fa52e8a sync from trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15425 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 03:05:08 +00:00
xq2005 7137646f44 sync from trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15424 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 03:04:00 +00:00
xq2005 10e6ad65a4 sync from trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15423 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 03:02:07 +00:00
xq2005 2451236800 sync from trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15422 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 03:00:17 +00:00
xq2005 8bab44fcbc sync from trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15421 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 02:58:06 +00:00
xq2005 ef5351655c sunc from trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15420 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 02:56:30 +00:00
xq2005 d641143c50 sync from trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15419 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 02:54:24 +00:00
xq2005 0b3016522b sync from trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15418 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 02:48:36 +00:00
xq2005 4ce55c6175 sync from trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15417 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 02:45:16 +00:00
wanghuaz 11964eed4f Create otherpkgdir if it doesn't exist on management node or service node
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15416 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-07 21:00:39 +00:00
bp-sawyers 1416c62968 backport genesis-scripts spec change to not hardcode version
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15414 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-07 20:37:58 +00:00
bp-sawyers 861545f333 update xcatdb man page regex description
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15413 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-07 20:18:48 +00:00
lissav c8ffae5242 fix defect 3403
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15412 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-07 14:29:13 +00:00
lissav 870aec0318 fix defect 3403
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15411 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-07 14:27:59 +00:00
linggao cba4b90473 fixed SF bug #3367 so that imgimport and imgexport will get all the attributes from the osimage and linuximage tables
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15407 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-07 00:19:38 +00:00
linggao 9434376e11 fixed SF bug #3404 configib: Update xCAT IB configuration for AIX IB APAR IV36529
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15404 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-06 20:17:24 +00:00
lissav caa66f419a add sudo dcp -F support SF 3403
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15403 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-06 17:50:22 +00:00
linggao 92b22201f6 fixed SF bug #3398 updatenode -P fails if hostname on the node is FQDN
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15401 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-06 15:20:58 +00:00
xq2005 f688bd1efe fix infinite provision problem after use kit
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15398 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-06 10:31:40 +00:00
immarvin 8a1841c238 prevent remount root filesystem in rw mode during reboot
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15397 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-06 08:50:45 +00:00
sjing 83c02ade0d support imaged provisioning.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15390 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-06 05:27:55 +00:00
phamt cb803eff21 Fixed post-script to echo default gateway to /etc/sysconfig/network/routes file in mkay4z script.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15388 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-05 15:32:24 +00:00
immarvin cbcf638b34 rhels 6.4 support for ppc64 and x86_64
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15386 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-05 07:43:11 +00:00
immarvin fed0c20efd support -i for pping and ppping
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15381 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-05 05:29:49 +00:00
phamt b1b5e12fa4 Moved mkay4z script into /opt/xcat/share/xcat/scripts directory.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15373 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 19:57:00 +00:00
lissav bf8182e9ed fix defect 3401
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15372 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 16:48:06 +00:00
sjing e0b498898d support imaged provisioning.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15369 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 07:39:54 +00:00
sjing 828417286b support imaged provisioning.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15367 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 05:15:38 +00:00
sjing 0f1f11b01a support imaged provisioning.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15366 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 05:13:00 +00:00
sjing 17df46078f support imaged provisioning.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15365 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 05:08:13 +00:00
sjing 988acc9cf9 support imaged provisioning.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15364 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 05:03:52 +00:00
jjhua 1d200f5e4f support multiple paths of osimage on centos6 diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15363 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 03:23:32 +00:00
jjhua 6e64b59a07 support multiple paths of osimage in rhels diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15362 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 03:17:19 +00:00
jjhua 7e375c5162 support multiple paths of osimage in rh diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15361 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 03:09:01 +00:00
daniceexi 233ff4faf1 defect 3389: support the sles with tightvnc
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15359 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 03:03:01 +00:00
jwsimpson 59130c5163 Updated lsslp.pm to not report CECs for flex p blades. Also added support for IMM2
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15358 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 22:04:12 +00:00
jbjohnso c18b476889 Have xCAT support ssl parameter settings in site table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15356 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 21:26:35 +00:00
phamt f586f6453b Added range column into print output.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15354 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 21:22:14 +00:00
phamt 016c25940a Fixed nodeset to copy the contents of xcatinstallpost and xcatpostinit1 into the autoyast or kickstart template, allowing postbootscripts to be run.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15352 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 21:00:51 +00:00
nott 64e2391d02 add support for running local install script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15351 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 19:26:29 +00:00
linggao 8db73414b3 fixed SF bug #3392 rmimage removes tftpboot kernel file that may be used by other images
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15349 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 19:12:27 +00:00
nott ba6778494f new aix software update script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15345 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 18:25:33 +00:00
lissav d19df65b7a fix defect 3398
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15344 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 17:34:38 +00:00
linggao dfd9d9a7a8 Fixed SF bug #3159 rcons can not work when node.conserver is set to MN
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15341 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 15:29:42 +00:00
lissav 372a951dee adding this new tool from Brian Finley. He put it in trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15340 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 13:50:43 +00:00
lissav ccd2746668 defect 3397
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15339 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 13:48:47 +00:00
lissav a6a5ddfca9 defect 3397
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15338 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 13:47:28 +00:00
lissav 463e95e1cb defect 3397
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15337 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 13:47:08 +00:00
lissav 0dd99cd1cf defect 3397
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15336 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 13:46:18 +00:00
lissav 1919c0b25d defect 3397
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15335 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 13:44:02 +00:00
lissav 76115f17d0 add crontab -l
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15333 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 13:39:11 +00:00
lissav 1e19da4709 Defect 3397
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15331 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 13:25:58 +00:00
lissav 739f2f4318 Defect 3397
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15330 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 13:24:12 +00:00
lissav e469851b25 Defect 3397
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15329 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 13:23:34 +00:00
lissav 79c8fec75a Defect 3397, make samples directory
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15328 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 13:15:46 +00:00
lissav 016f967cce add additional ssl settings for xcatd SF 3396
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15327 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 13:07:21 +00:00
jjhua 7901088307 add some information of multiple paths to linuximage.pkgdir
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15325 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 09:15:18 +00:00
jjhua dd7d473d49 support multiple paths of osimage in sles diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15324 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 09:12:20 +00:00
jjhua 1ecd2f5164 support multiple paths of osimage in sles diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15322 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 09:07:58 +00:00
jjhua 841d58be57 support multiple paths of osimage in rh/sles diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15321 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 09:04:02 +00:00
ligc 58e96b4a07 code drop: IPv6 support on Linux
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15319 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 08:55:03 +00:00
lissav b6d19b4c8e fix defect 3380, add support for NoErrorPrefix, NoWarnPrefix
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15311 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 21:16:30 +00:00
lissav 38d37ad6ff add fanout support defect 3395
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15310 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 21:11:04 +00:00
lissav 2b4030ce0e Support MN in Servicenodetable https://sourceforge.net/apps/mediawiki/xcat/index.php?title=Support_Management_Node_in_the_servicenode_table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15309 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 21:07:29 +00:00
lissav c03ae7778d Support MN in Servicenodetable https://sourceforge.net/apps/mediawiki/xcat/index.php?title=Support_Management_Node_in_the_servicenode_table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15308 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 21:06:08 +00:00
lissav 905ec1d14f Support MN in Servicenodetable https://sourceforge.net/apps/mediawiki/xcat/index.php?title=Support_Management_Node_in_the_servicenode_table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15307 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 21:04:55 +00:00
lissav 0cb0a17479 add fanout support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15306 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 20:55:30 +00:00
lissav 8c7cf3ae29 add fanout support, cleanup and fix defect 3362
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15305 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 20:48:25 +00:00
lissav 5acdc18ced add fanout support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15304 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 20:47:12 +00:00
lissav 191dcde3dc fix defect 3362
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15303 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 20:45:45 +00:00
lissav 102c33be71 Fix 3052 and add sudo for dcp and fix 3380
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15302 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 20:37:19 +00:00
lissav be9f165796 Fix 3052 and add sudo for dcp and fix 3380
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15301 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 20:35:42 +00:00
lissav 7f926c1346 Fix 3052 and add sudo for dcp and fix 3380
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15300 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 20:33:35 +00:00
phamt 80254362a0 Added function to print to syslog.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15299 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 16:07:26 +00:00
bp-sawyers e9c2d13e0c Remove newline in Version file
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15296 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 15:25:11 +00:00
bp-sawyers e747066b32 Update 2.8 branch version to 2.8.1
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15293 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 15:04:29 +00:00
phamt 64cf838838 Search ifcfg file by case-insensitive address.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15292 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 14:47:48 +00:00
jbjohnso 6f3e2fb2f0 Revert "Have xCAT support ssl parameter settings in site table"
This reverts commit 7f18ae6d6f.

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15269 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-27 15:19:08 +00:00
jbjohnso 7f18ae6d6f Have xCAT support ssl parameter settings in site table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15266 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-26 21:12:39 +00:00
jbjohnso b906c24816 Certain nmap output with ipv6 could leave nodename with a trailing \n, correct
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15252 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-25 16:26:31 +00:00
phamt 476c3387cc Fixed cloning where fdasd is need for vanilla disks.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15246 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-24 02:02:30 +00:00
phamt ad004fa062 Fixed cloning where fdasd is need for vanilla disks.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15245 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-23 21:00:48 +00:00
jbjohnso 6e96acde8a Correct typo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15231 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-20 19:27:45 +00:00
jbjohnso 4feb1eacf1 Add objdef for storage.osvolume
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15229 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-20 19:13:15 +00:00
bp-sawyers 9ba0674087 update for latest mcp build
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15206 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-18 22:45:49 +00:00
mellor 77f1b1b726 defect 3371 - fix osimage check for chkkitcomp
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15204 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-18 21:16:51 +00:00
mellor f8967bc0b6 defect 3376 - need to load XCATSITEVAL global in upd listener process
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15202 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-18 20:27:20 +00:00
leiaibj 863ba244c3 The function isValidHostname, it can not detect illegal hostname like 'a=b-c'
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15197 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-18 02:04:08 +00:00
phamt 47ab424f70 Fix MAC address prefix.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15192 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-15 23:11:17 +00:00
phamt bae3e6b789 Fix MAC address prefix.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15190 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-15 22:49:46 +00:00
phamt 093b05b784 Fix dependency issue with z/VM build.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15189 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-15 20:22:31 +00:00
phamt 3948b72c22 Updated rmigrate man page for z/VM.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15186 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-15 18:13:01 +00:00
phamt 093fa0578c Fixed inventory tab.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15184 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-15 17:20:22 +00:00
phamt dcd1acab69 Enable osimage specification on nodeset.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15182 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-14 20:27:37 +00:00
jbjohnso 5dbcb3dd65 Have xCAT WS support credentials via header rather than uri
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15179 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-14 19:19:13 +00:00
phamt 2f218a06f4 Fixed problem updating zFCP pool.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15176 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-14 16:10:08 +00:00
phamt 6c8f3298fa Fixed device address to be lower case because autoyast is case-sensitive.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15175 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-14 15:17:15 +00:00
phamt a4000ce977 Fixed SCSI/FCP devices in nodeset.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15171 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-14 05:19:00 +00:00
phamt 7ba40528e4 Added option to query all accessible LUNs. Fixed query WWPNs.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15170 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-14 04:09:07 +00:00
phamt 7fd00ce8ae Renamed function to open dialog to delete profile. Added new line at end of directory entry.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15167 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-13 19:41:21 +00:00
jbjohnso c2dec7b40b Add some cautionary wording aronud incomplete function
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15166 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-13 17:56:52 +00:00
phamt 4a3919e899 Fixed synchronization issue on self-service page.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15165 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-13 17:24:39 +00:00
lissav 4da96c27a3 add comments about no case
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15163 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-13 12:05:33 +00:00
phamt 72b785338b Fixed add disk to pool.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15160 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 22:53:08 +00:00
phamt 711b13383f Added input verification. Fixed add vSwitch option.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15159 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 22:15:52 +00:00
jbjohnso 8253aee359 Fix missing mandatory columns in storage table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15144 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 15:38:28 +00:00
jbjohnso 07fa06c4dc storage table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15143 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 15:38:19 +00:00
phamt 184487e37e Fixed input value for xCAT UI. Allow code to handle different orders in /etc/hosts.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15142 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-11 22:49:44 +00:00
lissav 05ade551f4 fix bug 3365
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15137 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-11 19:07:08 +00:00
phamt 6aee46151c Fixed input value.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15135 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-11 03:57:23 +00:00
phamt 550b50149c Switched over to using z/VM system names vs. zHCP names.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15134 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-11 03:25:00 +00:00
phamt ba121aef4a Added tooltips. Fixed add/remove VLAN/vSwitch. Updated networks table.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15132 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-11 00:22:33 +00:00
phamt 40a9d41e0b Zero out hanging processes in cookie. Make zFCP devices persistent in udev.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15126 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 23:42:49 +00:00
jbjohnso 84ba7a178c Fix mistake in the win2k8r2 template
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15125 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 21:21:46 +00:00
jbjohnso e11b310efd Fix windows.pm to be drive letter agnostic in installs
Fix fixupunattend.vbs to not echo

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15124 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 21:21:37 +00:00
jbjohnso 232f325351 Fix mistake in variable name in windows.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15123 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 21:21:26 +00:00
jbjohnso b56f7e9e94 Make the Windows templates consistently leverage the AD/Local/DisableAdmin behavior
Eliminate the 'UEFI' only templates, have a single template get modified at runtime via a vbscript

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15122 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 21:21:14 +00:00
jbjohnso 68b6032dbb Fix Template to add a missing \r to windows templates
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15121 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 21:21:01 +00:00
phamt 364e652e59 Fixed update to udev rules for zFCP devices.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15119 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 20:42:26 +00:00
phamt 29f32d10ae When assigning free zFCP device channels, check if device channel is in use in the pool.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15116 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 17:29:09 +00:00
phamt aba74b7d52 Fixed argument passing delimiter. Added warnings to the UI. Added check for userprefix file.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15111 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 05:54:14 +00:00
leiaibj 1616e26c94 Fix a bug for hostname validation, merge into 2.8 branch
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15108 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 01:57:33 +00:00
jbjohnso 86042cc1f4 Add windows to fsm build variant
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15105 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 22:23:31 +00:00
jbjohnso fa2eeecb0d Fix various 'strict' issues in windows.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15102 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 21:31:58 +00:00
jbjohnso 509934b9d5 Give vncviewer an extended period of time to get around to reading the password file before cleaning it up
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15101 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 20:55:17 +00:00
jbjohnso bb90fdf022 Add a script to sub in different mount letters and UEFI/plain partition plans into a unified windows template scheme
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15098 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 19:25:20 +00:00
lissav c24aadccfc remove what should have been a 2.9 checkin
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15092 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 12:38:51 +00:00
lissav cbcb75cdb5 remove what should have been a 2.9 checkin
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15091 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 12:37:58 +00:00
lissav 1e9af7be3b remove what should have been a 2.9 checkin
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15090 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 12:36:47 +00:00
lissav 7c678fd174 add -E hierarchical support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15089 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 12:34:00 +00:00
lissav 982d3f1aed add -E hierarchical support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15088 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 12:32:39 +00:00
lissav e7e4071365 add --fanout on updatenode and code improvements
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15087 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 12:31:18 +00:00
lissav 136e94ab83 add --fanout on updatenode
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15086 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 12:23:59 +00:00
lissav 33193fc495 document --fanout on updatenode
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15085 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 12:23:00 +00:00
lissav 4f6485c841 hierarchical -E support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15084 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 12:12:36 +00:00
bp-sawyers e0390d78e9 A https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15081 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-06 20:39:40 +00:00
1945 changed files with 99217 additions and 71663 deletions
-14
View File
@@ -1,14 +0,0 @@
xCAT - eXtreme Cloud Administration Toolkit
xCAT is a toolkit for the deployment and administration of clusters.
xCAT documentation is available at: http://xcat.sourceforge.net/
xCAT is made available as open source software under the EPL license:
http://www.opensource.org/licenses/eclipse-1.0.php
+1 -1
View File
@@ -1 +1 @@
2.10
2.8.3
+241
View File
@@ -0,0 +1,241 @@
#!/bin/sh
# Update GSA Ubuntu Repositories or create a local repository
#
# Author: Leonardo Tonetto (tonetto@linux.vnet.ibm.com)
# Revisor: Arif Ali (aali@ocf.co.uk)
#
# After running this script, add the following line to
# /etc/apt/sources.list for local repository
# deb file://<core_repo_path>/xcat-core/ maverick main
# deb file://<dep_repo_path>/xcat-dep/ maverick main
#
# For the purpose of getting the distribution name
# Supported distributions
dists="squeeze"
a_flag= # automatic flag - only update if repo was updated
c_flag= # xcat-core (trunk-delvel) path
d_flag= # xcat-dep (trunk) path
local_flag= # build the repository localy
while getopts 'c:d:u:p:l:a' OPTION
do
case $OPTION in
c) c_flag=1
xcat_core_path="$OPTARG"
;;
d) d_flag=1
xcat_dep_path="$OPTARG"
;;
l) local_flag=1
local_repo_path="$OPTARG"
;;
a) a_flag=1
;;
?) printf "Usage: %s -c <core_trunk_path> [-d <dep_trunk_path>] -l <local-repo_path> [-a]\n" $(basename $0) >&2
echo "-a Automatic: update only if there's any update on repo"
exit 2
;;
esac
done
shift $(($OPTIND - 1))
if [ -z "$c_flag" -a -z "$d_flag" ]
then
printf "Usage: %s -c <core_trunk_path> [-d <dep_trunk_path>] { -l <local-repo_path> | [-u <gsa_id> -p <gsa_passwd>] } [-a]\n" $(basename $0) >&2
echo "-a Automatic: update only if there's any update on repo"
exit 2
fi
if [ ! -d $xcat_core_path ]
then
printf "%s: No such directory\n" "$xcat_core_path" >&2
exit 2
fi
if [ "$d_flag" ]
then
if [ ! -d $xcat_dep_path ]
then
printf "%s: No such directory\n" "$xcat_dep_path" >&2
exit 2
fi
fi
if [ "$local_flag" ]
then
repo_xcat_core_path=$local_repo_path"/xcat-core"
repo_xcat_dep_path=$local_repo_path"/xcat-dep"
else
printf "Usage: %s -c <core_trunk_path> [-d <dep_trunk_path>] -l <local-repo_path> [-a]\n" $(basename $0) >&2
echo "-a Automatic: update only if there's any update on repo"
exit 2
fi
if [ "$a_flag" ]
then
touch svcupdate.trace
SVCUP='svcupdate.trace'
svn update $xcat_core_path 1> $SVCUP 2>&1
if ! grep 'Tree is up to date' $SVCUP
then
update_core=1
else
update_core=
fi
rm -f $SVCUP
else
update_core=1
fi
if [ "$c_flag" -a "$update_core" ]
then
echo "###############################"
echo "# Building xcat-core packages #"
echo "###############################"
CMD_PATH=`pwd`
cd $xcat_core_path
./build-debs-all "snap" "Nightly_Builds"
echo "#################################"
echo "# Creating xcat-core repository #"
echo "#################################"
if [ -d $repo_xcat_core_path ]; then
rm -rf $repo_xcat_core_path
fi
mkdir -p $repo_xcat_core_path/conf
find . -iname '*.deb' -exec mv {} $repo_xcat_core_path \;
rm -rf debs/
cd $CMD_PATH
rm -rf $repo_xcat_core_path/conf/distributions
for dist in $dists; do
cat << __EOF__ >> $repo_xcat_core_path/conf/distributions
Origin: xCAT internal repository
Label: xcat-core bazaar repository
Codename: $dist
Architectures: amd64
Components: main
Description: Repository automatically genereted conf
__EOF__
done
cat << __EOF__ > $repo_xcat_core_path/conf/options
verbose
basedir .
__EOF__
for dist in $dists; do
for file in `ls $repo_xcat_core_path/*.deb`; do
reprepro -b $repo_xcat_core_path includedeb $dist $file;
done
done
mv $xcat_core_path/latest_version $repo_xcat_core_path/xcat-core_latest-build
cat << '__EOF__' > $repo_xcat_core_path/mklocalrepo.sh
codename=`lsb_release -a 2>null | grep Codename | awk '{print $2}'`
cd `dirname $0`
echo deb file://"`pwd`" $codename main > /etc/apt/sources.list.d/xcat-core.list
__EOF__
chmod 775 $repo_xcat_core_path/mklocalrepo.sh
rm -rf $repo_xcat_core_path/*.deb
if [ -z "$local_flag" ]
then
echo "###############################"
echo "# Updating GSA xcat-core repo #"
echo "###############################"
lftp -e "mirror -R --delete-first $repo_xcat_core_path /projects/i/ipl-xcat/ubuntu/; exit;" -u $gsa_id,$gsa_passwd -p 22 sftp://ausgsa.ibm.com
fi ### if [ -z "$local_flag" ]
fi ### if [ "$a_flag" ]
if [ "$a_flag" -a "$d_flag" ]
then
touch svcupdate.trace
SVCUP='svcupdate.trace'
svn update $xcat_dep_path 1> $SVCUP 2>&1
if ! grep 'Tree is up to date' $SVCUP
then
update_dep=1
else
update_dep=
fi
rm -f $SVCUP
else
update_dep=1
fi
if [ "$d_flag" -a "$update_dep" ]
then
echo "##############################"
echo "# Building xcat-dep packages #"
echo "##############################"
CMD_PATH=`pwd`
cd $xcat_dep_path
./build-debs-all "snap" "Nightly_Builds"
echo "################################"
echo "# Creating xcat-dep repository #"
echo "################################"
rm -rf $repo_xcat_dep_path
mkdir -p $repo_xcat_dep_path/conf
find $xcat_dep_path -iname '*.deb' -exec cp {} $repo_xcat_dep_path \;
rm -rf $repo_xcat_core_path/conf/distributions
for dist in $dists; do
cat << __EOF__ >> $repo_xcat_dep_path/conf/distributions
Origin: xCAT internal repository
Label: xcat-dep bazaar repository
Codename: $dist
Architectures: amd64
Components: main
Description: Repository automatically genereted conf
__EOF__
done
cat << __EOF__ > $repo_xcat_dep_path/conf/options
verbose
basedir .
__EOF__
for dist in $dists; do
for file in `ls $repo_xcat_dep_path/*.deb`; do
reprepro -b $repo_xcat_dep_path includedeb $dist $file;
done
done
cat << '__EOF__' > $repo_xcat_dep_path/mklocalrepo.sh
codename=`lsb_release -a 2>null | grep Codename | awk '{print $2}'`
cd `dirname $0`
echo deb file://"`pwd`" $codename main > /etc/apt/sources.list.d/xcat-dep.list
__EOF__
chmod 775 $repo_xcat_dep_path/mklocalrepo.sh
rm -rf $repo_xcat_dep_path/*.deb
if [ -z "$local_flag" ]
then
echo "##############################"
echo "# Updating GSA xcat-dep repo #"
echo "##############################"
lftp -e "mirror -R --delete-first $repo_xcat_dep_path /projects/i/ipl-xcat/ubuntu/; exit;" -u $gsa_id,$gsa_passwd -p 22 sftp://ausgsa.ibm.com
fi ### if [ -z "$local_flag" ]
fi ### if [ "$d_flag" -a "$a_flag"]
if [ -z "$local_flag" ] # delete the temp repo after upload is done
then
rm -rf ./gsa-repo_temp
fi
exit 0
+1 -1
View File
@@ -68,7 +68,7 @@ function makedeb {
}
# build all debian packages
packages="xCAT-client xCAT-nbroot xCAT-nbroot2 perl-xCAT xCAT-server xCAT-UI xCAT xCATsn xCAT-test xCAT-IBMhpc xCAT-rmc xCAT-vlan xCAT-confluent"
packages="xCAT-client xCAT-nbroot xCAT-nbroot2 perl-xCAT xCAT-server xCAT-UI xCAT xCATsn xCAT-test xCAT-IBMhpc xCAT-rmc"
for file in `echo $packages`
do
+28 -80
View File
@@ -53,7 +53,7 @@ for i in $*; do
done
# Supported distributions
dists="saucy trusty utopic"
dists="maverick natty oneiric precise"
c_flag= # xcat-core (trunk-delvel) path
d_flag= # xcat-dep (trunk) path
@@ -86,7 +86,7 @@ if [ "$c_flag" -a "$d_flag" ];then
exit 2
fi
uploader="ligc"
uploader="bp-sawyers"
# Find where this script is located to set some build variables
old_pwd=`pwd`
cd `dirname $0`
@@ -194,39 +194,27 @@ then
if [ ! -d ../../$package_dir_name ];then
mkdir -p "../../$package_dir_name"
fi
packages="xCAT-client xCAT-genesis-scripts perl-xCAT xCAT-server xCAT xCATsn xCAT-test xCAT-buildkit xCAT-vlan xCAT-confluent"
target_archs=(amd64 ppc64el)
packages="xCAT-client xCAT-genesis-scripts perl-xCAT xCAT-server xCAT-UI xCAT xCATsn xCAT-test xCAT-OpenStack"
for file in `echo $packages`
do
file_low=`echo $file | tr '[A-Z]' '[a-z]'`
if [ "$file" = "xCAT" -o "$file" = "xCAT-genesis-scripts" ]; then
target_archs="amd64 ppc64el"
else
target_archs="all"
fi
for target_arch in `echo $target_archs`
do
if grep -q $file $update_log || [ "$BUILDALL" == 1 -o "$file" = "perl-xCAT" ]; then
rm -f ../../$package_dir_name/${file_low}_*.$target_arch.deb
#genesis scripts package, don't remove genesis amd64 files
#rm -f ../../$package_dir_name/${file_low}-amd64_*.deb
cd $file
dch -v $pkg_version -b -c debian/changelog $build_string
if [ "$target_arch" = "all" ]; then
dpkg-buildpackage -uc -us
else
dpkg-buildpackage -uc -us -a$target_arch
fi
rc=$?
if [ $rc -gt 0 ]; then
echo "Error: $file build package failed exit code $rc"
fi
cd -
find $file -maxdepth 3 -type d -name "${file_low}*" | grep debian | xargs rm -rf
find $file -maxdepth 3 -type f -name "files" | grep debian | xargs rm -rf
mv ${file_low}* ../../$package_dir_name/
if grep -q $file $update_log || [ "$BUILDALL" == 1 -o "$file" = "perl-xCAT" ]; then
rm -f ../../$package_dir_name/${file_low}_*.deb
#only for genesis package
rm -f ../../$package_dir_name/${file_low}-amd64_*.deb
cd $file
dch -v $pkg_version -b -c debian/changelog $build_string
dpkg-buildpackage -uc -us
rc=$?
if [ $rc -gt 0 ]; then
echo "Error: $file build package failed exit code $rc"
fi
done
cd -
find $file -maxdepth 3 -type d -name "${file_low}*" | grep debian | xargs rm -rf
find $file -maxdepth 3 -type f -name "files" | grep debian | xargs rm -rf
mv ${file_low}* ../../$package_dir_name/
fi
done
find ../../$package_dir_name/* ! -name *.deb | xargs rm -f
@@ -262,16 +250,11 @@ then
mkdir conf
for dist in $dists; do
if [ "$dist" = "trusty" ] || [ "$dist" = "utopic" ]; then
tmp_out_arch="amd64 ppc64el"
else
tmp_out_arch="amd64"
fi
cat << __EOF__ >> conf/distributions
Origin: xCAT internal repository
Label: xcat-core bazaar repository
Codename: $dist
Architectures: $tmp_out_arch
Architectures: amd64
Components: main
Description: Repository automatically genereted conf
SignWith: yes
@@ -286,29 +269,17 @@ basedir .
__EOF__
#import the deb packages into the repo
amd_files=`ls ../$package_dir_name/*.deb | grep -v "ppc64el"`
all_files=`ls ../$package_dir_name/*.deb`
for dist in $dists; do
if [ "$dist" = "trusty" ] || [ "$dist" = "utopic" ]; then
deb_files=$all_files
else
deb_files=$amd_files
fi
for file in $deb_files; do
for file in `ls ../$package_dir_name/*.deb`; do
reprepro -b ./ includedeb $dist $file;
done
done
#create the mklocalrepo script
cat << '__EOF__' > mklocalrepo.sh
cat << __EOF__ > mklocalrepo.sh
. /etc/lsb-release
cd `dirname $0`
host_arch=`uname -m`
if [ "$host_arch" != "ppc64le" ];then
host_arch="amd64"
else
host_arch="ppc64el"
fi
echo deb [arch=$host_arch] file://"`pwd`" $DISTRIB_CODENAME main > /etc/apt/sources.list.d/xcat-core.list
echo deb file://"`pwd`" $DISTRIB_CODENAME main > /etc/apt/sources.list.d/xcat-core.list
__EOF__
chmod 775 mklocalrepo.sh
@@ -382,16 +353,11 @@ then
#create the conf/distributions file
for dist in $dists; do
if [ "$dist" = "trusty" ] || [ "$dist" = "utopic" ]; then
tmp_out_arch="amd64 ppc64el"
else
tmp_out_arch="amd64"
fi
cat << __EOF__ >> conf/distributions
Origin: xCAT internal repository
Label: xcat-dep bazaar repository
Codename: $dist
Architectures: $tmp_out_arch
Architectures: amd64
Components: main
Description: Repository automatically genereted conf
SignWith: yes
@@ -405,16 +371,8 @@ ask-passphrase
basedir .
__EOF__
#import the deb packages into the repo
amd_files=`ls ../debs/*.deb | grep -v "ppc64el"`
all_files=`ls ../debs/*.deb`
for dist in $dists; do
if [ "$dist" = "trusty" ] || [ "$dist" = "utopic" ]; then
deb_files=$all_files
else
deb_files=$amd_files
fi
for file in $deb_files; do
for file in `ls ../debs/*.deb`; do
reprepro -b ./ includedeb $dist $file;
done
done
@@ -422,13 +380,7 @@ __EOF__
cat << '__EOF__' > mklocalrepo.sh
. /etc/lsb-release
cd `dirname $0`
host_arch=`uname -m`
if [ "$host_arch" != "ppc64le" ];then
host_arch="amd64"
else
host_arch="ppc64el"
fi
echo deb [arch=$host_arch] file://"`pwd`" $DISTRIB_CODENAME main > /etc/apt/sources.list.d/xcat-dep.list
echo deb file://"`pwd`" $DISTRIB_CODENAME main > /etc/apt/sources.list.d/xcat-dep.list
__EOF__
chmod 775 mklocalrepo.sh
@@ -444,7 +396,7 @@ __EOF__
chmod -R g+w xcat-dep
#create the tar ball
dep_tar_name=xcat-dep-ubuntu-snap`date +%Y%m%d`.tar.bz
dep_tar_name=xcat-dep-ubuntu.tar.bz
tar -hjcf $dep_tar_name xcat-dep
chgrp root $dep_tar_name
chmod g+w $dep_tar_name
@@ -461,10 +413,6 @@ __EOF__
while [ $((i+=1)) -le 5 ] && ! rsync -urLv --delete xcat-dep ${uploader},xcat@web.sourceforge.net:${sf_dir}/ubuntu/
do : ; done
#upload the tarball
i=0
echo "Uploading $dep_tar_name to ${sf_dir}/xcat-dep/2.x_Ubuntu/ ..."
while [ $((i+=1)) -le 5 ] && ! rsync -v $dep_tar_name ${uploader},xcat@web.sourceforge.net:${sf_dir}/xcat-dep/2.x_Ubuntu/
do : ; done
cd $old_pwd
fi
exit 0
+31 -54
View File
@@ -12,44 +12,40 @@
# at https://sourceforge.net/account/ssh
# - On Linux: make sure createrepo is installed on the build machine
# - On AIX: Install openssl and openssh installp pkgs and run updtvpkg. Install from http://www.perzl.org/aix/ :
# apr, apr-util, bash, bzip2, db4, expat, gdbm, gettext, glib2, gmp, info, libidn, neon, openssl (won't
# conflict with the installp version - but i don't think you need this), pcre, perl-DBD-SQLite, perl-DBI,
# popt, python, readline, rsynce, sqlite, subversion, unixODBC, zlib.
# Install wget from http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/alpha.html
# apr, apr-util, bash, bzip2, db4, expat, gdbm, gettext, glib2, gmp, info, libidn, neon, openssl (won't
# conflict with the installp version - but i don't think you need this), pcre, perl-DBD-SQLite, perl-DBI,
# popt, python, readline, rsynce, sqlite, subversion, unixODBC, zlib. Install wget from http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/alpha.html
# - Run this script from the local svn repository you just created. It will create the other
# directories that are needed.
# Usage: buildcore.sh [attr=value attr=value ...]
# Before running buildcore.sh, you must change the local git repo to the branch you want built, using: git checkout <branch>
# PROMOTE=1 - if the attribute "PROMOTE" is specified, means an official dot release. This does not actually build
# xcat, just uploads the most recent snap build to https://sourceforge.net/projects/xcat/files/xcat/ .
# If not specified, a snap build is assumed, which uploads to https://sourceforge.net/projects/xcat/files/yum/
# or https://sourceforge.net/projects/xcat/files/aix/.
# PREGA=1 - use this option with PROMOTE=1 on a branch that already has a released dot release, but this build is
# a GA candidate build, not to be released yet. This will result in the tarball being uploaded to
# https://sourceforge.net/projects/xcat/files/yum/ or https://sourceforge.net/projects/xcat/files/aix/
# (but the tarball file name will be like a released tarball, not a snap build). When you are ready to
# release this build, use PROMOTE=1 without PREGA
# BUILDALL=1 - build all rpms, whether they changed or not. Should be used for snap builds that are in prep for a release.
# UP=0 or UP=1 - override the default upload behavior
# SVNUP=<filename> - control which rpms get built by specifying a coresvnup file
# GITUP=<filename> - control which rpms get built by specifying a coregitup file
# EMBED=<embedded-environment> - the environment for which a minimal version of xcat should be built, e.g. zvm or flex
# VERBOSE=1 - to see lots of verbose output
# Before running buildcore.sh, you must change the local git repo to the branch you want built, using: git checkout <branch>
# PROMOTE=1 - if the attribute "PROMOTE" is specified, means an official dot release. This does not
# actually build xcat, just uploads the most recent snap build to https://sourceforge.net/projects/xcat/files/xcat/ .
# If not specified, a snap build is assumed, which uploads to https://sourceforge.net/projects/xcat/files/yum/
# or https://sourceforge.net/projects/xcat/files/aix/.
# PREGA=1 - use this option with PROMOTE=1 on a branch that already has a released dot release, but this build is
# a GA candidate build, not to be released yet. This will result in the tarball being uploaded to
# https://sourceforge.net/projects/xcat/files/yum/ or https://sourceforge.net/projects/xcat/files/aix/
# (but the tarball file name will be like a released tarball, not a snap build). When you are ready to
# release this build, use PROMOTE=1 without PREGA
# BUILDALL=1 - build all rpms, whether they changed or not. Should be used for snap builds that are in prep for a release.
# UP=0 or UP=1 - override the default upload behavior
# SVNUP=<filename> - control which rpms get built by specifying a coresvnup file
# GITUP=<filename> - control which rpms get built by specifying a coregitup file
# EMBED=<embedded-environment> - the environment for which a minimal version of xcat should be built, e.g. zvm or flex
# VERBOSE=1 - to see lots of verbose output
# you can change this if you need to
UPLOADUSER=bp-sawyers
FRS=/home/frs/project/x/xc/xcat
# 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"
ALLBUILD="perl-xCAT xCAT-client xCAT-server xCAT-IBMhpc xCAT-rmc xCAT-UI xCAT-test xCAT-buildkit xCAT xCATsn xCAT-genesis-scripts xCAT-OpenStack"
ZVMBUILD="perl-xCAT xCAT-server xCAT-UI"
ZVMLINK="xCAT-client xCAT xCATsn"
# xCAT and xCATsn have PCM specific configuration - conserver-xcat, syslinux-xcat
# xCAT-server has PCM specific configuration - RESTAPI(perl-JSON)
# xCAT-client has PCM specific configuration - getxcatdocs(perl-JSON)
PCMBUILD="xCAT xCAT-server xCAT-client xCATsn"
PCMLINK="perl-xCAT xCAT-buildkit xCAT-genesis-scripts-x86_64"
PCMBUILD="xCAT"
PCMLINK="perl-xCAT xCAT-client xCAT-server xCAT-buildkit xCAT-genesis-scripts-x86_64"
# Note: for FSM, the FlexCAT rpm is built separately from gsa/git
FSMBUILD="perl-xCAT xCAT-client xCAT-server"
FSMLINK=""
@@ -241,13 +237,10 @@ 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; do
for rpmname in xCAT-client xCAT-server xCAT-IBMhpc xCAT-rmc xCAT-UI xCAT-test xCAT-buildkit; do
#if [ "$EMBED" = "zvm" -a "$rpmname" != "xCAT-server" -a "$rpmname" != "xCAT-UI" ]; then continue; fi # for zvm embedded env only need to build server and UI
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
if [ "$OSNAME" = "AIX" -a "$rpmname" = "xCAT-vlan" ]; then continue; fi # do not build xCAT-vlan on aix
if [ "$OSNAME" = "AIX" -a "$rpmname" = "xCAT-confluent" ]; then continue; fi # do not build xCAT-confluent on aix
if [ "$OSNAME" = "AIX" -a "$rpmname" = "xCAT-buildkit" ]; then continue; fi # do not build xCAT-buildkit on aix
if $GREP $rpmname $GITUP || [ "$BUILDALL" == 1 ]; then
UPLOAD=1
maker $rpmname
@@ -268,8 +261,6 @@ if [ "$OSNAME" != "AIX" ]; then
ORIGFAILEDRPMS="$FAILEDRPMS"
./makerpm xCAT-genesis-scripts x86_64 "$EMBED"
if [ $? -ne 0 ]; then FAILEDRPMS="$FAILEDRPMS xCAT-genesis-scripts-x86_64"; fi
./makerpm xCAT-genesis-scripts ppc64 "$EMBED"
if [ $? -ne 0 ]; then FAILEDRPMS="$FAILEDRPMS xCAT-genesis-scripts-ppc64"; fi
if [ "$FAILEDRPMS" = "$ORIGFAILEDRPMS" ]; then # all succeeded
rm -f $DESTDIR/xCAT-genesis-scripts*rpm
rm -f $SRCDIR/xCAT-genesis-scripts*rpm
@@ -281,20 +272,19 @@ if [ "$OSNAME" != "AIX" ]; then
fi
# Build the xCAT and xCATsn rpms for all platforms
#for rpmname in xCAT xCATsn xCAT-OpenStack xCAT-OpenStack-baremetal; do
for rpmname in xCAT xCATsn; do
for rpmname in xCAT xCATsn xCAT-OpenStack; do
#if [ "$EMBED" = "zvm" ]; then break; fi
if [[ " $EMBEDBUILD " != *\ $rpmname\ * ]]; then continue; fi
if [ $SOMETHINGCHANGED == 1 -o "$BUILDALL" == 1 ]; then # used to be: if $GREP -E "^[UAD] +$rpmname/" $GITUP; then
UPLOAD=1
ORIGFAILEDRPMS="$FAILEDRPMS"
if [ "$OSNAME" = "AIX" ]; then
if [ "$rpmname" = "xCAT-OpenStack" ] || [ "$rpmname" = "xCAT-OpenStack-baremetal" ]; then continue; fi # do not bld openstack on aix
if [ "$rpmname" = "xCAT-OpenStack" ]; then continue; fi # do not bld openstack on aix
./makerpm $rpmname "$EMBED"
if [ $? -ne 0 ]; then FAILEDRPMS="$FAILEDRPMS $rpmname"; fi
else
for arch in x86_64 ppc64 ppc64le s390x; do
if [ "$rpmname" = "xCAT-OpenStack" -a "$arch" != "x86_64" ] || [ "$rpmname" = "xCAT-OpenStack-baremetal" -a "$arch" != "x86_64" ] ; then continue; fi # only bld openstack for x86_64 for now
for arch in x86_64 ppc64 s390x; do
if [ "$rpmname" = "xCAT-OpenStack" -a "$arch" != "x86_64" ]; then continue; fi # only bld openstack for x86_64 for now
./makerpm $rpmname $arch "$EMBED"
if [ $? -ne 0 ]; then FAILEDRPMS="$FAILEDRPMS $rpmname-$arch"; fi
done
@@ -362,7 +352,7 @@ if [ "$OSNAME" != "AIX" ]; then
echo '%_signature gpg' >> $MACROS
fi
if ! $GREP '%_gpg_name' $MACROS 2>/dev/null; then
echo '%_gpg_name xCAT Security Key' >> $MACROS
echo '%_gpg_name Jarrod Johnson' >> $MACROS
fi
echo "Signing RPMs..."
build-utils/rpmsign.exp `find $DESTDIR -type f -name '*.rpm'` | grep -v -E '(already contains identical signature|was already signed|rpm --quiet --resign|WARNING: standard input reopened)'
@@ -425,18 +415,7 @@ EOF
#!/bin/sh
cd `dirname $0`
REPOFILE=`basename xCAT-*.repo`
if [[ $REPOFILE == "xCAT-*.repo" ]]; then
echo "ERROR: For xcat-dep, please execute $0 in the correct <os>/<arch> subdirectory"
exit 1
fi
#
# default to RHEL yum, if doesn't exist try Zypper
#
DIRECTORY="/etc/yum.repos.d"
if [[ ! -d ${DIRECTORY} ]]; then
DIRECTORY="/etc/zypp/repos.d"
fi
sed -e 's|baseurl=.*|baseurl=file://'"`pwd`"'|' $REPOFILE | sed -e 's|gpgkey=.*|gpgkey=file://'"`pwd`"'/repodata/repomd.xml.key|' > ${DIRECTORY}/$REPOFILE
sed -e 's|baseurl=.*|baseurl=file://'"`pwd`"'|' $REPOFILE | sed -e 's|gpgkey=.*|gpgkey=file://'"`pwd`"'/repodata/repomd.xml.key|' > /etc/yum.repos.d/$REPOFILE
cd -
EOF2
chmod 775 mklocalrepo.sh
@@ -516,9 +495,7 @@ if [ "$OSNAME" != "AIX" -a "$REL" = "devel" -a "$PROMOTE" != 1 -a -z "$EMBED" ];
rpm2cpio ../$XCATCORE/perl-xCAT-*.$NOARCH.rpm | cpio -id '*.html'
rpm2cpio ../$XCATCORE/xCAT-test-*.$NOARCH.rpm | cpio -id '*.html'
rpm2cpio ../$XCATCORE/xCAT-buildkit-*.$NOARCH.rpm | cpio -id '*.html'
#rpm2cpio ../$XCATCORE/xCAT-OpenStack-*.x86_64.rpm | cpio -id '*.html'
rpm2cpio ../$XCATCORE/xCAT-SoftLayer-*.$NOARCH.rpm | cpio -id '*.html'
rpm2cpio ../$XCATCORE/xCAT-vlan-*.$NOARCH.rpm | cpio -id '*.html'
rpm2cpio ../$XCATCORE/xCAT-OpenStack-*.x86_64.rpm | cpio -id '*.html'
i=0
while [ $((i+=1)) -le 5 ] && ! rsync $verboseflag -r opt/xcat/share/doc/man1 opt/xcat/share/doc/man3 opt/xcat/share/doc/man5 opt/xcat/share/doc/man7 opt/xcat/share/doc/man8 $UPLOADUSER,xcat@web.sourceforge.net:htdocs/
do : ; done
+19 -29
View File
@@ -92,7 +92,7 @@ if [ "$OSNAME" != "AIX" ]; then
echo '%_signature gpg' >> $MACROS
fi
if ! $GREP -q '%_gpg_name' $MACROS 2>/dev/null; then
echo '%_gpg_name xCAT Security Key' >> $MACROS
echo '%_gpg_name Jarrod Johnson' >> $MACROS
fi
# Sign the rpms that are not already signed. The "standard input reopened" warnings are normal.
@@ -138,21 +138,8 @@ if [ "$PERLVER" == "v5.8.2" ]; then
OSVER='5.3'
elif [ "$PERLVER" == "v5.8.8" ]; then
OSVER='6.1'
aixver=`lslpp -lc|grep 'bos.rte:'|head -1|cut -d: -f3`
if [[ $aixver < '6.1.9.0' ]]; then
AIX61Y=0
else
AIX61Y=1
fi
elif [ "$PERLVER" == "v5.10.1" ]; then
OSVER='7.1'
aixver=`lslpp -lc|grep 'bos.rte:'|head -1|cut -d: -f3`
if [[ $aixver < '7.1.3.0' ]]; then
AIX71L=0
else
AIX71L=1
fi
else
echo "Error: the perl version of '$PERLVER' is not one that instoss understands. Exiting..."
exit 2
@@ -169,30 +156,33 @@ echo "Running updtvpkg. This could take a few minutes."
/usr/sbin/updtvpkg
echo "updtvpkg has completed."
# unixODBC is required by pyodbc, so install it first
rpm -Uvh unixODBC*
# Now install the bulk of the rpms, one at a time, in case some are already installed
for i in `ls *.rpm|grep -v -E '^tcl-|^tk-|^expect-|^unixODBC-|^xCAT-UI-deps|^perl-DBD-DB2Lite|^net-snmp'`; do
for i in `ls *.rpm|grep -v -E '^tcl-|^tk-|^expect-|^unixODBC-|^xCAT-UI-deps|^perl-DBD-DB2Lite'`; do
if [ "$i" == "perl-Net-DNS-0.66-1.aix5.3.ppc.rpm" ]; then
opts="--nodeps"
else
opts=""
fi
# On 7.1L and 6.1Y we need a newer version of perl-Net_SSLeay.pm
if [[ $AIX71L -eq 1 || $AIX61Y -eq 1 ]]; then
if [[ $i == perl-Net_SSLeay.pm-1.30-* ]]; then continue; fi # skip the old rpm
else
if [[ $i == perl-Net_SSLeay.pm-1.55-* ]]; then continue; fi # skip the new rpm
fi
# just in case we need it sometime, this next if stmt would mean: if it does not start with perl-DBD-DB2
#if [ "${i#perl-DBD-DB2}" == "$i" ]; then
echo rpm -Uvh $opts $i
rpm -Uvh $opts $i
done
# Have to upgrade all of the net-snmp rpms together because they depend on each other.
# Also, they require bash, so do it after the loop, rather than before
rpm -Uvh net-snmp*
# don't try to install tcl, tk, or expect if they are already installed!
# this section about expect/tcl/tk can be removed once 2.8 releases, because 2.8 no longer requires expect
lslpp -l | grep expect.base > /dev/null 2>&1
if [ $? -gt 0 ]; then
if [ "$OSVER" == "5.3" ]; then
for i in tcl-*.rpm tk-*.rpm expect-*.rpm; do
echo rpm -Uvh $i
rpm -Uvh $i
done
else
echo "The expect.base, tcl.base, and tk.base filesets must also be installed before installing the xCAT RPMs from xcat-core."
fi
fi
EOF
# end of instoss file content ---------------------------------------------
@@ -206,7 +196,7 @@ if [ "$OSNAME" == "AIX" ]; then
else
SYSGRP=root
fi
chgrp -R -h $SYSGRP *
chgrp -R $SYSGRP *
chmod -R g+w *
# Build the tarball
-163
View File
@@ -1,163 +0,0 @@
#######################################################################
#build script for local usage
#used for Linux/AIX/Ubuntu
#
###########################################################################
OSNAME=$(uname)
NAMEALL=$(uname -a)
for i in $*; do
# upper case the variable name
varstring=`echo "$i"|cut -d '=' -f 1|tr '[a-z]' '[A-Z]'`=`echo "$i"|cut -d '=' -f 2`
export $varstring
done
if [ -z "$CURDIR" ]; then
echo "get current directory!"
CURDIR=$(pwd)
fi
echo "CURDIR is $CURDIR"
echo "OSNAME is $OSNAME!"
echo "NAMEALL is $NAMEALL"
grep -i 'SUSE' /etc/issue
if [ $? -eq 0 ]; then
echo "This is a SUSE system!"
OS="SUSE";
fi
ls $CURDIR/makerpm
if [ $? -gt 0 ]; then
echo "Error:no repo exist, exit 1."
exit 1
fi
# Get a lock, so can not do 2 builds at once
exec 8>/var/lock/xcatbld.lock
if ! flock -n 8; then
echo "Can't get lock /var/lock/xcatbld.lock. Someone else must be doing a build right now. Exiting...."
exit 1
fi
#delete old package if there is
rm -rf $CURDIR/build/
cd $CURDIR
echo "==============================================="
echo $NAMEALL | egrep "Ubuntu"
#Check if it is an Ubuntu system
if [ $? -eq 0 ]; then
echo "This is an Ubuntu system"
pkg_type="snap"
build_string="Snap_Build"
cur_date=`date +%Y%m%d`
short_ver=`cat Version|cut -d. -f 1,2`
pkg_version="${short_ver}-${pkg_type}${cur_date}"
mkdir -p $CURDIR/build
for rpmname in xCAT-client xCAT-genesis-scripts perl-xCAT xCAT-server xCAT xCATsn xCAT-test xCAT-vlan; do
rpmname_low=`echo $rpmname | tr '[A-Z]' '[a-z]'`
echo "============================================"
echo "$rpmname_low"
cd $rpmname
dch -v $pkg_version -b -c debian/changelog $build_string
dpkg-buildpackage -uc -us
rc=$?
if [ $rc -gt 0 ]; then
echo "Error: $rpmname build package failed exit code $rc"
fi
cd -
mv ${rpmname_low}* $CURDIR/build
done
#delete all files except .deb file
find $CURDIR/build/* ! -name *.deb | xargs rm -f
else
#This is not an Ubuntu system
echo "This is an $OSNAME system"
if [ "$OS" = "SUSE" ]; then
rm -rf /usr/src/packages/RPMS/noarch/*
rm -rf /usr/src/packages/RPMS/x86_64/*
rm -rf /usr/src/packages/RPMS/ppc64/*
else
rm -rf /root/rpmbuild/RPMS/noarch/*
rm -rf /root/rpmbuild/RPMS/x86_64/*
rm -rf /root/rpmbuild/RPMS/ppc64/*
fi
mkdir -p $CURDIR/build/
#always build perl-xCAT
$CURDIR/makerpm perl-xCAT
# Build the rest of the noarch rpms
for rpmname in xCAT-client xCAT-server xCAT-IBMhpc xCAT-rmc xCAT-test xCAT-buildkit xCAT-vlan; do
if [ "$OSNAME" = "AIX" -a "$rpmname" = "xCAT-buildkit" ]; then continue; fi
$CURDIR/makerpm $rpmname
done
#build xCAT-genesis-scripts if it is x86_64 platform
ARCH=$(uname -p)
if [ "$ARCH" = "x86_64" ]; then
$CURDIR/makerpm xCAT-genesis-scripts x86_64
else
$CURDIR/makerpm xCAT-genesis-scripts ppc64
fi
# Build the xCAT and xCATsn rpms for all platforms
for rpmname in xCAT xCATsn; do
if [ "$OSNAME" = "AIX" ]; then
$CURDIR/makerpm $rpmname
if [ $? -ne 0 ]; then FAILEDRPMS="$FAILEDRPMS $rpmname"; fi
else
for arch in x86_64 ppc64 s390x; do
$CURDIR/makerpm $rpmname $arch
if [ $? -ne 0 ]; then FAILEDRPMS="$FAILEDRPMS $rpmname-$arch"; fi
done
fi
done
if [ "$OS" = "SUSE" ]; then
cp /usr/src/packages/RPMS/noarch/* $CURDIR/build/
cp /usr/src/packages/RPMS/x86_64/* $CURDIR/build/
cp /usr/src/packages/RPMS/ppc64/* $CURDIR/build/
else
cp /root/rpmbuild/RPMS/noarch/* $CURDIR/build/
cp /root/rpmbuild/RPMS/x86_64/* $CURDIR/build/
cp /root/rpmbuild/RPMS/ppc64/* $CURDIR/build/
fi
#begin to create repo for redhat platform
grep -i 'Red' /etc/*release*;
if [ "$OSNAME" != "AIX" -a $? -eq 0 ]; then
cat >$CURDIR/build/xCAT-core.repo << EOF
[xcat-2-core]
name=xCAT 2 Core packages
baseurl=file://$CURDIR/build
enabled=1
gpgcheck=0
EOF
cp $CURDIR/build/xCAT-core.repo /etc/yum.repos.d/
createrepo $CURDIR/build
else
rm -f /etc/zypp/repos.d/xCAT-core.repo
zypper ar file://$CURDIR/build xCAT-core
fi
fi
+3
View File
@@ -10,6 +10,9 @@
<packagereq type="required">xCAT-server</packagereq>
<packagereq type="required">xCAT-client</packagereq>
<packagereq type="required">perl-xCAT</packagereq>
<packagereq type="required">xCAT-nbroot-core-x86_64</packagereq>
<packagereq type="required">xCAT-nbroot-core-x86</packagereq>
<packagereq type="optional">xCAT-nbroot-core-ppc64</packagereq>
</packagelist>
</group>
</comps>
+2 -23
View File
@@ -53,7 +53,6 @@ function makexcat {
tar -X /tmp/xcat-excludes -cf $RPMROOT/SOURCES/templates.tar templates
gzip -f $RPMROOT/SOURCES/templates.tar
cp xcat.conf $RPMROOT/SOURCES
cp xcat.conf.apach24 $RPMROOT/SOURCES
cp xCATMN $RPMROOT/SOURCES
else # xCATsn
tar -X /tmp/xcat-excludes -cf $RPMROOT/SOURCES/license.tar LICENSE.html
@@ -76,16 +75,13 @@ function makexcat {
tar --exclude .svn --exclude upflag -czf $RPMROOT/SOURCES/postscripts.tar.gz postscripts LICENSE.html
tar --exclude .svn -czf $RPMROOT/SOURCES/prescripts.tar.gz prescripts
tar --exclude .svn -czf $RPMROOT/SOURCES/templates.tar.gz templates
tar --exclude .svn -czf $RPMROOT/SOURCES/winpostscripts.tar.gz winpostscripts
cp xcat.conf $RPMROOT/SOURCES
cp xcat.conf.apach24 $RPMROOT/SOURCES
cp xCATMN $RPMROOT/SOURCES
cd - >/dev/null
elif [ "$RPMNAME" = "xCATsn" ]; then
cd `dirname $0`/$RPMNAME
tar --exclude .svn -czf $RPMROOT/SOURCES/license.tar.gz LICENSE.html
cp xcat.conf $RPMROOT/SOURCES
cp xcat.conf.apach24 $RPMROOT/SOURCES
cp xCATSN $RPMROOT/SOURCES
cd - >/dev/null
elif [ "$RPMNAME" = "xCAT-buildkit" ]; then
@@ -106,23 +102,7 @@ function makexcat {
fi
}
# make ironic rpm for ironic baremetal driver
function makeironic {
RPMNAME="$1"
ARCH="$2"
cd `dirname $0`/$RPMNAME
cp -rf ironic_baremetal /tmp/
cd /tmp/ironic_baremetal
git init
git add *
git commit -a -m "generate rpm"
python setup.py bdist_rpm
rm -rf $RPMROOT/RPMS/$ARCH/
mkdir -p $RPMROOT/RPMS/$ARCH/
cp -rf dist/*.rpm $RPMROOT/RPMS/$ARCH/
rm -rf /tmp/ironic_baremetal
}
# Make the xCAT-nbroot-core rpm
function makenbroot {
@@ -222,6 +202,7 @@ else # linux
fi
fi
if [ "$1" = "xCAT" -o "$1" = "xCATsn" -o "$1" = "xCAT-buildkit" -o "$1" = "xCAT-OpenStack" ]; then
exportEmbed $3
makexcat $1 $2
@@ -234,8 +215,6 @@ elif [ "$1" = "xCAT-genesis-builder" ]; then
elif [ "$1" = "xCAT-genesis-scripts" ]; then
exportEmbed $3
makegenesisscripts $1 $2
elif [ "$1" = "xCAT-OpenStack-ironic" ]; then
makeironic $1 $2
else # must be one of the noarch rpms
exportEmbed $2
makenoarch $1
-6
View File
@@ -262,12 +262,6 @@ expression B<($1-1)%14+1> will evaluate to B<6>.
See http://www.perl.com/doc/manual/html/pod/perlre.html for information on perl regular expressions.
=head2 Easy Regular Expressions
As of xCAT 2.8.1, you can use a modified version of the regular expression support described in the previous section. You do not need to enter the node information (1st part of the expression), it will be derived from the input nodename. You only need to supply the 2nd part of the expression to determine the value to give the attribute. For examples, see
https://sourceforge.net/p/xcat/wiki/Listing_and_Modifying_the_Database/#easy-regular-expressions
=head1 OBJECT DEFINITIONS
Because it can get confusing what attributes need to go in what tables, the xCAT database can also
+1 -1
View File
@@ -48,7 +48,7 @@ binary-arch: build install
chmod 644 `pwd`/debian/perl-xcat/opt/xcat/share/doc/man5/*
chmod 644 `pwd`/debian/perl-xcat/opt/xcat/share/man/man7/*
chmod 644 `pwd`/debian/perl-xcat/opt/xcat/share/doc/man7/*
./modifyUtils `cat ../Version` `git log -n 1 | head -n 1 | cut -f 2 -d ' '`
./modifyUtils `cat ../Version` `svn info | grep Revision | cut -d" " -f 2`
# dh_installmenu
# dh_installdebconf
# dh_installlogrotate
+3 -4
View File
@@ -1,21 +1,20 @@
#!/bin/sh
# Put the version, svn revision #, and build date into the Version function in Version.pm
if [ -z "$2" ]
if [ -z "$1" ]
then
echo "modifyUtils: Error: must specify the xCAT version as an argument" >&2
exit
fi
VER=$1
GITREF="git commit $2, "
BUILDDATE=`date`
#echo ". '(built $BUILDDATE)'"
if [ "$(uname)" = "AIX" ]
then
sed -e s/"#XCATVERSIONSUBHERE"/". '$VER'"/ -e s/"#XCATSVNBUILDSUBHERE"/". ' (${GITREF}built $BUILDDATE)'"/ xCAT/Version.pm >xCAT/Version.pm.new
sed -e s/"#XCATVERSIONSUBHERE"/". '$VER'"/ -e s/"#XCATSVNBUILDSUBHERE"/". ' (built $BUILDDATE)'"/ xCAT/Version.pm >xCAT/Version.pm.new
mv xCAT/Version.pm.new xCAT/Version.pm
else
if [ -f "/etc/debian_version" ];then
@@ -23,5 +22,5 @@ else
else
FILENAME="xCAT/Version.pm"
fi
sed -i -e s/"#XCATVERSIONSUBHERE"/". '$VER'"/ -e s/"#XCATSVNBUILDSUBHERE"/". ' (${GITREF}built $BUILDDATE)'"/ $FILENAME
sed -i -e s/"#XCATVERSIONSUBHERE"/". '$VER'"/ -e s/"#XCATSVNBUILDSUBHERE"/". ' (built $BUILDDATE)'"/ $FILENAME
fi
+1 -3
View File
@@ -23,8 +23,6 @@ Provides: perl-xCAT = %{epoch}:%{version}
Provides perl xCAT libraries for core functionality. Required for all xCAT installations.
Includes xCAT::Table, xCAT::NodeRange, among others.
%define gitinfo %(git log -n 1 | head -n 1 | cut -f 2 -d ' ')
%define zvm %(if [ "$zvm" = "1" ];then echo 1; else echo 0; fi)
%define fsm %(if [ "$fsm" = "1" ];then echo 1; else echo 0; fi)
@@ -38,7 +36,7 @@ Includes xCAT::Table, xCAT::NodeRange, among others.
%if %fsm
%else
# Modify the Version() function in xCAT/Utils.pm to automatically have the correct version
./modifyUtils %{version} %{gitinfo}
./modifyUtils %{version}
# Build the pod version of the man pages for each DB table. It puts them in the man5 and man7 subdirs.
# Then convert the pods to man pages and html pages.
+2 -125
View File
@@ -500,7 +500,6 @@ sub setCFMPkglistFile {
Arguments:
$imagename - the specified linuximage name
@curospkgs - the currently selected OS packages list
$mode - using Fuzzy Matching or Exact Matching to check packages
Returns:
0 - update successfully
1 - update failed
@@ -510,22 +509,13 @@ sub setCFMPkglistFile {
none
Example:
my $ret = CAT::CFMUtils->updateCFMPkglistFile($imagename, @cur_selected_pkgs);
my $ret = CAT::CFMUtils->updateCFMPkglistFile($imagename, @cur_selected_pkgs, 1);
=cut
#-----------------------------------------------------------------------------
sub updateCFMPkglistFile {
my ($class, $img, $ospkgs, $mode) = @_;
if(defined($mode)){
# Exact Matching
$mode = 1;
}else {
# Fuzzy Matching
$mode = 0;
}
my ($class, $img, $ospkgs) = @_;
my @cur_selected = @$ospkgs;
my $cfmpkglist = "/install/osimages/$img/pkglist.cfm";
@@ -559,14 +549,6 @@ sub updateCFMPkglistFile {
my @selected = @$selected_ref;
@basepkgs = xCAT::CFMUtils->arrayops("U", \@basepkgs, \@selected);
}
# Fuzzy Matching
if (not $mode){
my ($ref1, $ref2, $ref3) = xCAT::CFMUtils->updateSelectedPkgs(\@pre_selected, \@pre_removed, \@cur_selected);
@pre_selected = @$ref1;
@pre_removed = @$ref2;
@cur_selected = @$ref3;
}
# get diff between previous and current selected OS packages lists
my @diff = xCAT::CFMUtils->getPkgsDiff(\@pre_selected, \@cur_selected);
@@ -679,48 +661,6 @@ sub getPreOSpkgsList {
return (\@selected, \@removed);
}
#-----------------------------------------------------------------------------
=head3 getPreBaseOSpkgsList
Get previously selected and removed base OS packages lists from pkglist file. Packages named with "example.xxx" should be the base name "example"
Arguments:
$ospkglist - the path for ospkglist file
Returns:
refs for selected and removed OS packages arrays
Globals:
none
Error:
none
Example:
my $pre_selected_ref = xCAT::CFMUtils->getPreOSpkgsList($ospkglist);
=cut
#-----------------------------------------------------------------------------
sub getPreBaseOSpkgsList {
my ($class, $pkglist) = @_;
my ($pre_selected_ref, $pre_removed_ref) = xCAT::CFMUtils->getPreOSpkgsList($pkglist);
my %pre_selected_hash = ();
foreach (@$pre_selected_ref) {
my @names = split(/\./, $_);
my $basename = $names[0];
if ($_ =~ /^$basename\.([^\.]+)$/) {
$pre_selected_hash{$basename} = 1;
}else {
$pre_selected_hash{$_} = 1;
}
}
my @pre_selected = keys %pre_selected_hash;
return \@pre_selected;
}
#-----------------------------------------------------------------------------
=head3 getPkgsDiff
@@ -879,66 +819,3 @@ sub arrayops {
#return (\@union, \@intersection, \@difference);
}
#-----------------------------------------------------------------------------
=head3 updateSelectedPkgs
Update previous selected, previous removed and current selected packages based on fuzzy matching rules. Packages named with "example.i686" should be same with package "example"
Arguments:
\@pre_selected - reference to previous selected packages
\@pre_removed - reference to previous removed packages
\@cur_selected - reference to current selected packages
Returns:
new previous selected, previous removed, current selected packages
Globals:
none
Error:
none
Example:
my ($ref1, $ref2, $ref3) = xCAT::CFMUtils->arrayops(\@pre_selected, \@pre_removed, \@cur_selected);
=cut
#-----------------------------------------------------------------------------
sub updateSelectedPkgs() {
my ($class, $pre_selected_ref, $pre_removed_ref, $cur_selected_ref) = @_;
my %pre_selected_hash = map{$_ => 1} @$pre_selected_ref;
my %pre_removed_hash = map{$_ => 1} @$pre_removed_ref;
my %cur_selected_hash = map{$_ => 1} @$cur_selected_ref;
my %new_pre_selected_hash = %pre_selected_hash;
my %new_pre_removed_hash = %pre_removed_hash;
my %new_cur_selected_hash = %cur_selected_hash;
foreach (keys %cur_selected_hash) {
my $father = $_;
my $flag = 0;
foreach (keys %pre_selected_hash) {
my $child = $_;
if ($child =~ /^$father\.([^\.]+)$/) {
$new_cur_selected_hash{$child} = 1;
$flag = 1;
}
}
if ($flag and not exists $pre_selected_hash{$father}){
delete $new_cur_selected_hash{$father} if exists $new_cur_selected_hash{$father};
}
foreach (keys %pre_removed_hash) {
my $child = $_;
if ($child =~ /^$father\.([^\.]+)$/) {
delete $new_pre_removed_hash{$child} if exists $new_pre_removed_hash{$child};
}
}
}
my @new_cur_selected = keys %new_cur_selected_hash;
my @new_pre_selected = keys %new_pre_selected_hash;
my @new_pre_removed = keys %new_pre_removed_hash;
return (\@new_pre_selected, \@new_pre_removed, \@new_cur_selected);
}
-462
View File
@@ -1,462 +0,0 @@
#! /usr/bin/env perl
# IBM(c) 2014 EPL license http://www.eclipse.org/legal/epl-v10.html
# This package offers subroutines to access CIM server
package xCAT::CIMUtils;
use strict;
use warnings;
use HTTP::Headers;
use HTTP::Request;
use LWP::UserAgent;
use XML::LibXML;
use Data::Dumper;
=head1 HTTP_PARAMS
A hash which includes all the parameters for accessing HTTP server. The valid parameter:
ip: The IP address of the HTTP server
user: The user to access HTTP server.
password: The password for the user.
method: The http method. (GET, PUT, POST, DELETE). Default is GET
protocol: The protocol which will be used to access HTTP server. (http/https). Default is https
format: The format of payload. Default is xml
payload: The payload of http
Example:
my %http_params = ( ip => '192.168.1.1',
port => '5989',
user => 'HMC',
password => 'admin',
method => 'POST',
protocol => 'https');
=cut
=head1 enum_instance ()
Description:
Enumerate CIM instances.
Arguments:
http_params: A reference to HTTP_PARAMS
cim_params: The CIM parameters
classname - a mandatory param to specify the class that enumerate will target to.
Return:
1 - A hash reference. The valid key includes:
rc - The return code. 0 - success. > 0 - fail.
cim_rc - The return code from CIM server.
msg - Output message.
2 - Array of instances, each instance is a hash contains lots of properties.
3 - The name path of instance
=cut
sub enum_instance
{
my $http_params = shift;
unless (ref($http_params)) {
$http_params = shift;
}
my $cim_params = shift;
# This is a mandatory parameter
unless ($cim_params->{classname}) {
return ({rc => 1, msg => "Missed the classname"});
}
unless ($cim_params->{namespace}) {
$cim_params->{namespace} = "ibmsd";
}
# prepare the CIM payload
my $tmpnode;
# create a new doc
my $doc = XML::LibXML->createDocument('1.0','UTF-8');
# create and add the root element
my $root = $doc->createElement("CIM");
$root->setAttribute("CIMVERSION", "2.0");
$root->setAttribute("DTDVERSION", "2.0");
$doc->setDocumentElement($root);
# create and add the MESSAGE element
my $message = $doc->createElement("MESSAGE");
$message->setAttribute("ID", "1000");
$message->setAttribute("PROTOCOLVERSION", "1.0");
$root->addChild($message);
# add a SIMPLE REQUEST
my $simple_request = $doc->createElement("SIMPLEREQ");
$message->addChild($simple_request);
# add an IMETHOD CALL
my $imethod_call = $doc->createElement("IMETHODCALL");
$imethod_call->setAttribute("NAME", "EnumerateInstances");
$simple_request->addChild($imethod_call);
# add the local name space path
my $localnamespacepath = $doc->createElement("LOCALNAMESPACEPATH");
$tmpnode = $doc->createElement("NAMESPACE");
$tmpnode->setAttribute("NAME", "root");
$localnamespacepath->addChild($tmpnode);
$tmpnode = $doc->createElement("NAMESPACE");
$tmpnode->setAttribute("NAME", $cim_params->{namespace});
$localnamespacepath->addChild($tmpnode);
$imethod_call->addChild($localnamespacepath);
# add the target class name
my $param_classname = $doc->createElement("IPARAMVALUE");
$param_classname->setAttribute("NAME", "ClassName");
$imethod_call->addChild($param_classname);
my $classname = $doc->createElement("CLASSNAME");
$classname->setAttribute("NAME", $cim_params->{classname});
$param_classname->addChild($classname);
# add several common parameters
$imethod_call->appendWellBalancedChunk('<IPARAMVALUE NAME="DeepInheritance"><VALUE>TRUE</VALUE></IPARAMVALUE><IPARAMVALUE NAME="LocalOnly"><VALUE>FALSE</VALUE></IPARAMVALUE><IPARAMVALUE NAME="IncludeQualifiers"><VALUE>FALSE</VALUE></IPARAMVALUE><IPARAMVALUE NAME="IncludeClassOrigin"><VALUE>TRUE</VALUE></IPARAMVALUE>');
my $payload = $doc->toString();
# generate http request
my $ret = gen_http_request($http_params, $payload);
if ($ret->{rc}) {
return $ret;
}
# send request to http server
$ret = send_http_request($http_params, $ret->{request});
if ($ret->{rc}) {
return $ret;
}
# parse the http response
my $ret_value;
my $parser = XML::LibXML->new();
my $resp_doc = $parser->parse_string($ret->{payload});
# check the error message from CIM
my $error_node = $resp_doc->getElementsByTagName("ERROR");
if ($error_node) {
my $msg = $error_node->[0]->getAttribute("DESCRIPTION");
my $errorcode = $error_node->[0]->getAttribute("CODE");
return ({rc => 1, cim_rc => $errorcode, msg => $error_node->[0]->getAttribute("DESCRIPTION")." [cim return code: $errorcode]"});
}
# get the name path of the instance, which is used to set property
my @namepath = $resp_doc->getElementsByTagName("INSTANCENAME");
my $namepath_string;
if (@namepath) {
$namepath_string = $namepath[0]->toString();
}
# get all the instance elements
my @instances = $resp_doc->getElementsByTagName("VALUE.NAMEDINSTANCE");
foreach my $instance (@instances) {
# get all the property element for each instance
my @properties = $instance->getElementsByTagName("PROPERTY");
if (my @property_arrays = $instance->getElementsByTagName("PROPERTY.ARRAY")) {
push @properties, @property_arrays;
}
my $ins_value;
foreach my $property (@properties) {
# get name, vlaue and type for each property. (only the one which has value)
if (my $pname = $property->getAttribute("NAME")) {
if (my $pvalue = $property->getAttribute("TYPE")) {
$ins_value->{property}->{$pname}->{type} = $pvalue;
}
if ($property->getElementsByTagName("VALUE.ARRAY")) {
my @nodelist = $property->getElementsByTagName("VALUE");
my @value_array = ();
foreach my $n (@nodelist) {
push @value_array, $n->textContent;
}
$ins_value->{property}->{$pname}->{value} = join(',',@value_array);
} elsif (my $node = $property->getElementsByTagName("VALUE")) {
$ins_value->{property}->{$pname}->{value} = $node->[0]->textContent;
}
}
}
push @{$ret_value}, $ins_value;
}
return ({rc =>0}, $ret_value, $namepath_string);
}
=head1 set_property ()
Description:
Set the property for an instance.
Arguments:
http_params: A reference to HTTP_PARAMS
cim_params: The CIM parameters
namepath - a mandatory param to specify the path of the instance.
It should be returned from 'enum_instance' subroutine.
Return:
1 - A hash reference. The valid key includes:
rc - The return code. 0 - success. > 0 - fail.
cim_rc - The return code from CIM server.
msg - Output message.
=cut
sub set_property
{
my $http_params = shift;
unless (ref($http_params)) {
$http_params = shift;
}
my $cim_params = shift;
# This is a mandatory parameter
unless ($cim_params->{namepath}) {
return ({rc => 1, msg => "Missed the name path for the instance"});
}
unless ($cim_params->{namespace}) {
$cim_params->{namespace} = "ibmsd";
}
# prepare the CIM payload
my $tmpnode;
# create a new doc
my $doc = XML::LibXML->createDocument('1.0','UTF-8');
# create and add the root element
my $root = $doc->createElement("CIM");
$root->setAttribute("CIMVERSION", "2.0");
$root->setAttribute("DTDVERSION", "2.0");
$doc->setDocumentElement($root);
# create and add the MESSAGE element
my $message = $doc->createElement("MESSAGE");
$message->setAttribute("ID", "1000");
$message->setAttribute("PROTOCOLVERSION", "1.0");
$root->addChild($message);
# add a SIMPLE REQUEST
my $simple_request = $doc->createElement("SIMPLEREQ");
$message->addChild($simple_request);
# add an IMETHOD CALL
my $imethod_call = $doc->createElement("IMETHODCALL");
$imethod_call->setAttribute("NAME", "SetProperty");
$simple_request->addChild($imethod_call);
# add the local name space path
my $localnamespacepath = $doc->createElement("LOCALNAMESPACEPATH");
$tmpnode = $doc->createElement("NAMESPACE");
$tmpnode->setAttribute("NAME", "root");
$localnamespacepath->addChild($tmpnode);
$tmpnode = $doc->createElement("NAMESPACE");
$tmpnode->setAttribute("NAME", $cim_params->{namespace});
$localnamespacepath->addChild($tmpnode);
$imethod_call->addChild($localnamespacepath);
# add the target property name
my $param_propertyname = $doc->createElement("IPARAMVALUE");
$param_propertyname->setAttribute("NAME", "PropertyName");
$imethod_call->addChild($param_propertyname);
$tmpnode = $doc->createElement("VALUE");
$tmpnode->appendTextNode($cim_params->{propertyname});
$param_propertyname->addChild($tmpnode);
# add the target property value
my $param_newvaluename = $doc->createElement("IPARAMVALUE");
$param_newvaluename->setAttribute("NAME", "NewValue");
$imethod_call->addChild($param_newvaluename);
$tmpnode = $doc->createElement("VALUE");
$tmpnode->appendTextNode($cim_params->{propertyvalue});
$param_newvaluename->addChild($tmpnode);
# add parameters of instance name path
my $param_namepath = $doc->createElement("IPARAMVALUE");
$param_namepath->setAttribute("NAME", "InstanceName");
$param_namepath->appendWellBalancedChunk($cim_params->{namepath});
$imethod_call->addChild($param_namepath);
my $payload = $doc->toString();
# generate http request
my $ret = gen_http_request($http_params, $payload);
if ($ret->{rc}) {
return $ret;
}
# send request to http server
$ret = send_http_request($http_params, $ret->{request});
if ($ret->{rc}) {
return $ret;
}
# parse the http response
my $ret_value;
my $parser = XML::LibXML->new();
my $resp_doc = $parser->parse_string($ret->{payload});
# check the error message from CIM
my $error_node = $resp_doc->getElementsByTagName("ERROR");
if ($error_node) {
my $msg = $error_node->[0]->getAttribute("DESCRIPTION");
my $errorcode = $error_node->[0]->getAttribute("CODE");
return ({rc => 1, cim_rc => $errorcode, msg => $error_node->[0]->getAttribute("DESCRIPTION")." [cim return code: $errorcode]"});
}
# if no http and cim error, the setting was succeeded
return ($ret);
}
=head1 gen_http_request ()
Description:
Generate a http request.
Arguments:
http_params: A reference to HTTP_PARAMS
payload: The payload for the http request. It can be null if the payload has been set in http_params.
Return:
A hash reference. The valid key includes:
rc - The return code. 0 - success. > 0 - fail.
msg - Output message
request - The generated HTTP::Request object
=cut
sub gen_http_request
{
my $http_params = shift;
my $http_payload = shift;
# check the mandatory parameters
unless (defined ($http_params->{ip}) && defined ($http_params->{port}) && defined($http_params->{user}) && defined($http_params->{password})) {
return ({rc => 1, msg => "Missed the mandatory parameters: ip, port, user or password"});
}
# set the default value for parameters
unless (defined ($http_params->{protocol})) {
$http_params->{protocol} = 'https';
}
unless (defined ($http_params->{format})) {
$http_params->{format} = 'xml';
}
unless (defined ($http_params->{method})) {
$http_params->{method} = 'GET';
}
my $payload = '';
if (defined ($http_params->{payload})) {
$payload = $http_params->{payload};
}
if (defined ($http_payload)) {
unless (ref($http_payload)) { #Todo: support payloasd to be a hash
$payload = $http_payload;
}
}
# create the http head
my $header = HTTP::Headers->new('content-type' => "application/$http_params->{format}",
'Accept' => "application/$http_params->{format}",
'User-Agent' => "xCAT/2",
'Host' => "$http_params->{ip}:$http_params->{port}");
# set the user & password
$header->authorization_basic($http_params->{user}, $http_params->{password});
# set the length of payload
my $plen = length($payload);
$header->push_header('Content-Length' => $plen);
# create the URL
my $url = "$http_params->{protocol}://$http_params->{ip}:$http_params->{port}";
my $request = HTTP::Request->new($http_params->{method}, $url, $header, $payload);
# set the http version
$request->protocol('HTTP/1.1');
return ({rc => 0, request => $request});
}
=head1 send_http_request ()
Description:
Send http request to http server and waiting for the response.
Arguments:
http_params: A reference to HTTP_PARAMS
http_request: A HTTP::Request object
Return:
A hash reference. The valid key includes:
rc - The return code. 0 - success. > 0 - fail.
http_rc - The return code of http. 200, 400 ...
msg - Output message
payload - The http response from http server
=cut
sub send_http_request
{
my $http_params = shift;
my $http_request = shift;
# Load the library LWP::Protocol::https for https support
if ($http_params->{protocol} eq 'https') {
eval { require LWP::Protocol::https};
if ($@) {
return ({rc => 1, msg => "Failed to load perl library LWP::Protocol::https"});
}
}
# create a new HTTP User Agent Object
my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0, SSL_verify_mode => 0});
if ($http_params->{timeout}) {
$ua->timeout($http_params->{timeout});
} else {
$ua->timeout(10); # the default timeout is 10s
}
if (defined($http_params->{verbose}) && defined ($http_params->{callback})) {
$http_params->{callback}({data => ["\n========CIM Request Start========", $http_request->as_string(), "=======CIM Request End======="]});
}
# send request and receive the response
my $response = $ua->request($http_request);
if (defined($http_params->{verbose}) && defined ($http_params->{callback}) && defined ($response->{_content})) {
$http_params->{callback}({data => ["\n========CIM Response Start========", $response->{_content}, "=======CIM Response End======="]});
}
# check the http response
if (defined ($response) && defined ($response->{_rc}) && defined ($response->{_msg})) {
if ($response->{_rc} eq "200" && $response->{_msg} eq "OK") {
return ({rc => 0, http_rc => $response->{_rc}, msg => "$response->{_msg} [http return code: $response->{_rc}]", payload => $response->{_content}});
}
}
return ({rc => 1, http_rc => $response->{_rc}, msg => $response->{_msg}});
}
1;
+10 -84
View File
@@ -8,11 +8,9 @@ BEGIN
# if AIX - make sure we include perl 5.8.2 in INC path.
# Needed to find perl dependencies shipped in deps tarball.
use Storable qw/nstore_fd fd_retrieve/;
if ($^O =~ /^aix/i) {
unshift(@INC, qw(/usr/opt/perl5/lib/5.8.2/aix-thread-multi /usr/opt/perl5/lib/5.8.2 /usr/opt/perl5/lib/site_perl/5.8.2/aix-thread-multi /usr/opt/perl5/lib/site_perl/5.8.2));
}
use IO::Handle;
my $inet6support;
if ($^O =~ /^aix/i) { # disable AIX IPV6 TODO fix
@@ -29,7 +27,7 @@ if ($inet6support) {
if ($^O =~ /^linux/i) {
# Is IPv6 enabled on the MN or xcat client node at all?
my $ipv6enabled = `ip addr 2> /dev/null | grep inet6`;
my $ipv6enabled = `ip addr | grep inet6`;
if (!$ipv6enabled) {
$inet6support = 0;
}
@@ -79,23 +77,6 @@ sub rspclean {
}
return 0;
}
sub send_request {
my $request = shift;
my $sock = shift;
my $encode = shift;
if ($encode eq "xml") {
my $msg=XMLout($request,RootName=>'xcatrequest',NoAttr=>1,KeyAttr=>[]);
if ($ENV{XCATXMLTRACE}) { print $msg; }
if($ENV{XCATXMLWARNING}) {
validateXML($msg);
}
print $sock $msg;
$sock->flush();
} else {
nstore_fd($request,$sock);
$sock->flush();
}
}
#################################
# submit_request will take an xCAT command and pass it to the xCAT
# server for execution.
@@ -237,19 +218,13 @@ if (ref($request) eq 'HASH') { # the request is an array, not pure XML
}
}
my $client;
my %sslargs;
if (defined($ENV{'XCATSSLVER'})) {
$sslargs{SSL_version} = $ENV{'XCATSSLVER'};
}
if (-r $keyfile and -r $certfile and -r $cafile) {
$client = IO::Socket::SSL->start_SSL($pclient,
SSL_key_file => $keyfile,
SSL_cert_file => $certfile,
SSL_ca_file => $cafile,
SSL_verify_mode => SSL_VERIFY_PEER,
SSL_use_cert => 1,
Timeout => 0,
%sslargs,
);
} else {
$client = IO::Socket::SSL->start_SSL($pclient,
@@ -267,26 +242,20 @@ if (ref($request) eq 'HASH') { # the request is an array, not pure XML
}
my $msg;
my $encode = "xml";
#storable encoding is unsafe, carry on with the unsafe xml scheme
#perhaps one day will support faster schemes
#my $encode = "storable";
#my $straightprint=0;
#if ($ENV{XCATXMLTRACE} or $ENV{XCATXMLWARNING}) { $encode="xml"; }
if (ref($request) eq 'HASH') { # the request is an array, not pure XML
#print $client "xcatencoding: $encode\n";
#my $encok=<$client>;
send_request($request,$client,$encode);
$msg=XMLout($request,RootName=>'xcatrequest',NoAttr=>1,KeyAttr=>[]);
} else { #XML
$straightprint=1;
$msg=$request;
print $client $msg;
}
$SIG{TERM} = $SIG{INT} = sub { send_request({abortcommand=>[1]},$client,$encode); exit 0; };
if ($ENV{XCATXMLTRACE}) { print $msg; }
if($ENV{XCATXMLWARNING}) {
validateXML($msg);
}
$SIG{TERM} = $SIG{INT} = sub { print $client XMLout({abortcommand=>1},RootName=>'xcatrequest',NoAttr=>1,KeyAttr=>[]); exit 0; };
print $client $msg;
my $response;
my $rsp;
my $cleanexit=0;
if ($encode eq 'xml') {
my $massresponse="<massresponse>";
my $nextcoalescetime=time()+1;
my $coalescenow=0;
@@ -340,27 +309,6 @@ if (ref($request) eq 'HASH') { # the request is an array, not pure XML
$massresponse .= "</massresponse>";
$cleanexit = rspclean($massresponse,$callback);
}
} else { #storable encode
my $rsp;
eval { $rsp = fd_retrieve($client); };
SERVERINPUT: while ($rsp) {
my @rsps;
if (ref $rsp eq 'ARRAY') {
@rsps = @$rsp;
} else {
@rsps = ($rsp);
}
foreach (@rsps) {
$callback->($_);
if ($_->{serverdone}) {
$cleanexit=1;
last SERVERINPUT;
}
}
$rsp = undef;
eval { $rsp = fd_retrieve($client); };
}
}
$massresponse="";
unless ($cleanexit) {
print STDERR "ERROR/WARNING: communication with the xCAT server seems to have been ended prematurely\n";
@@ -1164,12 +1112,7 @@ sub handle_response {
#print "printing node\n";
my $node;
foreach $node (@$nodes) {
my $desc;
if (ref($node->{name}) eq 'ARRAY') {
$desc=$node->{name}->[0];
} else {
$desc=$node->{name};
}
my $desc=$node->{name}->[0];
if ($node->{errorcode}) {
if (ref($node->{errorcode}) eq 'ARRAY') {
foreach my $ecode (@{$node->{errorcode}}) {
@@ -1189,24 +1132,7 @@ sub handle_response {
$errflg=1;
}
if ($node->{data}) {
if (ref(\($node->{data})) eq 'SCALAR') {
$desc=$desc.": ".$node->{data};
} elsif (ref($node->{data}) eq 'HASH') {
if ($node->{data}->{desc}) {
if (ref($node->{data}->{desc}) eq 'ARRAY') {
$desc=$desc.": ".$node->{data}->{desc}->[0];
} else {
$desc=$desc.": ".$node->{data}->{desc};
}
}
if ($node->{data}->{contents}) {
if (ref($node->{data}->{contents}) eq 'ARRAY') {
$desc="$desc: ".$node->{data}->{contents}->[0];
} else {
$desc="$desc: ".$node->{data}->{contents};
}
}
} elsif (ref(\($node->{data}->[0])) eq 'SCALAR') {
if (ref(\($node->{data}->[0])) eq 'SCALAR') {
$desc=$desc.": ".$node->{data}->[0];
} else {
if ($node->{data}->[0]->{desc}) {
+2 -2
View File
@@ -618,7 +618,7 @@ sub getDBtable
{
# need to get info from DB
my $thistable = xCAT::Table->new($table, -create => 1);
my $thistable = xCAT::Table->new($table, -create => 1, -autocommit => 0);
if (!$thistable)
{
return undef;
@@ -2747,7 +2747,7 @@ sub collapsenicsattr()
# e.g nicips.eth0
# do not need to handle nic attributes without the postfix .ethx,
# it will be overwritten by the attributes with the postfix .ethx,
if ($nodeattr =~ /^(nic\w+)\.(.*)$/)
if ($nodeattr =~ /^(nic\w+)\.(\w+)$/)
{
if ($1 && $2)
{
+11 -22
View File
@@ -598,7 +598,7 @@ sub _execute_dsh
}
else
{
# HERE: This is where the output shows up
# LKV: This is where the output shows up
#print STDOUT @{$output_buffers{$user_target}};
#print STDERR @{$error_buffers{$user_target}};
chomp(@{$output_buffers{$user_target}});
@@ -1020,7 +1020,6 @@ sub fork_fanout_dsh
}
}
# save the original exports, we are going to add the unique node name below
my $firstpass=0;
while (@$targets_waiting
&& (keys(%$targets_active) < $$options{'fanout'}))
{
@@ -1047,7 +1046,6 @@ sub fork_fanout_dsh
}
if ($$options{'environment'})
{
if ($firstpass ==0) { # do the servicenode stuff only once
# if we are on a servicenode need to get the environment file
# from the SNsyncfiledir, not local
if (xCAT::Utils->isServiceNode()) {
@@ -1070,10 +1068,8 @@ sub fork_fanout_dsh
$rsp->{error}->[0] = "File $$options{'environment'} does not exist";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
}
$firstpass=1;
}
# build the xdsh command
push @dsh_command,
# build the xdsh command
push @dsh_command,
"$exportnode$$options{'pre-command'} . $$options{'environment'} ; $$options{'command'}$$options{'post-command'}";
}
@@ -3997,7 +3993,8 @@ sub parse_and_run_dsh
{
$options{'user'} = $ENV{'DSH_TO_USERID'};
}
if ((!(defined($nodes))) && (!(defined($options{'rootimg'}))))
if ((!(defined(@$nodes))) && (!(defined($options{'rootimg'}))))
{ # no nodes and not -i option, error
my $rsp = ();
$rsp->{error}->[0] = "Unless using -i option, noderange is required.";
@@ -4036,7 +4033,7 @@ sub parse_and_run_dsh
{ # from sinv, discard this name
undef @$nodes;
}
if (@$nodes[0])
if (defined(@$nodes))
{
my $rsp = {};
$rsp->{error}->[0] =
@@ -4407,16 +4404,8 @@ sub parse_and_run_dcp
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK, 1);
return;
}
if (@$nodes[0])
{
my $rsp = {};
$rsp->{error}->[0] =
"Input noderange:@$nodes and any other xdsh flags or environment variables are not valid with -i flag.";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK, 1);
return;
}
}
if ((!(defined($nodes))) && (!(defined($options{'rootimg'}))))
if ((!(defined(@$nodes))) && (!(defined($options{'rootimg'}))))
{ # no nodes and not -i option, error
my $rsp = {};
$rsp->{error}->[0] = "Unless using -i option, noderange is required.";
@@ -4513,7 +4502,7 @@ sub parse_and_run_dcp
#
# build list of nodes
my @nodelist;
if (@$nodes[0])
if (defined(@$nodes))
{ # there are nodes
@nodelist = @$nodes;
$options{'nodes'} = join(',', @nodelist);
@@ -5331,8 +5320,8 @@ sub build_merge_rsync
if ($syncmergescript == 0) { # don't add the xdcpmerge.sh line
push @::mergelines,$line;
}
my $src_file = $1; # merge file left of arrow
my $orig_src_file = $1;
my $src_file = $1; # merge file left of arror
my $orig_src_file = $1;
# it will be sync'd to $nodesyncfiledir/$merge_file
my $dest_file = $nodesyncfiledir;
$dest_file .= $src_file;
@@ -5361,7 +5350,7 @@ sub build_merge_rsync
# to pick up files from /var/xcat/syncfiles...
if ($onServiceNode == 1) {
my $newsrcfile = $syncdir; # add SN syndir on front
$newsrcfile .= $orig_src_file;
$newsrcfile .= $orig_src_file;
$src_file=$newsrcfile;
}
# destination file name
+58
View File
@@ -253,6 +253,64 @@ use strict;
#---------------------------------------------------------------------------
=head3
ifconfig_inet
Builds a list of all IP Addresses bound to the local host and
stores them in a global list
Arguments:
None
Returns:
None
Globals:
@local_inet
Error:
None
Example:
xCAT::DSHCore->ifconfig_inet;
Comments:
Internal routine only
=cut
#---------------------------------------------------------------------------
sub ifconfig_inet
{
my @local_inet = ();
if ($^O eq 'aix')
{
my @ip_address = ();
my @output = `/usr/sbin/ifconfig -a`;
foreach my $line (@output)
{
($line =~ /inet ((\d{1,3}?\.){3}(\d){1,3})\s/o)
&& (push @local_inet, $1);
}
}
elsif ($^O eq 'linux')
{
my @ip_address = ();
my @output = `/sbin/ifconfig -a`;
foreach my $line (@output)
{
($line =~ /inet addr:((\d{1,3}?\.){3}(\d){1,3})\s/o)
&& (push @local_inet, $1);
}
}
}
#---------------------------------------------------------------------------
+1 -4
View File
@@ -67,7 +67,7 @@ sub getHcpAttribs
}
}
my @ps = $tabs->{ppc}->getAllNodeAttribs(['node','parent','nodetype','hcp','id']);
my @ps = $tabs->{ppc}->getAllNodeAttribs(['node','parent','nodetype','hcp']);
for my $entry ( @ps ) {
my $tmp_parent = $entry->{parent};
my $tmp_node = $entry->{node};
@@ -79,9 +79,6 @@ sub getHcpAttribs
if (defined($tmp_node) && defined($tmp_type) && ($tmp_type eq "blade") && defined($entry->{hcp})) {
push @{$ppchash{$tmp_node}{children}}, $entry->{hcp};
}
if (defined($tmp_node) && defined($entry->{id}) && defined($tmp_parent) && defined($tmp_type) && ($tmp_type eq "lpar")) {
$ppchash{$tmp_parent}{mapping}{$tmp_node} = $entry->{id};
}
#if(exists($ppchash{$tmp_node})) {
# if( defined($tmp_type) ) {
+1 -1
View File
@@ -407,7 +407,7 @@ sub lshwconn_parse_args
}
if (scalar(@error_type_nodes)) {
my $tmp_nodelist = join ',', @error_type_nodes;
my $link = (scalar(@error_type_nodes) eq '1')? 'is':'are';
my $link = (scalar(@error_type_nodes) == '1')? 'is':'are';
return( ["Node type of node(s) $tmp_nodelist $link not supported for this command in FSPAPI.\n"]);
}
#$nodetypetab->close();
+6 -8
View File
@@ -517,14 +517,12 @@ sub getmacs {
$data.= "\n$_\n";
push @$value, "\n$_\n";
} elsif ( /^ent\s+/ || /^hfi-ent\s+/ ) {
#my @fields = split /\s+/, $_;
#my $mac = $fields[2];
#$mac = format_mac( $mac );
#$fields[2] = $mac;
#$data .= join(" ",@fields)."\n";
#push @$value, join(" ",@fields)."\n";
$data .= "$_\n";
push @$value, "$_\n";
my @fields = split /\s+/, $_;
my $mac = $fields[2];
$mac = format_mac( $mac );
$fields[2] = $mac;
$data .= join(" ",@fields)."\n";
push @$value, join(" ",@fields)."\n";
}
}
push @$res,[$node,$data,0];
+5 -5
View File
@@ -264,7 +264,7 @@ sub temp {
# No frame commands for IVM
#################################
if ( $hwtype eq "ivm" ) {
push @result, [$name,"$prefix Not available (No BPA)",0];
push @result, [$name,"$prefix Not available (No BPA)",1];
next;
}
#################################
@@ -272,14 +272,14 @@ sub temp {
#################################
if ( @$d[4] !~ /^(fsp|lpar|cec)$/ ) {
my $text = "$prefix Only available for CEC/LPAR";
push @result, [$name,$text,0];
push @result, [$name,$text,1];
next;
}
#################################
# Error - No frame
#################################
if ( $mtms eq "0" ) {
push @result, [$name,"$prefix Not available (No BPA)",0];
push @result, [$name,"$prefix Not available (No BPA)",1];
next;
}
#################################
@@ -352,7 +352,7 @@ sub rackenv {
#################################
if ( @$d[4] !~ /^(bpa|frame)$/ ) {
my $text = "$prefix Only available for BPA/Frame";
push @result, [$name,$text,0];
push @result, [$name,$text,1];
next;
}
@@ -435,7 +435,7 @@ sub lcds {
if( $type eq "lpar" ) {
$action = "query_lcds";
} elsif ($type eq "blade") {
$action = "pblade_query_lcds";
$action = "pblade_query_lcds";
} else {
$action = "cec_query_lcds";
}
+85 -606
View File
File diff suppressed because it is too large Load Diff
-2
View File
@@ -56,7 +56,6 @@ $::STATUS_SHELL="shell";
$::STATUS_DEFINED="defined";
$::STATUS_UNKNOWN="unknown";
$::STATUS_FAILED="failed";
$::STATUS_BMCREADY="bmcready";
%::VALID_STATUS_VALUES = (
$::STATUS_ACTIVE=>1,
$::STATUS_INACTIVE=>1,
@@ -73,7 +72,6 @@ $::STATUS_BMCREADY="bmcready";
$::STATUS_DEFINED=>1,
$::STATUS_UNKNOWN=>1,
$::STATUS_FAILED=>1,
$::STATUS_BMCREADY=>1,
$::STATUS_SYNCING=>1,
$::STATUS_OUT_OF_SYNC=>1,
Executable → Regular
+8 -26
View File
@@ -217,23 +217,14 @@ sub is_me
#my ($b1, $b2, $b3, $b4) = split /\./, $nameIP;
# get all the possible IPs for the node I'm running on
# this is a common subroutine for both AIX and Linux,
# AIX does not have ip command
my $ipcmd;
if ( -f "/sbin/ip" )
{
$ipcmd = "ip addr | grep 'inet'";
}
else
{
$ipcmd = "ifconfig -a | grep 'inet'";
}
my $result = xCAT::Utils->runcmd($ipcmd, -1, 1);
my $ifcmd = "ifconfig -a | grep 'inet'";
my $result = xCAT::Utils->runcmd($ifcmd, -1, 1);
if ($::RUNCMD_RC != 0)
{
my $str="Error running ipcmd";
xCAT::MsgUtils->message("S", $str);
$::VERBOSE = $verb;
my $rsp;
# push @{$rsp->{data}}, "Could not run $ifcmd.\n";
# xCAT::MsgUtils->message("E", $rsp, $callback);
$::VERBOSE = $verb;
return 0;
}
@@ -241,6 +232,7 @@ sub is_me
{
my ($inet, $myIP, $str) = split(" ", $int);
chomp $myIP;
$myIP =~ s/addr://;
$myIP =~ s/\/.*//; # ipv6 address 4000::99/64
$myIP =~ s/\%.*//; # ipv6 address ::1%1/128
@@ -1031,7 +1023,7 @@ sub dolitesetup
$nrange = join(',',@nodel);
}
@flist = xCAT::Utils->runcmd("/opt/xcat/bin/litefile $nrange", -1);
my @flist = xCAT::Utils->runcmd("/opt/xcat/bin/litefile $nrange", -1);
if (scalar(@flist) > 0) {
foreach my $l (@flist) {
my ($j1, $j2, $file) = split /\s+/, $l;
@@ -1361,16 +1353,6 @@ sub dolitesetup
return 1;
}
# also copy $instrootloc/.statelite contents
$ccmd = "/usr/bin/cp -p -r $instrootloc/.statelite $SRloc";
$out = xCAT::Utils->runcmd("$ccmd", -1);
if ($::RUNCMD_RC != 0)
{
my $rsp;
push @{$rsp->{data}}, "Could not copy $instrootloc/.statelite to $SRloc.";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
}
}
}
Executable → Regular
+19 -123
View File
@@ -629,8 +629,7 @@ sub get_adap_prop {
$cmd[0] = "\" supported-network-types\" " . $phandle . " get-package-property\r";
$msg[0] = "Status: rc and all supported network types now on stack\n";
#$pattern[0] = "(.*)3 >(.*)";
#$pattern[0] = "3 >";
$pattern[0] = "ok";
$pattern[0] = "3 >";
$newstate[0] = 1;
# state 1, return code and string on stack
@@ -638,8 +637,7 @@ sub get_adap_prop {
$cmd[1] = ".\r";
$msg[1] = "Status: All supported network types now on stack\n";
#$pattern[1] = "(.*)2 >(.*)";
#$pattern[1] = "2 >";
$pattern[1] = "ok";
$pattern[1] = "2 >";
$newstate[1] = 2;
# state 2, data ready to decode
@@ -693,16 +691,6 @@ sub get_adap_prop {
$timeout,
[ qr/$pattern[$state]/i,
sub {
if ($state eq 1) {
if ($rconsole->before() =~ /-\d+/) {
nc_msg($verbose, "Status: Error getting adapter property for phandle=$phandle.\n");
$state = 7;
$rconsole->clear_accum();
$rc = 1;
return 1;
}
}
nc_msg($verbose, $msg[$state]);
$state = $newstate[$state];
$rconsole->clear_accum();
@@ -839,7 +827,7 @@ sub get_mac_addr {
$done[0] = 0;
$cmd[0] = "\" local-mac-address\" ". $phandle . " get-package-property\r";
$msg[0] = "Status: return code and mac-address now on stack\n";
$pattern[0] = "local-mac-address.*ok";#"\s*3 >";
$pattern[0] = "ok";#"\s*3 >";
$newstate[0] = 1;
# cmd(1) is a dot (.). This is a stack manipulation command that removes one
@@ -890,15 +878,6 @@ sub get_mac_addr {
$timeout,
[qr/$pattern[$state]/=>
sub {
if ($state eq 1) {
if ($rconsole->before() =~ /-\d+/) {
nc_msg($verbose, "Status: Error getting MAC address for phandle=$phandle.\n");
$rconsole->clear_accum();
$state = 4;
$rc = 1;
return undef;
}
}
nc_msg($verbose, $msg[$state]);
$state = $newstate[$state];
$rconsole->clear_accum();
@@ -1040,8 +1019,7 @@ sub get_mac_addr {
$cmd[0] = "\" ibm,loc-code\" $phandle get-package-property\r";
$msg[0] = "Status: return code and loc-code now on stack\n";
#$pattern[0] = "(.*)3 >(.*)";
#$pattern[0] = "3 >";
$pattern[0] = "ok";
$pattern[0] = "3 >";
$newstate[0] = 1;
# cmd(1) is a dot (.). This is a stack manipulation command that removes one
@@ -1074,16 +1052,6 @@ sub get_mac_addr {
$timeout,
[qr/$pattern[$state]/=>
sub {
if ($state eq 1) {
if ($rconsole->before() =~ /-\d+/) {
nc_msg($verbose, "Status: Error getting adapter location for phandle=$phandle.");
$rconsole->clear_accum();
$state = 3;
$rc = 1;
return undef;
}
}
nc_msg($verbose, $msg[$state]);
$rconsole->clear_accum();
$state = $newstate[$state];
@@ -1157,19 +1125,10 @@ sub get_mac_addr {
return undef if ($rc eq 1);
}
# Did we find one or more adapters?
my @loc_array = split /\n/,$result[3];
my $found = 0;
$loc_code = '';
foreach my $line ( @loc_array ) {
if ($line =~ /(\w*):(.*):([\w|\.|-]*):/) {
$loc_code .= $3;
$found = 1;
}
}
if ($found) {
$loc_code =~ s/\.$//;
return $loc_code;
} else {
if ($result[3] =~ /(\w*):(.*):(\w*\.\w*\.\w*):/) {
$loc_code = $3;
}else {
return undef;
}
}
@@ -1272,8 +1231,8 @@ sub ping_server{
$done[2] = 0;
$cmd[2] = "dev /packages/net\r";
$msg[2] = "Status: selected the /packages/net node as the active package\n";
$pattern[2] = ".*dev.*packages.*net(.*)ok(.*)0 >(.*)";
#$pattern[2] = "ok";
#$pattern[2] = ".*dev(.*)ok(.*)0 >(.*)";
$pattern[2] = "ok";
$newstate[2]= 3;
# state 3, ping the server
@@ -1281,12 +1240,6 @@ sub ping_server{
$msg[3] = "Status: ping return code now on stack\n";
$newstate[3] = 4;
# get the timeout for ping test
my $to4pt;
if ( $ENV{TIMEOUT4PINGTEST} =~ /^\d+$/ ) {
$to4pt = ",$ENV{TIMEOUT4PINGTEST}";
}
#IPv6
if ( $server_ip =~ /:/ ) {
#::1, calculate link local address
@@ -1296,9 +1249,9 @@ sub ping_server{
} else {
$linklocal_ip = $client_ip;
}
$cmd[3] = "ping $full_path_name:ipv6,$server_ip,$linklocal_ip,$gateway_ip$to4pt\r";
$cmd[3] = "ping $full_path_name:ipv6,$server_ip,$linklocal_ip,$gateway_ip\r";
} else {
$cmd[3] = "ping $full_path_name:$server_ip,$client_ip,$gateway_ip$to4pt\r";
$cmd[3] = "ping $full_path_name:$server_ip,$client_ip,$gateway_ip\r";
}
$pattern[3] = ".*ping(.*)ok(.*)0 >(.*)";
@@ -1313,7 +1266,6 @@ sub ping_server{
# state 5, all done
$done[5] = 1;
# for ping, only need to set speed and duplex for ethernet adapters
#
if ( $list_type eq "ent" ) {
@@ -1371,10 +1323,8 @@ sub ping_server{
$timeout = 300;
while ( $done[$state] eq 0 ) {
send_command($verbose, $rconsole, $cmd[$state]);
@result = $rconsole->expect(
$timeout,
[qr/$pattern[$state]/s=>
sub {
@@ -1412,9 +1362,7 @@ sub ping_server{
}
],
);
return 1 if ($rc eq 1);
return 1 if ($rc eq 1);
if ( $state eq 1 ) {
$adap_conn = $adap_conn_list[$j];
$cmd[1] = "\" ethernet,$adap_speed,$adap_conn,$adap_duplex\" encode-string \" chosen-network-type\" property\r";
@@ -2102,46 +2050,14 @@ sub multiple_open_dev {
; \r";
send_command($verbose, $rconsole, $command);
$timeout = 30;
$rconsole->expect(
$timeout,
[qr/new-open-dev(.*)ok/=>
#[qr/>/=>
sub {
nc_msg($verbose, "Status: at End of multiple_open_dev \n");
$rconsole->clear_accum();
}
],
[qr/]/=>
sub {
nc_msg($verbose, "Unexpected prompt\n");
$rconsole->clear_accum();
$rc = 1;
}
],
[timeout =>
sub {
send_user(2, "Timeout\n");
$rconsole->clear_accum();
$rc = 1;
}
],
[eof =>
sub {
send_user(2, "Cannot connect to $node\n");
$rconsole->clear_accum();
$rc = 1;
}
],
);
$command = "patch new-open-dev open-dev net-ping \r";
send_command($verbose, $rconsole, $command);
$timeout = 30;
$rconsole->expect(
$timeout,
[qr/patch new-open-dev(.*)ok/=>
#[qr/>/=>
#[qr/patch new-open-dev(.*)>/=>
[qr/>/=>
sub {
nc_msg($verbose, "Status: at End of multiple_open_dev \n");
$rconsole->clear_accum();
@@ -2170,7 +2086,6 @@ sub multiple_open_dev {
}
],
);
return $rc;
}
###################################################################
@@ -2654,7 +2569,7 @@ sub lparnetbootexp
####################################
nc_msg($verbose, "Connecting to the $node.\n");
sleep 3;
$timeout = 10;
$timeout = 2;
$rconsole->expect(
$timeout,
[ qr/Enter.* for help.*/i =>
@@ -2675,7 +2590,7 @@ sub lparnetbootexp
sub {
$rc = 2;
$rconsole->clear_accum();
nc_msg(1, "Please make sure rcons $node works.\n");
nc_msg($verbose, "Please make sure rcons $node works.\n");
}
],
);
@@ -2863,8 +2778,6 @@ sub lparnetbootexp
$done = 0;
$retry_count = 0;
$timeout = 10;
while (!$done) {
my @result = $rconsole->expect(
$timeout,
@@ -2972,7 +2885,6 @@ sub lparnetbootexp
}
}
##############################
# Call multiple_open_dev to
# circumvent firmware OPEN-DEV
@@ -3007,7 +2919,6 @@ sub lparnetbootexp
$match_pat = ".*";
}
if($colon) {
nc_msg($verbose, "#Type:Location_Code:MAC_Address:Full_Path_Name:Ping_Result:Device_Type:Size_MB:OS:OS_Version:\n");
$outputarrayindex++; # start from 1, 0 is used to set as 0
@@ -3047,21 +2958,6 @@ sub lparnetbootexp
$device_type = "physical";
}
if (defined($mac_address)) {
my @newmacs = ();
my @allmacs = split /\|/,$mac_address;
if ( !xCAT::Utils->isAIX() ) {
foreach my $mac_a ( @allmacs ) {
$mac_a = lc($mac_a);
$mac_a =~ s/(\w{2})/$1:/g;
$mac_a =~ s/:$//;
push @newmacs, $mac_a;
}
$mac_address = join("|",@newmacs);
}
}
if($colon) {
nc_msg($verbose, "$adap_type[$i]\:$loc_code\:$mac_address\:$full_path_name_array[$i]\:$ping_result\:$device_type\:\:\:\:\n");
$outputarrayindex++;
@@ -3076,7 +2972,7 @@ sub lparnetbootexp
} else {
for( $i = 0; $i < $adapter_found; $i++) {
if ($adap_type[$i] =~ /$match_pat/) {
if (!($adap_type[$i] eq "hfi-ent")) {
if ($adap_type[$i] eq "hfi-ent") {
$mac_address = get_mac_addr($phandle_array[$i], $rconsole, $node, $verbose);
$loc_code = get_adaptr_loc($phandle_array[$i], $rconsole, $node, $verbose);
}
+23 -37
View File
@@ -138,9 +138,8 @@ This program module file, supports the xcat messaging and logging
N - Node informational goes to STDOUT
S - Message will be logged to syslog ( severe error)
Note S can be combined with other flags for example
SE logs message to syslog and is sent to STDERR.
SA logs message to syslog and to the auditlog DB table. (only xcatd)
A logs message auditlog DB table only. (only for xcatd)
SE logs message to syslog and is sent to STDERR.
SA logs message to syslog and to the auditlog DB table
V - verbose. This flag is not valid, the calling routine
should check for verbose mode before calling the message
@@ -176,7 +175,7 @@ This program module file, supports the xcat messaging and logging
# Message to Syslog
xCAT::MsgUtils->message('S', "Host $host not responding\n");
# Message to Syslog and auditlog table (only used by xcatd)
# Message to Syslog and auditlog table
# see tabdump -d auditlog
my $rsp = {};
$rsp->{syslogdata}->[0] = "$host not responding\n"; # for syslog
@@ -190,18 +189,6 @@ This program module file, supports the xcat messaging and logging
$rsp->{status} -> [0] = $status;
xCAT::MsgUtils->message('SA', $rsp);
# Message to only auditlog table (only used by xcatd)
# see tabdump -d auditlog
my $rsp = {};
$rsp->{userid} ->[0] = $user;
$rsp->{clientname} -> [0] = $client;
$rsp->{clienttype} -> [0] = $clienttype;
$rsp->{command} -> [0] = $command;
$rsp->{noderange} -> [0] = $noderange;
$rsp->{args} -> [0] = $arguments;
$rsp->{status} -> [0] = $status;
xCAT::MsgUtils->message('A', $rsp);
# Message to Log and Syslog
xCAT::MsgUtils->message('LS', "Host $host not responding\n");
@@ -210,44 +197,44 @@ This program module file, supports the xcat messaging and logging
Use with callback
# Message to callback
my $rsp = {};
my $rsp = {};
$rsp->{data}->[0] = "Job did not run. \n";
xCAT::MsgUtils->message("D", $rsp, $::CALLBACK);
my $rsp = {};
my $rsp = {};
$rsp->{error}->[0] = "No hosts in node list\n";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
my $rsp = {};
$rsp->{node}->[0]->{name}->[0] ="mynode";
$rsp->{node}->[0]->{data}->[0] ="mydata";
xCAT::MsgUtils->message("N", $rsp, $callback);
my $rsp = {};
$rsp->{node}->[0]->{name}->[0] ="mynode";
$rsp->{node}->[0]->{data}->[0] ="mydata";
xCAT::MsgUtils->message("N", $rsp, $callback);
my $rsp = {};
my $rsp = {};
$rsp->{info}->[0] = "No hosts in node list\n";
xCAT::MsgUtils->message("I", $rsp, $::CALLBACK);
my $rsp = {};
my $rsp = {};
$rsp->{sinfo}->[0] = "No hosts in node list\n";
xCAT::MsgUtils->message("IS", $rsp, $::CALLBACK);
my $rsp = {};
my $rsp = {};
$rsp->{warning}->[0] = "No hosts in node list\n";
xCAT::MsgUtils->message("W", $rsp, $::CALLBACK);
my $rsp = {};
my $rsp = {};
$rsp->{error}->[0] = "Host not responding\n";
xCAT::MsgUtils->message("S", $rsp, $::CALLBACK);
# Message to Syslog and callback
my $rsp = {};
my $rsp = {};
$rsp->{error}->[0] = "Host not responding\n";
xCAT::MsgUtils->message("SE", $rsp, $::CALLBACK);
# Message to Syslog and callback
my $rsp = {};
my $rsp = {};
$rsp->{info}->[0] = "Host not responding\n";
xCAT::MsgUtils->message("SI", $rsp, $::CALLBACK);
@@ -287,19 +274,17 @@ sub message
my $call_back = shift; # optional
my $exitcode = shift; # optional
# should be I,IS, D, E, S, SA,A ,LS, W , L,N
# should be I,IS, D, E, S, SA ,LS, W , L,N
# or S(I, D, E, S, W, L,N)
#
# if SA option need to split syslog messages from auditlog entry
# if new SA option need to split syslog messages from auditlog entry
#
my $newrsp;
if (($sev eq 'SA') || ($sev eq 'A'))
{ # if SA ( syslog and auditlog) or A ( only auditlog)then need to pull first entry from $rsp
# for syslog, to preserve old interface
if ($sev eq 'SA')
{ # if SA then need to pull first entry from $rsp
# for syslog, to preserve old interface
$newrsp = $rsp;
if ($sev eq 'SA'){ # syslog and auditlog
$rsp = $newrsp->{syslogdata}->[0];
}
}
my $stdouterrf = \*STDOUT;
my $stdouterrd = '';
@@ -464,10 +449,11 @@ sub message
}
}
# is syslog option requested
# is syslog requested
if ($sev =~ /S/)
{
# If they want this msg to also go to syslog, do that now
eval {
openlog("xCAT", "nofatal,pid", "local4");
@@ -488,7 +474,7 @@ sub message
# if write to auditlog table requested, if not on service node
if (xCAT::Utils->isMN()){
if (($sev eq 'SA') || ($sev eq 'A'))
if ($sev eq 'SA')
{
require xCAT::Table;
my $auditlogentry;
+195 -363
View File
@@ -19,7 +19,6 @@ use File::Path;
use Math::BigInt;
use Socket;
use xCAT::GlobalDef;
#use Data::Dumper;
use strict;
use warnings "all";
my $socket6support = eval { require Socket6 };
@@ -69,14 +68,14 @@ This program module file, is a set of network utilities used by xCAT commands.
#-------------------------------------------------------------------------------
sub getNodeDomains()
{
my $class = shift;
my $class = shift;
my $nodes = shift;
my @nodelist = @$nodes;
my %nodedomains;
# Get the network info for each node
my %nethash = xCAT::DBobjUtils->getNetwkInfo(\@nodelist);
my %nethash = xCAT::DBobjUtils->getNetwkInfo(\@nodelist);
# get the site domain value
my @domains = xCAT::TableUtils->get_site_attribute("domain");
@@ -85,13 +84,12 @@ sub getNodeDomains()
# for each node - set hash value to network domain or default
# to site domain
foreach my $node (@nodelist) {
unless (defined($node)) {next;}
if (defined($nethash{$node}) && $nethash{$node}{domain}) {
$nodedomains{$node} = $nethash{$node}{domain};
} else {
$nodedomains{$node} = $sitedomain;
}
}
if ($nethash{$node}{domain}) {
$nodedomains{$node} = $nethash{$node}{domain};
} else {
$nodedomains{$node} = $sitedomain;
}
}
return \%nodedomains;
}
@@ -644,11 +642,16 @@ sub get_nic_ip
{
my $nic;
my %iphash;
my $cmd = "ifconfig -a";
my $result = `$cmd`;
my $mode = "MULTICAST";
my $payingattention=0;
my $interface;
my $keepcurrentiface;
#############################################
# Error running command
#############################################
if ( !$result ) {
return undef;
}
if (xCAT::Utils->isAIX()) {
##############################################################
@@ -660,14 +663,6 @@ sub get_nic_ip
# en1: ...
#
##############################################################
my $cmd = "ifconfig -a";
my $result = `$cmd`;
#############################################
# Error running command
#############################################
if ( !$result ) {
return undef;
}
my @adapter = split /(\w+\d+):\s+flags=/, $result;
foreach ( @adapter ) {
if ($_ =~ /^(en\d)/) {
@@ -687,39 +682,37 @@ sub get_nic_ip
}
}
}
else { # linux
my @ipoutput = `ip addr`;
#############################################
# Error running command
#############################################
if ( !@ipoutput ) {
return undef;
}
foreach my $line (@ipoutput) {
if ($line =~ /^\d/) { # new interface, new context..
if ($interface and not $keepcurrentiface) {
#don't bother reporting unusable nics
delete $iphash{$interface};
else {
##############################################################
# Should look like this for Linux:
# eth0 Link encap:Ethernet HWaddr 00:02:55:7B:06:30
# inet addr:9.114.154.193 Bcast:9.114.154.223
# inet6 addr: fe80::202:55ff:fe7b:630/64 Scope:Link
# UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
# RX packets:1280982 errors:0 dropped:0 overruns:0 frame:0
# TX packets:3535776 errors:0 dropped:0 overruns:0 carrier:0
# collisions:0 txqueuelen:1000
# RX bytes:343489371 (327.5 MiB) TX bytes:870969610 (830.6 MiB)
# Base address:0x2600 Memory:fbfe0000-fc0000080
#
# eth1 ...
#
##############################################################
my @adapter= split /\n{2,}/, $result;
foreach ( @adapter ) {
if ( !($_ =~ /LOOPBACK / ) and
$_ =~ /UP / and
$_ =~ /$mode / ) {
my @ip = split /\n/;
for my $ent ( @ip ) {
if ($ent =~ /^(eth\d|ib\d|hf\d)\s+/) {
$nic = $1;
}
if ( $ent =~ /^\s*inet addr:\s*(\d+\.\d+\.\d+\.\d+)/ ) {
$iphash{$nic} = $1;
next;
}
}
$keepcurrentiface=0;
if ( !($line =~ /LOOPBACK/ ) and
$line =~ /UP( |,|>)/ and
$line =~ /$mode/ ) {
$payingattention=1;
$line =~ /^([^:]*): ([^:]*):/;
$interface=$2;
} else {
$payingattention=0;
next;
}
}
unless ($payingattention) { next; }
if ($line =~ /inet/) {
$keepcurrentiface=1;
}
if ( $line =~ /^\s*inet \s*(\d+\.\d+\.\d+\.\d+)/ ) {
$iphash{$interface} = $1;
}
}
}
@@ -1098,8 +1091,7 @@ sub my_if_netmap
Error:
none
Example:
my $ip = xCAT::NetworkUtils->my_ip_facing($peerip)
my @ip = xCAT::NetworkUtils->my_ip_facing($peerip) # return multiple
xCAT::NetworkUtils->my_ip_facing
Comments:
none
=cut
@@ -1117,8 +1109,6 @@ sub my_ip_facing
unless ($peernumber) { return undef; }
my $noden = unpack("N", inet_aton($peer));
my @nets = split /\n/, `/sbin/ip addr`;
my @ips;
foreach (@nets)
{
my @elems = split /\s+/;
@@ -1131,19 +1121,10 @@ sub my_ip_facing
my $curn = unpack("N", inet_aton($curnet));
if (($noden & $curmask) == ($curn & $curmask))
{
push @ips, $curnet;
return $curnet;
}
}
if (@ips) {
if (wantarray) {
return @ips;
} else {
return $ips[0];
}
} else {
return undef;
}
return undef;
}
#-------------------------------------------------------------------------------
@@ -1614,124 +1595,56 @@ sub thishostisnot
=cut
#-----------------------------------------------------------------------------
#sub gethost_ips1
#{
# my ($class) = @_;
# my $cmd;
# my @ipaddress;
# $cmd = "ifconfig" . " -a";
# $cmd = $cmd . "| grep \"inet\"";
# my @result = xCAT::Utils->runcmd($cmd, 0);
# if ($::RUNCMD_RC != 0)
# {
# xCAT::MsgUtils->message("S", "Error from $cmd\n");
# exit $::RUNCMD_RC;
# }
# foreach my $addr (@result)
# {
# my @ip;
# if (xCAT::Utils->isLinux())
# {
# if ($addr =~ /inet6/)
# {
# #TODO, Linux ipv6
# }
# else
# {
# my ($inet, $addr1, $Bcast, $Mask) = split(" ", $addr);
# #@ip = split(":", $addr1);
# #push @ipaddress, $ip[1];
# $addr1 =~ s/.*://;
# push @ipaddress, $addr1;
# }
# }
# else
# { #AIX
# if ($addr =~ /inet6/)
# {
# $addr =~ /\s*inet6\s+([\da-fA-F:]+).*\/(\d+)/;
# my $v6ip = $1;
# my $v6mask = $2;
# if ($v6ip)
# {
# push @ipaddress, $v6ip;
# }
# }
# else
# {
# my ($inet, $addr1, $netmask, $mask1, $Bcast, $bcastaddr) =
# split(" ", $addr);
# push @ipaddress, $addr1;
# }
#
# }
# }
# my @names = @ipaddress;
# foreach my $ipaddr (@names)
# {
# my $hostname = xCAT::NetworkUtils->gethostname($ipaddr);
# if ($hostname)
# {
# my @shorthost = split(/\./, $hostname);
# push @ipaddress, $shorthost[0];
# }
# }
#
# return @ipaddress;
#}
sub gethost_ips
{
my ($class) = @_;
my $cmd;
my @ipaddress;
if (xCAT::Utils->isLinux())
$cmd = "ifconfig" . " -a";
$cmd = $cmd . "| grep \"inet\"";
my @result = xCAT::Utils->runcmd($cmd, 0);
if ($::RUNCMD_RC != 0)
{
$cmd="ip -4 --oneline addr show |awk -F ' ' '{print \$4}'|awk -F '/' '{print \$1}'";
my @result =xCAT::Utils->runcmd($cmd);
if ($::RUNCMD_RC != 0)
{
xCAT::MsgUtils->message("S", "Error from $cmd\n");
exit $::RUNCMD_RC;
}
push @ipaddress, @result;
xCAT::MsgUtils->message("S", "Error from $cmd\n");
exit $::RUNCMD_RC;
}
else
{ #AIX
$cmd = "ifconfig" . " -a";
$cmd = $cmd . "| grep \"inet\"";
my @result = xCAT::Utils->runcmd($cmd, 0);
if ($::RUNCMD_RC != 0)
{
xCAT::MsgUtils->message("S", "Error from $cmd\n");
exit $::RUNCMD_RC;
}
foreach my $addr (@result)
{
if ($addr =~ /inet6/)
{
$addr =~ /\s*inet6\s+([\da-fA-F:]+).*\/(\d+)/;
my $v6ip = $1;
my $v6mask = $2;
if ($v6ip)
{
push @ipaddress, $v6ip;
}
}
else
{
my ($inet, $addr1, $netmask, $mask1, $Bcast, $bcastaddr) =
split(" ", $addr);
push @ipaddress, $addr1;
}
foreach my $addr (@result)
{
my @ip;
if (xCAT::Utils->isLinux())
{
if ($addr =~ /inet6/)
{
#TODO, Linux ipv6
}
else
{
my ($inet, $addr1, $Bcast, $Mask) = split(" ", $addr);
@ip = split(":", $addr1);
push @ipaddress, $ip[1];
}
}
else
{ #AIX
if ($addr =~ /inet6/)
{
$addr =~ /\s*inet6\s+([\da-fA-F:]+).*\/(\d+)/;
my $v6ip = $1;
my $v6mask = $2;
if ($v6ip)
{
push @ipaddress, $v6ip;
}
}
else
{
my ($inet, $addr1, $netmask, $mask1, $Bcast, $bcastaddr) =
split(" ", $addr);
push @ipaddress, $addr1;
}
}
}
}
my @names = @ipaddress;
foreach my $ipaddr (@names)
{
@@ -1742,9 +1655,9 @@ sub gethost_ips
push @ipaddress, $shorthost[0];
}
}
return @ipaddress;
}
#-------------------------------------------------------------------------------
=head3 get_subnet_aix
@@ -1920,6 +1833,102 @@ sub validate_ip
}
return([0]);
}
#-------------------------------------------------------------------------------
=head3 getFacingIP
Gets the ip address of the adapter of the localhost that is facing the
the given node.
Assume it is the same as my_ip_facing...
Arguments:
The name of the node that is facing the localhost.
Returns:
The ip address of the adapter that faces the node.
=cut
#-------------------------------------------------------------------------------
sub getFacingIP
{
my ($class, $node) = @_;
my $ip;
my $cmd;
my @ipaddress;
my $nodeip = inet_ntoa(inet_aton($node));
unless ($nodeip =~ /\d+\.\d+\.\d+\.\d+/)
{
return 0; #Not supporting IPv6 here IPV6TODO
}
$cmd = "ifconfig" . " -a";
$cmd = $cmd . "| grep \"inet \"";
my @result = xCAT::Utils->runcmd($cmd, 0);
if ($::RUNCMD_RC != 0)
{
xCAT::MsgUtils->message("S", "Error from $cmd\n");
exit $::RUNCMD_RC;
}
# split node address
my ($n1, $n2, $n3, $n4) = split('\.', $nodeip);
foreach my $addr (@result)
{
my $ip;
my $mask;
if (xCAT::Utils->isLinux())
{
my ($inet, $addr1, $Bcast, $Mask) = split(" ", $addr);
if ((!$addr1) || (!$Mask)) { next; }
my @ips = split(":", $addr1);
my @masks = split(":", $Mask);
$ip = $ips[1];
$mask = $masks[1];
}
else
{ #AIX
my ($inet, $addr1, $netmask, $mask1, $Bcast, $bcastaddr) =
split(" ", $addr);
if ((!$addr1) && (!$mask1)) { next; }
$ip = $addr1;
$mask1 =~ s/0x//;
$mask =
`printf "%d.%d.%d.%d" \$(echo "$mask1" | sed 's/../0x& /g')`;
}
if ($ip && $mask)
{
# split interface IP
my ($h1, $h2, $h3, $h4) = split('\.', $ip);
# split mask
my ($m1, $m2, $m3, $m4) = split('\.', $mask);
# AND this interface IP with the netmask of the network
my $a1 = ((int $h1) & (int $m1));
my $a2 = ((int $h2) & (int $m2));
my $a3 = ((int $h3) & (int $m3));
my $a4 = ((int $h4) & (int $m4));
# AND node IP with the netmask of the network
my $b1 = ((int $n1) & (int $m1));
my $b2 = ((int $n2) & (int $m2));
my $b3 = ((int $n3) & (int $m3));
my $b4 = ((int $n4) & (int $m4));
if (($b1 == $a1) && ($b2 == $a2) && ($b3 == $a3) && ($b4 == $a4))
{
return $ip;
}
}
}
xCAT::MsgUtils->message("S", "Cannot find master for the node $node\n");
return 0;
}
#-------------------------------------------------------------------------------
=head3 isIpaddr
@@ -1972,65 +1981,6 @@ sub isIpaddr
}
}
#-------------------------------------------------------------------------------
=head3 getNodeNameservers
Description:
Get nameservers of specified nodes.
The priority: noderes.nameservers > networks.nameservers > site.nameservers
Arguments:
node: node name list
Returns:
Return a hash ref, of the $nameservers{$node}
undef - Failed to get the nameservers
Globals:
none
Error:
none
Example:
my $nameservers = xCAT::NetworkUtils::getNodeNameservers(\@node);
Comments:
none
=cut
#-------------------------------------------------------------------------------
sub getNodeNameservers{
my $nodes=shift;
if( $nodes =~ /xCAT::NetworkUtils/)
{
$nodes=shift;
}
my @nodelist = @$nodes;
my %nodenameservers;
my $nrtab = xCAT::Table->new('noderes',-create=>0);
my %nrhash = %{$nrtab->getNodesAttribs(\@nodelist,['nameservers'])};
my $nettab = xCAT::Table->new("networks");
my %nethash = xCAT::DBobjUtils->getNetwkInfo( \@nodelist );
my @nameservers = xCAT::TableUtils->get_site_attribute("nameservers");
my $sitenameservers=$nameservers[0];
foreach my $node (@nodelist){
if ($nrhash{$node} and $nrhash{$node}->[0] and $nrhash{$node}->[0]->{nameservers})
{
$nodenameservers{$node}=$nrhash{$node}->[0]->{nameservers};
}elsif($nethash{$node}{nameservers})
{
$nodenameservers{$node}=$nethash{$node}{nameservers};
}elsif($sitenameservers)
{
$nodenameservers{$node}=$sitenameservers;
}
}
return \%nodenameservers;
}
#-------------------------------------------------------------------------------
=head3 getNodeNetworkCfg
@@ -2057,31 +2007,19 @@ sub getNodeNameservers{
sub getNodeNetworkCfg
{
my $node = shift;
if( $node =~ /xCAT::NetworkUtils/)
{
$node =shift;
}
my $nets = xCAT::NetworkUtils::my_nets();
my $ip = xCAT::NetworkUtils->getipaddr($node);
my $mask = undef;
my $gateway = undef;
my $nettab = xCAT::Table->new("networks");
if ($nettab) {
my @nets = $nettab->getAllAttribs('net','mask','gateway');
foreach my $net (@nets) {
if (xCAT::NetworkUtils::isInSameSubnet( $net->{'net'}, $ip, $net->{'mask'}, 0)) {
$gateway=$net->{'gateway'};
$mask=$net->{'mask'};
}
}
for my $net (keys %$nets)
{
my $netname;
($netname,$mask) = split /\//, $net;
last if ( xCAT::NetworkUtils::isInSameSubnet( $netname, $ip, $mask, 1));
}
return ($ip, $node, $gateway, xCAT::NetworkUtils::formatNetmask($mask,0,0));
return ($ip, $node, undef, xCAT::NetworkUtils::formatNetmask($mask,1,0));
}
#-------------------------------------------------------------------------------
=head3 get_hdwr_ip
@@ -2155,13 +2093,7 @@ sub pingNodeStatus {
foreach (@mon_nodes) {
$deadnodes{$_}=1;
}
# get additional options from site table
my @nmap_options = xCAT::TableUtils->get_site_attribute("nmapoptions");
my $more_options = $nmap_options[0];
#call namp
open (NMAP, "nmap -PE --system-dns --send-ip -sP $more_options ". $nodes . " 2> /dev/null|") or die("Cannot open nmap pipe: $!");
open (NMAP, "nmap -PE --system-dns --send-ip -sP ". $nodes . " 2> /dev/null|") or die("Cannot open nmap pipe: $!");
my $node;
while (<NMAP>) {
if (/Host (.*) \(.*\) appears to be up/) {
@@ -2428,106 +2360,6 @@ sub get_all_nicips{
}
}
#-------------------------------------------------------------------------------
=head3 gen_net_boot_params
Description:
This subroutine is used to generate all possible kernel parameters for network boot (rh/sles/ubuntu + diskfull/diskless)
The supported network boot parameters:
ksdevice - Specify network device for Anaconda. For rh6 and earlier. Format: 'ksdevice={$mac|$nicname}'
BOOTIF - Specify network device for Anaconda. The boot device which set by pxe. xCAT also set it if the bootload is not pxe. Format 'BOOTIF={$mac}'
ifname - Specify a interfacename<->mac pair, it will set the interfacename to the interface which has the <mac>. Format 'ifname=$ifname:$mac'
# This will only be generated when linuximage.nodebootif is set.
bootdev - Specify the boot device. Mostly it's used with <ip> parameter and when there are multiple <ip> params. Format 'bootdev={$mac|$ifname}
ip - Specify the network configuration for an interface. Format: 'ip=dhcp', 'ip=$ifname:dhcp'
netdevice - Specify network device for Linuxrc (Suse bootloader). Format: 'netdevice={$mac|$nicname}'
netdev - Specify the interfacename which is used by xCAT diskless boot script to select the network interface. Format: 'netdev=$nicname'
Reference:
Redhat anaconda doc: https://github.com/rhinstaller/anaconda/blob/master/docs/boot-options.txt
Suse Linuxrc do: https://en.opensuse.org/SDB:Linuxrc
Arguments:
$installnic <- node.installnic
$primarynic <- node.primarynic
$macmac <- node.mac
$nodebootif <- linuximage.nodebootif
Returns:
$net_params - The key will be the parameter name, the value for the key will be the parameter value.
Valid Parameter Name:
ksdevice
netdev
netdevice
ip
ifname
BOOTIF
And following two keys also will be returned for reference
mac
nicname
Example:
my $netparams = xCAT::NetworkUtils->gen_net_boot_params($installnic, $primmarynic, $macmac, $nodebootif);
=cut
#-------------------------------------------------------------------------------
sub gen_net_boot_params
{
my $class = shift;
my $installnic = shift;
my $primarynic = shift;
my $macmac = shift;
my $nodebootif = shift;
my $net_params;
# arbitrary use primarynic if installnic is not set
unless ($installnic) {
$installnic = $primarynic;
}
# just use the installnic to generate the nic related kernel parameters
my $mac;
my $nicname;
if ((! defined ($installnic)) || ($installnic eq "") || ($installnic =~ /^mac$/i)) {
$mac = $macmac;
$net_params->{mac} = $mac;
} elsif ($installnic =~ /^[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}$/) {
$mac = $installnic;
$net_params->{mac} = $mac;
$net_params->{setmac} = $mac;
} else {
$mac = $macmac;
$nicname = $installnic;
$net_params->{nicname} = $nicname;
$net_params->{mac} = $mac;
}
if ($nicname) {
$net_params->{ksdevice} = "ksdevice=$nicname";
$net_params->{ip} = "ip=$nicname:dhcp";
$net_params->{netdev} = "netdev=$nicname";
$net_params->{netdevice} = "netdevice=$nicname";
$net_params->{ifname} = "ifname=$nodebootif:$mac";
} elsif ($mac) {
$net_params->{ksdevice} = "ksdevice=$mac";
$net_params->{BOOTIF} = "BOOTIF=$mac";
$net_params->{bootdev} = "bootdev=$mac";
$net_params->{ip} = "ip=dhcp";
if ($nodebootif) {
$net_params->{ifname} = "ifname=$nodebootif:$mac";
}
$net_params->{netdevice} = "netdevice=$mac";
}
return $net_params;
}
1;
+1 -2
View File
@@ -149,7 +149,7 @@ sub nodesbycriteria {
}
if ($neednewcache) {
if ($nodelist) {
#$nodelist->_clear_cache();
$nodelist->_clear_cache();
$nodelist->_build_cache(\@cachedcolumns);
}
}
@@ -196,7 +196,6 @@ sub expandatom {
$nodelist->_set_use_cache(1);
@allnodeset = $nodelist->getAllAttribs('node','groups');
%allnodehash = map { $_->{node} => 1 } @allnodeset;
$nodelist->_set_use_cache(0); #The {_use_cache} for nodelist table object must be turn off, otherwise it will keep open and affect the Table.pm subroutines like getNodesAttribs when it tries to access nodelist table to get status column.
}
my $verify = (scalar(@_) >= 1 ? shift : 1);
my %options = @_; # additional options
+5 -1
View File
@@ -311,6 +311,9 @@ sub notify {
my ($modname, $path, $suffix) = fileparse($_, ".pm");
# print "modname=$modname, path=$path, suffix=$suffix\n";
if ($suffix =~ /.pm/) { #it is a perl module
my $pid;
if ($pid=xCAT::Utils->xfork()) { }
elsif (defined($pid)) {
my $fname;
if (($path eq "") || ($path eq ".\/")) {
#default path is /opt/xcat/lib/perl/xCAT_monitoring/ if there is no path specified
@@ -325,7 +328,8 @@ sub notify {
else {
${"xCAT_monitoring::".$modname."::"}{processTableChanges}->($action, $tablename, $old_data, $new_data);
}
return 0;
exit 0;
}
}
else { #it is a command
my $pid;
+2 -23
View File
@@ -21,6 +21,7 @@ sub parse_args {
my %opt = ();
my $cmd = $request->{command};
my $args = $request->{arg};
my @VERSION = qw( 2.1 );
#############################################
# Responds with usage statement
@@ -59,8 +60,7 @@ sub parse_args {
# Option -v for version
####################################
if ( exists( $opt{v} )) {
my $version = xCAT::Utils->Version();
return ([$version]);
return( \@VERSION );
}
if ( exists( $opt{s} ) ){
@@ -350,27 +350,6 @@ sub do_rnetboot {
last;
}
}
# Set the boot mode to norm from 'of' (open firmware)
# NOW, only necessary for IVM
my $hwtype = @$exp[2];
if ($hwtype eq "ivm") {
my $server = @$exp[3];
# creat connection first
my @newexp = xCAT::PPCcli::connect( $request, $hwtype, $server );
if (ref($newexp[0]) eq "Expect" ) {
my $cfg = "lpar_id=@$d[0],boot_mode=norm";
# change the boot mode to 'norm'
xCAT::PPCcli::chsyscfg(\@newexp, "prof", $d, $cfg);
xCAT::PPCcli::disconnect(\@newexp);
} else {
my $rsp;
$rsp->{data} = ["Failed to set the boot mode to normal. For rnetboot command, you have to rpower off and then on the node after finishing the OS deployment."];
xCAT::MsgUtils->message("E", $rsp, $request->{callback});
}
}
return $result;
}
+3 -3
View File
@@ -436,9 +436,9 @@ sub sshcfg {
#####################################
# userid@host not found in key file
#####################################
#if ( $sshkey !~ /\s+(\S+\@\S+$)/ ) {
# return( [[$server,"Cannot find userid\@host in '$fname'",RC_ERROR]] );
#}
if ( $sshkey !~ /\s+(\S+\@\S+$)/ ) {
return( [[$server,"Cannot find userid\@host in '$fname'",RC_ERROR]] );
}
my $logon = $1;
#####################################
+1 -1
View File
@@ -156,7 +156,7 @@ sub connect {
# Shell prompt regexp based on HW Type
##################################################
my %prompt = (
hmc => "~>\\s*\$",
hmc => "~> \$",
ivm => "\\\$ \$"
);
##################################################
+1 -1
View File
@@ -339,7 +339,7 @@ sub lshwconn_parse_args
}
if (scalar(@error_type_nodes)) {
my $tmp_nodelist = join ',', @error_type_nodes;
my $link = (scalar(@error_type_nodes) eq '1')? 'is':'are';
my $link = (scalar(@error_type_nodes) == '1')? 'is':'are';
return( ["Node type of node(s) $tmp_nodelist $link not supported for this command.\n"]);
}
$request->{nodetype} = $nodetype;
+2 -8
View File
@@ -75,7 +75,6 @@ sub add_ppc {
my $values = shift;
my $not_overwrite = shift;
my $otherinterfaces = shift;
my $callfile = shift;
my @tabs = qw(ppc vpd nodehm nodelist nodetype hosts mac);
my %db = ();
###################################
@@ -120,12 +119,7 @@ sub add_ppc {
# Specify CEC and Frame's mgt as fsp and bpa
if ( $type =~ /^cec$/) {
if ( $callfile eq "PPC" ) {
$mgt = "hmc";
}
if ( $callfile eq "FSP" ) {
$mgt = "fsp";
}
$mgt = "fsp";
}
if ( $type =~ /^frame$/) {
$mgt = "bpa";
@@ -326,7 +320,7 @@ sub update_lpar {
}
}
if (defined($write)) {
&add_ppc($hwtype, \@write_list,'','',"FSP");
&add_ppc($hwtype, \@write_list);
return ([@update_list,@write_list]);
} else {
foreach ( @tabs ) {
+22 -21
View File
@@ -14,7 +14,7 @@ use xCAT::Usage;
use xCAT::NodeRange;
use xCAT::DBobjUtils;
use xCAT::FSPUtils;
use xCAT::TableUtils;
use xCAT::TableUtils qw(get_site_Master);
%::QUERY_ATTRS = (
'savingstatus' => 1,
'dsavingstatus' => 1,
@@ -223,6 +223,7 @@ sub renergy {
my ($node, $attrs) = %$nodehash;
my $cec_name = @$attrs[2];
my $hw_type = @$attrs[4];
if (!$cec_name) {
return ([[$node, "ERROR: Cannot find the cec name, check the attributes: vpd.serial, vpd.mtm.", 1]]);
@@ -294,43 +295,43 @@ sub renergy {
foreach (@hcps_ip) {
$deadnodes{$_}=1;
}
# get additional options from site table
my @nmap_options = xCAT::TableUtils->get_site_attribute("nmapoptions");
my $more_options = $nmap_options[0];
open (NMAP, "nmap -PE --system-dns --send-ip -sP $more_options ". join(' ',@hcps_ip) . " 2> /dev/null|") or die("Cannot open nmap pipe: $!");
my $node;
open (NMAP, "nmap -PE --system-dns --send-ip -sP ". join(' ',@hcps_ip) . " 2> /dev/null|") or die("Cannot open nmap pipe: $!");
my $node1;
my $msg1;
while (<NMAP>) {
#print "$_\n";
if (/Host (.*) \((.*)\) appears to be up/) {
$node=$2;
unless ($deadnodes{$node}) {
$node1=$2;
unless ($deadnodes{$node1}) {
foreach (keys %deadnodes) {
if ($node =~ /^$_\./) {
$node = $_;
if ($node1 =~ /^$_\./) {
$node1 = $_;
last;
}
}
}
delete $deadnodes{$node};
delete $deadnodes{$node1};
if ($verbose) {
push @return_msg, [$node, $_, 0];
}
push(@pingable_hcp, $node);
} elsif (/Nmap scan report for ([^ ]*)/) {
$node=$1;
push(@pingable_hcp, $node1);
} elsif (/Nmap scan report for ([^ ]*) \((.*)\)/) {
$node1=$2;
$msg1=$_;
} elsif (/Host is up./) {
unless ($deadnodes{$node}) {
unless ($deadnodes{$node1}) {
foreach (keys %deadnodes) {
if ($node =~ /^$_\./) {
$node = $_;
if ($node1 =~ /^$_\./) {
$node1 = $_;
last;
}
}
}
delete $deadnodes{$node};
push(@pingable_hcp, $node);
delete $deadnodes{$node1};
if ($verbose) {
push @return_msg, [$node, "$msg1$_", 0];
}
push(@pingable_hcp, $node1);
}
}
} else {
+6 -10
View File
@@ -144,16 +144,12 @@ sub connect {
##################################
# Set options
##################################
#my $hosttab = xCAT::Table->new( 'hosts' );
#if ( $hosttab) {
# my $hostshash = $hosttab->getNodeAttribs( $server, [qw(ip otherinterfaces)]);
# if ( $hostshash ) {
# $server = $hostshash->{ip};
# }
#}
$server = xCAT::NetworkUtils::getNodeIPaddress( $server );
unless ($server) {
return( "Unable to get IP address for $server" );
my $hosttab = xCAT::Table->new( 'hosts' );
if ( $hosttab) {
my $hostshash = $hosttab->getNodeAttribs( $server, [qw(ip otherinterfaces)]);
if ( $hostshash ) {
$server = $hostshash->{ip};
}
}
# my $serverip = inet_ntoa(inet_aton($server));
my $url = "https://$server/cgi-bin/cgi?form=2";
+2 -2
View File
@@ -347,7 +347,7 @@ sub bus {
#################################
# Output header
#################################
push @result, [$name,"I/O Bus Information", 0];
push @result, [$name,"I/O Bus Information"];
#################################
# Output error
@@ -532,7 +532,7 @@ sub config {
#################################
# Output header
#################################
push @result, [$name,"Machine Configuration Info", 0];
push @result, [$name,"Machine Configuration Info"];
my $i;
foreach ( @prefix ) {
+10 -37
View File
@@ -555,9 +555,6 @@ sub getmacs {
} else {
$type = "virtualio";
}
if ($mac_addr) {
$mac_addr = format_mac($mac_addr);
}
my %att = ();
$att{'MAC_Address'} = ($mac_addr) ? $mac_addr : "N/A";
@@ -630,9 +627,9 @@ sub getmacs {
}
foreach ( @$value ) {
if ( /^#\s?Type/ ) {
$data.= "\n$_\n";
$data.= "\n$_\n";
} else {
$data.= "$_\n";
$data.= format_mac( $_ );
}
}
@@ -759,7 +756,7 @@ sub getmacs {
if ( /^#\s?Type/ ) {
$data.= "\n$_\n";
} elsif ( /^ent\s+/ or /^hfi-ent\s+/ ) {
$data.= "$_\n";
$data.= format_mac( $_ );
}
}
#####################################
@@ -804,8 +801,10 @@ sub cal_mac {
##########################################################################
sub format_mac {
my $mac = shift;
my $data = shift;
$data =~ /^(\S+\s+\S+\s+)(\S+)(\s+.*)$/;
my $mac = $2;
#####################################
# Get adapter mac
#####################################
@@ -814,10 +813,6 @@ sub format_mac {
if ( !xCAT::Utils->isAIX() ) {
foreach my $mac_a ( @macs ) {
if (&checkmac($mac_a)) {
push @newmacs, $mac_a;
next;
}
#################################
# Delineate MAC with colons
#################################
@@ -826,30 +821,14 @@ sub format_mac {
$mac_a =~ s/:$//;
push @newmacs, $mac_a;
}
$mac = join("|",@newmacs);
my $newmac = join("|",@newmacs);
$data =~ s/$mac/$newmac/;
}
return( "$mac\n" );
return( "$data\n" );
}
##########################################################################
# checkmac format
##########################################################################
sub checkmac {
my $mac = shift;
if ( !xCAT::Utils->isAIX()) {
if ($mac =~ /\w{2}:\w{2}:\w{2}:\w{2}:\w{2}:\w{2}/) {
return 1;
} else {
return 0;
}
} else {
return 1;
}
}
##########################################################################
# Write first valid adapter MAC to database
@@ -868,9 +847,6 @@ sub writemac {
# Find first valid adapter
#####################################
foreach ( @$data ) {
unless (&checkmac($_)) {
next;
}
if ( /^ent\s+/ or /^hfi-ent\s+/ ) {
$value = $_;
#####################################
@@ -893,9 +869,6 @@ sub writemac {
#####################################
if ( $pingret ne "successful" ) {
foreach ( @$data ) {
unless (&checkmac($_)) {
next;
}
if ( /^ent\s+/ or /^hfi-ent\s+/ ) {
$value = $_;
$ping_test = 0;
@@ -917,7 +890,7 @@ sub writemac {
#####################################
# Get adapter mac
#####################################
#$value = format_mac( $value );
$value = format_mac( $value );
@fields = split /\s+/, $value;
$mac = $fields[2];
+1 -1
View File
@@ -411,7 +411,7 @@ sub format_output {
# Strip errors for results
#######################################
my @val = grep( !/^#.*: ERROR /, @$values );
xCAT::PPCdb::add_ppc( $hwtype, \@val ,'','',"PPC");
xCAT::PPCdb::add_ppc( $hwtype, \@val );
}
###########################################
+4 -4
View File
@@ -203,7 +203,7 @@ sub voltage {
# Voltages available in frame
#################################
if ( @$d[4] ne "bpa" ) {
push @result, [$name,"$text Only available for BPA",0];
push @result, [$name,"$text Only available for BPA",1];
next;
}
my $volt = enumerate_volt( $exp, $d );
@@ -256,7 +256,7 @@ sub temp {
# No frame commands for IVM
#################################
if ( $hwtype eq "ivm" ) {
push @result, [$name,"$prefix Not available (No BPA)",0];
push @result, [$name,"$prefix Not available (No BPA)",1];
next;
}
#################################
@@ -264,14 +264,14 @@ sub temp {
#################################
if ( @$d[4] !~ /^(fsp|cec|lpar)$/ ) {
my $text = "$prefix Only available for CEC/LPAR";
push @result, [$name,$text,0];
push @result, [$name,$text,1];
next;
}
#################################
# Error - No frame
#################################
if ( $mtms eq "0" ) {
push @result, [$name,"$prefix Not available (No BPA)",0];
push @result, [$name,"$prefix Not available (No BPA)",1];
next;
}
#################################
+1 -1
View File
@@ -1913,7 +1913,7 @@ sub xCATdB {
$profile,
$parent );
return( xCAT::PPCdb::add_ppc( $hwtype, [$values],'','',"PPC" ));
return( xCAT::PPCdb::add_ppc( $hwtype, [$values] ));
}
return undef;
}
+25 -418
View File
@@ -265,7 +265,6 @@ sub rackformat_to_numricformat{
values are attributes of a specific nic, like:
type : nic type
hostnamesuffix: hostname suffix
hostnameprefix: hostname prefix
customscript: custom script for this nic
network: network name for this nic
ip: ip address of this nic.
@@ -277,7 +276,7 @@ sub get_nodes_nic_attrs{
my $nodes = shift;
my $nicstab = xCAT::Table->new( 'nics');
my $entry = $nicstab->getNodesAttribs($nodes, ['nictypes', 'nichostnamesuffixes', 'nichostnameprefixes', 'niccustomscripts', 'nicnetworks', 'nicips', 'nicextraparams']);
my $entry = $nicstab->getNodesAttribs($nodes, ['nictypes', 'nichostnamesuffixes', 'niccustomscripts', 'nicnetworks', 'nicips']);
my %nicsattrs;
my @nicattrslist;
@@ -309,20 +308,6 @@ sub get_nodes_nic_attrs{
}
}
if($entry->{$node}->[0]->{'nichostnameprefixes'}){
@nicattrslist = split(",", $entry->{$node}->[0]->{'nichostnameprefixes'});
foreach (@nicattrslist){
my @nicattrs;
if ($_ =~ /!/) {
@nicattrs = split("!", $_);
} else {
@nicattrs = split(":", $_);
}
$nicsattrs{$node}{$nicattrs[0]}{'hostnameprefix'} = $nicattrs[1];
}
}
if($entry->{$node}->[0]->{'niccustomscripts'}){
@nicattrslist = split(",", $entry->{$node}->[0]->{'niccustomscripts'});
foreach (@nicattrslist){
@@ -361,19 +346,6 @@ sub get_nodes_nic_attrs{
$nicsattrs{$node}{$nicattrs[0]}{'ip'} = $nicattrs[1];
}
}
if($entry->{$node}->[0]->{'nicextraparams'}){
@nicattrslist = split(",", $entry->{$node}->[0]->{'nicextraparams'});
foreach (@nicattrslist){
my @nicattrs;
if ($_ =~ /!/) {
@nicattrs = split("!", $_);
} else {
@nicattrs = split(":", $_);
}
$nicsattrs{$node}{$nicattrs[0]}{'extraparams'} = $nicattrs[1];
}
}
}
return \%nicsattrs;
@@ -666,39 +638,6 @@ sub get_all_cecs
}
}
#-------------------------------------------------------------------------------
=head3 get_all_lparids
Description : Get all LPAR ids in system.
Arguments : ref of all cecs
Returns : ref for LPAR ids hash.
Example :
my $arrayref = xCAT::ProfiledNodeUtils->get_all_lparids(\%allcecs);
=cut
#-------------------------------------------------------------------------------
sub get_all_lparids
{
my $class= shift;
my $cecsref = shift;
my %allcecs = %$cecsref;
my %lparids;
my $ppctab = xCAT::Table->new('ppc');
foreach my $cec (keys %allcecs) {
my @ids = $ppctab->getAllAttribsWhere("hcp = '$cec'", 'id');
foreach (@ids) {
if ( $_->{'id'} ){
$lparids{$cec}{$_->{'id'}} = 0;
}
}
}
$ppctab->close();
return \%lparids;
}
#-------------------------------------------------------------------------------
=head3 is_discover_started
@@ -736,7 +675,6 @@ sub get_nodes_profiles
{
my $class = shift;
my $nodelistref = shift;
my $groupnamemode = shift;
my %profile_dict;
my $nodelisttab = xCAT::Table->new('nodelist');
@@ -756,12 +694,8 @@ sub get_nodes_profiles
if ( $idx == 2 ){
# The group string will like @NetworkProfile_<profile name>
# So, index should +3, 2 for '__', 1 for _.
if ($groupnamemode) {
$profile_dict{$_}{$profile} = $group;
} else{
my $append_index = length($profile) + 3;
$profile_dict{$_}{$profile} = substr $group, $append_index;
}
my $append_index = length($profile) + 3;
$profile_dict{$_}{$profile} = substr $group, $append_index;
last;
}
}
@@ -790,7 +724,7 @@ sub get_imageprofile_prov_method
my $nodetypestab = xCAT::Table->new('nodetype');
my $entry = ($nodetypestab->getAllAttribsWhere("node = '$imgprofilename'", 'ALL' ))[0];
return $entry->{'provmethod'};
my $osimgname = $entry->{'provmethod'};
#my $osimgtab = xCAT::Table->new('osimage');
#my $osimgentry = ($osimgtab->getAllAttribsWhere("imagename = '$osimgname'", 'ALL' ))[0];
@@ -799,27 +733,6 @@ sub get_imageprofile_prov_method
#-------------------------------------------------------------------------------
=head3 get_imageprofile_prov_osvers
Description : Get A node's provisioning os version and profile from its imageprofile attribute.
Arguments : $imgprofilename - imageprofile name
Returns : node's osversion and profile
=cut
#-------------------------------------------------------------------------------
sub get_imageprofile_prov_osvers
{
my $class = shift;
my $imgprofilename = shift;
my $osimgtab = xCAT::Table->new('osimage');
my $osimgentry = ($osimgtab->getAllAttribsWhere("imagename = '$imgprofilename'", 'ALL' ))[0];
my $osversion = $osimgentry->{'osvers'};
my $profile = $osimgentry->{'profile'};
return ($osversion, $profile);
}
#-------------------------------------------------------------------------------
=head3 check_profile_consistent
Description : Check if three profile consistent
Arguments : $imageprofile - image profile name
@@ -851,20 +764,16 @@ sub check_profile_consistent{
}
}
# Profile consistent keys, arch=>netboot, mgt=>nictype
my %profile_dict = ('x86' => 'xnba','x86_64' => 'xnba', 'ppc64' => 'yaboot',
'fsp' => 'FSP', 'ipmi' => 'BMC');
# Get Imageprofile arch
my $nodetypetab = xCAT::Table->new('nodetype');
my $nodetypeentry = $nodetypetab->getNodeAttribs($imageprofile, ['os','arch']);
my $os = $nodetypeentry->{'os'};
my $nodetypeentry = $nodetypetab->getNodeAttribs($imageprofile, ['arch']);
my $arch = $nodetypeentry->{'arch'};
$nodetypetab->close();
# Get Imageprofile pkgdir
my $osdistroname = $os . "-" . $arch;
my $osdistrotab = xCAT::Table->new('osdistro');
my $osdistroentry = ($osdistrotab->getAllAttribsWhere("osdistroname = '$osdistroname'", 'ALL' ))[0];
my $pkgdir = $osdistroentry->{'dirpaths'};
$osdistrotab->close();
# Get networkprofile netboot and installnic
my $noderestab = xCAT::Table->new('noderes');
my $noderesentry = $noderestab->getNodeAttribs($networkprofile, ['netboot', 'installnic']);
@@ -896,33 +805,16 @@ sub check_profile_consistent{
my $nodetype = undef;
$nodetype = $ntentry->{'nodetype'} if ($ntentry->{'nodetype'});
$ppctab->close();
# Checking whether netboot initrd image for Ubuntu ppc64
# This image should be downloaded from internet
if ($arch =~ /ppc64/i and $os =~ /ubuntu/i and !(-e "$pkgdir/install/netboot/initrd.gz")){
return 0, "The netboot initrd is not found in $pkgdir/install/netboot, please download it firstly.";
}
# Check if exists provision network
if (not ($installnic and exists $netprofile_nicshash{$installnic}{"network"})){
return 0, "Provisioning network not defined for network profile."
}
# Remove check mechanism about arch and netboot attribute
# Attribute 'neboot' will be generated based on arch, management method, os
# Profile consistent keys, arch=>netboot, mgt=>nictype
#my $ppc_netboot = 'yaboot';
#if( $os =~ /rhels7/ ){
# $ppc_netboot = 'grub2';
#}
#my %profile_dict = ('x86' => 'xnba','x86_64' => 'xnba', 'ppc64' => $ppc_netboot,
# 'ppc64el' => $ppc_netboot,
# 'fsp' => 'FSP', 'ipmi' => 'BMC');
# Check if imageprofile is consistent with networkprofile
#if ($profile_dict{$arch} ne $netboot) {
# return 0, "Imageprofile's arch is not consistent with networkprofile's netboot."
#}
if ($profile_dict{$arch} ne $netboot) {
return 0, "Imageprofile's arch is not consistent with networkprofile's netboot."
}
# Check if networkprofile is consistent with hardwareprofile
if (not $hardwareprofile) { # Not define hardwareprofile
@@ -932,29 +824,24 @@ sub check_profile_consistent{
return 0, "$nictype networkprofile must use with hardwareprofile.";
}
}
my %mgt_dict = ('fsp' => 'FSP', 'ipmi' => 'BMC', 'kvm' => '');
if ($mgt eq 'vm') {
return 1, "";
# For nodetype is lpar node, not need to check the nictype as it is not required for lpar node
if (not $nictype and $mgt and $nodetype ne 'lpar' ) {
# define hardwareprofile, not define fsp or bmc networkprofile, and the node type is not lpar
return 0, "$profile_dict{$mgt} hardwareprofile must use with $profile_dict{$mgt} networkprofile.";
}
if ($nodetype eq 'lpar') {
if ($nictype) {
# Can not associate FSP/BMC network if the node type is lpar
return 0, "The node with hardware type $nodetype can not use with $nictype networkprofile.";
}
return 1, ""
if ($profile_dict{$mgt} ne $nictype and $nodetype ne 'lpar') {
# Networkprofile's nictype is not consistent with hadrwareprofile's mgt, and the node type is not lpar
return 0, "Networkprofile's nictype is not consistent with hardwareprofile's mgt.";
}
if ($mgt and $mgt_dict{$mgt} ne $nictype) {
my $errmsg = "$mgt hardwareprofile must use with $mgt_dict{$mgt} networkprofile.";
if ( $mgt eq 'kvm' ) {
$errmsg = "$mgt hardwareprofile must use with non-BMC and non-FSP networkprofile."
}
return 0, $errmsg;
if ($nodetype eq 'lpar' and $nictype eq 'FSP')
{
# can not associate FSP network if the node type is lpar
return 0, "The node with hardware type $nodetype can not use with $nictype networkprofile.";
}
return 1, "";
}
@@ -1113,40 +1000,6 @@ sub parse_nodeinfo_file
return 1, "";
}
#-------------------------------------------------------
=head3 update the table prodkey, in order to support windows
per node license key
Returns: $retcode.
$retcode = 1. update failed, the value is undef
$retcode = 0. save into db is OK..
=cut
#-------------------------------------------------------
sub update_windows_prodkey
{
my $class = shift;
my $node = shift;
my $product = shift;
my $key = shift;
unless(defined($node) && defined($product) && defined($key))
{
return 1;
}
# please notice this db usage
my %keyhash;
my %updates;
$keyhash{'node'} = $node;
$updates{'product'} = $product;
$updates{'key'} = $key;
my $tab = xCAT::Table->new('prodkey', -create=>1, -autocommit=>0);
$tab->setAttribs( \%keyhash,\%updates );
$tab->commit;
$tab->close;
return 0;
}
#-------------------------------------------------------------------------------
=head3 check_nicips
Description: Check if the nicips defined in MAC file is correct
@@ -1216,249 +1069,3 @@ sub check_nicips{
return (0, \%nics_hash, "");
}
#-------------------------------------------------------------------------------
=head3 gen_chain_for_profiles
Description: Generate a chain string based on Network/Hardware/Image profiles.
Arguments: $profiles_hash: The reference for profiles hash.
For example:
$profiles_hash = { 'HardwareProfile' => 'IBM_NeXtScale_M4',
'ImageProfile' => 'rhels6.5-x86_64-stateful-compute',
'NetworkProfile' => 'default_network_profile',
}
$hw_reconfig: the flag shows whether we need re-configure all hardware
relative settings or not: like runcmds, runimg...etc
Returns: ($retcode, $chain)
$retcode = 1. Generate chain failed, $chain stands for error message.
$retcode = 0. Generate chain OK. $chain stands for the chain string.
=cut
#-------------------------------------------------------------------------------
sub gen_chain_for_profiles{
my $class = shift;
my $profiles_hashref = shift;
my $hw_reconfig = shift;
my $final_chain = "";
if (! $profiles_hashref){
return (1, "Missing parameter for gen_chain_for_profiles.");
}
# A node must have at least imageprofile and network profile.
unless (defined $profiles_hashref->{'ImageProfile'}){
return (1, "No imageprofile specified in profiles hash.");
}
unless (defined $profiles_hashref->{'NetworkProfile'}){
return (1, "No networkprofile specified in profiles hash.");
}
my $hwprofile = $profiles_hashref->{'HardwareProfile'};
my $imgprofile = $profiles_hashref->{'ImageProfile'};
my $netprofile = $profiles_hashref->{'NetworkProfile'};
# Get node's provisioning method
my $provmethod = xCAT::ProfiledNodeUtils->get_imageprofile_prov_method($imgprofile);
unless ($provmethod ){
return (1, "Can not get provisioning method for image profile $imgprofile");
}
my $netprofileattr = xCAT::ProfiledNodeUtils->get_nodes_nic_attrs([$netprofile])->{$netprofile};
unless ($netprofileattr){
return (1, "Can not get attributes for network profile $netprofile");
}
$final_chain = 'osimage='.$provmethod.":--noupdateinitrd";
# get the chain attribute from hardwareprofile and insert it to node.
if (defined $hwprofile and $hwprofile and $hw_reconfig){
my $chaintab = xCAT::Table->new('chain');
my $chain = $chaintab->getNodeAttribs($hwprofile, ['chain']);
if (exists $chain->{'chain'}) {
my $hw_chain = $chain->{'chain'};
$final_chain = $hw_chain.',osimage='.$provmethod.":--noupdateinitrd";
}
}
#run bmcsetups.
if ((exists $netprofileattr->{"bmc"}) and $hw_reconfig){
if (index($final_chain, "runcmd=bmcsetup") == -1){
$final_chain = 'runcmd=bmcsetup,'.$final_chain.':reboot4deploy';
}
else{
$final_chain = $final_chain.':reboot4deploy';
}
}
return (0, $final_chain);
}
#-------------------------------------------------------------------------------
=head3 get_all_vmhosts
Description : Get all vm hosts/hypervisor from DB.
Arguments : N/A
Returns : ref for vm hosts/hypervisor hash.
Example :
my $hashref = xCAT::ProfiledNodeUtils->get_all_vmhosts();
=cut
#-------------------------------------------------------------------------------
sub get_all_vmhosts
{
my %vmhostshash;
my $nodelisttab = xCAT::Table->new('nodelist');
# groups like '__Hypervisor_pkvm' means this node is Power KVM hypervisor
my @vmhosts = $nodelisttab->getAllAttribsWhere("groups like '%__Hypervisor_kvm%'", 'node');
foreach (@vmhosts) {
if($_->{'node'}) {
$vmhostshash{$_->{'node'}} = 1;
}
}
$nodelisttab->close();
# Return the ref accordingly
return \%vmhostshash;
}
#-------------------------------------------------------------------------------
=head3 get_netboot_attr
Description : Get netboot attribute for node
Arguments : $imageprofile - image profile name, mandatory. e.g. "__ImageProfile_rhels7.0-x86_64-stateful-mgmtnode"
$hardwareprofile - harware profile name, optional. e.g. "__HardwareProfile_IBM_System_x_M4"
Returns : (returncode, netboot)
returncode=0 - can not get netboot value,netboot is the error message
returncode=1 - can get netboot value,netboot is the right value
=cut
#-------------------------------------------------------------------------------
sub get_netboot_attr{
my $class = shift;
my $imageprofile = shift;
my $hardwareprofile = shift;
my $netboot;
my @nodegrps = xCAT::TableUtils->list_all_node_groups();
unless(grep{ $_ eq $imageprofile} @nodegrps)
{
return 0, "Image profile not defined in DB."
}
$imageprofile =~ s/^__ImageProfile_//;
if ($hardwareprofile){
unless(grep{ $_ eq $hardwareprofile} @nodegrps)
{
return 0, "Hardware profile not defined in DB."
}
$hardwareprofile =~ s/^__HardwareProfile_//;
}
else
{
$hardwareprofile = '*';
}
# Get os name, os major version, osarch
my $osimage_tab = xCAT::Table->new('osimage');
my $osimage_tab_entry = $osimage_tab->getAttribs({'imagename'=> $imageprofile},('osdistroname'));
my $osdistroname = $osimage_tab_entry->{'osdistroname'};
$osimage_tab->close();
my $osdistro_tab = xCAT::Table->new('osdistro');
my $osdistro_tab_entry = $osdistro_tab->getAttribs({'osdistroname'=> $osdistroname},('basename', 'majorversion', 'arch'));
my $os_name = $osdistro_tab_entry->{'basename'};
my $os_major_version = $osdistro_tab_entry->{'majorversion'};
my $os_arch = $osdistro_tab_entry->{'arch'};
$osdistro_tab->close;
# Treate os name rhel,centos,rhelhpc same as rhels
if ($os_name eq 'centos' || $os_name eq 'rhelhpc' || $os_name eq 'rhel')
{
$os_name = 'rhels';
}
# Treate arch ppc64el same as ppc64le,x86 same as x86_64
if ($os_arch eq 'ppc64el')
{
$os_arch = 'ppc64le';
}elsif ($os_arch eq 'x86')
{
$os_arch = 'x86_64';
}
# Rule for netboot attribute.If update the rule,just update %netboot_dict and @condition_array
# It's sequence sensitive: os arch -> os name -> os major version -> hardware profile
# Priority | Arch | OS Name | OS Major Version | Hardware Profile | Noderes.netboot |
# 1 | x86_64/x86 | * | * | * | xnba |
# 2 | ppc64 | rhels | 7 | * | grub2 |
# 3 | | * | * | * | yaboot |
# 4 | ppc64le/el | * | * | IBM_PowerNV | petiboot |
# 5 | | * | * | * | grub2 |
# arch osname version hardware netboot
my %netboot_dict = ( 'x86_64' => 'xnba',
'ppc64' => {
'rhels' => {
'7' => 'grub2',
'*' => 'yaboot',
},
'*' => 'yaboot',
},
'ppc64le' => {
'*' => {
'*' => {
'IBM_PowerNV' => 'petiboot',
'*' => 'grub2',
},
},
},
);
my $condition_array_ref = [$os_arch, $os_name, $os_major_version, $hardwareprofile];
$netboot = cal_netboot(\%netboot_dict, $condition_array_ref);
if($netboot eq '0')
{
return 0, "Can not get the netboot attribute";
}
else
{
return 1, $netboot;
}
}
#-------------------------------------------------------------------------------
=head3 cal_netboot
Description : Calculate netboot attribute by conditions recursively, internal use.
Arguments : $netboot_dict_ref
$condition_array_ref
Returns : netboot
returncode=0 - can not get netboot value
=cut
#-------------------------------------------------------------------------------
sub cal_netboot{
my $netboot_dict_ref = shift;
my $condition_array_ref = shift;
my $condition_array_len = scalar @$condition_array_ref;
if( $condition_array_len == 0 ){
return 0;
}
my $condition = shift @$condition_array_ref;
if( (exists($netboot_dict_ref->{$condition})) || (exists($netboot_dict_ref->{'*'})) )
{
if(!exists($netboot_dict_ref->{$condition}))
{
$condition = '*';
}
if(ref($netboot_dict_ref->{$condition}) eq 'HASH')
{
if($condition_array_len > 1)
{
return cal_netboot($netboot_dict_ref->{$condition}, $condition_array_ref);
}
else
{
return 0;
}
}
else
{
return $netboot_dict_ref->{$condition};
}
}
else
{
return 0;
}
}
+13 -24
View File
@@ -35,7 +35,7 @@ package xCAT::RemoteShellExp;
node.
DSH_TO_USERID - The userid on the node where the ssh keys will be updated.
DSH_ENABLE_SSH - Node to node root passwordless ssh will be setup.
DSH_ZONE_SSHKEYS - directory containing the zones root .ssh keys
Usage: remoteshellexp
[-t node list] test ssh connection to the node
@@ -144,7 +144,7 @@ sub remoteshellexp
} else {
$from_userid="root";
}
# set User on the node where we will send the keys
# set User on the node where we will send the keys
# this id can be a local id as well as root
if ($ENV{'DSH_TO_USERID'}) {
$to_userid=$ENV{'DSH_TO_USERID'};
@@ -154,19 +154,18 @@ sub remoteshellexp
# set User home directory to find the ssh public key to send
# For non-root ids information may not be in /etc/passwd
# but elsewhere like LDAP
if ($ENV{'DSH_FROM_USERID_HOME'}) {
$home=$ENV{'DSH_FROM_USERID_HOME'};
$home=$ENV{'DSH_FROM_USERID_HOME'};
} else {
$home=xCAT::Utils->getHomeDir($from_userid);
$home=xCAT::Utils->getHomeDir($from_userid);
}
# This indicates we will generate new ssh keys for the user,
# if they are not already there
# unless using zones
my $key="$home/.ssh/id_rsa";
my $key2="$home/.ssh/id_rsa.pub";
# Check to see if empty
if (-z $key) {
my $key="$home/.ssh/id_rsa";
my $key2="$home/.ssh/id_rsa.pub";
# Check to see if empty
if (-z $key) {
my $rsp = {};
$rsp->{error}->[0] =
"The $key file is empty. Remove it and rerun the command.";
@@ -184,7 +183,8 @@ sub remoteshellexp
}
if (($flag eq "k") && (!(-e $key)))
{
# updating keys and the key file does not exist
# if the file size of the id_rsa key is 0, tell them to remove it
# and run the command again
$rc=xCAT::RemoteShellExp->gensshkeys($expecttimeout);
}
# send ssh keys to the nodes/devices, to setup passwordless ssh
@@ -200,9 +200,6 @@ sub remoteshellexp
if ($ssh_setup_cmd) { # setup ssh on devices
$rc=xCAT::RemoteShellExp->senddeviceskeys($remoteshell,$remotecopy,$to_userid,$to_user_password,$home,$ssh_setup_cmd,$nodes, $expecttimeout);
} else { #setup ssh on nodes
if ($ENV{'DSH_ZONE_SSHKEYS'}) { # if using zones the override the location of the keys
$home= $ENV{'DSH_ZONE_SSHKEYS'};
}
$rc=xCAT::RemoteShellExp->sendnodeskeys($remoteshell,$remotecopy,$to_userid,$to_user_password,$home,$nodes, $expecttimeout);
}
}
@@ -498,15 +495,11 @@ sub sendnodeskeys
# in $HOME/.ssh/tmp/authorized_keys
# copy to the node to the temp directory
# scp $HOME/.ssh/tmp/authorized_keys to_userid@<node>:/tmp/$to_userid/.ssh
# scp $HOME/.ssh/id_rsa.pub to_userid@<node>:/tmp/$to_userid/.ssh
# Note if using zones, the keys do not come from ~/.ssh but from the
# zone table, sshkeydir attribute. For zones the userid is always root
# If you are going to enable ssh to ssh between nodes, then
# scp $HOME/.ssh/id_rsa to that temp directory on the node
# copy the script $HOME/.ssh/copy.sh to the node, it will do the
# the work of setting up the user's ssh keys and clean up
# ssh (run) copy.sh on the node
my @nodelist=split(/,/,$nodes);
foreach my $node (@nodelist) {
$sendkeys = new Expect;
@@ -614,11 +607,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 $home/.ssh/id_rsa $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 $home/.ssh/copy.sh $home/.ssh/tmp/authorized_keys $to_userid\@$node:/tmp/$to_userid/.ssh ";
}
# send copy command
unless ($sendkeys->spawn($spawncopyfiles))
@@ -810,10 +803,6 @@ sub senddeviceskeys
# add to the command
$setupcmd .=$key;
$setupcmd .="\"";
# Special case for vios
if ($ENV{DEVICETYPE} eq 'vios') {
$setupcmd = "\"echo $key | tee -a ~/.ssh/authorized_keys2\"";
}
# For each input device
my @nodelist=split(/,/,$nodes);
foreach my $node (@nodelist) {
Executable → Regular
+428 -593
View File
File diff suppressed because it is too large Load Diff
+10 -68
View File
@@ -650,8 +650,7 @@ sub decode_spd {
8 => "DDR2 SDRAM",
9 => "DDR2 SDRAM FB-DIMM",
10 => "DDR2 SDRAM FB-DIMM PROBE",
11 => "DDR3 SDRAM",
12 => "DDR4 SDRAM",
11 => "DDR3 SDRAM"
);
my %modtypes = (
@@ -669,35 +668,33 @@ sub decode_spd {
1333 => 10600,
1600 => 12800,
1867 => 14900,
2132 => 17000,
2133 => 17000,
2134 => 17000,
);
my %ddrmodcap = (
my %ddr3modcap = (
0 => 256,
1 => 512,
2 => 1024,
3 => 2048,
4 => 4096,
5 => 8192,
6 => 16384,
7 => 32768,
6 => 16384
);
my %ddrdevwidth = (
my %ddr3devwidth = (
0 => 4,
1 => 8,
2 => 16,
3 => 32
);
my %ddrranks = (
my %ddr3ranks = (
0 => 1,
1 => 2,
2 => 3,
3 => 4
);
my %ddrbuswidth = (
my %ddr3buswidth = (
0 => 8,
1 => 16,
2 => 32,
@@ -731,10 +728,10 @@ sub decode_spd {
$rethash->{product}->{name} .= " ECC";
}
$rethash->{product}->{name}.=" ".$modtypes{$spd[3]&0x0f};
my $sdramcap=$ddrmodcap{$spd[4]&0xf};
my $buswidth=$ddrbuswidth{$spd[8]&0b111};
my $sdramwidth=$ddrdevwidth{$spd[7]&0b111};
my $ranks = $ddrranks{($spd[7]&0b111000)>>3};
my $sdramcap=$ddr3modcap{$spd[4]&0xf};
my $buswidth=$ddr3buswidth{$spd[8]&0b111};
my $sdramwidth=$ddr3devwidth{$spd[7]&0b111};
my $ranks = $ddr3ranks{($spd[7]&0b111000)>>3};
my $capacity = $sdramcap/8*$buswidth/$sdramwidth*$ranks;
@@ -772,61 +769,6 @@ sub decode_spd {
# $rawspd .= sprintf("%02X ",$_);
#}
#push @{$rethash->{product}->{extra}},$rawspd;
} elsif ($spd[2] == 12) { #DDR4 spec applies
# spd[125] spd[18] spd[18is sdram min cycle time .. spd125 is fine offset for min time
# mtb and ftb are fixed in ddr4 spd spec.. mtb is always 0.125 ns and ftb is always 0.001 ns
my $speed;
my $clock;
if ($spd[17] == 0) {
my $fineoffset = $spd[125];
if ($fineoffset & 0b10000000) {
#negative value, twos complement
$fineoffset = 0-(($fineoffset ^ 0xff) + 1);
}
$clock = int(2/((0.125*$spd[18] + $fineoffset*0.001)*0.001));
$speed = $speedfromclock{$clock};
unless ($speed) { $speed = "UNKNOWN"; }
} else { # this would mean a different MTB and FTB than spec indicated..
$clock = "UNKNOWN";
$speed = "UNKNOWN";
}
$rethash->{product}->{name}="PC4-".$speed." ($clock MT/s)";
if ($spd[13]&0b11000 == 0b1000) {
$rethash->{product}->{name} .= " ECC";
}
$rethash->{product}->{name}.=" ".$modtypes{$spd[3]&0x0f};
my $sdramcap=$ddrmodcap{$spd[4]&0xf};
my $buswidth=$ddrbuswidth{$spd[13]&0b111};
my $sdramwidth=$ddrdevwidth{$spd[12]&0b111};
my $ranks = $ddrranks{($spd[12]&0b111000)>>3};
my $capacity = $sdramcap/8*$buswidth/$sdramwidth*$ranks;
if ($capacity < 1024) {
$capacity = $capacity."MB";
} else {
$capacity = ($capacity/1024)."GB";
}
$rethash->{product}->{name} = $capacity." ".$rethash->{product}->{name};
$rethash->{product}->{manufacturer} = decode_manufacturer($spd[320],$spd[321]);
$rethash->{product}->{buildlocation} = sprintf("%02x",$spd[322]);
if ($spd[120] != 0 or $spd[121] != 0) {
$rethash->{product}->{builddate} = sprintf("Week %x of 20%02x",$spd[323],$spd[324]);
}
foreach (@spd[329..348]) {
if ($_ > 126 or $_ < 32) {
$rethash->{product}->{model}="Malformed SPD";
}
}
unless ($rethash->{product}->{model}) {
$rethash->{product}->{model}=pack("C*",@spd[329..348]);
}
#my $rawspd="SPD Dump: ";
#foreach (@spd) {
# $rawspd .= sprintf("%02X ",$_);
#}
#push @{$rethash->{product}->{extra}},$rawspd;
} else {
$rethash->{product}->{model}="Unrecognized SPD";
}
Executable → Regular
+140 -431
View File
@@ -134,7 +134,7 @@ litetree => {
table_desc => 'Directory hierarchy to traverse to get the initial contents of node files. The files that are specified in the litefile table are searched for in the directories specified in this table.',
descriptions => {
priority => 'This number controls what order the directories are searched. Directories are searched from smallest priority number to largest.',
image => "The name of the image (as specified in the osimage table) that will use this directory. You can also specify an image group name that is listed in the osimage.groups attribute of some osimages. 'ALL' means use this row for all images.",
image => "The name of the image that will use this directory, as specified in the osimage table. If image is not supplied, the default is 'ALL'. 'ALL' means use it for all images.",
directory => 'The location (hostname:path) of a directory that contains files specified in the litefile table. Variables are allowed. E.g: $noderes.nfsserver://xcatmasternode/install/$node/#CMD=uname-r#/',
mntopts => "A comma-separated list of options to use when mounting the litetree directory. (Ex. 'soft') The default is to do a 'hard' mount.",
comments => 'Any user-written notes.',
@@ -148,7 +148,7 @@ litefile => {
required => [qw(image file)], # default type is rw nfsroot
table_desc => 'The litefile table specifies the directories and files on the statelite nodes that should be readwrite, persistent, or readonly overlay. All other files in the statelite nodes come from the readonly statelite image.',
descriptions => {
image => "The name of the image (as specified in the osimage table) that will use these options on this dir/file. You can also specify an image group name that is listed in the osimage.groups attribute of some osimages. 'ALL' means use this row for all images.",
image => "The name of the image that will use these files, as specified in the osimage table. 'ALL' means use it for all images.",
file => "The full pathname of the file. e.g: /etc/hosts. If the path is a directory, then it should be terminated with a '/'. ",
options => "Options for the file:\n\n".
qq{ tmpfs - It is the default option if you leave the options column blank. It provides a file or directory for the node to use when booting, its permission will be the same as the original version on the server. In most cases, it is read-write; however, on the next statelite boot, the original version of the file or directory on the server will be used, it means it is non-persistent. This option can be performed on files and directories..\n\n}.
@@ -200,7 +200,7 @@ vm => {
'mgr' => 'The function manager for the virtual machine',
'host' => 'The system that currently hosts the VM',
'migrationdest' => 'A noderange representing candidate destinations for migration (i.e. similar systems, same SAN, or other criteria that xCAT can use',
'storage' => 'A list of storage files or devices to be used. i.e. dir:///cluster/vm/<nodename> or nfs://<server>/path/to/folder/',
'storage' => 'A list of storage files or devices to be used. i.e. /cluster/vm/<nodename> or nfs://<server>/path/to/folder/',
'storagemodel' => 'Model of storage devices to provide to guest',
'cfgstore' => 'Optional location for persistant storage separate of emulated hard drives for virtualization solutions that require persistant store to place configuration data',
'memory' => 'Megabytes of memory the VM currently should be set to.',
@@ -267,14 +267,11 @@ virtsd => {
},
storage => {
cols => [qw(node osvolume size state storagepool hypervisor fcprange volumetag type controller comments disable)],
cols => [qw(node osvolume size state storagepool hypervisor fcprange volumetag comments disable)],
keys => [qw(node)],
table_descr => 'Node storage resources',
descriptions => {
node => 'The node name',
controller => 'The management address to attach/detach new volumes.
In the scenario involving multiple controllers, this data must be
passed as argument rather than by table value',
osvolume => "Specification of what storage to place the node OS image onto. Examples include:
localdisk (Install to first non-FC attached disk)
usbdisk (Install to first USB mass storage device seen)
@@ -284,7 +281,6 @@ storage => {
storagepool => 'Name of storage pool where the volume is assigned.',
hypervisor => 'Name of the hypervisor where the volume is configured.',
fcprange => 'A range of acceptable fibre channels that the volume can use. Examples include: 3B00-3C00;4B00-4C00.',
type => 'The plugin used to drive storage configuration (e.g. svc)',
volumetag => 'A specific tag used to identify the volume in the autoyast or kickstart template.',
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
@@ -393,46 +389,7 @@ ipmi => {
descriptions => {
node => 'The node name or group name.',
bmc => 'The hostname of the BMC adapater.',
bmcport => ' In systems with selectable shared/dedicated ethernet ports,
this parameter can be used to specify the preferred port. 0
means use the shared port, 1 means dedicated, blank is to not
assign.
The following special cases exist for IBM System x servers:
For x3755 M3 systems, 0 means use the dedicated port, 1 means
shared, blank is to not assign.
For certain systems which have a mezzaine or ML2 adapter, there is a second
value to include:
For x3750 M4 (Model 8722):
0 2 1st 1Gbps interface for LOM
0 0 1st 10Gbps interface for LOM
0 3 2nd 1Gbps interface for LOM
0 1 2nd 10Gbps interface for LOM
For x3750 M4 (Model 8752), x3850/3950 X6, dx360 M4, x3550 M4, and x3650 M4:
0 Shared (1st onboard interface)
1 Dedicated
2 0 First interface on ML2 or mezzanine adapter
2 1 Second interface on ML2 or mezzanine adapter
2 2 Third interface on ML2 or mezzanine adapter
2 3 Fourth interface on ML2 or mezzanine adapter',
bmcport => 'In systems with selectable shared/dedicated ethernet ports, this parameter can be used to specify the preferred port. 0 means use the shared port, 1 means dedicated, blank is to not assign',
taggedvlan => 'Have bmcsetup place the BMC on the specified vlan tag on a shared netwirk interface. Some network devices may be incompatible with this option',
bmcid => 'Unique identified data used by discovery processes to distinguish known BMCs from unrecognized BMCs',
username => 'The BMC userid. If not specified, the key=ipmi row in the passwd table is used as the default.',
@@ -542,7 +499,7 @@ networks => {
netname => 'Name used to identify this network definition.',
net => 'The network address.',
mask => 'The network mask.',
mgtifname => 'The interface name of the management/service node facing this network. !remote!<nicname> indicates a non-local network on a specific nic for relay DHCP.',
mgtifname => 'The interface name of the management/service node facing this network. !remote! indicates a non-local network for relay DHCP.',
gateway => 'The network gateway. It can be set to an ip address or the keyword <xcatmaster>, the keyword <xcatmaster> indicates the cluster-facing ip address configured on this management node or service node. Leaving this field blank means that there is no gateway for this network.',
dhcpserver => 'The DHCP server that is servicing this network. Required to be explicitly set for pooled service node operation.',
tftpserver => 'The TFTP server that is servicing this network. If not set, the DHCP server is assumed.',
@@ -575,14 +532,14 @@ nodegroup => {
},
},
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 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.",
descriptions => {
node => 'The node name or group name.',
power => 'The method to use to control the power of the node. If not set, the mgt attribute will be used. Valid values: ipmi, blade, hmc, ivm, fsp, kvm, esx, rhevm. If "ipmi", xCAT will search for this node in the ipmi table for more info. If "blade", xCAT will search for this node in the mp table. If "hmc", "ivm", or "fsp", xCAT will search for this node in the ppc table.',
mgt => 'The method to use to do general hardware management of the node. This attribute is used as the default if power or getmac is not set. Valid values: ipmi, blade, hmc, ivm, fsp, bpa, kvm, esx, rhevm. See the power attribute for more details.',
power => 'The method to use to control the power of the node. If not set, the mgt attribute will be used. Valid values: ipmi, blade, hmc, ivm, fsp. If "ipmi", xCAT will search for this node in the ipmi table for more info. If "blade", xCAT will search for this node in the mp table. If "hmc", "ivm", or "fsp", xCAT will search for this node in the ppc table.',
mgt => 'The method to use to do general hardware management of the node. This attribute is used as the default if power or getmac is not set. Valid values: ipmi, blade, hmc, ivm, fsp, bpa. See the power attribute for more details.',
cons => 'The console method. If nodehm.serialport is set, this will default to the nodehm.mgt setting, otherwise it defaults to unused. Valid values: cyclades, mrv, or the values valid for the mgt attribute.',
termserver => 'The hostname of the terminal server.',
termport => 'The port number on the terminal server that this node is connected to.',
@@ -592,13 +549,12 @@ nodehm => {
serialflow => "The flow control value of the serial port for this node. For SOL this is typically 'hard'.",
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; (0=no, 1=yes). Default is the result from site.consoleondemand.',
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
},
},
nodelist => {
cols => [qw(node groups status statustime appstatus appstatustime primarysn hidden updatestatus updatestatustime zonename comments disable)],
cols => [qw(node groups status statustime appstatus appstatustime primarysn hidden updatestatus updatestatustime comments disable)],
keys => [qw(node)],
tablespace =>'XCATTBS32K',
table_desc => "The list of all the nodes in the cluster, including each node's current status and what groups it is in.",
@@ -611,9 +567,8 @@ nodelist => {
appstatustime =>'The date and time when appstatus was updated.',
primarysn => 'Not used currently. The primary servicenode, used by this node.',
hidden => "Used to hide fsp and bpa definitions, 1 means not show them when running lsdef and nodels",
updatestatus => "The current node update status. Valid states are synced, out-of-sync,syncing,failed.",
updatestatus => "The current node update status. Valid states are synced out-of-sync,syncing,failed.",
updatestatustime => "The date and time when the updatestatus was updated.",
zonename => "The name of the zone to which the node is currently assigned. If undefined, then it is not assigned to any zone. ",
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
},
@@ -636,21 +591,21 @@ nodepos => {
},
},
noderes => {
cols => [qw(node servicenode netboot tftpserver tftpdir nfsserver monserver nfsdir installnic primarynic discoverynics cmdinterface xcatmaster current_osimage next_osimage nimserver routenames nameservers proxydhcp comments disable)],
cols => [qw(node servicenode netboot tftpserver tftpdir nfsserver monserver nfsdir installnic primarynic discoverynics cmdinterface xcatmaster current_osimage next_osimage nimserver routenames nameservers comments disable)],
keys => [qw(node)],
tablespace =>'XCATTBS16K',
table_desc => 'Resources and settings to use when installing nodes.',
descriptions => {
node => 'The node name or group name.',
servicenode => 'A comma separated list of node names (as known by the management node) that provides most services for this node. The first service node on the list that is accessible will be used. The 2nd node on the list is generally considered to be the backup service node for this node when running commands like snmove.',
netboot => 'The type of network booting to use for this node. Valid values: pxe or xnba for x86* architecture, yaboot for POWER architecture, grub2-tftp and grub2-http for RHEL7 on Power and all the os deployment on Power LE. Notice: yaboot is not supported from rhels7 on Power,use grub2-tftp or grub2-http instead, the difference between the 2 is the file transfer protocol(i.e, http or tftp)',
netboot => 'The type of network booting to use for this node. Valid values: pxe or xnba for x86* architecture, yaboot for POWER architecture.',
tftpserver => 'The TFTP server for this node (as known by this node). If not set, it defaults to networks.tftpserver.',
tftpdir => 'The directory that roots this nodes contents from a tftp and related perspective. Used for NAS offload by using different mountpoints.',
nfsserver => 'The NFS or HTTP server for this node (as known by this node).',
monserver => 'The monitoring aggregation point for this node. The format is "x,y" where x is the ip address as known by the management node and y is the ip address as known by the node.',
nfsdir => 'The path that should be mounted from the NFS server.',
installnic => 'The network adapter on the node that will be used for OS deployment, the installnic can be set to the network adapter name or the mac address or the keyword "mac" which means that the network interface specified by the mac address in the mac table will be used. If not set, primarynic will be used. If primarynic is not set too, the keyword "mac" will be used as default.',
primarynic => 'This attribute will be deprecated. All the used network interface will be determined by installnic. The network adapter on the node that will be used for xCAT management, the primarynic can be set to the network adapter name or the mac address or the keyword "mac" which means that the network interface specified by the mac address in the mac table will be used. Default is eth0.',
installnic => 'The network adapter on the node that will be used for OS deployment, the installnic can be set to the network adapter name or the mac address or the keyword "mac" which means that the network interface specified by the mac address in the mac table will be used. If not set, primarynic will be used.',
primarynic => 'The network adapter on the node that will be used for xCAT management, the primarynic can be set to the network adapter name or the mac address or the keyword "mac" which means that the network interface specified by the mac address in the mac table will be used. Default is eth0.',
discoverynics => 'If specified, force discovery to occur on specific network adapters only, regardless of detected connectivity. Syntax can be simply "eth2,eth3" to restrict discovery to whatever happens to come up as eth2 and eth3, or by driver name such as "bnx2:0,bnx2:1" to specify the first two adapters managed by the bnx2 driver',
cmdinterface => 'Not currently used.',
xcatmaster => 'The hostname of the xCAT service node (as known by this node). This acts as the default value for nfsserver and tftpserver, if they are not set. If xcatmaster is not set, the node will use whoever responds to its boot request as its master. For the directed bootp case for POWER, it will use the management node if xcatmaster is not set.',
@@ -659,7 +614,6 @@ noderes => {
nimserver => 'Not used for now. The NIM server for this node (as known by this node).',
routenames => 'A comma separated list of route names that refer to rows in the routes table. These are the routes that should be defined on this node when it is deployed.',
nameservers => 'An optional node/group specific override for name server list. Most people want to stick to site or network defined nameserver configuration.',
proxydhcp => 'To specify whether the node supports proxydhcp protocol. Valid values: yes or 1, no or 0. Default value is yes.',
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
},
@@ -728,7 +682,7 @@ osimage => {
description => 'OS Image Description',
provmethod => 'The provisioning method for node deployment. The valid values are install, netboot,statelite,boottarget,dualboot,sysclone. If boottarget is set, you must set linuximage.boottarget to the name of the boottarget definition. It is not used by AIX.',
rootfstype => 'The filesystem type for the rootfs is used when the provmethod is statelite. The valid values are nfs or ramdisk. The default value is nfs',
osdistroname => 'The name of the OS distro definition. This attribute can be used to specify which OS distro to use, instead of using the osname,osvers,and osarch attributes. For *kit commands, the attribute will be used to read the osdistro table for the osname, osvers, and osarch attributes. If defined, the osname, osvers, and osarch attributes defined in the osimage table will be ignored.',
osdistroname => 'The name of the OS distro definition. This attribute can be used to specify which OS distro to use, instead of using the osname,osvers,and osarch attributes.',
osupdatename => 'A comma-separated list of OS distro updates to apply to this osimage.',
cfmdir => 'CFM directory name for PCM. Set to /install/osimages/<osimage name>/cfmdir by PCM. ',
profile => 'The node usage category. For example compute, service.',
@@ -752,16 +706,16 @@ linuximage => {
table_desc => 'Information about a Linux operating system image that can be used to deploy cluster nodes.',
descriptions => {
imagename => 'The name of this xCAT OS image definition.',
template => 'The fully qualified name of the template file that will be used to create the OS installer configuration file for stateful installations (e.g. kickstart for RedHat, autoyast for SLES).',
template => 'The fully qualified name of the template file that is used to create the kick start file for diskful installation.',
boottarget => 'The name of the boottarget definition. When this attribute is set, xCAT will use the kernel, initrd and kernel params defined in the boottarget definition instead of the default.',
addkcmdline=> 'User specified arguments to be passed to the kernel. The user arguments are appended to xCAT.s default kernel arguments. This attribute is ignored if linuximage.boottarget is set.',
pkglist => 'The fully qualified name of the file that stores the distro packages list that will be included in the image. Make sure that if the pkgs in the pkglist have dependency pkgs, the dependency pkgs should be found in one of the pkgdir',
pkgdir => 'The name of the directory where the distro packages are stored. It could be set multiple paths.The multiple paths must be seperated by ",". The first path in the value of osimage.pkgdir must be the OS base pkg dir path, such as pkgdir=/install/rhels6.2/x86_64,/install/updates . In the os base pkg path, there are default repository data. And in the other pkg path(s), the users should make sure there are repository data. If not, use "createrepo" command to create them. For ubuntu, multiple mirrors can be specified in the pkgdir attribute, the mirrors must be prefixed by the protocol(http/ssh) and delimited with "," between each other.',
pkgdir => 'The name of the directory where the distro packages are stored. It could be set multiple paths.The multiple paths must be seperated by ",". The first path in the value of osimage.pkgdir must be the OS base pkg dir path, such as pkgdir=/install/rhels6.2/x86_64,/install/updates . In the os base pkg path, there are default repository data. And in the other pkg path(s), the users should make sure there are repository data. If not, use "createrepo" command to create them. ',
otherpkglist => 'The fully qualified name of the file that stores non-distro package lists that will be included in the image.',
otherpkgdir => 'The base directory where the non-distro packages are stored. Only 1 local directory supported at present.',
otherpkgdir => 'The base directory where the non-distro packages are stored.',
exlist => 'The fully qualified name of the file that stores the file names and directory names that will be excluded from the image during packimage command. It is used for diskless image only.',
postinstall => 'The fully qualified name of the script file that will be run at the end of the genimage command. It is used for diskless image only.',
rootimgdir => 'The directory name where the image is stored. It is generally used for diskless image. it also can be used in sysclone environment to specify where the image captured from golden client is stored. in sysclone environment, rootimgdir is generally assigned to some default value by xcat, but you can specify your own store directory. just one thing need to be noticed, wherever you save the image, the name of last level directory must be the name of image. for example, if your image name is testimage and you want to save this image under home directoy, rootimgdir should be assigned to value /home/testimage/',
rootimgdir => 'The directory name where the image is stored. It is used for diskless image only.',
kerneldir => 'The directory name where the 3rd-party kernel is stored. It is used for diskless image only.',
nodebootif => 'The network interface the stateless/statelite node will boot over (e.g. eth0)',
otherifce => 'Other network interfaces (e.g. eth1) in the image that should be configured via DHCP',
@@ -771,27 +725,12 @@ linuximage => {
permission => 'The mount permission of /.statelite directory is used, its default value is 755',
dump => qq{The NFS directory to hold the Linux kernel dump file (vmcore) when the node with this image crashes, its format is "nfs://<nfs_server_ip>/<kdump_path>". If you want to use the node's "xcatmaster" (its SN or MN), <nfs_server_ip> can be left blank. For example, "nfs:///<kdump_path>" means the NFS directory to hold the kernel dump file is on the node's SN, or MN if there's no SN.},
crashkernelsize => 'the size that assigned to the kdump kernel. If the kernel size is not set, 256M will be the default value.',
partitionfile => 'The path of the configuration file which will be used to partition the disk for the node. For stateful osimages,two types of files are supported: "<partition file absolute path>" which contains a partitioning definition that will be inserted directly into the generated autoinst configuration file and must be formatted for the corresponding OS installer (e.g. kickstart for RedHat, autoyast for SLES). "s:<partitioning script absolute path>" which specifies a shell script that will be run from the OS installer configuration file %pre section; the script must write the correct partitioning definition into the file /tmp/partitionfile on the node which will be included into the configuration file during the install process. For statelite osimages, partitionfile should specify "<partition file absolute path>"; see the xCAT Statelite documentation for the xCAT defined format of this configuration file.',
partitionfile => 'The path of the configuration file which is used to part the disk for the node. For stateful: two types of value can be set for this attribute. One is "<partition file absolute path>", the content of the partition file must use the corresponding format with the OS type. The other one is "s:<partition file absolute path>", the content of the partition file should be a shell script which must write the partition definition into /tmp/partitionfile on the node. For statelite: the valid value is <partition file absolute path>, refer to the statelite doc for the xCAT defined format of the configuration file.',
driverupdatesrc => 'The source of the drivers which need to be loaded during the boot. Two types of driver update source are supported: Driver update disk and Driver rpm package. The value for this attribute should be comma separated sources. Each source should be the format tab:full_path_of_srouce_file. The tab keyword can be: dud (for Driver update disk) and rpm (for driver rpm). If missing the tab, the rpm format is the default. e.g. dud:/install/dud/dd.img,rpm:/install/rpm/d.rpm',
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
},
},
winimage => {
cols => [qw(imagename template installto partitionfile winpepath comments disable)],
keys => [qw(imagename)],
tablespace =>'XCATTBS32K',
table_desc => 'Information about a Windows operating system image that can be used to deploy cluster nodes.',
descriptions => {
imagename => 'The name of this xCAT OS image definition.',
template => 'The fully qualified name of the template file that is used to create the windows unattend.xml file for diskful installation.',
installto => 'The disk and partition that the Windows will be deployed to. The valid format is <disk>:<partition>. If not set, default value is 0:1 for bios boot mode(legacy) and 0:3 for uefi boot mode; If setting to 1, it means 1:1 for bios boot and 1:3 for uefi boot',
partitionfile => 'The path of partition configuration file. Since the partition configuration for bios boot mode and uefi boot mode are different, this configuration file can include both configurations if you need to support both bios and uefi mode. Either way, you must specify the boot mode in the configuration. Example of partition configuration file: [BIOS]xxxxxxx[UEFI]yyyyyyy. To simplify the setting, you also can set installto in partitionfile with section like [INSTALLTO]0:1',
winpepath => 'The path of winpe which will be used to boot this image. If the real path is /tftpboot/winboot/winpe1/, the value for winpepath should be set to winboot/winpe1',
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
}
},
passwd => {
cols => [qw(key username password cryptmethod authdomain comments disable)],
keys => [qw(key username)],
@@ -809,11 +748,11 @@ passwd => {
policy => {
cols => [qw(priority name host commands noderange parameters time rule comments disable)],
keys => [qw(priority)],
table_desc => 'The policy table in the xCAT database controls who has authority to run specific xCAT operations. It is basically the Access Control List (ACL) for xCAT. It is sorted on the priority field before evaluating.',
table_desc => 'The policy table in the xCAT database controls who has authority to run specific xCAT operations. It is basically the Access Control List (ACL) for xCAT.',
descriptions => {
priority => 'The priority value for this rule. This value is used to identify this policy data object (i.e. this rule) The table is sorted on this field with the lower the number the higher the priority. For example 1.0 is higher priority than 4.1 is higher than 4.9.',
priority => 'The priority value for this rule. This value is used to identify this policy data object (i.e. this rule).',
name => 'The username that is allowed to perform the commands specified by this rule. Default is "*" (all users).',
host => 'The host from which users may issue the commands specified by this rule. Default is "*" (all hosts). Only all or one host is supported',
host => 'The host from which users may issue the commands specified by this rule. Default is "*" (all hosts). Only all or one host supported. ',
commands => 'The list of commands that this rule applies to. Default is "*" (all commands).',
noderange => 'The Noderange that this rule applies to. Default is "*" (all nodes). Not supported with the *def commands.',
parameters => 'A regular expression that matches the command parameters (everything except the noderange) that this rule applies to. Default is "*" (all parameters). Not supported with the *def commands.',
@@ -827,11 +766,11 @@ postscripts => {
cols => [qw(node postscripts postbootscripts comments disable)],
keys => [qw(node)],
tablespace =>'XCATTBS16K',
table_desc => 'The scripts that should be run on each node after installation or diskless boot.',
table_desc => ' The scripts that should be run on each node after installation or diskless boot.',
descriptions => {
node => 'The node name or group name.',
postscripts => 'Comma separated list of scripts that should be run on this node after diskfull installation or diskless boot. Each script can take zero or more parameters. For example: "script1 p1 p2,script2,...". xCAT automatically adds the postscripts from the xcatdefaults.postscripts attribute of the table to run first on the nodes after install or diskless boot. For installation of RedHat, CentOS, Fedora, the scripts will be run before the reboot. For installation of SLES, the scripts will be run after the reboot but before the init.d process. For diskless deployment, the scripts will be run at the init.d time, and xCAT will automatically add the list of scripts from the postbootscripts attribute to run after postscripts list. For installation of AIX, the scripts will run after the reboot and acts the same as the postbootscripts attribute. For AIX, use the postbootscripts attribute. Support will be added in the future for the postscripts attribute to run the scripts before the reboot in AIX. ',
postbootscripts => 'Comma separated list of scripts that should be run on this node after diskfull installation or diskless boot. Each script can take zero or more parameters. For example: "script1 p1 p2,script2,...". On AIX these scripts are run during the processing of /etc/inittab. On Linux they are run at the init.d time. xCAT automatically adds the scripts in the xcatdefaults.postbootscripts attribute to run first in the list.',
postbootscripts => 'Comma separated list of scripts that should be run on thisnode after diskfull installation or diskless boot. Each script can take zero or more parameters. For example: "script1 p1 p2,script2,...". On AIX these scripts are run during the processing of /etc/inittab. On Linux they are run at the init.d time. xCAT automatically adds the scripts in the xcatdefaults.postbootscripts attri bute to run first in the list.',
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
},
@@ -881,13 +820,13 @@ ppchcp => {
},
},
servicenode => {
cols => [qw(node nameserver dhcpserver tftpserver nfsserver conserver monserver ldapserver ntpserver ftpserver nimserver ipforward dhcpinterfaces proxydhcp comments disable)],
cols => [qw(node nameserver dhcpserver tftpserver nfsserver conserver monserver ldapserver ntpserver ftpserver nimserver ipforward dhcpinterfaces comments disable)],
keys => [qw(node)],
tablespace =>'XCATTBS16K',
table_desc => 'List of all Service Nodes and services that will be set up on the Service Node.',
descriptions => {
node => 'The hostname of the service node as known by the Management Node.',
nameserver => 'Do we set up DNS on this service node? Valid values: 2, 1, no or 0. If 2, creates named.conf as dns slave, using the management node as dns master, and starts named. If 1, creates named.conf file with forwarding to the management node and starts named. If no or 0, it does not change the current state of the service. ',
nameserver => 'Do we set up DNS on this service node? Valid values:yes or 1, no or 0. If yes, creates named.conf file with forwarding to the management node and starts named. If no or 0, it does not change the current state of the service. ',
dhcpserver => 'Do we set up DHCP on this service node? Not supported on AIX. Valid values:yes or 1, no or 0. If yes, runs makedhcp -n. If no or 0, it does not change the current state of the service. ',
tftpserver => 'Do we set up TFTP on this service node? Not supported on AIX. Valid values:yes or 1, no or 0. If yes, configures and starts atftp. If no or 0, it does not change the current state of the service. ',
nfsserver => 'Do we set up file services (HTTP,FTP,or NFS) on this service node? For AIX will only setup NFS, not HTTP or FTP. Valid values:yes or 1, no or 0.If no or 0, it does not change the current state of the service. ',
@@ -899,7 +838,6 @@ servicenode => {
nimserver => 'Not used. Do we set up a NIM server on this service node? Valid values:yes or 1, no or 0. If no or 0, it does not change the current state of the service.',
ipforward => 'Do we set up ip forwarding on this service node? Valid values:yes or 1, no or 0. If no or 0, it does not change the current state of the service.',
dhcpinterfaces => 'The network interfaces DHCP server should listen on for the target node. This attribute can be used for management node and service nodes. If defined, it will override the values defined in site.dhcpinterfaces. This is a comma separated list of device names. !remote! indicates a non-local network for relay DHCP. For example: !remote!,eth0,eth1',
proxydhcp => 'Do we set up proxydhcp service on this node? valid values: yes or 1, no or 0. If yes, the proxydhcp daemon will be enabled on this node.',
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
@@ -908,48 +846,35 @@ servicenode => {
site => {
cols => [qw(key value comments disable)],
keys => [qw(key)],
table_desc => "Global settings for the whole cluster. This table is different from the \nother tables in that each attribute is just named in the key column, rather \nthan having a separate column for each attribute. The following is a list of \nattributes currently used by xCAT organized into categories.\n",
table_desc => "Global settings for the whole cluster. This table is different from the \nother tables in that each attribute is just named in the key column, rather \nthan having a separate column for each attribute. The following is a list of \nthe attributes currently used by xCAT.\n",
descriptions => {
# Do not put description text past column 88, so it displays well in a 100 char wide window.
# ----------------------------------------------------------------------------------|----------
key => "Attribute Name: Description\n\n".
" ------------\n".
"AIX ATTRIBUTES\n".
" ------------\n".
" nimprime : The name of NIM server, if not set default is the AIX MN.
If Linux MN, then must be set for support of mixed cluster (TBD).\n\n".
" useSSHonAIX: (yes/1 or no/0). Default is yes. The support for rsh/rcp is deprecated.\n".
" useNFSv4onAIX: (yes/1 or no/0). If yes, NFSv4 will be used with NIM. If no,\n".
" NFSv3 will be used with NIM. Default is no.\n\n".
" -----------------\n".
"DATABASE ATTRIBUTES\n".
" -----------------\n".
" auditnosyslog: If set to 1, then commands will only be written to the auditlog table.\n".
" This attribute set to 1 and auditskipcmds=ALL means no logging of commands.\n".
" Default is to write to both the auditlog table and syslog.\n".
" auditskipcmds: List of commands and/or client types that will not be\n".
" written to the auditlog table and syslog. See auditnosyslog.\n".
" auditskipcmds: List of commands and/or client types that will not be written to the auditlog table.\n".
" 'ALL' means all cmds will be skipped. If attribute is null, all\n".
" commands will be written.\n".
" clienttype:web would skip all commands from the web client\n".
" For example: tabdump,nodels,clienttype:web \n".
" will not log tabdump,nodels and any web client commands.\n\n".
" blademaxp: The maximum number of concurrent processes for blade hardware control.\n\n".
" cleanupxcatpost: (yes/1 or no/0). Set to 'yes' or '1' to clean up the /xcatpost\n".
" directory on the stateless and statelite nodes after the\n".
" postscripts are run. Default is no.\n\n".
" consoleondemand: When set to 'yes', conserver connects and creates the console\n".
" output only when the user opens the console. Default is no on\n".
" Linux, yes on AIX.\n\n".
" databaseloc: Directory where we create the db instance directory.\n".
" Default is /var/lib. Only DB2 is currently supported.\n".
" Do not use the directory in the site.installloc or\n".
" installdir attribute. This attribute must not be changed\n".
" once db2sqlsetup script has been run and DB2 has been setup.\n\n".
" excludenodes: A set of comma separated nodes and/or groups that would automatically\n".
" be subtracted from any noderange, it can be used for excluding some\n".
" failed nodes for any xCAT commands. See the 'noderange' manpage for\n".
" details on supported formats.\n\n".
" nodestatus: If set to 'n', the nodelist.status column will not be updated during\n".
" the node deployment, node discovery and power operations. The default is to update.\n\n".
" skiptables: Comma separated list of tables to be skipped by dumpxCATdb\n\n".
" skipvalidatelog: If set to 1, then getcredentials and getpostscripts calls will not be logged in syslog.\n\n".
" -------------\n".
"DHCP ATTRIBUTES\n".
" -------------\n".
" db2installloc: The location which the service nodes should mount for\n".
" the db2 code to install. Format is hostname:/path. If hostname is\n".
" omitted, it defaults to the management node. Default is /mntdb2.\n\n".
" defserialflow: The default serial flow - currently only used by the mknb command.\n\n".
" defserialport: The default serial port - currently only used by mknb.\n\n".
" defserialspeed: The default serial speed - currently only used by mknb.\n\n".
" dhcpinterfaces: The network interfaces DHCP should listen on. If it is the same\n".
" for all nodes, use a simple comma-separated list of NICs. To\n".
" specify different NICs for different nodes:\n".
@@ -962,24 +887,59 @@ site => {
" disjointdhcps: If set to '1', the .leases file on a service node only contains\n".
" the nodes it manages. The default value is '0'.\n".
" '0' value means include all the nodes in the subnet.\n\n".
" pruneservices: Whether to enable service pruning when noderm is run (i.e.\n".
" removing DHCP entries when noderm is executed)\n\n".
" managedaddressmode: The mode of networking configuration during node provision.\n".
" If set to 'static', the network configuration will be configured \n".
" in static mode based on the node and network definition on MN.\n".
" If set to 'dhcp', the network will be configured with dhcp protocol.\n".
" The default is 'dhcp'.\n\n".
" ------------\n".
"DNS ATTRIBUTES\n".
" ------------\n".
" dnshandler: Name of plugin that handles DNS setup for makedns.\n".
" domain: The DNS domain name used for the cluster.\n\n".
" ea_primary_hmc: The hostname of the HMC that the Integrated Switch Network\n".
" Management Event Analysis should send hardware serviceable\n".
" events to for processing and potentially sending to IBM.\n\n".
" ea_backup_hmc: The hostname of the HMC that the Integrated Switch Network\n".
" Management Event Analysis should send hardware serviceable\n".
" events to if the primary HMC is down.\n\n".
" enableASMI: (yes/1 or no/0). If yes, ASMI method will be used after fsp-api. If no,\n".
" when fsp-api is used, ASMI method will not be used. Default is no.\n\n".
" excludenodes: A set of comma separated nodes and/or groups that would automatically\n".
" be subtracted from any noderange, it can be used for excluding some\n".
" failed nodes for any xCAT commands. See the 'noderange' manpage for\n".
" details on supported formats.\n\n".
" forwarders: The DNS servers at your site that can provide names outside of the\n".
" cluster. The makedns command will configure the DNS on the management\n".
" node to forward requests it does not know to these servers.\n".
" Note that the DNS servers on the service nodes will ignore this value\n".
" and always be configured to forward requests to the management node.\n\n".
" fsptimeout: The timeout, in milliseconds, to use when communicating with FSPs.\n\n".
" genmacprefix: When generating mac addresses automatically, use this manufacturing\n".
" prefix (e.g. 00:11:aa)\n\n".
" genpasswords: Automatically generate random passwords for BMCs when configuring\n".
" them.\n\n".
" httpport: The port number that the booting/installing nodes should contact the\n".
" http server on the MN/SN on. It is your responsibility to configure\n".
" the http server to listen on that port - xCAT will not do that.\n\n".
" installdir: The local directory name used to hold the node deployment packages.\n\n".
" installloc: The location from which the service nodes should mount the \n".
" deployment packages in the format hostname:/path. If hostname is\n".
" omitted, it defaults to the management node. The path must\n".
" match the path in the installdir attribute.\n\n".
" ipmidispatch: Whether or not to send ipmi hw control operations to the service\n".
" node of the target compute nodes. Default is 'y'.\n\n".
" hwctrldispatch: Whether or not to send hw control operations to the service\n".
" node of the target nodes. Default is 'y'.(At present, this attribute\n".
" is only used for IBM Flex System)\n\n".
" ipmimaxp: The max # of processes for ipmi hw ctrl. The default is 64. Currently,\n".
" this is only used for HP hw control.\n\n".
" ipmiretries: The # of retries to use when communicating with BMCs. Default is 3.\n\n".
" ipmisdrcache: If set to 'no', then the xCAT IPMI support will not cache locally\n".
" the target node's SDR cache to improve performance.\n\n".
" ipmitimeout: The timeout to use when communicating with BMCs. Default is 2.\n".
" This attribute is currently not used.\n\n".
" iscsidir: The path to put the iscsi disks in on the mgmt node.\n\n".
" master: The hostname of the xCAT management node, as known by the nodes.\n\n".
" maxssh: The max # of SSH connections at any one time to the hw ctrl point for PPC\n".
" This parameter doesn't take effect on the rpower command.\n".
" It takes effects on other PPC hardware control command\n".
" getmacs/rnetboot/rbootseq and so on. Default is 8.\n\n".
" mnroutenames: The name of the routes to be setup on the management node.\n".
" It is a comma separated list of route names that are defined in the\n".
" routes table.\n\n".
" nameservers: A comma delimited list of DNS servers that each node in the cluster\n".
" should use. This value will end up in the nameserver settings of the\n".
" /etc/resolv.conf on each node. It is common (but not required) to set\n".
@@ -989,51 +949,18 @@ site => {
" \"<xcatmaster>\" to mean the DNS server for each node should be the\n".
" node that is managing it (either its service node or the management\n".
" node).\n\n".
" externaldns: To specify that external dns is used. If externaldns is set to any value\n".
" then, makedns command will not start the local nameserver on xCAT MN. \n".
" Default is to start the local nameserver.\n\n".
" dnsupdaters: The value are \',\' separated string which will be added to the zone config\n".
" section. This is an interface for user to add configuration entries to\n".
" the zone sections in named.conf.\n\n".
" dnsinterfaces: The network interfaces DNS server should listen on. If it is the same\n".
" for all nodes, use a simple comma-separated list of NICs. To\n".
" specify different NICs for different nodes:\n".
" xcatmn|eth1,eth2;service|bond0.\n".
" In this example xcatmn is the name of the xCAT MN, and DNS there\n".
" should listen on eth1 and eth2. On all of the nodes in group\n".
" 'service' DNS should listen on the bond0 nic.\n".
" NOTE: if using this attribute to block certain interfaces, make sure\n".
" the ip maps to your hostname of xCAT MN is not blocked since xCAT needs to\n".
" use this ip to communicate with the local NDS server on MN.\n\n".
" -------------------------\n".
"HARDWARE CONTROL ATTRIBUTES\n".
" -------------------------\n".
" blademaxp: The maximum number of concurrent processes for blade hardware control.\n\n".
" ea_primary_hmc: The hostname of the HMC that the Integrated Switch Network\n".
" Management Event Analysis should send hardware serviceable\n".
" events to for processing and potentially sending to IBM.\n\n".
" ea_backup_hmc: The hostname of the HMC that the Integrated Switch Network\n".
" Management Event Analysis should send hardware serviceable\n".
" events to if the primary HMC is down.\n\n".
" enableASMI: (yes/1 or no/0). If yes, ASMI method will be used after fsp-api. If no,\n".
" when fsp-api is used, ASMI method will not be used. Default is no.\n\n".
" fsptimeout: The timeout, in milliseconds, to use when communicating with FSPs.\n\n".
" hwctrldispatch: Whether or not to send hw control operations to the service\n".
" node of the target nodes. Default is 'y'.(At present, this attribute\n".
" is only used for IBM Flex System)\n\n".
" ipmidispatch: Whether or not to send ipmi hw control operations to the service\n".
" node of the target compute nodes. Default is 'y'.\n\n".
" ipmimaxp: The max # of processes for ipmi hw ctrl. The default is 64. Currently,\n".
" this is only used for HP hw control.\n\n".
" ipmiretries: The # of retries to use when communicating with BMCs. Default is 3.\n\n".
" ipmisdrcache: If set to 'no', then the xCAT IPMI support will not cache locally\n".
" the target node's SDR cache to improve performance.\n\n".
" ipmitimeout: The timeout to use when communicating with BMCs. Default is 2.\n".
" This attribute is currently not used.\n\n".
" maxssh: The max # of SSH connections at any one time to the hw ctrl point for PPC\n".
" This parameter doesn't take effect on the rpower command.\n".
" It takes effects on other PPC hardware control command\n".
" getmacs/rnetboot/rbootseq and so on. Default is 8.\n\n".
" nimprime : The name of NIM server, if not set default is the AIX MN.
If Linux MN, then must be set for support of mixed cluster (TBD).\n\n".
" nodestatus: If set to 'n', the nodelist.status column will not be updated during\n".
" the node deployment, node discovery and power operations. The default is to update.\n\n".
" ntpservers: A comma delimited list of NTP servers for the cluster - often the\n".
" xCAT management node.\n\n".
" runbootscripts: If set to 'yes' the scripts listed in the postbootscripts\n".
" attribute in the osimage and postscripts tables will be run during\n".
" each reboot of stateful (diskful) nodes. This attribute has no\n".
" effect on stateless and statelite nodes. Please run the following\n" .
" command after you change the value of this attribute: \n".
" 'updatenode <nodes> -P setuppostbootscripts'\n\n".
" syspowerinterval: For system p CECs, this is the number of seconds the rpower\n".
" command will wait between performing the action for each CEC.\n".
" For system x IPMI servers, this is the number of seconds the\n".
@@ -1060,45 +987,15 @@ site => {
" ppctimeout: The timeout, in milliseconds, to use when communicating with PPC hw\n".
" through HMC. It only takes effect on the hardware control commands\n".
" through HMC. Default is 0.\n\n".
" snmpc: The snmp community string that xcat should use when communicating with the\n".
" switches.\n\n".
" ---------------------------\n".
"INSTALL/DEPLOYMENT ATTRIBUTES\n".
" ---------------------------\n".
" cleanupxcatpost: (yes/1 or no/0). Set to 'yes' or '1' to clean up the /xcatpost\n".
" directory on the stateless and statelite nodes after the\n".
" postscripts are run. Default is no.\n\n".
" db2installloc: The location which the service nodes should mount for\n".
" the db2 code to install. Format is hostname:/path. If hostname is\n".
" omitted, it defaults to the management node. Default is /mntdb2.\n\n".
" defserialflow: The default serial flow - currently only used by the mknb command.\n\n".
" defserialport: The default serial port - currently only used by mknb.\n\n".
" defserialspeed: The default serial speed - currently only used by mknb.\n\n".
" genmacprefix: When generating mac addresses automatically, use this manufacturing\n".
" prefix (e.g. 00:11:aa)\n\n".
" genpasswords: Automatically generate random passwords for BMCs when configuring\n".
" them.\n\n".
" installdir: The local directory name used to hold the node deployment packages.\n\n".
" installloc: The location from which the service nodes should mount the \n".
" deployment packages in the format hostname:/path. If hostname is\n".
" omitted, it defaults to the management node. The path must\n".
" match the path in the installdir attribute.\n\n".
" iscsidir: The path to put the iscsi disks in on the mgmt node.\n\n".
" mnroutenames: The name of the routes to be setup on the management node.\n".
" It is a comma separated list of route names that are defined in the\n".
" routes table.\n\n".
" runbootscripts: If set to 'yes' the scripts listed in the postbootscripts\n".
" attribute in the osimage and postscripts tables will be run during\n".
" each reboot of stateful (diskful) nodes. This attribute has no\n".
" effect on stateless and statelite nodes. Please run the following\n" .
" command after you change the value of this attribute: \n".
" 'updatenode <nodes> -P setuppostbootscripts'\n\n".
" precreatemypostscripts: (yes/1 or no/0). Default is no. If yes, it will \n".
" instruct xCAT at nodeset and updatenode time to query the db once for\n".
" all of the nodes passed into the cmd and create the mypostscript file\n".
" for each node, and put them in a directory of tftpdir(such as: /tftpboot)\n".
" If no, it will not generate the mypostscript file in the tftpdir.\n\n".
" setinstallnic: Set the network configuration for installnic to be static.\n\n".
" pruneservices: Whether to enable service pruning when noderm is run (i.e.\n".
" removing DHCP entries when noderm is executed)\n\n".
" rsh: This is no longer used. path to remote shell command for xdsh.\n\n".
" rcp: This is no longer used. path to remote copy command for xdcp.\n\n".
" sharedtftp: Set to 0 or no, xCAT should not assume the directory\n".
" in tftpdir is mounted on all on Service Nodes. Default is 1/yes.\n".
" If value is set to a hostname, the directory in tftpdir\n".
@@ -1109,38 +1006,18 @@ site => {
" shared filesystem is being used across all service nodes.\n".
" 'all' means that the management as well as the service nodes\n".
" are all using a common shared filesystem. The default is 'no'.\n".
" xcatconfdir: Where xCAT config data is (default /etc/xcat).\n\n".
" --------------------\n".
"REMOTESHELL ATTRIBUTES\n".
" --------------------\n".
" nodesyncfiledir: The directory on the node, where xdcp will rsync the files\n".
" skiptables: Comma separated list of tables to be skipped by dumpxCATdb\n".
" SNsyncfiledir: The directory on the Service Node, where xdcp will rsync the files\n".
" from the MN that will eventually be rsync'd to the compute nodes.\n\n".
" sshbetweennodes: Comma separated list of groups of compute nodes to enable passwordless root \n".
" nodesyncfiledir: The directory on the node, where xdcp will rsync the files\n".
" snmpc: The snmp community string that xcat should use when communicating with the\n".
" switches.\n\n".
" sshbetweennodes: Comma separated list of groups to enable passwordless root \n".
" ssh during install, or xdsh -K. Default is ALLGROUPS.\n".
" Set to NOGROUPS,if you do not wish to enabled any group of compute nodes.\n".
" Set to NOGROUPS,if you do not wish to enabled any groups.\n".
" Service Nodes are not affected by this attribute\n".
" they are always setup with\n".
" passwordless root access to nodes and other SN.\n".
" If using the zone table, this attribute in not used.\n\n".
" -----------------\n".
"SERVICES ATTRIBUTES\n".
" -----------------\n".
" consoleondemand: When set to 'yes', conserver connects and creates the console\n".
" output only when the user opens the console. Default is no on\n".
" Linux, yes on AIX.\n\n".
" httpport: The port number that the booting/installing nodes should contact the\n".
" http server on the MN/SN on. It is your responsibility to configure\n".
" the http server to listen on that port - xCAT will not do that.\n\n".
" nmapoptions: Additional options for the nmap command. nmap is used in pping, \n".
" nodestat, xdsh -v and updatenode commands. Sometimes additional \n".
" performance tuning may be needed for nmap due to network traffic.\n".
" For example, if the network response time is too slow, nmap may not\n".
" give stable output. You can increase the timeout value by specifying \n".
" '--min-rtt-timeout 1s'. xCAT will append the options defined here to \n".
" the nmap command.\n\n".
" ntpservers: A comma delimited list of NTP servers for the cluster - often the\n".
" xCAT management node.\n\n".
" passwordless root access to nodes and other SN.\n\n".
" svloglocal: if set to 1, syslog on the service node will not get forwarded to the\n".
" mgmt node.\n\n".
" timezone: (e.g. America/New_York)\n\n".
@@ -1150,30 +1027,11 @@ site => {
" useNmapfromMN: When set to yes, nodestat command should obtain the node status\n".
" using nmap (if available) from the management node instead of the\n".
" service node. This will improve the performance in a flat network.\n\n".
" vsftp: Default is 'n'. If set to 'y', the xcatd on the mn will automatically\n".
" bring up vsftpd. (You must manually install vsftpd before this.\n".
" This setting does not apply to the service node. For sn\n".
" you need to set servicenode.ftpserver=1 if you want xcatd to\n".
" bring up vsftpd.\n\n".
" -----------------------\n".
"VIRTUALIZATION ATTRIBUTES\n".
" -----------------------\n".
" useSSHonAIX: (yes/1 or no/0). If yes, ssh/scp will be setup and used. If no, rsh/rcp. The support for rsh/rcp is deprecated.\n".
" usexhrm: Have xCAT run its xHRM script when booting up KVM guests to set the\n".
" virtual network bridge up correctly. See\n".
" https://sourceforge.net/apps/mediawiki/xcat/index.php?title=XCAT_Virtualization_with_KVM#Setting_up_a_network_bridge\n\n".
" vcenterautojoin: When set to no, the VMWare plugin will not attempt to auto remove\n".
" and add hypervisors while trying to perform operations. If users\n".
" or tasks outside of xCAT perform the joining this assures xCAT\n".
" will not interfere.\n\n".
" vmwarereconfigonpower: When set to no, the VMWare plugin will make no effort to\n".
" push vm.cpus/vm.memory updates from xCAT to VMWare.\n\n".
" persistkvmguests: Keep the kvm definition on the kvm hypervisor when you power off\n".
" the kvm guest node. This is useful for you to manually change the \n".
" kvm xml definition file in virsh for debugging. Set anything means\n".
" enable.\n\n".
" --------------------\n".
"XCAT DAEMON ATTRIBUTES\n".
" --------------------\n".
" rsh/rcp will be setup and used on AIX. Default is yes.\n\n".
" useflowcontrol: (yes/1 or no/0). If yes, the postscript processing on each node\n".
" contacts xcatd on the MN/SN using a lightweight UDP packet to wait\n".
" until xcatd is ready to handle the requests associated with\n".
@@ -1181,17 +1039,31 @@ site => {
" locking out admin interactive use. This value works with the\n".
" xcatmaxconnections and xcatmaxbatch attributes. Is not supported on AIX.\n".
" If the value is no, nodes sleep for a random time before contacting\n".
" xcatd, and retry. The default is no.\n".
" xcatd, and retry. On a new install of xcat, this value will be set to yes.\n".
" See the following document for details:\n".
" Hints_and_Tips_for_Large_Scale_Clusters\n\n".
" https://sourceforge.net/apps/mediawiki/xcat/index.php?title=Hints_and_Tips_for_Large_Scale_Clusters\n\n".
" useNFSv4onAIX: (yes/1 or no/0). If yes, NFSv4 will be used with NIM. If no,\n".
" NFSv3 will be used with NIM. Default is no.\n\n".
" vcenterautojoin: When set to no, the VMWare plugin will not attempt to auto remove\n".
" and add hypervisors while trying to perform operations. If users\n".
" or tasks outside of xCAT perform the joining this assures xCAT\n".
" will not interfere.\n\n".
" vmwarereconfigonpower: When set to no, the VMWare plugin will make no effort to\n".
" push vm.cpus/vm.memory updates from xCAT to VMWare.\n\n".
" vsftp: Default is 'n'. If set to 'y', the xcatd on the mn will automatically\n".
" bring up vsftpd. (You must manually install vsftpd before this.\n".
" This setting does not apply to the service node. For sn\n".
" you need to set servicenode.ftpserver=1 if you want xcatd to\n".
" bring up vsftpd.\n\n".
" xcatconfdir: Where xCAT config data is (default /etc/xcat).\n\n".
" xcatmaxconnections: Number of concurrent xCAT protocol requests before requests\n".
" begin queueing. This applies to both client command requests\n".
" and node requests, e.g. to get postscripts. Default is 64.\n\n".
" xcatmaxbatchconnections: Number of concurrent xCAT connections allowed from the nodes.\n".
" Value must be less than xcatmaxconnections. Default is 50.\n\n".
" xcatdport: The port used by the xcatd daemon for client/server communication.\n\n".
" xcatiport: The port used by xcatd to receive install status updates from nodes.\n\n".
" xcatsslversion: The ssl version by xcatd. Default is SSLv3.\n\n".
" xcatiport: The port used by xcatd to receive install status updates from nodes.\n\n",
" xcatsslversion: The ssl version by xcatd. Default is SSLv3.\n\n",
" xcatsslciphers: The ssl cipher by xcatd. Default is 3DES.\n\n",
value => 'The value of the attribute specified in the "key" column.',
comments => 'Any user-written notes.',
@@ -1271,19 +1143,6 @@ performance => {
disable => "Set to 'yes' or '1' to comment out this row.",
},
},
zone => {
cols => [qw(zonename sshkeydir sshbetweennodes defaultzone comments disable)],
keys => [qw(zonename)],
table_desc => 'Defines a cluster zone for nodes that share root ssh key access to each other.',
descriptions => {
zonename => 'The name of the zone.',
sshkeydir => 'Directory containing the shared root ssh RSA keys.',
sshbetweennodes => 'Indicates whether passwordless ssh will be setup between the nodes of this zone. Values are yes/1 or no/0. Default is yes. ',
defaultzone => 'If nodes are not assigned to any other zone, they will default to this zone. If value is set to yes or 1.',
comments => 'Any user-provided notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
},
},
eventlog => {
cols => [qw(recid eventtime eventtype monitor monnode node application component id severity message rawdata comments disable)],
@@ -1420,7 +1279,7 @@ firmware => {
},
nics => {
cols => [qw(node nicips nichostnamesuffixes nichostnameprefixes nictypes niccustomscripts nicnetworks nicaliases nicextraparams comments disable)],
cols => [qw(node nicips nichostnamesuffixes nictypes niccustomscripts nicnetworks nicaliases comments disable)],
keys => [qw(node)],
tablespace =>'XCATTBS16K',
table_desc => 'Stores NIC details.',
@@ -1438,13 +1297,6 @@ nics => {
<nic1>!<ext1>|<ext2>,<nic2>!<ext1>|<ext2>,..., for example, eth0!-eth0|-eth0-ipv6,ib0!-ib0|-ib0-ipv6.
The xCAT object definition commands support to use nichostnamesuffixes.<nicname> as the sub attributes.
Note: According to DNS rules a hostname must be a text string up to 24 characters drawn from the alphabet (A-Z), digits (0-9), minus sign (-),and period (.). When you are specifying "nichostnamesuffixes" or "nicaliases" make sure the resulting hostnames will conform to this naming convention',
nichostnameprefixes => 'Comma-separated list of hostname prefixes per NIC.
If only one ip address is associated with each NIC:
<nic1>!<ext1>,<nic2>!<ext2>,..., for example, eth0!eth0-,ib0!ib-
If multiple ip addresses are associcated with each NIC:
<nic1>!<ext1>|<ext2>,<nic2>!<ext1>|<ext2>,..., for example, eth0!eth0-|eth0-ipv6i-,ib0!ib-|ib-ipv6-.
The xCAT object definition commands support to use nichostnameprefixes.<nicname> as the sub attributes.
Note: According to DNS rules a hostname must be a text string up to 24 characters drawn from the alphabet (A-Z), digits (0-9), minus sign (-),and period (.). When you are specifying "nichostnameprefixes" or "nicaliases" make sure the resulting hostnames will conform to this naming convention',
nictypes => 'Comma-separated list of NIC types per NIC. <nic1>!<type1>,<nic2>!<type2>, e.g. eth0!Ethernet,ib0!Infiniband. The xCAT object definition commands support to use nictypes.<nicname> as the sub attributes.',
niccustomscripts => 'Comma-separated list of custom scripts per NIC. <nic1>!<script1>,<nic2>!<script2>, e.g. eth0!configeth eth0, ib0!configib ib0. The xCAT object definition commands support to use niccustomscripts.<nicname> as the sub attribute
.',
@@ -1457,12 +1309,6 @@ nics => {
Format: eth0!<alias list>,eth1!<alias1 list>|<alias2 list>
For multiple aliases per nic use a space-separated list.
For example: eth0!moe larry curly,eth1!tom|jerry',
nicextraparams => 'Comma-separated list of extra parameters that will be used for each NIC configuration.
If only one ip address is associated with each NIC:
<nic1>!<param1=value1 param2=value2>,<nic2>!<param3=value3>, for example, eth0!MTU=1500,ib0!MTU=65520 CONNECTED_MODE=yes.
If multiple ip addresses are associated with each NIC:
<nic1>!<param1=value1 param2=value2>|<param3=value3>,<nic2>!<param4=value4 param5=value5>|<param6=value6>, for example, eth0!MTU=1500|MTU=1460,ib0!MTU=65520 CONNECTED_MODE=yes.
The xCAT object definition commands support to use nicextraparams.<nicname> as the sub attributes.',
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
},
@@ -1584,7 +1430,7 @@ discoverydata => {
method => 'The method which handled the discovery request. The method could be one of: switch, blade, profile, sequential.',
discoverytime => 'The last time that xCAT received the discovery message.',
arch => 'The architecture of the discovered node. e.g. x86_64.',
cpucount => 'The number of cores multiply by threads core supported for the discovered node. e.g. 192.',
cpucount => 'The cpu number of the discovered node. e.g. 32.',
cputype => 'The cpu type of the discovered node. e.g. Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz',
memory => 'The memory size of the discovered node. e.g. 198460852',
mtm => 'The machine type model of the discovered node. e.g. 786310X',
@@ -1635,32 +1481,8 @@ mic => {
disable => "Do not use. tabprune will not work if set to yes or 1",
},
},
hwinv => {
cols => [qw(node cputype cpucount memory disksize comments disable)],
keys => [qw(node)],
table_desc => 'The hareware inventory for the node.',
descriptions => {
node => 'The node name or group name.',
cputype => 'The cpu model name for the node.',
cpucount => 'The number of cpus for the node.',
memory => 'The size of the memory for the node in MB.',
disksize => 'The size of the disks for the node in GB.',
comments => 'Any user-provided notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
},
},
token => {
cols => [qw(tokenid username expire comments disable)],
keys => [qw(tokenid)],
table_desc => 'The token of users for authentication.',
descriptions => {
tokenid => 'It is a UUID as an unified identify for the user.',
username => 'The user name.',
expire => 'The expire time for this token.',
comments => 'Any user-provided notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
},
},
); # end of tabspec definition
@@ -1738,7 +1560,6 @@ foreach my $tabname (keys(%xCAT::ExtTab::ext_tabspec)) {
rack => { attrs => [], attrhash => {}, objkey => 'rackname' },
osdistro=> { attrs => [], attrhash => {}, objkey => 'osdistroname' },
osdistroupdate=> { attrs => [], attrhash => {}, objkey => 'osupdatename' },
zone=> { attrs => [], attrhash => {}, objkey => 'zonename' },
);
@@ -1807,11 +1628,6 @@ my @nodeattrs = (
tabentry => 'noderes.monserver',
access_tabentry => 'noderes.node=attr:node',
},
{attr_name => 'supportproxydhcp',
tabentry => 'noderes.proxydhcp',
access_tabentry => 'noderes.node=attr:node',
},
{attr_name => 'kernel',
tabentry => 'bootparams.kernel',
access_tabentry => 'bootparams.node=attr:node',
@@ -1880,10 +1696,6 @@ my @nodeattrs = (
{attr_name => 'setupipforward',
tabentry => 'servicenode.ipforward',
access_tabentry => 'servicenode.node=attr:node',
},
{attr_name => 'setupproxydhcp',
tabentry => 'servicenode.proxydhcp',
access_tabentry => 'servicenode.node=attr:node',
},
# - moserver not used yet
# {attr_name => 'setupmonserver',
@@ -2004,10 +1816,6 @@ my @nodeattrs = (
{attr_name => 'serialflow',
tabentry => 'nodehm.serialflow',
access_tabentry => 'nodehm.node=attr:node',
},
{attr_name => 'consoleondemand',
tabentry => 'nodehm.consoleondemand',
access_tabentry => 'nodehm.node=attr:node',
},
##################
# vpd table #
@@ -2369,10 +2177,6 @@ my @nodeattrs = (
tabentry => 'nics.nichostnamesuffixes',
access_tabentry => 'nics.node=attr:node',
},
{attr_name => 'nichostnameprefixes',
tabentry => 'nics.nichostnameprefixes',
access_tabentry => 'nics.node=attr:node',
},
{attr_name => 'nictypes',
tabentry => 'nics.nictypes',
access_tabentry => 'nics.node=attr:node',
@@ -2389,11 +2193,7 @@ my @nodeattrs = (
tabentry => 'nics.nicaliases',
access_tabentry => 'nics.node=attr:node',
},
{attr_name => 'nicextraparams',
tabentry => 'nics.nicextraparams',
access_tabentry => 'nics.node=attr:node',
},
#######################
######################
# prodkey table #
######################
{attr_name => 'productkey',
@@ -2430,14 +2230,6 @@ my @nodeattrs = (
tabentry => 'storage.osvolume',
access_tabentry => 'storage.node=attr:node',
},
{attr_name => 'storagcontroller',
tabentry => 'storage.controller',
access_tabentry => 'storage.node=attr:node',
},
{attr_name => 'storagetype',
tabentry => 'storage.type',
access_tabentry => 'storage.node=attr:node',
},
######################
# vm table #
######################
@@ -2660,26 +2452,7 @@ my @nodeattrs = (
tabentry => 'mic.powermgt',
access_tabentry => 'mic.node=attr:node',
},
#####################
## hwinv table #
#####################
{attr_name => 'cputype',
tabentry => 'hwinv.cputype',
access_tabentry => 'hwinv.node=attr:node',
},
{attr_name => 'cpucount',
tabentry => 'hwinv.cpucount',
access_tabentry => 'hwinv.node=attr:node',
},
{attr_name => 'memory',
tabentry => 'hwinv.memory',
access_tabentry => 'hwinv.node=attr:node',
},
{attr_name => 'disksize',
tabentry => 'hwinv.disksize',
access_tabentry => 'hwinv.node=attr:node',
},
); # end of @nodeattrs that applies to both nodes and groups
@@ -2729,11 +2502,7 @@ my @nodeattrs = (
{attr_name => 'updatestatustime',
tabentry => 'nodelist.updatestatustime',
access_tabentry => 'nodelist.node=attr:node',
},
{attr_name => 'zonename',
tabentry => 'nodelist.zonename',
access_tabentry => 'nodelist.node=attr:node',
},
},
{attr_name => 'usercomment',
tabentry => 'nodelist.comments',
access_tabentry => 'nodelist.node=attr:node',
@@ -2938,29 +2707,6 @@ push(@{$defspec{node}->{'attrs'}}, @nodeattrs);
access_tabentry => 'linuximage.imagename=attr:imagename',
},
####################
# winimage table#
####################
{attr_name => 'template',
only_if => 'imagetype=windows',
tabentry => 'winimage.template',
access_tabentry => 'winimage.imagename=attr:imagename',
},
{attr_name => 'installto',
only_if => 'imagetype=windows',
tabentry => 'winimage.installto',
access_tabentry => 'winimage.imagename=attr:imagename',
},
{attr_name => 'partitionfile',
only_if => 'imagetype=windows',
tabentry => 'winimage.partitionfile',
access_tabentry => 'winimage.imagename=attr:imagename',
},
{attr_name => 'winpepath',
only_if => 'imagetype=windows',
tabentry => 'winimage.winpepath',
access_tabentry => 'winimage.imagename=attr:imagename',
},
####################
# nimimage table#
####################
{attr_name => 'nimtype',
@@ -3187,31 +2933,6 @@ push(@{$defspec{node}->{'attrs'}}, @nodeattrs);
access_tabentry => 'rack.rackname=attr:rackname',
},
);
####################
# zone table #
####################
@{$defspec{zone}->{'attrs'}} = (
{attr_name => 'zonename',
tabentry => 'zone.zonename',
access_tabentry => 'zone.zonename=attr:zonename',
},
{attr_name => 'sshkeydir',
tabentry => 'zone.sshkeydir',
access_tabentry => 'zone.zonename=attr:zonename',
},
{attr_name => 'sshbetweennodes',
tabentry => 'zone.sshbetweennodes',
access_tabentry => 'zone.zonename=attr:zonename',
},
{attr_name => 'defaultzone',
tabentry => 'zone.defaultzone',
access_tabentry => 'zone.zonename=attr:zonename',
},
{attr_name => 'usercomment',
tabentry => 'zone.comments',
access_tabentry => 'zone.zonename=attr:zonename',
},
);
#########################
# route data object #
#########################
@@ -3644,10 +3365,6 @@ push(@{$defspec{group}->{'attrs'}}, @nodeattrs);
tabentry => 'kit.kitdeployparams',
access_tabentry => 'kit.kitname=attr:kitname',
},
{attr_name => 'kitdir',
tabentry => 'kit.kitdir',
access_tabentry => 'kit.kitname=attr:kitname',
},
);
#############################
@@ -3664,8 +3381,8 @@ push(@{$defspec{group}->{'attrs'}}, @nodeattrs);
tabentry => 'kitrepo.kitname',
access_tabentry => 'kitrepo.kitreponame=attr:kitreponame',
},
{attr_name => 'osbasename',
tabentry => 'kitrepo.osbasename',
{attr_name => 'osname',
tabentry => 'kitrepo.osname',
access_tabentry => 'kitrepo.kitreponame=attr:kitreponame',
},
{attr_name => 'osmajorversion',
@@ -3733,10 +3450,6 @@ push(@{$defspec{group}->{'attrs'}}, @nodeattrs);
tabentry => 'kitcomponent.kitpkgdeps',
access_tabentry => 'kitcomponent.kitcompname=attr:kitcompname',
},
{attr_name => 'prerequisite',
tabentry => 'kitcomponent.prerequisite',
access_tabentry => 'kitcomponent.kitcompname=attr:kitcompname',
},
{attr_name => 'driverpacks',
tabentry => 'kitcomponent.driverpacks',
access_tabentry => 'kitcomponent.kitcompname=attr:kitcompname',
@@ -3749,10 +3462,6 @@ push(@{$defspec{group}->{'attrs'}}, @nodeattrs);
tabentry => 'kitcomponent.postbootscripts',
access_tabentry => 'kitcomponent.kitcompname=attr:kitcompname',
},
{attr_name => 'genimage_postinstall',
tabentry => 'kitcomponent.genimage_postinstall',
access_tabentry => 'kitcomponent.kitcompname=attr:kitcompname',
},
{attr_name => 'exlist',
tabentry => 'kitcomponent.exlist',
access_tabentry => 'kitcomponent.kitcompname=attr:kitcompname',
+6 -11
View File
@@ -10,8 +10,12 @@ BEGIN
# if AIX - make sure we include perl 5.8.2 in INC path.
# Needed to find perl dependencies shipped in deps tarball.
if ($^O =~ /^aix/i) {
unshift(@INC, qw(/usr/opt/perl5/lib/5.8.2/aix-thread-multi /usr/opt/perl5/lib/5.8.2 /usr/opt/perl5/lib/site_perl/5.8.2/aix-thread-multi /usr/opt/perl5/lib/site_perl/5.8.2));
}
use lib "/usr/opt/perl5/lib/5.8.2/aix-thread-multi";
use lib "/usr/opt/perl5/lib/5.8.2";
use lib "/usr/opt/perl5/lib/site_perl/5.8.2/aix-thread-multi";
use lib "/usr/opt/perl5/lib/site_perl/5.8.2";
}
use lib "$::XCATROOT/lib/perl";
use strict;
#-----------------------------------------------------------------------------
@@ -159,8 +163,6 @@ sub isServiceReq
if (($value eq "1") || ($value eq "YES"))
{
$servicehash->{$service} = "1";
} elsif ($value eq "2") {
$servicehash->{$service} = "2";
} else {
$servicehash->{$service} = "0";
}
@@ -185,13 +187,6 @@ sub isServiceReq
if (!exists($servicehash->{'tftpserver'})) {
$servicehash->{'tftpserver'} = 1;
}
# On Ubuntu management node, we disabled the isc-dhcp-server in upstart,
# through file /etc/init/isc-dhcp-server.override, see bug 4399
# however, this causes a new problem, bug 4515
# the fix is to start dhcp server when starting xcatd
if (!exists($servicehash->{'dhcpserver'}) && xCAT::Utils->osver() =~ /ubuntu.*/i) {
$servicehash->{'dhcpserver'} = 1;
}
}
$servicenodetab->close;
+8 -17
View File
@@ -179,10 +179,6 @@ sub init_dbworker {
#setup signal in NotifHandler so that the cache can be updated
xCAT::NotifHandler::setup($$, 0);
# NOTE: There's a bug that sometimes the %SIG is cleaned up by accident, but we cannot figure out when and why
# this happens. The temporary fix is to backup the %SIG and recover it when necessary.
my %SIGbakup = %SIG;
while (not $exitdbthread) {
eval {
my @ready_socks = $clientset->can_read;
@@ -195,7 +191,6 @@ sub init_dbworker {
} else {
eval {
handle_dbc_conn($currcon,$clientset);
unless (%SIG && defined ($SIG{USR1})) { %SIG = %SIGbakup; }
};
if ($@) {
my $err=$@;
@@ -220,9 +215,6 @@ sub init_dbworker {
exit(0);
}
}
# sleep a while to make sure the client process has done
sleep 1.5;
close($dbworkersocket);
unlink($dbsockpath);
exit 0;
@@ -3842,7 +3834,7 @@ sub writeAllEntries
}
my $filename = shift;
my $fh;
my $rc = 0;
my $rc;
# open the file for write
unless (open($fh," > $filename")) {
my $msg="Unable to open $filename for write \n.";
@@ -4021,8 +4013,7 @@ sub output_table {
Example:
my $tabh = xCAT::Table->new($table);
my $recs=$tabh->getEntries("recid"); # returns row with recid max value in database
# and the row with the min value.
my $recs=$tabh->getMAXMINEntries("recid");
Comments:
none
@@ -4040,14 +4031,13 @@ sub getMAXMINEntries
my $rets;
my $query;
my $xcatcfg=get_xcatcfg();
# delimit the disable column based on the DB
my $disable= &delimitcol("disable");
my $qstring;
if ($xcatcfg =~ /^DB2:/) { # for DB2
if ($xcatcfg =~ /^DB2:/) { # for DB2
$qstring = "SELECT MAX (\"$attr\") FROM " . $self->{tabname} . " WHERE " . $disable . " is NULL or " . $disable . " in ('0','no','NO','No','nO')";
} else {
$qstring = "SELECT MAX($attr) FROM " . $self->{tabname} . " WHERE " . $disable . " is NULL or " . $disable . " in ('0','no','NO','No','nO')";
$qstring = "SELECT MAX($attr) FROM " . $self->{tabname} . " WHERE " . $disable . " is NULL or " . $disable . " in ('0','no','NO','No','nO')";
}
$query = $self->{dbh}->prepare($qstring);
@@ -4068,10 +4058,10 @@ sub getMAXMINEntries
}
}
$query->finish();
if ($xcatcfg =~ /^DB2:/) { # for DB2
if ($xcatcfg =~ /^DB2:/) { # for DB2
$qstring = "SELECT MIN (\"$attr\") FROM " . $self->{tabname} . " WHERE " . $disable . " is NULL or " . $disable . " in ('0','no','NO','No','nO')";
} else {
$qstring = "SELECT MIN($attr) FROM " . $self->{tabname} . " WHERE " . $disable . " is NULL or " . $disable . " in ('0','no','NO','No','nO')";
$qstring = "SELECT MIN($attr) FROM " . $self->{tabname} . " WHERE " . $disable . " is NULL or " . $disable . " in ('0','no','NO','No','nO')";
}
$query = $self->{dbh}->prepare($qstring);
@@ -4086,10 +4076,11 @@ sub getMAXMINEntries
} else {
$rets->{"min"} = $data->{$_};
}
last; # better be only one value for min
last; # better be only one value for min
}
}
return $rets;
}
1;
Executable → Regular
+49 -327
View File
@@ -10,13 +10,15 @@ BEGIN
# if AIX - make sure we include perl 5.8.2 in INC path.
# Needed to find perl dependencies shipped in deps tarball.
if ($^O =~ /^aix/i) {
unshift(@INC, qw(/usr/opt/perl5/lib/5.8.2/aix-thread-multi /usr/opt/perl5/lib/5.8.2 /usr/opt/perl5/lib/site_perl/5.8.2/aix-thread-multi /usr/opt/perl5/lib/site_perl/5.8.2));
}
use lib "/usr/opt/perl5/lib/5.8.2/aix-thread-multi";
use lib "/usr/opt/perl5/lib/5.8.2";
use lib "/usr/opt/perl5/lib/site_perl/5.8.2/aix-thread-multi";
use lib "/usr/opt/perl5/lib/site_perl/5.8.2";
}
use lib "$::XCATROOT/lib/perl";
use strict;
require xCAT::Table;
require xCAT::Zone;
use File::Path;
#-----------------------------------------------------------------------
@@ -269,7 +271,7 @@ sub bldnonrootSSHFiles
Error:
0=good, 1=error
Example:
xCAT::TableUtils->setupSSH(@target_nodes,$expecttimeout);
xCAT::TableUtils->setupSSH(@target_nodes);
Comments:
Does not setup known_hosts. Assumes automatically
setup by SSH ( ssh config option StrictHostKeyChecking no should
@@ -333,21 +335,21 @@ sub setupSSH
$::REMOTE_SHELL = "/usr/bin/ssh";
my $rsp = {};
# Get the home directory
my $home = xCAT::Utils->getHomeDir($from_userid);
$ENV{'DSH_FROM_USERID_HOME'} = $home;
if ($from_userid eq "root")
{
# make the directory to hold keys to transfer to the nodes
if (!-d $SSHdir)
{
mkpath("$SSHdir", { mode => 0755 });
}
# generates new keys for root, if they do not already exist ~/.ssh
# generates new keys for root, if they do not already exist
# nodes not used on this option but in there to preserve the interface
my $rc=
xCAT::RemoteShellExp->remoteshellexp("k",$::CALLBACK,$::REMOTE_SHELL,$n_str,$expecttimeout);
@@ -372,10 +374,7 @@ else
fi
mkdir -p \$dest_dir
cat /tmp/$to_userid/.ssh/authorized_keys >> \$home/.ssh/authorized_keys 2>&1
cat /tmp/$to_userid/.ssh/id_rsa.pub >> \$home/.ssh/authorized_keys 2>&1
rm -f \$home/.ssh/id_rsa 2>&1
cp /tmp/$to_userid/.ssh/id_rsa \$home/.ssh/id_rsa 2>&1
cp /tmp/$to_userid/.ssh/id_rsa.pub \$home/.ssh/id_rsa.pub 2>&1
chmod 0600 \$home/.ssh/id_* 2>&1
rm -f /tmp/$to_userid/.ssh/* 2>&1
rmdir \"/tmp/$to_userid/.ssh\"
@@ -387,7 +386,6 @@ rmdir \"/tmp/$to_userid\" \n";
my $auth_key2=0;
if ($from_userid eq "root")
{
# this will put the root/.ssh/id_rsa.pub key in the authorized keys file to put on the node
my $rc = xCAT::TableUtils->cpSSHFiles($SSHdir);
if ($rc != 0)
{ # error
@@ -420,46 +418,50 @@ rmdir \"/tmp/$to_userid\" \n";
xCAT::TableUtils->bldnonrootSSHFiles($from_userid);
}
# send the keys
# send the keys to the nodes for root or some other id
#
# This environment variable determines whether to setup
# node to node ssh
# The nodes must be checked against the site.sshbetweennodes attribute
# For root user and not to devices only to nodes
if (($from_userid eq "root") && (!($ENV{'DEVICETYPE'}))) {
# Need to check if nodes are in a zone.
my @zones;
my $tab = xCAT::Table->new("zone");
if ($tab)
my $enablenodes;
my $disablenodes;
my @nodelist= split(",", $n_str);
foreach my $n (@nodelist)
{
# if we have zones, need to send the zone keys to each node in the zone
my @attribs = ("zonename");
@zones = $tab->getAllAttribs(@attribs);
$tab->close();
} else {
$rsp->{data}->[0] = "Could not open zone table.\n";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
return 1;
}
# check for zones, key send is different if zones defined or not
if (@zones) { # we have zones defined
my $rc = xCAT::TableUtils->sendkeysTOzones($ref_nodes,$expecttimeout);
if ($rc != 0)
{
$rsp->{data}->[0] = "Error sending ssh keys to the zones.\n";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
exit 1;
my $enablessh=xCAT::TableUtils->enablessh($n);
if ($enablessh == 1) {
$enablenodes .= $n;
$enablenodes .= ",";
} else {
$disablenodes .= $n;
$disablenodes .= ",";
}
} else { # no zones
# if no zone table defined, do it the old way , keys are in ~/.ssh
my $rc = xCAT::TableUtils->sendkeysNOzones($ref_nodes,$expecttimeout);
}
my $cmd;
if ($enablenodes) { # node on list to setup nodetonodessh
chop $enablenodes; # remove last comma
$ENV{'DSH_ENABLE_SSH'} = "YES";
my $rc=xCAT::RemoteShellExp->remoteshellexp("s",$::CALLBACK,"/usr/bin/ssh",$enablenodes,$expecttimeout);
if ($rc != 0)
{
$rsp->{data}->[0] = "Error sending ssh keys to the nodes.\n";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
{
$rsp->{data}->[0] = "remoteshellexp failed sending keys to enablenodes.";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
}
}
if ($disablenodes) { # node on list to setup nodetonodessh
chop $disablenodes; # remove last comma
my $rc=xCAT::RemoteShellExp->remoteshellexp("s",$::CALLBACK,"/usr/bin/ssh",$disablenodes,$expecttimeout);
if ($rc != 0)
{
$rsp->{data}->[0] = "remoteshellexp failed sending keys to disablenodes.";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
}
}
} else { # from user is not root or it is a device , always send private key
$ENV{'DSH_ENABLE_SSH'} = "YES";
my $rc=xCAT::RemoteShellExp->remoteshellexp("s",$::CALLBACK,"/usr/bin/ssh",$n_str,$expecttimeout);
@@ -501,235 +503,6 @@ rmdir \"/tmp/$to_userid\" \n";
#--------------------------------------------------------------------------------
=head3 sendkeysNOzones
Transfers the ssh keys
for the root id on the nodes no zones
key from ~/.ssh site.sshbetweennodes honored
Arguments:
Array of nodes
Timeout for expect call (optional)
Returns:
Env Variables: $DSH_FROM_USERID, $DSH_TO_USERID, $DSH_REMOTE_PASSWORD
the ssh keys are transferred from the $DSH_FROM_USERID to the $DSH_TO_USERID
on the node(s). The DSH_REMOTE_PASSWORD and the DSH_FROM_USERID
must be obtained by
the calling script or from the xdsh client
Globals:
$::XCATROOT , $::CALLBACK
Error:
0=good, 1=error
Example:
xCAT::TableUtils->sendkeysNOzones($ref_nodes,$expecttimeout);
Comments:
Does not setup known_hosts. Assumes automatically
setup by SSH ( ssh config option StrictHostKeyChecking no should
be set in the ssh config file).
=cut
#--------------------------------------------------------------------------------
sub sendkeysNOzones
{
my ($class, $ref_nodes,$expecttimeout) = @_;
my @nodes=$ref_nodes;
my $enablenodes;
my $disablenodes;
my $n_str = $nodes[0];
my @nodelist= split(",", $n_str);
my $rsp = ();
foreach my $n (@nodelist)
{
my $enablessh=xCAT::TableUtils->enablessh($n);
if ($enablessh == 1) {
$enablenodes .= $n;
$enablenodes .= ",";
} else {
$disablenodes .= $n;
$disablenodes .= ",";
}
}
if ($enablenodes) { # node on list to setup nodetonodessh
chop $enablenodes; # remove last comma
$ENV{'DSH_ENABLE_SSH'} = "YES";
# send the keys to the nodes
my $rc=xCAT::RemoteShellExp->remoteshellexp("s",$::CALLBACK,"/usr/bin/ssh",$enablenodes,$expecttimeout);
if ($rc != 0)
{
$rsp->{data}->[0] = "remoteshellexp failed sending keys to enablenodes.";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
}
}
if ($disablenodes) { # node on list to disable nodetonodessh
chop $disablenodes; # remove last comma
# send the keys to the nodes
my $rc=xCAT::RemoteShellExp->remoteshellexp("s",$::CALLBACK,"/usr/bin/ssh",$disablenodes,$expecttimeout);
if ($rc != 0)
{
$rsp->{data}->[0] = "remoteshellexp failed sending keys to disablenodes.";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
}
}
}
#--------------------------------------------------------------------------------
=head3 sendkeysTOzones
Transfers the ssh keys
for the root id on the nodes using the zone table.
If in a zone, then root ssh keys for the node will be taken from the zones ssh keys not ~/.ssh
zones are only supported on nodes that are not a service node.
Also for the call to RemoteShellExp, we must group the nodes that are in the same zone
Arguments:
Array of nodes
Timeout for expect call (optional)
Returns:
Env Variables: $DSH_FROM_USERID, $DSH_TO_USERID, $DSH_REMOTE_PASSWORD
the ssh keys are transferred from the $DSH_FROM_USERID to the $DSH_TO_USERID
on the node(s). The DSH_REMOTE_PASSWORD and the DSH_FROM_USERID
must be obtained by
the calling script or from the xdsh client
Globals:
$::XCATROOT , $::CALLBACK
Error:
0=good, 1=error
Example:
xCAT::TableUtils->sendkeysTOzones($ref_nodes,$expecttimeout);
Comments:
Does not setup known_hosts. Assumes automatically
setup by SSH ( ssh config option StrictHostKeyChecking no should
be set in the ssh config file).
=cut
#--------------------------------------------------------------------------------
sub sendkeysTOzones
{
my ($class, $ref_nodes,$expecttimeout) = @_;
my @nodes=$ref_nodes;
my $n_str = $nodes[0];
@nodes= split(",", $n_str);
my $rsp = ();
my $cmd;
my $roothome = xCAT::Utils->getHomeDir("root");
my $zonehash =xCAT::Zone->getzoneinfo($::CALLBACK,\@nodes);
foreach my $zonename (keys %$zonehash) {
# build list of nodes
my $zonenodelist="";
foreach my $node (@{$zonehash->{$zonename}->{nodes}}) {
$zonenodelist .= $node;
$zonenodelist .= ",";
}
$zonenodelist =~ s/,$//; # remove last comma
# if any nodes defined for the zone
if ($zonenodelist) {
# check to see if we enable passwordless ssh between the nodes
if (!(defined($zonehash->{$zonename}->{sshbetweennodes}))||
(($zonehash->{$zonename}->{sshbetweennodes} =~ /^yes$/i )
|| ($zonehash->{$zonename}->{sshbetweennodes} eq "1"))) {
$ENV{'DSH_ENABLE_SSH'} = "YES";
} else {
delete $ENV{'DSH_ENABLE_SSH'}; # do not enable passwordless ssh
}
# point to the ssh keys to send for this zone
my $keydir = $zonehash->{$zonename}->{sshkeydir} ;
# check to see if the id_rsa and id_rsa.pub key is in the directory
my $key="$keydir/id_rsa";
my $key2="$keydir/id_rsa.pub";
# Check to see if empty
if (!(-e $key)) {
my $rsp = {};
$rsp->{error}->[0] =
"The $key file does not exist for $zonename. Need to use chzone to regenerate the keys.";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK, 1);
return 1;
}
if (!(-e $key2)) {
my $rsp = {};
$rsp->{error}->[0] =
"The $key2 file does not exist for $zonename. Need to use chzone to regenerate the keys.";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK, 1);
return 1;
}
# now put copy.sh in the zone directory from ~/.ssh
my $rootkeydir="$roothome/.ssh";
if ($rootkeydir ne $keydir) { # the zone keydir is not the same as ~/.ssh.
$cmd="cp $rootkeydir/copy.sh $keydir";
xCAT::Utils->runcmd($cmd, 0);
if ($::RUNCMD_RC != 0)
{
my $rsp = {};
$rsp->{error}->[0] =
"Could not copy copy.sh to the zone key dir";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
return 1;
}
}
# Also create $keydir/tmp and put root's id_rsa.pub (in authorized_keys) for the transfer
$cmd="mkdir -p $keydir/tmp";
xCAT::Utils->runcmd($cmd, 0);
if ($::RUNCMD_RC != 0)
{
my $rsp = {};
$rsp->{error}->[0] =
"Could not mkdir the zone $keydir/tmp";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
return 1;
}
# create authorized_keys file
if (xCAT::Utils->isMN()) { # if on Management Node
$cmd = " cp $roothome/.ssh/id_rsa.pub $keydir/tmp/authorized_keys";
} else { # SN
$cmd = " cp $roothome/.ssh/authorized_keys $keydir/tmp/authorized_keys";
}
xCAT::Utils->runcmd($cmd, 0);
if ($::RUNCMD_RC != 0)
{
$rsp->{data}->[0] = "$cmd failed.\n";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
return (1);
}
else
{
chmod 0600, "$keydir/.ssh/tmp/authorized_keys";
}
# strip off .ssh
my ($newkeydir,$ssh) = (split(/\.ssh/, $keydir));
$ENV{'DSH_ZONE_SSHKEYS'} =$newkeydir ;
# send the keys to the nodes
my $rc=xCAT::RemoteShellExp->remoteshellexp("s",$::CALLBACK,"/usr/bin/ssh",
$zonenodelist,$expecttimeout);
if ($rc != 0)
{
$rsp = {};
$rsp->{data}->[0] = "remoteshellexp failed sending keys to $zonename.";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
}
} # end nodes in the zone
} # end for each zone
return (0);
}
#--------------------------------------------------------------------------------
=head3 cpSSHFiles
Builds authorized_keyfiles for root
@@ -1174,9 +947,7 @@ sub getAppStatus
my ($class, $nodes_ref, $application) = @_;
my @nodes = @$nodes_ref;
# FIXME: why autocommit matters for a read-only subroutine getNodesAttribs?
# but could not get the appstatus without the autocommit=0
my $nltab = xCAT::Table->new('nodelist', -autocommit => 0);
my $nltab = xCAT::Table->new('nodelist');
my $nodeappstat = $nltab->getNodesAttribs(\@nodes,['appstatus']);
my $ret_nodeappstat;
@@ -1823,8 +1594,8 @@ sub enableSSH
} else {
# if not a service node we need to check, before enabling
if (keys %$groups_hash) { # not empty
if ($groups_hash->{ALLGROUPS} == 1)
if (defined($groups_hash)) {
if ($groups_hash->{ALLGROUPS} == 1)
{
$enablessh=1;
}
@@ -1998,7 +1769,7 @@ sub updatenodegroups {
}
}
my ($ent) = $tabhd->getNodeAttribs($node, ['groups']);
my @list = ();
my @list = qw(all);
if (defined($ent) and $ent->{groups}) {
push @list, split(/,/,$ent->{groups});
}
@@ -2012,54 +1783,5 @@ sub updatenodegroups {
@list = keys %saw;
$tabhd->setNodeAttribs($node, {groups=>join(",",@list)});
}
#-----------------------------------------------------------------------------
=head3 rmnodegroups
remove groups from the group attribute for the specified node
Arguments:
node
tabhd: the handler of 'nodelist' table,
groups: the groups that need to be removed.
Can be an array or string.
Globals:
none
Error:
Example:
xCAT::TableUtils->rmnodegroups($node, $tab, $groups);
=cut
#-----------------------------------------------------------------------------
sub rmnodegroups {
my ($class, $node, $tabhd, $groups) = @_;
my ($ent) = $tabhd->getNodeAttribs($node, ['groups']);
my @definedgroups;
my @removegroups;
my @newgroups;
if (defined($ent) and $ent->{groups}) {
push @definedgroups, split(/,/,$ent->{groups});
}
if (ref($groups) eq 'ARRAY') {
push @removegroups, @$groups;
} else {
push @removegroups, split(/,/,$groups);
}
# take out any groups that match the input list of groups to remove
foreach my $dgrp (@definedgroups){
if (grep(/^$dgrp$/, @removegroups)) { # is the group to be removed
next;
} else { # keep this group
push @newgroups,$dgrp;
}
}
my %saw;
@saw{@newgroups} = ();
@newgroups = keys %saw;
$tabhd->setNodeAttribs($node, {groups=>join(",",@newgroups)});
}
1;
+13 -25
View File
@@ -18,9 +18,8 @@ use xCAT::Utils;
my %usage = (
"rnetboot" =>
"Usage: rnetboot <noderange> [-s net|hd] [-F] [-f] [-V|--verbose] [-m table.colum==expectedstatus] [-m table.colum==expectedstatus...] [-r <retrycount>] [-t <timeout>]
rnetboot [-h|--help|-v|--version]
zVM specific:
rnetboot <noderange> [ipl= address]",
rnetboot <noderange> [ipl= address]
rnetboot [-h|--help|-v|--version]",
"rpower" =>
"Usage: rpower <noderange> [--nodeps] [on|onstandby|off|suspend|reset|stat|state|boot] [-V|--verbose] [-m table.colum==expectedstatus][-m table.colum==expectedstatus...] [-r <retrycount>] [-t <timeout>]
rpower [-h|--help|-v|--version]
@@ -28,12 +27,10 @@ my %usage = (
rpower <noderange> [boot] [ -c <path to iso> ]
PPC (with IVM or HMC) specific:
rpower <noderange> [--nodeps] [of] [-V|--verbose]
CEC (with HMC) specific:
rpower <noderange> [on|off|reset|boot|onstandby]
LPAR(with HMC) specific:
rpower <noderange> [on|off|reset|stat|state|boot|of|sms|softoff]
PPC (HMC) specific:
rpower <noderange> [onstandby] [-V|--verbose]
CEC(using Direct FSP Management) specific:
rpower <noderange> [on|onstandby|off|stat|state|resetsp]
rpower <noderange> [on|onstandby|off|stat|state|lowpower|resetsp]
Frame(using Direct FSP Management) specific:
rpower <noderange> [stat|state|rackstandby|exit_rackstandby|resetsp]
LPAR(using Direct FSP Management) specific:
@@ -134,7 +131,7 @@ my %usage = (
textid=<*>|
frame=<*>|
ntp=<[ntp],[ip],[frequency],[v3]>
FSP/CEC (using ASM Interface) Specific:
FSP/BPA Common:
rspconfig <noderange> [autopower|iocap|decfg|memdecfg|procdecfg|time|date|spdump|sysdump|network|hostname]
rspconfig <noderange> autopower=<enable|disable>|
iocap=<enable|disable>|
@@ -210,7 +207,6 @@ my %usage = (
mkvm noderange [--full]
mkvm noderange [vmcpus=min/req/max] [vmmemory=min/req/max]
[vmphyslots=drc_index1,drc_index2...] [vmothersetting=hugepage:N,bsr:N]
[vmnics=vlan1,vlan2] [vmstorage=<N|viosnode:slotid>] [--vios]
For KVM
mkvm noderange -m|--master mastername -s|--size disksize -f|--force
For zVM
@@ -225,7 +221,7 @@ my %usage = (
lsvm <noderange> [-a|--all]
PPC (using Direct FSP Management) specific:
lsvm <noderange> [-l|--long] --p775
lsvm <noderange>
lsvm <noderange>
zVM specific:
lsvm noderange
lsvm noderange --getnetworknames
@@ -244,11 +240,7 @@ my %usage = (
chvm <noderange> --p775 -i <id> [-m <memory_interleaving>] -r <partition_rule>
chvm <noderange> [lparname=<*|name>]
chvm <noderange> [vmcpus=min/req/max] [vmmemory=min/req/max]
[vmothersetting=hugepage:N,bsr:N]
[add_physlots=drc_index1,drc_index2...]
[add_vmnics=vlan1,vlan2] [add_vmstorage=<N|viosnode:slotid>] [--vios]
chvm <noderange> [del_physlots=drc_index1,drc_index2...]
chvm <noderange> [del_vadapter=slotid]
[vmphyslots=drc_index1,drc_index2...] [vmothersetting=hugepage:N,bsr:N]
VMware specific:
chvm <noderange> [-a size][-d disk][-p disk][--resize disk=size][--cpus count][--mem memory]
zVM specific:
@@ -285,7 +277,7 @@ my %usage = (
"lsslp" =>
"Usage: lsslp [-h|--help|-v|--version]
lsslp [<noderange>][-V|--verbose][-i ip[,ip..]][-w][-r|-x|-z][-n][-I][-s FRAME|CEC|MM|IVM|RSA|HMC|CMM|IMM2|FSP]
[-u] [--range IPranges][-t tries][--vpdtable][-C counts][-T timeout]",
[-t tries][--vpdtable][-C counts][-T timeout]",
"rflash" =>
"Usage:
rflash [ -h|--help|-v|--version]
@@ -333,16 +325,12 @@ my %usage = (
renergy [-v | --version]
Power 6 server specific :
renergy noderange [-V] { all | { [savingstatus] [cappingstatus] [cappingmaxmin] [cappingvalue] [cappingsoftmin] [averageAC] [averageDC] [ambienttemp] [exhausttemp] [CPUspeed] } }
renergy noderange [-V] { {savingstatus}={on | off} | {cappingstatus}={on | off} | {cappingwatt}=watt | {cappingperc}=percentage }
renergy noderange [-V] { all | { [savingstatus] [cappingstatus] [cappingmaxmin] [cappingvalue] [cappingsoftmin] [averageAC] [averageDC] [ambienttemp] [exhausttemp] [CPUspeed] } }
renergy noderange [-V] { {savingstatus}={on | off} | {cappingstatus}={on | off} | {cappingwatt}=watt | {cappingperc}=percentage }
Power 7 server specific :
renergy noderange [-V] { all | { [savingstatus] [dsavingstatus] [cappingstatus] [cappingmaxmin] [cappingvalue] [cappingsoftmin] [averageAC] [averageDC] [ambienttemp] [exhausttemp] [CPUspeed] [syssbpower] [sysIPLtime] [fsavingstatus] [ffoMin] [ffoVmin] [ffoTurbo] [ffoNorm] [ffovalue] } }
renergy noderange [-V] { {savingstatus}={on | off} | {dsavingstatus}={on-norm | on-maxp | off} | {fsavingstatus}={on | off} | {ffovalue}=MHZ | {cappingstatus}={on | off} | {cappingwatt}=watt | {cappingperc}=percentage }
Power 8 server specific :
renergy noderange [-V] { all | [savingstatus] [dsavingstatus] [averageAC] [averageAChistory] [averageDC] [averageDChistory] [ambienttemp] [ambienttemphistory] [exhausttemp] [exhausttemphistory] [fanspeed] [fanspeedhistory] [CPUspeed] [CPUspeedhistory] [syssbpower] [sysIPLtime] [fsavingstatus] [ffoMin] [ffoVmin] [ffoTurbo] [ffoNorm] [ffovalue]}
renergy noderange [-V] { savingstatus={on | off} | dsavingstatus={on-norm | on-maxp | off} | fsavingstatus={on | off} | ffovalue=MHZ }
renergy noderange [-V] { all | { [savingstatus] [dsavingstatus] [cappingstatus] [cappingmaxmin] [cappingvalue] [cappingsoftmin] [averageAC] [averageDC] [ambienttemp] [exhausttemp] [CPUspeed] [syssbpower] [sysIPLtime] [fsavingstatus] [ffoMin] [ffoVmin] [ffoTurbo] [ffoNorm] [ffovalue] } }
renergy noderange [-V] { {savingstatus}={on | off} | {dsavingstatus}={on-norm | on-maxp | off} | {fsavingstatus}={on | off} | {ffovalue}=MHZ | {cappingstatus}={on | off} | {cappingwatt}=watt | {cappingperc}=percentage }
BladeCenter specific :
For Management Modules:
Executable → Regular
+23 -1146
View File
File diff suppressed because it is too large Load Diff
-452
View File
@@ -1,452 +0,0 @@
#!/usr/bin/env perl
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
package xCAT::Zone;
BEGIN
{
$::XCATROOT = $ENV{'XCATROOT'} ? $ENV{'XCATROOT'} : '/opt/xcat';
}
# if AIX - make sure we include perl 5.8.2 in INC path.
# Needed to find perl dependencies shipped in deps tarball.
if ($^O =~ /^aix/i) {
unshift(@INC, qw(/usr/opt/perl5/lib/5.8.2/aix-thread-multi /usr/opt/perl5/lib/5.8.2 /usr/opt/perl5/lib/site_perl/5.8.2/aix-thread-multi /usr/opt/perl5/lib/site_perl/5.8.2));
}
use lib "$::XCATROOT/lib/perl";
# do not put a use or require for xCAT::Table here. Add to each new routine
# needing it to avoid reprocessing of user tables ( ExtTab.pm) for each command call
use POSIX qw(ceil);
use File::Path;
use Socket;
use strict;
use Symbol;
use warnings "all";
#--------------------------------------------------------------------------------
=head1 xCAT::Zone
=head2 Package Description
This program module file, is a set of Zone utilities used by xCAT *zone commands.
=cut
#--------------------------------------------------------------------------------
=head3 genSSHRootKeys
Arguments:
callback for error messages
directory in which to put the ssh RSA keys
zonename
rsa private key to use for generation ( optional)
Returns:
Error: 1 - key generation failure.
Example:
$rc =xCAT::Zone->genSSHRootKeys($callback,$keydir,$rsakey);
=cut
#--------------------------------------------------------------------------------
sub genSSHRootKeys
{
my ($class, $callback, $keydir,$zonename,$rsakey) = @_;
#
# create /keydir if needed
#
if (!-d $keydir)
{
my $cmd = "/bin/mkdir -m 700 -p $keydir";
my $output = xCAT::Utils->runcmd("$cmd", 0);
if ($::RUNCMD_RC != 0)
{
my $rsp = {};
$rsp->{error}->[0] =
"Could not create $keydir directory";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
}
#need to gen a new rsa key for root for the zone
my $pubfile = "$keydir/id_rsa.pub";
my $pvtfile = "$keydir/id_rsa";
# if exists, remove the old files
if (-r $pubfile)
{
my $cmd = "/bin/rm $keydir/id_rsa*";
my $output = xCAT::Utils->runcmd("$cmd", 0);
if ($::RUNCMD_RC != 0)
{
my $rsp = {};
$rsp->{error}->[0] = "Could not remove id_rsa files from $keydir directory.";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
}
# gen new RSA keys
my $cmd;
my $output;
# if private key was input use it
if (defined ($rsakey)) {
$cmd="/usr/bin/ssh-keygen -y -f $rsakey > $pubfile";
$output = xCAT::Utils->runcmd("$cmd", 0);
if ($::RUNCMD_RC != 0)
{
my $rsp = {};
$rsp->{error}->[0] = "Could not generate $pubfile from $rsakey";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
# now copy the private key into the directory
$cmd="cp $rsakey $keydir";
$output = xCAT::Utils->runcmd("$cmd", 0);
if ($::RUNCMD_RC != 0)
{
my $rsp = {};
$rsp->{error}->[0] = "Could not run $cmd";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
} else { # generate all new keys
$cmd = "/usr/bin/ssh-keygen -t rsa -q -b 2048 -N '' -f $pvtfile";
$output = xCAT::Utils->runcmd("$cmd", 0);
if ($::RUNCMD_RC != 0)
{
my $rsp = {};
$rsp->{error}->[0] = "Could not generate $pubfile";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
}
#make sure permissions are correct
$cmd = "chmod 644 $pubfile;chown root $pubfile";
$output = xCAT::Utils->runcmd("$cmd", 0);
if ($::RUNCMD_RC != 0)
{
my $rsp = {};
$rsp->{error}->[0] = "Could set permission and owner on $pubfile";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
}
#--------------------------------------------------------------------------------
=head3 getdefaultzone
Arguments:
None
Returns:
Name of the current default zone from the zone table
Example:
my $defaultzone =xCAT::Zone->getdefaultzone($callback);
=cut
#--------------------------------------------------------------------------------
sub getdefaultzone
{
my ($class, $callback) = @_;
my $defaultzone;
# read all the zone table and find the defaultzone, if it exists
my $tab = xCAT::Table->new("zone");
if ($tab){
my @zones = $tab->getAllAttribs('zonename','defaultzone');
foreach my $zone (@zones) {
# Look for the defaultzone=yes/1 entry
if ((defined($zone->{defaultzone})) &&
(($zone->{defaultzone} =~ /^yes$/i )
|| ($zone->{defaultzone} eq "1"))) {
$defaultzone = $zone->{zonename};
}
$tab->close();
}
} else {
my $rsp = {};
$rsp->{error}->[0] =
"Error reading the zone table. ";
xCAT::MsgUtils->message("E", $rsp, $callback);
}
return $defaultzone;
}
#--------------------------------------------------------------------------------
=head3 iszonedefined
Arguments:
zonename
Returns:
1 if the zone is already in the zone table.
Example:
xCAT::Zone->iszonedefined($zonename);
=cut
#--------------------------------------------------------------------------------
sub iszonedefined
{
my ($class,$zonename) = @_;
# checks the zone table to see if input zonename already in the table
my $tab = xCAT::Table->new("zone");
$tab->close();
my $zonehash = $tab->getAttribs({zonename => $zonename},'sshkeydir');
if ( keys %$zonehash) {
return 1;
}else{
return 0;
}
}
#--------------------------------------------------------------------------------
=head3 getzonekeydir
Arguments:
zonename
Returns:
path to the root ssh keys for the zone /etc/xcat/sshkeys/<zonename>/.ssh
1 - zone not defined
Example:
xCAT::Zone->getzonekeydir($zonename);
=cut
#--------------------------------------------------------------------------------
sub getzonekeydir
{
my ($class,$zonename) = @_;
my $tab = xCAT::Table->new("zone");
$tab->close();
my $zonehash = $tab->getAttribs({zonename => $zonename},'sshkeydir');
if ( keys %$zonehash) {
my $zonesshkeydir=$zonehash->{sshkeydir};
return $zonesshkeydir;
}else{
return 1; # this is a bad error zone not defined
}
}
#--------------------------------------------------------------------------------
=head3 getmyzonename
Arguments:
$node -one nodename
Returns:
$zonename
Example:
my $zonename=xCAT::Zone->getmyzonename($node);
=cut
#--------------------------------------------------------------------------------
sub getmyzonename
{
my ($class,$node,$callback) = @_;
my @node;
push @node,$node;
my $zonename;
my $nodelisttab = xCAT::Table->new("nodelist");
my $nodehash = $nodelisttab->getNodesAttribs(\@node, ['zonename']);
$nodelisttab->close();
if ( defined ($nodehash->{$node}->[0]->{zonename})) { # it was defined in the nodelist table
$zonename=$nodehash->{$node}->[0]->{zonename};
} else { # get the default zone
$zonename =xCAT::Zone->getdefaultzone($callback);
}
return $zonename;
}
#--------------------------------------------------------------------------------
=head3 enableSSHbetweennodes
Arguments:
zonename
Returns:
1 if the sshbetweennodes attribute is yes/1 or undefined
0 if the sshbetweennodes attribute is no/0
Example:
xCAT::Zone->enableSSHbetweennodes($zonename);
=cut
#--------------------------------------------------------------------------------
sub enableSSHbetweennodes
{
my ($class,$node,$callback) = @_;
# finds the zone of the node
my $enablessh = 1; # default
my $zonename=xCAT::Zone->getmyzonename($node);
# reads the zone table
my $tab = xCAT::Table->new("zone");
$tab->close();
# read both keys, want to know zone is in the zone table. If sshkeydir is not there
# it is either missing or invalid anyway
my $zonehash = $tab->getAttribs({zonename => $zonename},'sshbetweennodes','sshkeydir');
if (! ( keys %$zonehash)) {
my $rsp = {};
$rsp->{error}->[0] =
"$node has a zonename: $zonename that is not define in the zone table. Remove the zonename from the node, or create the zone using mkzone. The generated mypostscript may not reflect the correct setting for ENABLESSHBETWEENNODES";
xCAT::MsgUtils->message("E", $rsp, $callback);
return $enablessh;
}
my $sshbetweennodes=$zonehash->{sshbetweennodes};
if (defined ($sshbetweennodes)) {
if (($sshbetweennodes =~ /^no$/i) || ($sshbetweennodes eq "0")) {
$enablessh = 0;
} else {
$enablessh = 1;
}
} else { # not defined default yes
$enablessh = 1 ; # default
}
return $enablessh;
}
#--------------------------------------------------------------------------------
=head3 usingzones
Arguments:
none
Returns:
1 if the zone table is not empty
0 if empty
Example:
xCAT::Zone->usingzones;
=cut
#--------------------------------------------------------------------------------
sub usingzones
{
my ($class) = @_;
# reads the zonetable
my $tab = xCAT::Table->new("zone");
my @zone = $tab->getAllAttribs('zonename');
$tab->close();
if (@zone) {
return 1;
}else{
return 0;
}
}
#--------------------------------------------------------------------------------
=head3 getzoneinfo
Arguments:
callback
An array of nodes
Returns:
Hash array by zonename point to the nodes in that zonename and sshkeydir
<zonename1> -> {nodelist} -> array of nodes in the zone
-> {sshkeydir} -> directory containing ssh RSA keys
-> {defaultzone} -> is it the default zone
Example:
my %zonehash =xCAT::Zone->getzoneinfo($callback,@nodearray);
Rules:
If the nodes nodelist.zonename attribute is a zonename, it is assigned to that zone
If the nodes nodelist.zonename attribute is undefined:
If there is a defaultzone in the zone table, the node is assigned to that zone
If there is no defaultzone in the zone table, the node is assigned to the ~.ssh keydir
$::GETZONEINFO_RC
0 = good return
1 = error occured
=cut
#--------------------------------------------------------------------------------
sub getzoneinfo
{
my ($class, $callback,$nodes) = @_;
$::GETZONEINFO_RC=0;
my $zonehash;
my $defaultzone;
# read all the zone table
my $zonetab = xCAT::Table->new("zone");
my @zones;
if ($zonetab){
@zones = $zonetab->getAllAttribs('zonename','sshkeydir','sshbetweennodes','defaultzone');
$zonetab->close();
if (@zones) {
foreach my $zone (@zones) {
my $zonename=$zone->{zonename};
$zonehash->{$zonename}->{sshkeydir}= $zone->{sshkeydir};
$zonehash->{$zonename}->{defaultzone}= $zone->{defaultzone};
$zonehash->{$zonename}->{sshbetweennodes}= $zone->{sshbetweennodes};
# find the defaultzone
if ((defined($zone->{defaultzone})) &&
(($zone->{defaultzone} =~ /^yes$/i )
|| ($zone->{defaultzone} eq "1"))) {
$defaultzone = $zone->{zonename};
}
}
}
} else {
my $rsp = {};
$rsp->{error}->[0] =
"Error reading the zone table. ";
xCAT::MsgUtils->message("E", $rsp, $callback);
$::GETZONEINFO_RC =1;
return;
}
my $nodelisttab = xCAT::Table->new("nodelist");
my $nodehash = $nodelisttab->getNodesAttribs(\@$nodes, ['zonename']);
# for each of the nodes, look up it's zone name and assign to the zonehash
# If the nodes nodelist.zonename attribute is a zonename, it is assigned to that zone
# If the nodes nodelist.zonename attribute is undefined:
# If there is a defaultzone in the zone table, the node is assigned to that zone
# If there is no defaultzone error out
foreach my $node (@$nodes) {
my $zonename;
$zonename=$nodehash->{$node}->[0]->{zonename};
if (defined($zonename)) { # zonename explicitly defined in nodelist.zonename
# check to see if defined in the zone table
unless ( xCAT::Zone->iszonedefined($zonename)) {
my $rsp = {};
$rsp->{error}->[0] =
"$node has a zonename: $zonename that is not define in the zone table. Remove the zonename from the node, or create the zone using mkzone.";
xCAT::MsgUtils->message("E", $rsp, $callback);
$::GETZONEINFO_RC =1;
return;
}
push @{$zonehash->{$zonename}->{nodes}},$node;
} else { # no explict zonename
if (defined ($defaultzone)) { # there is a default zone in the zone table, use it
push @{$zonehash->{$defaultzone}->{nodes}},$node;
} else { # if no default, this is an error
my $rsp = {};
$rsp->{error}->[0] =
"There is no default zone defined in the zone table. There must be exactly one default zone. ";
xCAT::MsgUtils->message("E", $rsp, $callback);
$::GETZONEINFO_RC =1;
return;
}
}
}
return $zonehash;
}
#--------------------------------------------------------------------------------
=head3 getnodesinzone
Arguments:
callback
zonename
Returns:
Array of nodes
Example:
my @nodes =xCAT::Zone->getnodesinzone($callback,$zonename);
=cut
#--------------------------------------------------------------------------------
sub getnodesinzone
{
my ($class, $callback,$zonename) = @_;
my @nodes;
my $nodelisttab = xCAT::Table->new("nodelist");
my @nodelist=$nodelisttab->getAllAttribs('node','zonename');
# build the array of nodes in this zone
foreach my $nodename (@nodelist) {
if ((defined($nodename->{'zonename'})) && ($nodename->{'zonename'} eq $zonename)) {
push @nodes,$nodename->{'node'};
}
}
return @nodes;
}
1;
+6 -22
View File
@@ -14,11 +14,9 @@ require Exporter;
%distnames = (
"1310229985.226287" => "centos6",
"1323560292.885204" => "centos6.2",
"1341569670.539525" => "centos6.3",#x86
"1362445555.957609" => "centos6.4",#x86_64
"1385726732.061157" => "centos6.5",#x86_64
"1404489053.504589" => "centos7.0",
"1323560292.885204" => "centos6.2",
"1341569670.539525" => "centos6.3",#x86
"1362445555.957609" => "centos6.4",#x86_64
"1176234647.982657" => "centos5",
"1156364963.862322" => "centos4.4",
"1178480581.024704" => "centos4.5",
@@ -30,7 +28,6 @@ require Exporter;
"1272326751.405938" => "centos5.5",
"1330913492.861127" => "centos5.8",#x86_64
"1357930415.252042" => "centos5.9",#x86_64
"1381776971.473332" => "centos5.10",#x86_64
"1195488871.805863" => "centos4.6",
"1195487524.127458" => "centos4.6",
"1301444731.448392" => "centos5.6",
@@ -52,8 +49,6 @@ require Exporter;
"1328205744.315196" => "rhels5.8", #x86_64
"1354216429.587870" => "rhels5.9", #x86_64
"1354214009.518521" => "rhels5.9", #ppc64
"1378846702.129847" => "rhels5.10", #x86_64
"1378845049.643372" => "rhels5.10", #ppc64
"1285193176.460470" => "rhels6", #x86_64
"1285192093.430930" => "rhels6", #ppc64
"1305068199.328169" => "rhels6.1", #x86_64
@@ -65,18 +60,11 @@ require Exporter;
"1339638991.532890" => "rhels6.3", #i386
"1359576752.435900" => "rhels6.4", #x86_64
"1359576196.686790" => "rhels6.4", #ppc64
"1384196515.415715" => "rhels6.5", #x86_64
"1384198011.520581" => "rhels6.5", #ppc64
"1411733344.627228" => "rhels6.6", #x86_64
"1411733344.616389" => "rhels6.6", #ppc64
"1285193176.593806" => "rhelhpc6", #x86_64
"1305067719.718814" => "rhelhpc6.1",#x86_64
"1321545261.599847" => "rhelhpc6.2",#x86_64
"1339640148.070971" => "rhelhpc6.3",#x86_64
"1359576195.413831" => "rhelhpc6.4",#x86_64, RHEL ComputeNode
"1384196516.465862" => "rhelhpc6.5",#x86_64, RHEL ComputeNode
"1411733344.599861" => "rhelhpc6.6",#x86_64, RHEL ComputeNode
"1399449226.140088" => "rhelhpc7.0",#x86_64, RHEL ComputeNode
"1194015916.783841" => "fedora8",
"1194015385.299901" => "fedora8",
"1210112435.291709" => "fedora9",
@@ -90,17 +78,13 @@ require Exporter;
"1305315870.828212" => "fedora15", #x86_64 DVD ISO
"1372355769.065812" => "fedora19", #x86_64 DVD ISO
"1372402928.663653" => "fedora19", #ppc64 DVD ISO
"1386856788.124593" => "fedora20", #x86_64 DVD ISO
"1194512200.047708" => "rhas4.6",
"1194512327.501046" => "rhas4.6",
"1241464993.830723" => "rhas4.8", #x86-64
"1273608367.051780" => "SL5.5", #x86_64 DVD ISO
"1299104542.844706" => "SL6", #x86_64 DVD ISO
"1390839789.062069" => "SL6.5", #x86_64 DVD ISO Install
"1394111947.452332" => "pkvm2.1", # ppc64, PowerKVM
"1413749127.352649" => "pkvm2.1.1", # ppc64, PowerKVM
"1273608367.051780" => "SL5.5", #x86_64 DVD ISO
"1299104542.844706" => "SL6", #x86_64 DVD ISO
);
my %numdiscs = (
"1156364963.862322" => 4,
File diff suppressed because it is too large Load Diff
+29 -13
View File
@@ -611,23 +611,39 @@ sub punch2Reader {
# Punch to reader
# VMUR located in different directories on RHEL and SLES
my $out;
my $vmur;
if ( $os =~ m/sles10/i ) {
$out = `ssh -o ConnectTimeout=5 $user\@$hcp "$sudo /sbin/vmur punch $options -u $userId -r $srcFile -N $tgtFile"`;
} elsif ( $os =~ m/rhel/i ) {
$out = `ssh -o ConnectTimeout=5 $user\@$hcp "$sudo /usr/sbin/vmur punch $options -u $userId -r $srcFile -N $tgtFile"`;
$vmur = "/sbin/vmur";
} else {
$out = `ssh -o ConnectTimeout=5 $user\@$hcp "$sudo /usr/sbin/vmur punch $options -u $userId -r $srcFile -N $tgtFile"`;
$vmur = "/usr/sbin/vmur";
}
my $out;
my $done = 0;
until ( $done ) {
$out = `ssh -o ConnectTimeout=5 $user\@$hcp "$sudo $vmur punch $options -u $userId -r $srcFile -N $tgtFile" 2>&1`;
my $rc = $? >> 8;
if ( $rc == 255 ) {
$out = "(Error) Unable to communicate with the zHCP system: $hcp";
$done = 1;
} elsif ( $out =~ m/A concurrent instance of vmur is already active/i ) {
# Recoverable error: retry the command after a delay
xCAT::zvmUtils->printSyslog( "punch2Reader() Punch in use on $hcp, retrying in 15 seconds" );
sleep( 15 );
} else {
# Punch appears successful -- Look for the completion string
my $searchStr = "created and transferred";
if ( !( $out =~ m/$searchStr/i ) ) {
chomp( $out );
$out = "Failed, punch info: '$out'\n";
xCAT::zvmUtils->printSyslog( "punch2Reader() Failed punching $srcFile to $userId from $hcp, info: '$out'" );
} else {
$out = "Done\n";
}
$done = 1;
}
}
# If punch is successful -- Look for this string
my $searchStr = "created and transferred";
if ( !( $out =~ m/$searchStr/i ) ) {
$out = "Failed\n";
} else {
$out = "Done\n";
}
return $out;
}
+214 -132
View File
@@ -289,7 +289,7 @@ sub printLn {
# Print string
my $rsp;
my $type = "I";
if ($str =~ m/error/i) { # Set to print error if the string contains error
if ($str =~ m/(\(error\)|\sfailed)/i) { # Set to print error if the string contains error
$type = "E";
}
@@ -1246,7 +1246,7 @@ sub getArch {
}
# Get host using VMCP
my $arch = `ssh $user\@$node "$sudo uname -p"`;
my $arch = `ssh $user\@$node "$sudo uname -m"`;
return ( xCAT::zvmUtils->trimStr($arch) );
}
@@ -2308,19 +2308,20 @@ sub getUsedFcpDevices {
Arguments : Sudoer user name
Sudo keyword
zHCP hostname
Install root directory
Local directory to remotely mount
Mount access ('ro' for read only, 'rw' for read write)
Directory as known to zHCP (out)
Returns : 0 - Mounted, or zHCP and MN are on the same system
1 - Mount failed
Example : establishMount( $callback, $::SUDOER, $::SUDO, $hcp, "$installRoot/$provMethod", "ro", \$remoteDeployDir );
Example : establishMount( $callback, $::SUDOER, $::SUDO, $hcp, $installRoot, $provMethod, "ro", \$remoteDeployDir );
=cut
#-------------------------------------------------------
sub establishMount {
# Get inputs
my ($class, $callback, $sudoer, $sudo, $hcp, $localDir, $access, $mountedPt) = @_;
my ($class, $callback, $sudoer, $sudo, $hcp, $installRoot, $localDir, $access, $mountedPt) = @_;
my $out;
# If the target system is not on this system then establish the NFS mount point.
@@ -2338,7 +2339,7 @@ sub establishMount {
if ($masterIp eq $hcpIP) {
# xCAT MN and zHCP are on the same box and will use the same directory without the need for an NFS mount.
$$mountedPt = $localDir;
$$mountedPt = "$installRoot/$localDir";
} else {
# Determine the hostname for this management node
my $masterHostname = Sys::Hostname::hostname();
@@ -2347,15 +2348,23 @@ sub establishMount {
$masterHostname = $masterIp;
}
$$mountedPt = "/mnt/$masterHostname$installRoot/$localDir";
# If the mount point already exists then return because we are done.
my $rc = `ssh $sudoer\@$hcp "$sudo mount | grep $$mountedPt > /dev/null; echo \\\$?"`;
if ($rc == 0) {
return 0;
}
xCAT::zvmUtils->printSyslog( "establishMount() Preparing the NFS mount point on zHCP ($hcpIP) to xCAT MN $masterHostname($masterIp) for $localDir" );
# Prepare the staging mount point on zHCP, if they need to be established
$$mountedPt = "/mnt/$masterHostname$localDir";
my $rc = `ssh $sudoer\@$hcp "$sudo mkdir -p $$mountedPt && mount -t nfs -o $access $masterIp:$localDir $$mountedPt; echo \\\$?"`;
$rc = `ssh $sudoer\@$hcp "$sudo mkdir -p $$mountedPt && mount -t nfs -o $access $masterIp:/$localDir $$mountedPt; echo \\\$?"`;
# Return code = 0 (mount succeeded) or 32 (mount already exists)
if ($rc != '0' && $rc != '32') {
# Return code = 0 (mount succeeded)
if ($rc != '0') {
xCAT::zvmUtils->printLn( $callback, "$hcp: (Error) Unable to establish zHCP mount point: $$mountedPt" );
xCAT::zvmUtils->printSyslog( "establishMount() Unable to establish zHCP mount point: $$mountedPt, rc: $rc" );
return 1;
}
}
@@ -2367,9 +2376,12 @@ sub establishMount {
=head3 getFreeRepoSpace
Description : Get the free space of image repository under /install
Description : Get the free space of image repository under /install.
Arguments : Node
Returns : The available space for /install
Returns : The available space for /install (e.g. "2.1G ").
The value is returned as a perl string (e.g. "0 ") to
avoid perl returning null instead of "0" in the case
of no space available.
Example : my $free = getFreeRepoSpace($callback, $node);
=cut
@@ -2393,9 +2405,12 @@ sub getFreeRepoSpace {
if ($master eq $ip) {
# If the master IP and node IP match, then it is the management node
my $out = `$sudo /bin/df -h /install | sed 1d`;
# causing problems on other platforms $out =~ s/\h+/ /g;$out =~ s/\h+/ /g;
$out =~ s/\h+/ /g;
my @results = split(' ', $out);
return ($results[3]);
if ( $results[3] eq "0" ) {
$results[3] = "0M";
}
return $results[3];
}
return;
@@ -2475,12 +2490,12 @@ sub findAndUpdatezFcpPool {
return \%results;
}
# Check WWPN and LUN syntax
if ( $wwpn && ($wwpn =~ /[^0-9a-f;"]/i) ) {
xCAT::zvmUtils->printLn( $callback, "$header: (Error) Invalid world wide portname $wwpn." );
# Owner must be specified if status is used
if ($status =~ m/used/i && !$owner) {
xCAT::zvmUtils->printLn( $callback, "$header: (Error) Owner must be specified if status is used." );
return \%results;
} if ( $lun && ($lun =~ /[^0-9a-f]/i) ) {
xCAT::zvmUtils->printLn( $callback, "$header: (Error) Invalid logical unit number $lun." );
} elsif ($status =~ m/free/i && $owner) {
xCAT::zvmUtils->printLn( $callback, "$header: (Error) Owner must not be specified if status is free." );
return \%results;
}
@@ -2509,6 +2524,15 @@ sub findAndUpdatezFcpPool {
# Make sure WWPN and LUN do not have 0x prefix
$wwpn = xCAT::zvmUtils->replaceStr($wwpn, "0x", "");
$lun = xCAT::zvmUtils->replaceStr($lun, "0x", "");
# Check WWPN and LUN syntax
if ( $wwpn && ($wwpn =~ /[^0-9a-f;"]/i) ) {
xCAT::zvmUtils->printLn( $callback, "$header: (Error) Invalid world wide portname $wwpn." );
return \%results;
} if ( $lun && ($lun =~ /[^0-9a-f]/i) ) {
xCAT::zvmUtils->printLn( $callback, "$header: (Error) Invalid logical unit number $lun." );
return \%results;
}
}
# Find disk pool (create one if non-existent)
@@ -2569,15 +2593,19 @@ sub findAndUpdatezFcpPool {
}
# Do not continue if no devices can be found
if (!$wwpn && !$lun) {
if (!$wwpn || !$lun) {
xCAT::zvmUtils->printLn($callback, "$header: (Error) A suitable device of $size" . "M or larger could not be found");
return \%results;
}
} else {
# Find given WWPN and LUN. Do not continue if device is used
# Find given WWPN and LUN. Do not continue if device is used
my $select = `ssh $user\@$hcp "$sudo cat $zfcpDir/$pool.conf" | grep -i "$wwpn,$lun"`;
chomp($select);
if (!$select) {
xCAT::zvmUtils->printLn($callback, "$header: (Error) zFCP device 0x$wwpn/0x$lun could not be found in zFCP pool $pool");
return \%results;
}
@info = split(',', $select);
if ($size) {
@@ -2585,13 +2613,11 @@ sub findAndUpdatezFcpPool {
# Convert to MegaBytes
$info[3] =~ s/\D//g;
$info[3] = int($info[3]) * 1024
} elsif ($info[3] =~ m/M/i) {
} else {
# Do nothing
$info[3] =~ s/\D//g;
} else {
next;
}
# Do not continue if specified device does not have enough capacity
if ($info[3] < $size) {
xCAT::zvmUtils->printLn($callback, "$header: (Error) FCP device $wwpn/$lun is not large enough");
@@ -2602,7 +2628,7 @@ sub findAndUpdatezFcpPool {
# Find range of the specified disk
$range = $info[4];
}
# If there are multiple paths, take the 1st one
# Handle multi-pathing in postscript because autoyast/kickstart does not support it.
my $origWwpn = $wwpn;
@@ -2612,117 +2638,23 @@ sub findAndUpdatezFcpPool {
}
xCAT::zvmUtils->printLn($callback, "$header: Found FCP device 0x$wwpn/0x$lun");
# Find a free FCP device based on the given range
if ($fcpDevice =~ m/^auto/i) {
my @ranges;
my $min;
my $max;
my $found = 0;
if ($range =~ m/;/i) {
@ranges = split(';', $range);
} else {
push(@ranges, $range);
}
if (!$found) {
# If the node has an eligible FCP device, use it
my @deviceList = xCAT::zvmUtils->getDedicates($callback, $user, $owner);
foreach (@deviceList) {
# Check if this devide is eligible (among the range specified for disk $lun)
@info = split(' ', $_);
my $candidate = $info[2];
foreach (@ranges) {
($min, $max) = split('-', $_);
if (hex($candidate) >= hex($min) && hex($candidate) <= hex($max)) {
$found = 1;
$fcpDevice = uc($candidate);
last;
}
}
if ($found) {
xCAT::zvmUtils->printLn($callback, "$header: Found eligible FCP channel $fcpDevice");
last;
}
}
}
if (!$found) {
# If the node has no eligible FCP device, find a free one for it.
my %usedDevices = xCAT::zvmUtils->getUsedFcpDevices($user, $hcp);
my $hcpUserId = xCAT::zvmCPUtils->getUserId($user, $hcp);
$hcpUserId =~ tr/a-z/A-Z/;
# Find a free FCP channel
$out = `ssh $user\@$hcp "$sudo $dir/smcli System_WWPN_Query -T $hcpUserId" | egrep -i "FCP device number|Status"`;
my @devices = split( "\n", $out );
for (my $i = 0; $i < @devices; $i++) {
# Extract the device number and status
$fcpDevice = $devices[$i];
$fcpDevice =~ s/^FCP device number:(.*)/$1/;
$fcpDevice =~ s/^\s+//;
$fcpDevice =~ s/\s+$//;
$i++;
my $fcpStatus = $devices[$i];
$fcpStatus =~ s/^Status:(.*)/$1/;
$fcpStatus =~ s/^\s+//;
$fcpStatus =~ s/\s+$//;
# Only look at free FCP devices
if ($fcpStatus =~ m/free/i) {
# If the device number is within the specified range, exit out of loop
# Range: 3B00-3C00;4B00-4C00;5E12-5E12
foreach (@ranges) {
($min, $max) = split('-', $_);
if (hex($fcpDevice) >= hex($min) && hex($fcpDevice) <= hex($max)) {
$fcpDevice = uc($fcpDevice);
# Used found FCP channel if not in use or allocated
if (!$usedDevices{$fcpDevice}) {
$found = 1;
last;
}
}
}
}
# Break out of loop if FCP channel is found
if ($found) {
xCAT::zvmUtils->printLn($callback, "$header: Found FCP channel within acceptable range $fcpDevice");
last;
}
}
}
# Do not continue if no FCP channel is found
if (!$found) {
xCAT::zvmUtils->printLn($callback, "$header: (Error) A suitable FCP channel could not be found");
if ( ($status =~ m/used/i) && ($fcpDevice =~ /^auto/i) ) {
# select an eligible FCP device
$fcpDevice = xCAT::zvmUtils->selectFcpDevice($callback, $header, $user, $hcp, $fcpDevice, $range, $owner);
if (!$fcpDevice) {
return \%results;
}
}
# If there are multiple devices (multipathing), take the 1st one
if ($fcpDevice) {
if ($fcpDevice =~ m/;/i) {
@info = split(';', $fcpDevice);
$fcpDevice = xCAT::zvmUtils->trimStr($info[0]);
}
# Make sure channel has a length of 4
while (length($fcpDevice) < 4) {
$fcpDevice = "0" . $fcpDevice;
}
} elsif ($status =~ m/free/i) {
# Owner and FCP channel make no sense when status is free
$fcpDevice = "";
$owner = "";
}
# Mark WWPN and LUN as used, free, or reserved and set the owner/channel appropriately
# This config file keeps track of the owner of each device, which is useful in nodeset
$size = $size . "M";
my $select = `ssh $user\@$hcp "$sudo cat $zfcpDir/$pool.conf" | grep -i "$lun" | grep -i "$wwpn"`;
my $select = `ssh $user\@$hcp "$sudo cat $zfcpDir/$pool.conf" | grep -i "$lun"`;
chomp($select);
if ($select) {
@info = split(',', $select);
@@ -2759,6 +2691,156 @@ sub findAndUpdatezFcpPool {
#-------------------------------------------------------
=head3 selectFcpDevice
Description : Select an eligible FCP device for attaching a zFCP device to a node
Arguments : Message header
User (root or non-root)
zHCP
candidate FCP devices or auto
FCP device range
zFCP device owner
Returns : selected FCP device or empty if no one is selected
Example : my $fcpDevice = xCAT::zvmUtils->selectFcpDevice($callback, $header, $user, $hcp, $fcpDevice, $range, $owner);
=cut
#-------------------------------------------------------
sub selectFcpDevice {
# Get inputs
my ($class, $callback, $header, $user, $hcp, $fcpDevice, $range, $owner) = @_;
# Determine if sudo is used
my $sudo = "sudo";
if ($user eq "root") {
$sudo = "";
}
# Directory where executables are on zHCP
my $dir = "/opt/zhcp/bin";
# Directory where FCP disk pools are on zHCP
my $zfcpDir = "/var/opt/zhcp/zfcp";
my %results = ('rc' => -1); # Default to error
# Check FCP device syntax
if ($fcpDevice && ($fcpDevice !~ /^auto/i) && ($fcpDevice =~ /[^0-9a-f]/i)) {
xCAT::zvmUtils->printLn($callback, "$header: (Error) Invalid FCP channel address $fcpDevice.");
return;
}
# Find a free FCP device based on the given range
if ($fcpDevice =~ m/^auto/i) {
my @ranges;
my $min;
my $max;
my $found = 0;
if ($range =~ m/;/i) {
@ranges = split(';', $range);
} else {
push(@ranges, $range);
}
if (!$found) {
# If the node has an eligible FCP device, use it
my @deviceList = xCAT::zvmUtils->getDedicates($callback, $user, $owner);
foreach (@deviceList) {
# Check if this devide is eligible (among the range specified for disk $lun)
my @info = split(' ', $_);
my $candidate = $info[2];
foreach (@ranges) {
($min, $max) = split('-', $_);
if (hex($candidate) >= hex($min) && hex($candidate) <= hex($max)) {
$found = 1;
$fcpDevice = uc($candidate);
last;
}
}
if ($found) {
xCAT::zvmUtils->printLn($callback, "$header: Found eligible FCP channel $fcpDevice");
last;
}
}
}
if (!$found) {
# If the node has no eligible FCP device, find a free one for it.
my %usedDevices = xCAT::zvmUtils->getUsedFcpDevices($user, $hcp);
my $hcpUserId = xCAT::zvmCPUtils->getUserId($user, $hcp);
$hcpUserId =~ tr/a-z/A-Z/;
# Find a free FCP channel
my $out = `ssh $user\@$hcp "$sudo $dir/smcli System_WWPN_Query -T $hcpUserId" | egrep -i "FCP device number|Status"`;
my @devices = split( "\n", $out );
for (my $i = 0; $i < @devices; $i++) {
# Extract the device number and status
$fcpDevice = $devices[$i];
$fcpDevice =~ s/^FCP device number:(.*)/$1/;
$fcpDevice =~ s/^\s+//;
$fcpDevice =~ s/\s+$//;
$i++;
my $fcpStatus = $devices[$i];
$fcpStatus =~ s/^Status:(.*)/$1/;
$fcpStatus =~ s/^\s+//;
$fcpStatus =~ s/\s+$//;
# Only look at free FCP devices
if ($fcpStatus =~ m/free/i) {
# If the device number is within the specified range, exit out of loop
# Range: 3B00-3C00;4B00-4C00;5E12-5E12
foreach (@ranges) {
($min, $max) = split('-', $_);
if (hex($fcpDevice) >= hex($min) && hex($fcpDevice) <= hex($max)) {
$fcpDevice = uc($fcpDevice);
# Use found FCP channel if not in use or allocated
if (!$usedDevices{$fcpDevice}) {
$found = 1;
last;
}
}
}
}
# Break out of loop if FCP channel is found
if ($found) {
xCAT::zvmUtils->printLn($callback, "$header: Found FCP channel within acceptable range $fcpDevice");
last;
}
}
}
# Do not continue if no FCP channel is found
if (!$found) {
xCAT::zvmUtils->printLn($callback, "$header: (Error) A suitable FCP channel could not be found");
return;
}
}
# If there are multiple devices (multipathing), take the 1st one
if ($fcpDevice) {
if ($fcpDevice =~ m/;/i) {
my @info = split(';', $fcpDevice);
$fcpDevice = xCAT::zvmUtils->trimStr($info[0]);
}
# Make sure channel has a length of 4
while (length($fcpDevice) < 4) {
$fcpDevice = "0" . $fcpDevice;
}
}
return $fcpDevice;
}
#-------------------------------------------------------
=head3 findzFcpDevicePool
Description : Find the zFCP storage pool that contains the given zFCP device
@@ -2807,7 +2889,7 @@ sub findzFcpDevicePool {
WWPN
LUN
Returns : Architecture of node
Example : my $deviceRef = xCAT::zvmUtils->findzFcpDeviceAttr($user, $hcp, $wwpn, $lun);
Example : my $deviceRef = xCAT::zvmUtils->findzFcpDeviceAttr($user, $hcp, $pool, $wwpn, $lun);
=cut
@@ -2827,7 +2909,7 @@ sub findzFcpDeviceAttr {
# Find the SCSI/FCP device
# Entry order: status,wwpn,lun,size,range,owner,channel,tag
my @info = split("\n", `ssh $user\@$hcp "$sudo grep \"$wwpn,$lun\" $zfcpDir/$pool.conf"`);
my @info = split("\n", `ssh $user\@$hcp "$sudo grep -i \"$wwpn,$lun\" $zfcpDir/$pool.conf"`);
my $entry = $info[0];
chomp($entry);
+78 -269
View File
@@ -6,275 +6,84 @@
#include <stdlib.h>
#include <errno.h>
#include <netinet/in.h>
#include <signal.h>
#include <syslog.h>
// the chunk size for each alloc
int chunknum = 200;
int doreload = 0;
int verbose = 0;
char logmsg[50];
// the struct to store the winpe configuration for each node
struct nodecfg {
char node[50];
char data[150];
};
char *data = NULL; // the ptr to the array of all node config
int nodenum = 0;
// trigger the main program to reload configuration file
void reload(int sig) {
doreload = 1;
}
// the subroutine which is used to load configuration from
// /var/lib/xcat/proxydhcp.cfg to *data
void loadcfg () {
nodenum = 0;
free(data);
data = NULL;
doreload = 0;
char *dp = NULL;
FILE *fp;
fp = fopen("/var/lib/xcat/proxydhcp.cfg", "r");
if (fp) {
int num = chunknum;
int rtime = 1;
while (num == chunknum) {
// realloc the chunknum size of memory each to save memory usage
data = realloc(data, sizeof(struct nodecfg) * chunknum * rtime);
if (NULL == data) {
fprintf (stderr, "Cannot get enough memory.\n");
free (data);
return;
}
dp = data + sizeof(struct nodecfg) * chunknum * (rtime - 1);
memset(dp, 0, sizeof(struct nodecfg) * chunknum);
num = fread(dp, sizeof (struct nodecfg), chunknum, fp);
nodenum += num;
rtime++;
}
fclose(fp);
}
}
// get the path of winpe from configuration file which is stored in *data
char *getwinpepath(char *node) {
int i;
struct nodecfg *nc = (struct nodecfg *)data;
for (i=0; i<nodenum;i++) {
if (0 == strcmp(nc->node, node)) {
return nc->data;
}
nc++;
}
return NULL;
}
int main(int argc, char *argv[]) {
int i;
for(i = 0; i < argc; i++)
{
if (strcmp(argv[i], "-V") == 0) {
verbose = 1;
setlogmask(LOG_UPTO(LOG_DEBUG));
openlog("proxydhcp", LOG_NDELAY, LOG_LOCAL0);
}
}
// regist my pid to /var/run/xcat/proxydhcp.pid
int pid = getpid();
FILE *pidf = fopen ("/var/run/xcat/proxydhcp.pid", "w");
if (pidf) {
fprintf(pidf, "%d", pid);
fclose (pidf);
} else {
fprintf (stderr, "Cannot open /var/run/xcat/proxydhcp.pid\n");
return 1;
}
// load configuration at first start
loadcfg();
// regist signal SIGUSR1 for triggering reload configuration from outside
struct sigaction sigact;
sigact.sa_handler = &reload;
sigaction(SIGUSR1, &sigact, NULL);
int serverfd,port;
int getpktinfo = 1;
struct addrinfo hint, *res;
char cmsg[CMSG_SPACE(sizeof(struct in_pktinfo))];
char clientpacket[1024];
struct sockaddr_in clientaddr;
struct msghdr msg;
struct cmsghdr *cmsgptr;
struct iovec iov[1];
unsigned int myip, clientip;
char *txtptr;
iov[0].iov_base = clientpacket;
iov[0].iov_len = 1024;
memset(&msg,0,sizeof(msg));
memset(&clientaddr,0,sizeof(clientaddr));
msg.msg_name=&clientaddr;
msg.msg_namelen = sizeof(clientaddr);
msg.msg_iov = iov;
msg.msg_iovlen = 1;
msg.msg_control=&cmsg;
msg.msg_controllen = sizeof(cmsg);
char defaultwinpe[20] = "Boot/bootmgfw.efi";
char bootpmagic[4] = {0x63,0x82,0x53,0x63};
int pktsize;
int doexit=0;
port = 4011;
memset(&hint,0,sizeof(hint));
hint.ai_family = PF_INET; /* Would've done UNSPEC, but it doesn't work right and this is heavily v4 specific anyway */
hint.ai_socktype = SOCK_DGRAM;
hint.ai_flags = AI_PASSIVE;
getaddrinfo(NULL,"4011",&hint,&res);
serverfd = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
if (!serverfd) { fprintf(stderr,"That's odd...\n"); }
setsockopt(serverfd,IPPROTO_IP,IP_PKTINFO,&getpktinfo,sizeof(getpktinfo));
if (bind(serverfd,res->ai_addr ,res->ai_addrlen) < 0) {
fprintf(stderr,"Unable to bind 4011");
exit(1);
}
while (!doexit) {
// use select to wait for the 4011 request packages coming
fd_set fds;
FD_ZERO(&fds);
FD_SET(serverfd, &fds);
struct timeval timeout;
timeout.tv_sec = 30;
timeout.tv_usec = 0;
int rc;
if ((rc = select(serverfd+1,&fds,0,0, &timeout)) <= 0) {
if (doreload) {
loadcfg();
fprintf(stderr, "load in select\n");
}
if (verbose) {syslog(LOG_DEBUG, "reload /var/lib/xcat/proxydhcp.cfg\n");}
continue;
}
if (doreload) {
loadcfg();
if (verbose) {syslog(LOG_DEBUG, "reload /var/lib/xcat/proxydhcp.cfg\n");}
}
pktsize = recvmsg(serverfd,&msg,0);
if (pktsize < 320) {
continue;
}
if (clientpacket[0] != 1 || memcmp(clientpacket+0xec,bootpmagic,4)) {
continue;
}
for (cmsgptr = CMSG_FIRSTHDR(&msg); cmsgptr != NULL; cmsgptr = CMSG_NXTHDR(&msg,cmsgptr)) {
if (cmsgptr->cmsg_level == IPPROTO_IP && cmsgptr->cmsg_type == IP_PKTINFO) {
myip = ((struct in_pktinfo*)(CMSG_DATA(cmsgptr)))->ipi_addr.s_addr;
}
}
// get the ip of dhcp client
clientip = 0;
int i;
for (i = 0; i< 4; i++) {
clientip = clientip << 8;
clientip += (unsigned char)clientpacket[15-i];
}
// get the winpe path
struct hostent *host = gethostbyaddr(&clientip, sizeof(clientip), AF_INET);
char *winpepath = defaultwinpe;
if (host) {
if (host->h_name) {
// remove the domain part from hostname
char *place = strstr(host->h_name, ".");
if (place) {
*place = '\0';
}
winpepath = getwinpepath(host->h_name);
if (winpepath == NULL) {
winpepath = defaultwinpe;
}
if (verbose) {
sprintf(logmsg, "Received proxydhcp request from %s\n", host->h_name);
syslog(LOG_DEBUG, logmsg);
}
}
} else {
winpepath = defaultwinpe;
}
// get the Vendor class identifier
char *arch = NULL;
unsigned char *p = clientpacket + 0xf0;
while (*p != 0xff && p < (unsigned char *)clientpacket + pktsize) {
if (*p == 60) {
arch = p + 0x11;
break;
} else {
p += *(p+1) + 2;
}
}
char winboot[50]; // the bootload of winpe
memset(winboot, 0, 50);
if (0 == memcmp(arch, "00000", 5)) { // bios boot mode
strcpy(winboot, winpepath);
strcat(winboot, "Boot/pxeboot.0");
} else if (0 == memcmp(arch, "00007", 5)) { // uefi boot mode
strcpy(winboot, winpepath);
strcat(winboot, "Boot/bootmgfw.efi");
}
clientpacket[0] = 2; //change to a reply
myip = htonl(myip); //endian neutral change
clientpacket[0x14] = (myip>>24)&0xff; //maybe don't need to do this, maybe assigning the whole int would be better
clientpacket[0x15] = (myip>>16)&0xff;
clientpacket[0x16] = (myip>>8)&0xff;
clientpacket[0x17] = (myip)&0xff;
txtptr = clientpacket+0x6c;
strncpy(txtptr, winboot ,128); // keeping 128 in there just in case someone changes the string
//strncpy(txtptr,"winboot/new/Boot/bootmgfw.efi",128); // keeping 128 in there just in case someone changes the string
//strncpy(txtptr,"Boot/pxeboot.0",128); // keeping 128 in there just in case someone changes the string
clientpacket[0xf0]=0x35; //DHCP MSG type
clientpacket[0xf1]=0x1; // LEN of 1
clientpacket[0xf2]=0x5; //DHCP ACK
clientpacket[0xf3]=0x36; //DHCP server identifier
clientpacket[0xf4]=0x4; //DHCP server identifier length
clientpacket[0xf5] = (myip>>24)&0xff; //maybe don't need to do this, maybe assigning the whole int would be better
clientpacket[0xf6] = (myip>>16)&0xff;
clientpacket[0xf7] = (myip>>8)&0xff;
clientpacket[0xf8] = (myip)&0xff;
char winBCD[50];
strcpy(winBCD, winpepath);
strcat(winBCD, "Boot/BCD");
clientpacket[0xf9] = 0xfc; // dhcp 252 'proxy', but coopeted by bootmgfw, it's actually suggesting the boot config file
clientpacket[0xfa] = strlen(winBCD) + 1; //length of 9
txtptr = clientpacket+0xfb;
strncpy(txtptr, winBCD, strlen(winBCD));
clientpacket[0xfa + strlen(winBCD) + 1] = 0;
clientpacket[0xfa + strlen(winBCD) + 2] = 0xff;
sendto(serverfd,clientpacket,pktsize,0,(struct sockaddr*)&clientaddr,sizeof(clientaddr));
if (verbose) {
sprintf(logmsg, "Path of bootloader:%s. Path of BCD:%s\n", winboot, winBCD);
syslog(LOG_DEBUG, logmsg);
}
}
if (verbose) { closelog();}
int main() {
int serverfd,port;
int getpktinfo = 1;
struct addrinfo hint, *res;
char cmsg[CMSG_SPACE(sizeof(struct in_pktinfo))];
char clientpacket[1024];
struct sockaddr_in clientaddr;
struct msghdr msg;
struct cmsghdr *cmsgptr;
struct iovec iov[1];
unsigned int myip;
char *txtptr;
iov[0].iov_base = clientpacket;
iov[0].iov_len = 1024;
memset(&msg,0,sizeof(msg));
memset(&clientaddr,0,sizeof(clientaddr));
msg.msg_name=&clientaddr;
msg.msg_namelen = sizeof(clientaddr);
msg.msg_iov = iov;
msg.msg_iovlen = 1;
msg.msg_control=&cmsg;
msg.msg_controllen = sizeof(cmsg);
char bootpmagic[4] = {0x63,0x82,0x53,0x63};
int pktsize;
int doexit=0;
port = 4011;
memset(&hint,0,sizeof(hint));
hint.ai_family = PF_INET; /* Would've done UNSPEC, but it doesn't work right and this is heavily v4 specific anyway */
hint.ai_socktype = SOCK_DGRAM;
hint.ai_flags = AI_PASSIVE;
getaddrinfo(NULL,"4011",&hint,&res);
serverfd = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
if (!serverfd) { fprintf(stderr,"That's odd...\n"); }
setsockopt(serverfd,IPPROTO_IP,IP_PKTINFO,&getpktinfo,sizeof(getpktinfo));
if (bind(serverfd,res->ai_addr ,res->ai_addrlen) < 0) {
fprintf(stderr,"Unable to bind 4011");
exit(1);
}
while (!doexit) {
pktsize = recvmsg(serverfd,&msg,0);
if (pktsize < 320) {
continue;
}
if (clientpacket[0] != 1 || memcmp(clientpacket+0xec,bootpmagic,4)) {
continue;
}
for (cmsgptr = CMSG_FIRSTHDR(&msg); cmsgptr != NULL; cmsgptr = CMSG_NXTHDR(&msg,cmsgptr)) {
if (cmsgptr->cmsg_level == IPPROTO_IP && cmsgptr->cmsg_type == IP_PKTINFO) {
myip = ((struct in_pktinfo*)(CMSG_DATA(cmsgptr)))->ipi_addr.s_addr;
}
}
clientpacket[0] = 2; //change to a reply
myip = htonl(myip); //endian neutral change
clientpacket[0x14] = (myip>>24)&0xff; //maybe don't need to do this, maybe assigning the whole int would be better
clientpacket[0x15] = (myip>>16)&0xff;
clientpacket[0x16] = (myip>>8)&0xff;
clientpacket[0x17] = (myip)&0xff;
txtptr = clientpacket+0x6c;
strncpy(txtptr,"Boot/bootmgfw.efi",128); // keeping 128 in there just in case someone changes the string
clientpacket[0xf0]=0x35; //DHCP MSG type
clientpacket[0xf1]=0x1; // LEN of 1
clientpacket[0xf2]=0x5; //DHCP ACK
clientpacket[0xf3]=0x36; //DHCP server identifier
clientpacket[0xf4]=0x4; //DHCP server identifier length
clientpacket[0xf5] = (myip>>24)&0xff; //maybe don't need to do this, maybe assigning the whole int would be better
clientpacket[0xf6] = (myip>>16)&0xff;
clientpacket[0xf7] = (myip>>8)&0xff;
clientpacket[0xf8] = (myip)&0xff;
clientpacket[0xf9] = 0xfc; // dhcp 252 'proxy', but coopeted by bootmgfw, it's actually suggesting the boot config file
clientpacket[0xfa] = 9; //length of 9
txtptr = clientpacket+0xfb;
strncpy(txtptr,"Boot/BCD",8);
clientpacket[0x103]=0;
clientpacket[0x104]=0xff;
sendto(serverfd,clientpacket,pktsize,0,(struct sockaddr*)&clientaddr,sizeof(clientaddr));
}
}
-48
View File
@@ -1,48 +0,0 @@
/* IBM(c) 2013 EPL licens http://www.eclipse.org/legal/epl-v10.html
* Jarrod Johnson - jbjohnso@us.ibm.com
* This program periodically transmits a udp packet to designated xCAT server
* It waits for an 'ok' and then exits
*/
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[]) {
int server;
struct addrinfo hints;
struct addrinfo *results,*cur;
struct timeval timeout;
int canread=0;
char buffer[128];
srand(time(NULL));
memset(&hints,0,sizeof(struct addrinfo));
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_DGRAM;
hints.ai_protocol = IPPROTO_UDP;
fd_set selectset;
getaddrinfo(argv[1],argv[2],&hints,&results);
server = socket(AF_UNSPEC,SOCK_DGRAM,17);
for (cur=results; cur != NULL; cur = cur->ai_next) {
server = socket(cur->ai_family,cur->ai_socktype,cur->ai_protocol);
if (server == -1) continue;
if (connect(server,cur->ai_addr,cur->ai_addrlen) != -1) break;
close(server);
}
FD_ZERO(&selectset);
FD_SET(server,&selectset);
while (1) {
timeout.tv_sec = rand() % 120+60;
timeout.tv_usec = rand() % 10000;
write(server,"resourcerequest: xcatd\n",strlen("resourcerequest: xcatd\n"));
canread = select(FD_SETSIZE,&selectset,NULL,NULL,&timeout);
if (canread) {
read(server,buffer,sizeof(buffer));
if (strncmp(buffer,"resourcerequest: ok",strlen("resourcerequest: ok"))==0) {
exit(0);
}
}
}
}
@@ -1,10 +0,0 @@
# AIX Bundle file for compiler runtime packages
I:xlC.aix61
I:xlC.rte
I:xlfrte
I:xlfrte.aix61
I:xlfrte.msg.en_US
I:xlsmp.aix61.rte
I:xlsmp.msg.en_US.rte
I:xlsmp.rte
@@ -14,7 +14,7 @@
# postscript (stateful install) or with the otherpkgs processing of
# genimage (stateless/statelite install). This script will install any
# gpfs update rpms that exist on the xCAT management node in the
# /install/post/otherpkgs/gpfs_updates directory.
# /install/post/gpfs_updates directory.
# This is necessary because the GPFS updates can ONLY be installed
# after the base rpms have been installed, and the update rpms cannot
# exist in any rpm repositories used by xCAT otherpkgs processing
@@ -41,8 +41,8 @@ if [ $OS != "AIX" ]; then
mkdir -p /tmp/gpfs_updates
rm -f -R /tmp/gpfs_updates/*
cd /tmp/gpfs_updates
# wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=3 ftp://$MASTER/$UPDATES_DIR/*.rpm 2> /tmp/wget.log
wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=4 --reject "index.html*" --no-parent http://$MASTER$INSTALL_DIR/$UPDATES_DIR/ 2> /tmp/wget.log
# wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=3 ftp://$SITEMASTER/$UPDATES_DIR/*.rpm 2> /tmp/wget.log
wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=4 --reject "index.html*" --no-parent http://$SITEMASTER$INSTALL_DIR/$UPDATES_DIR/ 2> /tmp/wget.log
if [ -n "`ls *.rpm 2> /dev/null`" ] ; then
rpm -Uvh *.rpm
fi
@@ -103,7 +103,7 @@ else # assume Linux
fi
if [ ! -e $gpfsprofile.sh ]; then
echo 'export PATH=$PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.sh
echo 'setenv PATH ${PATH}:/usr/lpp/mmfs/bin' > $gpfsprofile.csh
echo 'setenv PATH $PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.csh
# Turn off LANG support since we did not install other msg catalogs
echo 'export LC_CTYPE=POSIX' >> $gpfsprofile.sh
echo 'setenv LC_CTYPE POSIX' >> $gpfsprofile.csh
@@ -62,8 +62,7 @@ else
file=$1
fi
#ifconfig -a | grep 'inet ' | awk ' { print $2 } ' | grep -v 127.0.0.1 |
ip -4 -oneline addr show 2>/dev/null |grep inet | sed -ne "s/.*inet //p"|awk -F ' ' '{print $1}'|awk -F '/' '{print $1}'|
ifconfig -a | grep 'inet ' | awk ' { print $2 } ' | grep -v 127.0.0.1 |
while read my_address ; do
##print "checking $my_address"
grep -q " ${my_address}$" $file
@@ -1,6 +0,0 @@
xcat-openstack-baremetal for Debian
-----------------------------------
<possible notes regarding this package - if none, delete this file>
-- root <root@unknown> Wed, 12 Mar 2014 01:47:54 -0700
@@ -1,9 +0,0 @@
xcat-openstack-baremetal for Debian
-----------------------------------
<this file describes information about the source package, see Debian policy
manual section 4.14. You WILL either need to modify or delete this file>
@@ -1,5 +0,0 @@
xcat-openstack-baremetal (2.8.4-1) unstable; urgency=low
* Initial release (Closes: #nnnn) <nnnn is the bug number of your ITP>
-- root <root@unknown> Wed, 12 Mar 2014 01:47:54 -0700
-1
View File
@@ -1 +0,0 @@
8
-14
View File
@@ -1,14 +0,0 @@
Source: xcat-openstack-baremetal
Section: admin
Priority: extra
Maintainer: xCAT <xcat-user@lists.sourceforge.net>
Build-Depends: debhelper (>= 8.0.0)
Standards-Version: 3.9.4
Homepage: http://xcat.sourceforge.net/
#Vcs-Git: git://git.debian.org/collab-maint/xcat-openstack-baremetal.git
#Vcs-Browser: http://git.debian.org/?p=collab-maint/xcat-openstack-baremetal.git;a=summary
Package: xcat-openstack-baremetal
Architecture: all
Depends: xCAT-client
Description: Executables and data of the xCAT baremetal driver for OpenStack
-88
View File
@@ -1,88 +0,0 @@
Eclipse Public License - v 1.0
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
1. DEFINITIONS
"Contribution" means:
a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
b) in the case of each subsequent Contributor:
i) changes to the Program, and
ii) additions to the Program;
where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
"Contributor" means any person or entity that distributes the Program.
"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
"Program" means the Contributions distributed in accordance with this Agreement.
"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
2. GRANT OF RIGHTS
a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
3. REQUIREMENTS
A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
a) it complies with the terms and conditions of this Agreement; and
b) its license agreement:
i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
When the Program is made available in source code form:
a) it must be made available under this Agreement; and
b) a copy of this Agreement must be included with each copy of the Program.
Contributors may not remove or alter any copyright notices contained within the Program.
Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
4. COMMERCIAL DISTRIBUTION
Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
5. NO WARRANTY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
6. DISCLAIMER OF LIABILITY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
7. GENERAL
If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.
-7
View File
@@ -1,7 +0,0 @@
opt/xcat/bin
opt/xcat/sbin
opt/xcat/lib/perl/xCAT_plugin
opt/xcat/lib/python/xcat/openstack/baremetal
opt/xcat/share/xcat/openstack/postscripts
opt/xcat/share/man/man1
opt/xcat/share/doc/man1
-6
View File
@@ -1,6 +0,0 @@
lib/* opt/xcat/lib/
share/xcat/openstack/postscripts/* opt/xcat/share/xcat/openstack/postscripts/
share/man/man1/* opt/xcat/share/man/man1/
share/doc/man1/* opt/xcat/share/doc/man1/
-43
View File
@@ -1,43 +0,0 @@
#!/bin/sh
# postinst script for xcat-openstack-baremetal
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <postinst> `configure' <most-recently-configured-version>
# * <old-postinst> `abort-upgrade' <new version>
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
# <new-version>
# * <postinst> `abort-remove'
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
# <failed-install-package> <version> `removing'
# <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
configure)
#copy the postscripts under /installl/postscripts directory on MN only
if [ -f "/etc/xCATMN" ]; then
cp /opt/xcat/share/xcat/openstack/postscripts/* /install/postscripts/
fi
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0
-46
View File
@@ -1,46 +0,0 @@
#!/bin/sh
# prerm script for xcat-openstack-baremetal
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <prerm> `remove'
# * <old-prerm> `upgrade' <new-version>
# * <new-prerm> `failed-upgrade' <old-version>
# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
# * <deconfigured's-prerm> `deconfigure' `in-favour'
# <package-being-installed> <version> `removing'
# <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
remove|upgrade|deconfigure)
#remove postscripts under /installl/postscripts directory on MN only
if [ -f "/etc/xCATMN" ]; then
for fn in /opt/xcat/share/xcat/openstack/postscripts/*
do
bn=`basename $fn`
rm /install/postscripts/$bn
done
fi
;;
failed-upgrade)
;;
*)
echo "prerm called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0
-44
View File
@@ -1,44 +0,0 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
build:
pwd
`pwd`/xpod2man
clean:
dh_testdir
dh_testroot
dh_clean -d
install:
pwd
dh_testdir
dh_testroot
dh_installdirs
dh_install -X".svn"
chmod 444 `pwd`/debian/xcat-openstack-baremetal/opt/xcat/share/man/man1/*
chmod 644 `pwd`/debian/xcat-openstack-baremetal/opt/xcat/share/doc/man1/*
dh_link
binary-indep: build install
pwd
export
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
binary-arch:
pwd
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure
@@ -1 +0,0 @@
1.0
@@ -1,4 +0,0 @@
opt/xcat/bin/xcatclient opt/xcat/sbin/deploy_ops_bm_node
opt/xcat/bin/xcatclient opt/xcat/sbin/cleanup_ops_bm_node
opt/xcat/bin/xcatclient opt/xcat/bin/opsaddbmnode
opt/xcat/bin/xcatclientnnr opt/xcat/bin/opsaddimage
@@ -1 +0,0 @@
misc:Depends=
@@ -1,965 +0,0 @@
# IBM(c) 2013 EPL license http://www.eclipse.org/legal/epl-v10.html
package xCAT_plugin::openstack;
BEGIN
{
$::XCATROOT = $ENV{'XCATROOT'} ? $ENV{'XCATROOT'} : '/opt/xcat';
}
use lib "$::XCATROOT/lib/perl";
use xCAT::Utils;
use xCAT::TableUtils;
use xCAT::SvrUtils;
use xCAT::NetworkUtils;
use xCAT::Table;
use Data::Dumper;
use File::Path;
use File::Copy;
use Getopt::Long;
Getopt::Long::Configure("bundling");
Getopt::Long::Configure("pass_through");
sub handled_commands {
return {
opsaddbmnode => "openstack", #external command
opsaddimage => "openstack", #external command
deploy_ops_bm_node => "openstack", #internal command called from the baremetal driver
cleanup_ops_bm_node => "openstack", #internal command called from the baremetal driver
}
}
sub process_request {
my $request = shift;
my $callback = shift;
my $doreq = shift;
my $command = $request->{command}->[0];
if ($command eq "opsaddbmnode") {
return opsaddbmnode($request, $callback, $doreq);
} elsif ($command eq "opsaddimage") {
return opsaddimage($request, $callback, $doreq);
} elsif ($command eq "deploy_ops_bm_node") {
return deploy_ops_bm_node($request, $callback, $doreq);
} elsif ($command eq "cleanup_ops_bm_node") {
return cleanup_ops_bm_node($request, $callback, $doreq);
} else {
$callback->({error=>["Unsupported command: $command."],errorcode=>[1]});
return 1;
}
}
#-------------------------------------------------------------------------------
=head3 opsaddbmnode
This function takes the xCAT nodes and register them
as the OpenStack baremetal nodes
=cut
#-------------------------------------------------------------------------------
sub opsaddbmnode {
my $request = shift;
my $callback = shift;
my $doreq = shift;
@ARGV = @{$request->{arg}};
Getopt::Long::Configure("bundling");
Getopt::Long::Configure("no_pass_through");
my $help;
my $version;
my $verbose;
my $host;
if(!GetOptions(
'h|help' => \$help,
'v|version' => \$version,
'V|verbose' => \$verbose,
's=s' => \$host,
))
{
&opsaddbmnode_usage($callback);
return 1;
}
# display the usage if -h or --help is specified
if ($help) {
&opsaddbmnode_usage($callback);
return 0;
}
# display the version statement if -v or --verison is specified
if ($version)
{
my $rsp={};
$rsp->{data}->[0]= xCAT::Utils->Version();
$callback->($rsp);
return 0;
}
if (!$request->{node}) {
$callback->({error=>["Please specify at least one node."],errorcode=>[1]});
return 1;
}
if (!$host) {
$callback->({error=>["Please specify the OpenStack compute host name with -s flag."],errorcode=>[1]});
return 1;
}
my $nodes = $request->{node};
#get node mgt
my $nodehmhash;
my $nodehmtab = xCAT::Table->new("nodehm");
if ($nodehmtab) {
$nodehmhash = $nodehmtab->getNodesAttribs($nodes,['power', 'mgt']);
}
#get bmc info for the nodes
my $ipmitab = xCAT::Table->new("ipmi", -create => 0);
my $tmp_ipmi;
if ($ipmitab) {
$tmp_ipmi = $ipmitab->getNodesAttribs($nodes, ['bmc','username', 'password'], prefetchcache=>1);
#print Dumper($tmp_ipmi);
} else {
$callback->({error=>["Cannot open the ipmi table."],errorcode=>[1]});
return 1;
}
#get mac for the nodes
my $mactab = xCAT::Table->new("mac", -create => 0);
my $tmp_mac;
if ($mactab) {
$tmp_mac = $mactab->getNodesAttribs($nodes, ['mac'], prefetchcache=>1);
#print Dumper($tmp_mac);
} else {
$callback->({error=>["Cannot open the mac table."],errorcode=>[1]});
return 1;
}
#get cpu, memory and disk info for the nodes
my $hwinvtab = xCAT::Table->new("hwinv", -create => 0);
my $tmp_hwinv;
if ($hwinvtab) {
$tmp_hwinv = $hwinvtab->getNodesAttribs($nodes, ['cpucount', 'memory', 'disksize'], prefetchcache=>1);
#print Dumper($tmp_hwinv);
} else {
$callback->({error=>["Cannot open the hwinv table."],errorcode=>[1]});
return 1;
}
#get default username and password for bmc
my $d_bmcuser;
my $d_bmcpasswd;
my $passtab = xCAT::Table->new('passwd');
if ($passtab) {
($tmp_passwd)=$passtab->getAttribs({'key'=>'ipmi'},'username','password');
if (defined($tmp_passwd)) {
$d_bmcuser = $tmp_passwd->{username};
$d_bmcpasswd = $tmp_passwd->{password};
}
}
#print "d_bmcuser=$d_bmcuser, d_bmcpasswd=$d_bmcpasswd \n";
foreach my $node (@$nodes) {
#collect the node infomation needed for each node, some info
my $mgt;
my $ref_nodehm = $nodehmhash->{$node}->[0];
if ($ref_nodehm) {
if ($ref_nodehm->{'power'}) {
$mgt = $ref_nodehm->{'power'};
} elsif ($ref_nodehm->{'mgt'}) {
$mgt = $ref_nodehm->{'mgt'};
}
}
my ($bmc, $bmc_user, $bmc_password, $mac, $cpu, $memory, $disk);
if (($mgt) && ($mgt eq 'ipmi')) {
my $ref_ipmi = $tmp_ipmi->{$node}->[0];
if ($ref_ipmi) {
if (exists($ref_ipmi->{bmc})) {
$bmc = $ref_ipmi->{bmc};
}
if (exists($ref_ipmi->{username})) {
$bmc_user = $ref_ipmi->{username};
if (exists($ref_ipmi->{password})) {
$bmc_password = $ref_ipmi->{password};
}
} else { #take the default if they cannot be found on ipmi table
if ($d_bmcuser) { $bmc_user = $d_bmcuser; }
if ($d_bmcpasswd) { $bmc_password = $d_bmcpasswd; }
}
}
} # else { # for hardware control point other than ipmi, just fake it in OpenStack.
#$bmc = "0.0.0.0";
#$bmc_user = "xCAT";
#$bmc_password = "xCAT";
#}
my $ref_mac = $tmp_mac->{$node}->[0];
if ($ref_mac) {
if (exists($ref_mac->{mac})) {
$mac = $ref_mac->{mac};
}
}
$ref_hwinv = $tmp_hwinv->{$node}->[0];
if ($ref_hwinv) {
if (exists($ref_hwinv->{cpucount})) {
$cpu = $ref_hwinv->{cpucount};
}
if (exists($ref_hwinv->{memory})) {
$memory = $ref_hwinv->{memory};
#TODO: what if the unit is not in MB? We need to convert it to MB
$memory =~ s/MB|mb//g;
}
if (exists($ref_hwinv->{disksize})) {
#The format of the the disk size is: sda:250GB,sdb:250GB or just 250GB
#We need to get the size of the first one
$disk = $ref_hwinv->{disksize};
my @a = split(',', $disk);
my @b = split(':', $a[0]);
if (@b > 1) {
$disk = $b[1];
} else {
$disk = $b[0];
}
#print "a=@a, b=@b\n";
#TODO: what if the unit is not in GB? We need to convert it to MB
$disk =~ s/GB|gb//g;
}
}
#some info are mendatory
if (!$mac) {
$callback->({error=>["Mac address is not defined in the mac table for node $node."],errorcode=>[1]});
next;
}
if (!$cpu) {
#default cpu count is 1
$cpu = 1;
}
if (!$memory) {
#default memory size is 1024MB=1GB
$memory = 1024;
}
if (!$disk) {
#default disk size is 1GB
$disk = 1;
}
if ($verbose) {
my $rsp;
push @{$rsp->{data}}, "Attributes gathered from the xCAT database:";
push @{$rsp->{data}}, " bmc=$bmc";
push @{$rsp->{data}}, " bmc_user=$bmc_user";
push @{$rsp->{data}}, " bmc_password=$bmc_password";
push @{$rsp->{data}}, " mac=$mac";
push @{$rsp->{data}}, " cpu=$cpu";
push @{$rsp->{data}}, " memory=$memory";
push @{$rsp->{data}}, " disk=$disk";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
#call OpenStack command to add the node into the OpenStack as
#a baremetal node.
my $cmd_tmp = "nova baremetal-node-create";
if ($bmc) {
#make sure it is an ip address
if (($bmc !~ /\d+\.\d+\.\d+\.\d+/) && ($bmc !~ /:/)) {
$bmc = xCAT::NetworkUtils->getipaddr($bmc);
}
$cmd_tmp .= " --pm_address=$bmc";
}
if ($bmc_user) {
$cmd_tmp .= " --pm_user=$bmc_user";
}
if ($bmc_password) {
$cmd_tmp .= " --pm_password=$bmc_password";
}
$cmd_tmp .= " $host $cpu $memory $disk $mac";
my $cmd = qq~$cmd_tmp~;
if ($verbose) {
my $rsp;
push @{$rsp->{data}}, "The command to run on $host:";
push @{$rsp->{data}}, " $cmd";
push @{$rsp->{data}}, " ";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
#print "cmd=$cmd\n";
my $output =
xCAT::InstUtils->xcmd($callback, $doreq, "xdsh", [$host], $cmd, 0);
if ($::RUNCMD_RC != 0) {
my $rsp;
push @{$rsp->{data}}, "OpenStack creating baremetal node $node:";
push @{$rsp->{data}}, "$output";
push @{$rsp->{data}}, "The command was: $cmd";
xCAT::MsgUtils->message("E", $rsp, $callback);
} else {
if (($verbose) && ($output)) {
my $rsp;
push @{$rsp->{data}}, "$output";
push @{$rsp->{data}}, " ";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
}
}
}
#-------------------------------------------------------------------------------
=head3 opsaddimage
This function takes the xCAT nodes and register them
as the OpenStack baremetal nodes
=cut
#-------------------------------------------------------------------------------
sub opsaddimage {
my $request = shift;
my $callback = shift;
my $doreq = shift;
@ARGV = @{$request->{arg}};
Getopt::Long::Configure("bundling");
Getopt::Long::Configure("no_pass_through");
my $help;
my $version;
my $verbose;
#my $cloud;
my $ops_img_names;
my $controller;
if(!GetOptions(
'h|help' => \$help,
'v|version' => \$version,
'V|verbose' => \$verbose,
'c=s' => \$controller,
'n=s' => \$ops_img_names,
))
{
&opsaddimage_usage($callback);
return 1;
}
# display the usage if -h or --help is specified
if ($help) {
&opsaddimage_usage($callback);
return 0;
}
# display the version statement if -v or --verison is specified
if ($version)
{
my $rsp={};
$rsp->{data}->[0]= xCAT::Utils->Version();
$callback->($rsp);
return 0;
}
if (@ARGV ==0) {
$callback->({error=>["Please specify an image name or a list of image names."],errorcode=>[1]});
return 1;
}
#make sure the input cloud name is valid.
#if (!$cloud) {
# $callback->({error=>["Please specify the name of the cloud with -c flag."],errorcode=>[1]});
# return 1;
#} else {
# my $cloudstab = xCAT::Table->new('clouds', -create => 0);
# my @et = $cloudstab->getAllAttribs('name', 'controller');
# if(@et) {
# foreach my $tmp_et (@et) {
# if ($tmp_et->{name} eq $cloud) {
# if ($tmp_et->{controller}) {
# $controller = $tmp_et->{controller};
# last;
# } else {
# $callback->({error=>["Please specify the controller in the clouds table for the cloud: $cloud."],errorcode=>[1]});
# return 1;
# }
# }
# }
# }
if (!$controller) {
$callback->({error=>["Please specify the OpenStack controller node name with -c."],errorcode=>[1]});
return 1;
}
#}
#make sure that the images from the command are valid image names
@images = split(',', $ARGV[0]);
@new_names = ();
if ($ops_img_names) {
@new_names = split(',', $ops_img_names);
}
#print "images=@images, new image names=@new_names, controller=$controller\n";
my $image_hash = {};
my $osimgtab = xCAT::Table->new('osimage', -create => 0);
my @et = $osimgtab->getAllAttribs('imagename');
if(@et) {
foreach my $tmp_et (@et) {
$image_hash->{$tmp_et->{imagename}}{'xCAT'} = 1;
}
}
my @bad_images;
foreach my $image (@images) {
if (!exists($image_hash->{$image})) {
push @bad_images, $image;
}
}
if (@bad_images > 0) {
$callback->({error=>["The following images cannot be found in xCAT osimage table:\n " . join("\n ", @bad_images) . "\n"],errorcode=>[1]});
return 1;
}
my $index=0;
foreach my $image (@images) {
my $new_name = shift(@new_names);
if (!$new_name) {
$new_name = $image; #the default new name is xCAT image name
}
my $cmd_tmp = "glance image-create --name $new_name --public --disk-format qcow2 --container-format bare --property xcat_image_name=\'$image\' < /tmp/$image.qcow2";
my $cmd = qq~touch /tmp/$image.qcow2;$cmd_tmp~;
if ($verbose) {
my $rsp;
push @{$rsp->{data}}, "The command to run on $controller:";
push @{$rsp->{data}}, " $cmd";
push @{$rsp->{data}}, " ";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
my $output =
xCAT::InstUtils->xcmd($callback, $doreq, "xdsh", [$controller], $cmd, 0);
if ($::RUNCMD_RC != 0) {
my $rsp;
push @{$rsp->{data}}, "OpenStack creating image $new_name:";
push @{$rsp->{data}}, "$output";
push @{$rsp->{data}}, "The command was: $cmd";
xCAT::MsgUtils->message("E", $rsp, $callback);
} else {
if (($verbose) && ($output)) {
my $rsp;
push @{$rsp->{data}}, "$output";
push @{$rsp->{data}}, " ";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
}
my $cmd1 = qq~rm /tmp/$image.qcow2~;
if ($verbose) {
my $rsp;
push @{$rsp->{data}}, "The command to run on $controller:";
push @{$rsp->{data}}, " $cmd1";
push @{$rsp->{data}}, " ";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
my $output1 =
xCAT::InstUtils->xcmd($callback, $doreq, "xdsh", [$controller], $cmd1, 0);
if (($verbose) && ($output1)) {
my $rsp;
push @{$rsp->{data}}, "$output1";
push @{$rsp->{data}}, " ";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
}
}
#-------------------------------------------------------------------------------
=head3 deploy_ops_bm_node
This is a internel command called by OpenStack xCAT-baremetal driver.
It prepares the node by adding the config_ops_bm_node postbootscript
to the postscript table for the node, then call nodeset and then boot
the node up.
=cut
#-------------------------------------------------------------------------------
sub deploy_ops_bm_node {
my $request = shift;
my $callback = shift;
my $doreq = shift;
@ARGV = @{$request->{arg}};
Getopt::Long::Configure("bundling");
Getopt::Long::Configure("no_pass_through");
my $node = $request->{node}->[0];
my $help;
my $version;
my $img_name;
my $hostname;
my $fixed_ip;
my $netmask;
if(!GetOptions(
'h|help' => \$help,
'v|version' => \$version,
'image=s' => \$img_name,
'host=s' => \$hostname,
'ip=s' => \$fixed_ip,
'mask=s' => \$netmask,
))
{
&deploy_ops_bm_node_usage($callback);
return 1;
}
# display the usage if -h or --help is specified
if ($help) {
&deploy_ops_bm_node_usage($callback);
return 0;
}
# display the version statement if -v or --verison is specified
if ($version)
{
my $rsp={};
$rsp->{data}->[0]= xCAT::Utils->Version();
$callback->($rsp);
return 0;
}
#print "node=$node, image=$img_name, host=$hostname, ip=$fixed_ip, mask=$netmask\n";
#validate the image name
my $osimagetab = xCAT::Table->new('osimage', -create=>1);
my $ref = $osimagetab->getAttribs({imagename => $img_name}, 'imagename');
if (!$ref) {
$callback->({error=>["Invalid image name: $img_name."],errorcode=>[1]});
return 1;
}
#check if the fixed ip is within the xCAT management network.
#get the master ip address for the node then check if the master ip and
#the OpenStack fixed_ip are on the same subnet.
#my $same_nw = 0;
#my $master = xCAT::TableUtils->GetMasterNodeName($node);
#my $master_ip = xCAT::NetworkUtils->toIP($master);
#if (xCAT::NetworkUtils::isInSameSubnet($master_ip, $fixed_ip, $netmask, 0)) {
# $same_nw = 1;
#}
#add config_ops_bm_node to the node's postbootscript
my $script = "config_ops_bm_node $hostname $fixed_ip $netmask";
add_postscript($callback, $node, $script);
#run nodeset
my $cmd = qq~osimage=$img_name~;
my $output = xCAT::Utils->runxcmd(
{command => ["nodeset"],
node => [$node],
arg => [$cmd]},
$doreq, -1, 1);
if ($::RUNCMD_RC != 0) {
my $rsp;
push @{$rsp->{data}}, "nodeset:";
push @{$rsp->{data}}, "$output";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
#deploy the node now, supported nodehm.mgt values: ipmi, blade,fsp, hmc.
my $hmtab = xCAT::Table->new('nodehm');
my $hment = $hmtab->getNodeAttribs($node,['mgt']);
if ($hment && $hment->{'mgt'}) {
my $mgt = $hment->{'mgt'};
if ($mgt eq 'ipmi') {
deploy_bmc_node($callback, $doreq, $node);
} elsif (($mgt eq 'blade') || ($mgt eq 'fsp')) {
deploy_blade($callback, $doreq, $node);
} elsif ($mgt eq 'hmc') {
deploy_hmc_node($callback, $doreq, $node);
} else {
my $rsp;
push @{$rsp->{data}}, "Node $node: nodehm.mgt=$mgt is not supported in the OpenStack cloud.";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
} else {
#nodehm.mgt must setup for node
my $rsp;
push @{$rsp->{data}}, "Node $node: nodehm.mgt cannot be empty in order to deploy.";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
}
# Deploy a rack-mounted node
sub deploy_bmc_node {
my $callback = shift;
my $doreq = shift;
my $node = shift;
#set boot order
my $cmd = qq~net~;
my $output = xCAT::Utils->runxcmd(
{command => ["rsetboot"],
node => [$node],
arg => [$cmd]},
$doreq, -1, 1);
if ($::RUNCMD_RC != 0) {
my $rsp;
push @{$rsp->{data}}, "rsetboot:";
push @{$rsp->{data}}, "$output";
xCAT::MsgUtils->message("E", $rsp, $callback);
}
#reboot the node
my $cmd = qq~boot~;
my $output = xCAT::Utils->runxcmd(
{command => ["rpower"],
node => [$node],
arg => [$cmd]},
$doreq, -1, 1);
if ($::RUNCMD_RC != 0) {
my $rsp;
push @{$rsp->{data}}, "rpower:";
push @{$rsp->{data}}, "$output";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
}
# Deploy a blade or fsp controlled node
sub deploy_blade {
my $callback = shift;
my $doreq = shift;
my $node = shift;
#set boot order
my $cmd = qq~net~;
my $output = xCAT::Utils->runxcmd(
{command => ["rbootseq"],
node => [$node],
arg => [$cmd]},
$doreq, -1, 1);
if ($::RUNCMD_RC != 0) {
my $rsp;
push @{$rsp->{data}}, "rbootseq:";
push @{$rsp->{data}}, "$output";
xCAT::MsgUtils->message("E", $rsp, $callback);
}
#reboot the node
my $cmd = qq~boot~;
my $output = xCAT::Utils->runxcmd(
{command => ["rpower"],
node => [$node],
arg => [$cmd]},
$doreq, -1, 1);
if ($::RUNCMD_RC != 0) {
my $rsp;
push @{$rsp->{data}}, "rpower:";
push @{$rsp->{data}}, "$output";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
}
# Deploy a node controlled by HMC
sub deploy_hmc_node {
my $callback = shift;
my $doreq = shift;
my $node = shift;
my $output = xCAT::Utils->runxcmd(
{command => ["rnetboot"],
node => [$node]},
$doreq, -1, 1);
if ($::RUNCMD_RC != 0) {
my $rsp;
push @{$rsp->{data}}, "rnetboot:";
push @{$rsp->{data}}, "$output";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
}
#-------------------------------------------------------------------------------
=head3 cleanup_ops_bm_node
This is a internel command called by OpenStack xCAT-baremetal driver.
It undoes all the changes made by deploy_ops_bm_node command. It removes
the config_ops_bmn_ode postbootscript from the postscript table for the
node, removes the alias ip and then power off the node.
=cut
#-------------------------------------------------------------------------------
sub cleanup_ops_bm_node {
my $request = shift;
my $callback = shift;
my $doreq = shift;
@ARGV = @{$request->{arg}};
Getopt::Long::Configure("bundling");
Getopt::Long::Configure("no_pass_through");
my $node = $request->{node}->[0];
my $help;
my $version;
my $fixed_ip;
if(!GetOptions(
'h|help' => \$help,
'v|version' => \$version,
'ip=s' => \$fixed_ip,
))
{
&cleanup_ops_bm_node_usage($callback);
return 1;
}
# display the usage if -h or --help is specified
if ($help) {
&cleanup_ops_bm_node_usage($callback);
return 0;
}
# display the version statement if -v or --verison is specified
if ($version)
{
my $rsp={};
$rsp->{data}->[0]= xCAT::Utils->Version();
$callback->($rsp);
return 0;
}
#print "node=$node, ip=$fixed_ip\n";
#removes the config_ops_bm_node postbootscript from the postscripts table
remove_postscript($callback, $node, "config_ops_bm_node");
#run updatenode to remove the ip alias
my $cmd = qq~-P deconfig_ops_bm_node $fixed_ip~;
my $output = xCAT::Utils->runxcmd(
{command => ["updatenode"],
node => [$node],
arg => [$cmd]},
$doreq, -1, 1);
if ($::RUNCMD_RC != 0) {
my $rsp;
push @{$rsp->{data}}, "updatenode:";
push @{$rsp->{data}}, "$output";
xCAT::MsgUtils->message("E", $rsp, $callback);
}
#turn the node power off
$ssh_ok = 0;
my $cmd = qq~stat~;
my $output = xCAT::Utils->runxcmd(
{command => ["rpower"],
node => [$node],
arg => [$cmd]},
$doreq, -1, 1);
if ($::RUNCMD_RC != 0) {
my $rsp;
push @{$rsp->{data}}, "rpower:";
push @{$rsp->{data}}, "$output";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
} else {
if ($output !~ /: off/) {
#power off the node
my $cmd = qq~off~;
my $output = xCAT::Utils->runxcmd(
{command => ["rpower"],
node => [$node],
arg => [$cmd]},
$doreq, -1, 1);
if ($::RUNCMD_RC != 0) {
my $rsp;
push @{$rsp->{data}}, "rpower:";
push @{$rsp->{data}}, "$output";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
}
}
}
#-------------------------------------------------------
=head3 add_postscript
It adds the 'config_ops_bm_node' postbootscript to the
postscript table for the given node.
=cut
#-------------------------------------------------------
sub add_postscript {
my $callback=shift;
my $node=shift;
my $script=shift;
#print "script=$script\n";
my $posttab=xCAT::Table->new("postscripts", -create =>1);
my %setup_hash;
my $ref = $posttab->getNodeAttribs($node,[qw(postscripts postbootscripts)]);
my $found=0;
if ($ref) {
if (exists($ref->{postscripts})) {
my @a = split(/,/, $ref->{postscripts});
if (grep(/^config_ops_bm_node/, @a)) {
$found = 1;
if (!grep(/^$script$/, @a)) {
#not exact match, must replace it with the new script
for (@a) {
s/^config_ops_bm_node.*$/$script/;
}
my $new_post = join(',', @a);
$setup_hash{$node}={postscripts=>"$new_post"};
}
}
}
if (exists($ref->{postbootscripts})) {
my $post=$ref->{postbootscripts};
my @old_a=split(',', $post);
if (grep(/^config_ops_bm_node/, @old_a)) {
if (!grep(/^$script$/, @old_a)) {
#not exact match, will replace it with new script
for (@old_a) {
s/^config_ops_bm_node.*$/$script/;
}
my $new_postboot = join(',', @old_a);
$setup_hash{$node}={postbootscripts=>"$new_postboot"};
}
} else {
if (! $found) {
$setup_hash{$node}={postbootscripts=>"$post,$script"};
}
}
} else {
if (! $found) {
$setup_hash{$node}={postbootscripts=>"$script"};
}
}
} else {
$setup_hash{$node}={postbootscripts=>"$script"};
}
if (keys(%setup_hash) > 0) {
$posttab->setNodesAttribs(\%setup_hash);
}
return 0;
}
#-------------------------------------------------------
=head3 remove_postscript
It removes the 'config_ops_bm_node' postbootscript from
the postscript table for the given node.
=cut
#-------------------------------------------------------
sub remove_postscript {
my $callback=shift;
my $node=shift;
my $script=shift;
my $posttab=xCAT::Table->new("postscripts", -create =>1);
my %setup_hash;
my $ref = $posttab->getNodeAttribs($node,[qw(postscripts postbootscripts)]);
my $found=0;
if ($ref) {
if (exists($ref->{postscripts})) {
my @old_a = split(/,/, $ref->{postscripts});
my @new_a = grep(!/^$script/, @old_a);
if (scalar(@new_a) != scalar(@old_a)) {
my $new_post = join(',', @new_a);
$setup_hash{$node}={postscripts=>"$new_post"};
}
}
if (exists($ref->{postbootscripts})) {
my @old_b = split(/,/, $ref->{postbootscripts});
my @new_b = grep(!/^$script/, @old_b);
if (scalar(@new_b) != scalar(@old_b)) {
my $new_post = join(',', @new_b);
$setup_hash{$node}={postbootscripts=>"$new_post"};
}
}
}
if (keys(%setup_hash) > 0) {
$posttab->setNodesAttribs(\%setup_hash);
}
return 0;
}
#-------------------------------------------------------------------------------
=head3 opsaddbmnode_usage
The usage text for opsaddbmnode command.
=cut
#-------------------------------------------------------------------------------
sub opsaddbmnode_usage {
my $cb=shift;
my $rsp={};
$rsp->{data}->[0]= "Usage: opsaddbmnode -h";
$rsp->{data}->[1]= " opsaddbmnode -v";
$rsp->{data}->[2]= " opsaddbmnode <noderange> -s <service_host> [-V]";
$cb->($rsp);
}
#-------------------------------------------------------------------------------
=head3 opsaddimage_usage
The usage text for opsaddimage command.
=cut
#-------------------------------------------------------------------------------
sub opsaddimage_usage {
my $cb=shift;
my $rsp={};
$rsp->{data}->[0]= "Usage: opsaddimage -h";
$rsp->{data}->[1]= " opsaddimage -v";
$rsp->{data}->[2]= " opsaddimage <image1,image2...> [-n <new_name1,new_name2...> -c <controller> [-V]";
$cb->($rsp);
}
#-------------------------------------------------------------------------------
=head3 deploy_ops_bm_node_usage
The usage text for deploy_ops_bm_node command.
=cut
#-------------------------------------------------------------------------------
sub deploy_ops_bm_node_usage {
my $cb=shift;
my $rsp={};
$rsp->{data}->[0]= "Usage: deploy_ops_bm_node -h";
$rsp->{data}->[1]= " deploy_ops_bm_node -v";
$rsp->{data}->[2]= " deploy_ops_bm_node <node> --image <image_name> --host <ops_hostname> --ip <ops_fixed_ip> --mask <netmask>";
$cb->($rsp);
}
#-------------------------------------------------------------------------------
=head3 cleanup_ops_bm_node_usage
The usage text cleanup_ops_bm_node command.
=cut
#-------------------------------------------------------------------------------
sub cleanup_ops_bm_node_usage {
my $cb=shift;
my $rsp={};
$rsp->{data}->[0]= "Usage: cleanup_ops_bm_node -h";
$rsp->{data}->[1]= " cleanup_ops_bm_node -v";
$rsp->{data}->[2]= " cleanup_ops_bm_node <node> [--ip <ops_fixed_ip>]";
$cb->($rsp);
}
1;
@@ -1,17 +0,0 @@
# Copyright (c) 2012 NTT DOCOMO, INC.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from xcat.openstack.baremetal import driver
BareMetalDriver = driver.xCATBareMetalDriver
@@ -1,256 +0,0 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
# coding=utf-8
"""
A driver for Bare-metal platform.
"""
from oslo.config import cfg
from nova.compute import power_state
from nova import context as nova_context
from nova import exception
from nova.openstack.common import excutils
from nova.openstack.common.gettextutils import _
from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
from nova.virt.baremetal import baremetal_states
from nova.virt.baremetal import db
from nova.virt.baremetal import driver as bm_driver
from nova.virt.baremetal import utils as bm_utils
from nova.virt import driver
from nova.virt import firewall
from nova.virt.libvirt import imagecache
from xcat.openstack.baremetal import xcat_driver
from xcat.openstack.baremetal import exception as xcat_exception
from xcat.openstack.baremetal import power_states
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
CONF.import_opt('use_ipv6', 'nova.netconf')
class xCATBareMetalDriver(bm_driver.BareMetalDriver):
"""BareMetal hypervisor driver."""
def __init__(self, virtapi, read_only=False):
super(xCATBareMetalDriver, self).__init__(virtapi)
self.xcat = xcat_driver.xCAT()
def _get_xCAT_image_name(self, image_meta):
prop = image_meta.get('properties')
xcat_image_name = prop.get('xcat_image_name')
if xcat_image_name:
return xcat_image_name
else:
raise xcat_exception.xCATInvalidImageError(image=image_meta.get('name'))
def spawn(self, context, instance, image_meta, injected_files,
admin_password, network_info=None, block_device_info=None):
"""
Create a new instance/VM/domain on the virtualization platform.
Once this successfully completes, the instance should be
running (power_state.RUNNING).
If this fails, any partial instance should be completely
cleaned up, and the virtualization platform should be in the state
that it was before this call began.
:param context: security context
:param instance: Instance object as returned by DB layer.
This function should use the data there to guide
the creation of the new instance.
:param image_meta: image object returned by nova.image.glance that
defines the image from which to boot this instance
:param injected_files: User files to inject into instance.
:param admin_password: Administrator password to set in instance.
:param network_info:
:py:meth:`~nova.network.manager.NetworkManager.get_instance_nw_info`
:param block_device_info: Information about block devices to be
attached to the instance.
"""
#import pdb
#pdb.set_trace()
node_uuid = self._require_node(instance)
node = db.bm_node_associate_and_update(context, node_uuid,
{'instance_uuid': instance['uuid'],
'instance_name': instance['hostname'],
'task_state': baremetal_states.BUILDING})
try:
self._plug_vifs(instance, network_info, context=context)
self._attach_block_devices(instance, block_device_info)
self._start_firewall(instance, network_info)
macs = self.macs_for_instance(instance)
nodename = self.xcat.get_xcat_node_name(macs)
imagename = self._get_xCAT_image_name(image_meta)
hostname = instance.get('hostname')
#get the network information for the new node
interfaces = bm_utils.map_network_interfaces(network_info, CONF.use_ipv6)
if CONF.use_ipv6:
fixed_ip = interfaces[0].get('address_v6')
netmask = interfaces[0].get('netmask_v6')
gateway = interfaces[0].get('gateway_v6')
else:
fixed_ip = interfaces[0].get('address')
netmask = interfaces[0].get('netmask')
gateway = interfaces[0].get('gateway')
#convert netmask from IPAddress to unicode string
if netmask:
netmask = unicode(netmask)
#let xCAT install it
bm_driver._update_state(context, node, instance, baremetal_states.DEPLOYING)
self.xcat.deploy_node(nodename, imagename, hostname, fixed_ip, netmask, gateway)
bm_driver._update_state(context, node, instance, baremetal_states.ACTIVE)
except Exception as e:
with excutils.save_and_reraise_exception():
LOG.error(_("Error occured while deploying instance %(instance)s "
"on baremetal node %(node)s: %(error)s") %
{'instance': instance['uuid'],
'node': node['uuid'],
'error':str(e)})
bm_driver._update_state(context, node, instance, baremetal_states.ERROR)
def reboot(self, context, instance, network_info, reboot_type,
block_device_info=None, bad_volumes_callback=None):
"""Reboot the specified instance.
After this is called successfully, the instance's state
goes back to power_state.RUNNING. The virtualization
platform should ensure that the reboot action has completed
successfully even in cases in which the underlying domain/vm
is paused or halted/stopped.
:param instance: Instance object as returned by DB layer.
:param network_info:
:py:meth:`~nova.network.manager.NetworkManager.get_instance_nw_info`
:param reboot_type: Either a HARD or SOFT reboot
:param block_device_info: Info pertaining to attached volumes
:param bad_volumes_callback: Function to handle any bad volumes
encountered
"""
try:
node = bm_driver._get_baremetal_node_by_instance_uuid(instance['uuid'])
macs = self.macs_for_instance(instance)
nodename = self.xcat.get_xcat_node_name(macs)
self.xcat.reboot_node(nodename)
bm_driver._update_state(context, node, instance, baremetal_states.RUNNING)
except xcat_exception.xCATCommandError as e:
with excutils.save_and_reraise_exception():
LOG.error(_("Error occured while rebooting instance %(instance)s "
"on baremetal node %(node)s: %(error)s") %
{'instance': instance['uuid'],
'node': node['uuid'],
'error':str(e)})
bm_driver._update_state(context, node, instance, baremetal_states.ERROR)
def destroy(self, instance, network_info, block_device_info=None,
context=None):
"""Destroy (shutdown and delete) the specified instance.
If the instance is not found (for example if networking failed), this
function should still succeed. It's probably a good idea to log a
warning in that case.
:param context: security context
:param instance: Instance object as returned by DB layer.
:param network_info:
:py:meth:`~nova.network.manager.NetworkManager.get_instance_nw_info`
:param block_device_info: Information about block devices that should
be detached from the instance.
:param destroy_disks: Indicates if disks should be destroyed
"""
#import pdb
#pdb.set_trace()
context = nova_context.get_admin_context()
try:
node = bm_driver._get_baremetal_node_by_instance_uuid(instance['uuid'])
except exception.InstanceNotFound:
LOG.warning(_("Destroy function called on a non-existing instance %s")
% instance['uuid'])
return
try:
macs = self.macs_for_instance(instance)
nodename = self.xcat.get_xcat_node_name(macs)
interfaces = bm_utils.map_network_interfaces(network_info, CONF.use_ipv6)
fixed_ip=None
if interfaces and interfaces[0]:
if CONF.use_ipv6:
fixed_ip = interfaces[0].get('address_v6')
else:
fixed_ip = interfaces[0].get('address')
if fixed_ip:
self.xcat.cleanup_node(nodename, fixed_ip)
else:
self.xcat.cleanup_node(nodename)
except Exception as e:
#just log it and move on
LOG.warning(_("Destroy called with xCAT error:" + str(e)))
try:
self._detach_block_devices(instance, block_device_info)
self._stop_firewall(instance, network_info)
self._unplug_vifs(instance, network_info)
bm_driver._update_state(context, node, None, baremetal_states.DELETED)
except Exception as e:
with excutils.save_and_reraise_exception():
LOG.error(_("Error occurred while destroying instance %s: %s")
% (instance['uuid'], str(e)))
bm_driver._update_state(context, node, instance,
baremetal_states.ERROR)
def power_off(self, instance, node=None):
"""Power off the specified instance."""
macs = self.macs_for_instance(instance)
nodename = self.xcat.get_xcat_node_name(macs)
self.xcat.power_off_node(nodename)
def power_on(self, context, instance, network_info, block_device_info=None,
node=None):
"""Power on the specified instance."""
macs = self.macs_for_instance(instance)
nodename = self.xcat.get_xcat_node_name(macs)
self.xcat.power_on_node(nodename)
def get_console_output(self, instance):
pass
def get_info(self, instance):
"""Get the current status of an instance, by name (not ID!)
Returns a dict containing:
:state: the running state, one of the power_state codes
:max_mem: (int) the maximum memory in KBytes allowed
:mem: (int) the memory in KBytes used by the domain
:num_cpu: (int) the number of virtual CPUs for the domain
:cpu_time: (int) the CPU time used in nanoseconds
"""
node = bm_driver._get_baremetal_node_by_instance_uuid(instance['uuid'])
macs = self.macs_for_instance(instance)
nodename = self.xcat.get_xcat_node_name(macs)
ps = self.xcat.get_node_power_state(nodename)
if ps == power_states.ON:
pstate = power_state.RUNNING
elif ps == power_states.OFF:
pstate = power_state.SHUTDOWN
else:
pstate = power_state.NOSTATE
return {'state': pstate,
'max_mem': node['memory_mb'],
'mem': node['memory_mb'],
'num_cpu': node['cpus'],
'cpu_time': 0}
@@ -1,41 +0,0 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
"""xCAT baremtal exceptions.
"""
import functools
import sys
from oslo.config import cfg
import webob.exc
from nova.openstack.common import excutils
from nova.openstack.common.gettextutils import _
from nova.openstack.common import log as logging
from nova import safe_utils
from nova import exception as nova_exception
LOG = logging.getLogger(__name__)
class xCATException(Exception):
errmsg = _("xCAT general exception")
def __init__(self, errmsg=None, **kwargs):
if not errmsg:
errmsg = self.errmsg
errmsg = errmsg % kwargs
super(xCATException, self).__init__(errmsg)
class xCATCommandError(xCATException):
errmsg = _("Error returned when calling xCAT command %(cmd)s"
" for node %(node)s:%(error)s")
class xCATInvalidImageError(xCATException):
errmsg = _("The image %(image)s is not an xCAT image")
class xCATDeploymentFailure(xCATException):
errmsg = _("xCAT node deployment failed for node %(node)s:%(error)s")
class xCATRebootFailure(xCATException):
errmsg = _("xCAT node rebooting failed for node %(node)s:%(error)s")
@@ -1,9 +0,0 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
"""
Possible xCAT node power states.
"""
OFF = 'off'
ON = 'on'
ERROR = 'error'
@@ -1,260 +0,0 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
# coding=utf-8
"""
Baremetal xCAT power manager.
"""
import os
import sys
import stat
from oslo.config import cfg
import datetime
from nova import context as nova_context
from nova.virt.baremetal import baremetal_states
from nova.openstack.common.gettextutils import _
from nova.openstack.common import log as logging
from nova.openstack.common import loopingcall
from nova.openstack.common import timeutils
from nova import paths
from nova import utils
from xcat.openstack.baremetal import exception
from xcat.openstack.baremetal import power_states
LOG = logging.getLogger(__name__)
# register configuration options
xcat_opts = [
cfg.IntOpt('deploy_timeout',
help='Timeout for node deployment. Default: 0 second (unlimited)',
default=0),
cfg.IntOpt('reboot_timeout',
help='Timeout for rebooting a node. Default: 0 second (unlimited)',
default=0),
cfg.IntOpt('deploy_checking_interval',
help='Checking interval for node deployment. Default: 10 seconds',
default=10),
cfg.IntOpt('reboot_checking_interval',
help='Checking interval for rebooting a node. Default: 5 seconds',
default=5),
]
xcat_group = cfg.OptGroup(name='xcat',
title='xCAT Options')
CONF = cfg.CONF
CONF.register_group(xcat_group)
CONF.register_opts(xcat_opts, xcat_group)
class xCAT(object):
"""A driver that calls xCAT funcions"""
def __init__(self):
#setup the path for xCAT commands
#xcatroot = os.getenv('XCATROOT', '/opt/xcat/')
#sys.path.append("%s/bin" % xcatroot)
#sys.path.append("%s/sbin" % xcatroot)
pass
def _exec_xcat_command(self, command):
"""Calls xCAT command."""
args = command.split(" ")
out, err = utils.execute(*args, run_as_root=True)
LOG.debug(_("xCAT command stdout: '%(out)s', stderr: '%(err)s'"),
{'out': out, 'err': err})
return out, err
def get_xcat_node_name(self, macs):
"""Get the xcat node name given mac addressed.
It uses the mac address to search for the node name in xCAT.
"""
for mac in macs:
out, err = self._exec_xcat_command("lsdef -w mac=%s" % mac)
if out:
return out.split(" ")[0]
errstr='No node found in xCAT with the following mac address: ' \
+ ','.join(macs)
LOG.warning(errstr)
raise exception.xCATCommandError(errstr)
def deploy_node(self, nodename, imagename, hostname, fixed_ip, netmask, gateway):
"""
Install the node.
It calls xCAT command deploy_ops_bmnode which prepares the node
by adding the config_ops_bm_node postbootscript to the postscript
table for the node, then call nodeset and then boot the node up.
"""
out, err = self._exec_xcat_command(
"deploy_ops_bm_node %(node)s --image %(image)s"
" --host %(host)s --ip %(ip)s --mask %(mask)s"
% {'node': nodename,
'image': imagename,
'host': hostname,
'ip': fixed_ip,
'mask': netmask,
})
if err:
errstr = _("Error returned when calling xCAT deploy_ops_bm_node"
" command for node %s:%s") % (nodename, err)
LOG.warning(errstr)
raise exception.xCATCommandError(errstr)
self._wait_for_node_deploy(nodename)
def cleanup_node(self, nodename, fixed_ip=None):
"""
Undo all the changes made to the node by deploy_node function.
It calls xCAT command cleanup_ops_bm_node which removes the
config_ops_bm_node postbootscript from the postscript table
for the node, removes the alias ip and then power the node off.
"""
cmd = "cleanup_ops_bm_node %s" % nodename
if fixed_ip:
cmd += " --ip %s" % fixed_ip
out, err = self._exec_xcat_command(cmd)
if err:
errstr = _("Error returned when calling xCAT cleanup_ops_bm_node"
" command for node %s:%s") % (nodename, err)
LOG.warning(errstr)
raise exception.xCATCommandError(errstr)
def power_on_node(self, nodename):
"""Power on the node."""
state = self.get_node_power_state(nodename)
if state == power_states.ON:
LOG.warning(_("Powring on node called, but the node %s "
"is already on") % nodename)
out, err = self._exec_xcat_command("rpower %s on" % nodename)
if err:
errstr = _("Error returned when calling xCAT rpower on"
" for node %s:%s") % (nodename, err)
LOG.warning(errstr)
raise exception.xCATCommandError(errstr)
else:
self._wait_for_node_reboot(nodename)
return power_states.ON
def power_off_node(self, nodename):
"""Power off the node."""
state = self.get_node_power_state(nodename)
if state == power_states.OFF:
LOG.warning(_("Powring off node called, but the node %s "
"is already off") % nodename)
out, err = self._exec_xcat_command("rpower %s off" % nodename)
if err:
errstr = _("Error returned when calling xCAT rpower off"
" for node %s:%s") % (nodename, err)
LOG.warning(errstr)
raise exception.xCATCommandError(errstr)
else:
return power_states.OFF
def reboot_node(self, nodename):
"""Reboot the node."""
out, err = self._exec_xcat_command("rpower %s boot" % nodename)
if err:
errstr = _("Error returned when calling xCAT rpower boot"
" for node %s:%s") % (nodename, err)
LOG.warning(errstr)
raise exception.xCATCommandError(errstr)
self._wait_for_node_reboot(nodename)
return power_states.ON
def get_node_power_state(self, nodename):
out, err = self._exec_xcat_command("rpower %s stat" % nodename)
if err:
errstr = _("Error returned when calling xCAT rpower stat"
" for node %s:%s") % (nodename, err)
LOG.warning(errstr)
raise exception.xCATCommandError(errstr)
else:
state = out.split(":")[1]
if state:
state = state.strip()
if state == 'on':
return power_states.ON
elif state == 'off':
return power_states.OFF
return power_states.ERROR
def _wait_for_node_deploy(self, nodename):
"""Wait for xCAT node deployment to complete."""
locals = {'errstr':''}
def _wait_for_deploy():
out,err = self._exec_xcat_command("nodels %s nodelist.status" % nodename)
if err:
locals['errstr'] = _("Error returned when quering node status"
" for node %s:%s") % (nodename, err)
LOG.warning(locals['errstr'])
raise loopingcall.LoopingCallDone()
if out:
node,status = out.split(": ")
status = status.strip()
if status == "booted":
LOG.info(_("Deployment for node %s completed.")
% nodename)
raise loopingcall.LoopingCallDone()
if (CONF.xcat.deploy_timeout and
timeutils.utcnow() > expiration):
locals['errstr'] = _("Timeout while waiting for"
" deployment of node %s.") % nodename
LOG.warning(locals['errstr'])
raise loopingcall.LoopingCallDone()
expiration = timeutils.utcnow() + datetime.timedelta(
seconds=CONF.xcat.deploy_timeout)
timer = loopingcall.FixedIntervalLoopingCall(_wait_for_deploy)
# default check every 10 seconds
timer.start(interval=CONF.xcat.deploy_checking_interval).wait()
if locals['errstr']:
raise exception.xCATDeploymentFailure(locals['errstr'])
def _wait_for_node_reboot(self, nodename):
"""Wait for xCAT node boot to complete."""
locals = {'errstr':''}
def _wait_for_reboot():
out,err = self._exec_xcat_command("nodestat %s" % nodename)
if err:
locals['errstr'] = _("Error returned when quering node status"
" for node %s:%s") % (nodename, err)
LOG.warning(locals['errstr'])
raise loopingcall.LoopingCallDone()
if out:
node,status = out.split(": ")
status = status.strip()
if status == "sshd":
LOG.info(_("Rebooting node %s completed.")
% nodename)
raise loopingcall.LoopingCallDone()
if (CONF.xcat.reboot_timeout and
timeutils.utcnow() > expiration):
locals['errstr'] = _("Timeout while waiting for"
" rebooting node %s.") % nodename
LOG.warning(locals['errstr'])
raise loopingcall.LoopingCallDone()
expiration = timeutils.utcnow() + datetime.timedelta(
seconds=CONF.xcat.reboot_timeout)
timer = loopingcall.FixedIntervalLoopingCall(_wait_for_reboot)
# default check every 5 seconds
timer.start(interval=CONF.xcat.reboot_checking_interval).wait()
if locals['errstr']:
raise exception.xCATRebootFailure(locals['errstr'])
@@ -1,92 +0,0 @@
=head1 NAME
B<opsaddbmnode> - It adds xCAT baremetal nodes to an OpenStack cloud.
=head1 SYNOPSIS
B<opsaddbmnode> I<noderange> B<-s> I<service_host> [B<-V>|B<--verbose>]
B<opsaddbmnode> [B<-h>|B<--help>]
B<opsaddbmnode> [B<-v>|B<--version>]
=head1 DESCRIPTION
The B<opsaddbmnode> command registers xCAT nodes to an OpenStack cloud. An OpenStack nova baremetal node registration command takes several node attributes:
=over
=item BMC ip addresss, user id and password
=item Name of nova compute host which will control this baremetal node
=item Number of CPUs in the node
=item Memory in the node (MB)
=item Local hard disk in the node (GB)
=item MAC address to provision the node
=back
The opsaddbmnode command pulls the above baremetal node information from xCAT tables and calls "nova baremetal-node-create" to register the baremetal node with the OpenStack cloud.
Please make sure the following xCAT tables are filled with correct information for the given nodes before calling this command.
=over
=item ipmi (for BMC ip addresss, user id and password)
=item mac (for MAC address)
=item hwinv (for CPU, memory and disk info.)
=back
=head1 Parameters
I<noderage> is a comma separated node or node group names.
=head1 OPTIONS
=over 10
=item B<-s> The node name of the OpenStack compute host that hosts the baremetal nodes.
=item B<-h|--help> Display usage message.
=item B<-v|--version> The Command Version.
=item B<-V|--verbose> Verbose output.
=back
=head1 RETURN VALUE
0 The command completed successfully.
1 An error has occurred.
=head1 EXAMPLES
=over 3
=item 1
To register node1, node2 and node3 to OpenStack, sv1 is the compute host.
opsassbmnode node1,node2,node3 -s sv1
=back
=head1 FILES
/opt/xcat/bin/opadddbmnode
=head1 SEE ALSO
L<opsaddimage(1)|opsaddimage.1>
@@ -1,67 +0,0 @@
=head1 NAME
B<opsaddimage> - It adds or removes nodes for the vlan.
=head1 SYNOPSIS
B<opsaddimage> I<image1,image2,...> B<-n> I<new_name1,new_name2,...> [B<-c> I<controller>] [B<-V>|B<--verbose>]
B<opsaddimage> [B<-h>|B<--help>]
B<opsaddimage> [B<-v>|B<--version>]
=head1 DESCRIPTION
The B<opsaddimage> command adds a list of xCAT images into the OpenStack cloud.
Under the cover, it creates a fake image and registers the fake image into OpenStack with command B<glance image-create>. It sets the property in the image to indicate that this is an xCAT image and also stores the original xCAT image name in the property for further reference.
The xCAT image names can be listed using B<lsdef -t osimage> command.
=head1 Parameters
I<image1,image1...> a comma separated xCAT images names.
=head1 OPTIONS
=over 10
=item B<-n> a comma separated new image names in the OpenStack. If omitted, the default is the original xCAT image nanme.
=item B<-c> the node name of the OpenStack controller. This node must be an xCAT managed node.
=item B<-h|--help> Display usage message.
=item B<-v|--version> The Command Version.
=item B<-V|--verbose> Verbose output.
=back
=head1 RETURN VALUE
0 The command completed successfully.
1 An error has occurred.
=head1 EXAMPLES
=over 3
=item 1.
To register xCAT image rhels6.3-x86_64-install-compute into OpenStack.
opsaddimage rhels6.3-x86_64-install-compute -c sv2
=back
=head1 FILES
/opt/xcat/bin/opsaddimage
=head1 SEE ALSO
L<opsaddbmnode(1)|opsaddbmnode.1>
@@ -1,215 +0,0 @@
#!/bin/sh
# IBM(c) 2014 EPL license http://www.eclipse.org/legal/epl-v10.html
# xCAT post script for configuring the openstack baremetal node.
# The format is:
# config_ops_bm_node ops_hostname ops_ip ops_netmask
get_os_type()
{
#get os type
str_os_type=`uname | tr 'A-Z' 'a-z'`
str_temp=''
if [ "$str_os_type" = "linux" ];then
str_temp=`echo $OSVER | grep -E '(sles|suse)'`
if [ -f "/etc/debian_version" ];then
str_os_type="debian"
elif [ -f "/etc/SuSE-release" -o -n "$str_temp" ];then
str_os_type="sles"
else
str_os_type="redhat"
fi
else
str_os_type="aix"
fi
echo "$str_os_type"
}
setup_ip()
{
str_os_type=$1
str_if_name=$2
str_v4ip=$3
str_v4mask=$4
ret=`ifconfig $str_if_name |grep "inet addr" 2>&1`
if [ $? -eq 0 ]; then
old_ip=`echo $ret|cut -d':' -f2 |cut -d' ' -f1`
old_mask=`echo $ret|cut -d':' -f4`
#echo "old ip = $old_ip, old mask=$old_mask"
if [ "$old_ip" == "$str_v4ip" -a "$old_mask" == "$str_v4mask" ]; then
#if nic is up and the address is the same, then donothing
#echo "do nothing"
exit 0
else
#bring down the nic and reconstruct it.
#echo "bring down the old nic"
ifconfig $str_if_name del $old_ip
fi
fi
if [ "$str_os_type" = "sles" ];then
str_conf_file="/etc/sysconfig/network/ifcfg-${str_if_name}"
if [ -f $str_conf_file ]; then
rm $str_conf_file
fi
echo "DEVICE=${str_if_name}" > $str_conf_file
echo "BOOTPROTO=static" >> $str_conf_file
echo "IPADDR=${str_v4ip}" >> $str_conf_file
echo "NETMASK=${str_v4mask}" >> $str_conf_file
echo "NETWORK=''" >> $str_conf_file
echo "STARTMODE=onboot" >> $str_conf_file
echo "USERCONTROL=no" >> $str_conf_file
ifup $str_if_name
#debian ubuntu
elif [ "$str_os_type" = "debian" ];then
str_conf_file="/etc/network/interfaces.d/${str_if_name}"
if [ -f $str_conf_file ]; then
rm $str_conf_file
fi
echo "auto ${str_if_name}" > $str_conf_file
echo "iface ${str_if_name} inet static" >> $str_conf_file
echo " address ${str_v4ip}" >> $str_conf_file
echo " netmask ${str_v4mask}" >> $str_conf_file
ifconfig $str_if_name up
else
# Write the info to the ifcfg file for redhat
str_conf_file="/etc/sysconfig/network-scripts/ifcfg-${str_if_name}"
if [ -f $str_conf_file ]; then
rm $str_conf_file
fi
echo "DEVICE=${str_if_name}" > $str_conf_file
echo "BOOTPROTO=static" >> $str_conf_file
echo "NM_CONTROLLED=no" >> $str_conf_file
echo "IPADDR=${str_v4ip}" >> $str_conf_file
echo "NETMASK=${str_v4mask}" >> $str_conf_file
echo "ONBOOT=yes" >> $str_conf_file
ifup $str_if_name
fi
}
#change hostname permanently
change_host_name()
{
str_os_type=$1
str_hostname=$2
hostname $str_hostname
if [ "$str_os_type" = "sles" ];then
echo "Persistently changing the hostname not implemented yet."
#debian ubuntu and rh7
elif [ -f "/etc/hostname" ];then
conf_file="/etc/hostname"
echo "$str_hostname" > $conf_file
else
conf_file="/etc/sysconfig/network"
if [ ! -f $conf_file ]; then
touch $conf_file
fi
grep 'HOSTNAME' $conf_file 2>&1 > /dev/null
if [ $? -eq 0 ]; then
sed -i "s/HOSTNAME=.*/HOSTNAME=$str_hostname/" $conf_file
else
echo "HOSTNAME=$str_hostname" >> $conf_file
fi
fi
}
str_os_type=$(get_os_type)
echo "os_type=$str_os_type"
if [ "$str_os_type" = "aix" ]; then
logger -t xcat "config_ops_bm_node dose not support AIX."
echo "config_ops_bm_node dose not support AIX."
exit 0
fi
#change the hostname
if [[ -n "$1" ]]; then
change_host_name $str_os_type $1
fi
#Add the openstack ip to the node
if [[ -n $2 ]]; then
ops_ip=$2
if [[ -z $3 ]]; then
logger -t xcat "config_ops_bm_node: Please specify the netmask."
echo "config_ops_bm_node: Please specify the netmask."
exit 1
else
ops_mask=$3
fi
#figure out the install nic
if [[ -n $MACADDRESS ]]; then
pos=0
#mac has the following format: 01:02:03:04:05:0E!node5|01:02:03:05:0F!node6-eth1
for x in `echo "$MACADDRESS" | tr "|" "\n"`
do
node=""
mac=""
pos=$((pos+1))
i=`expr index $x !`
if [[ $i -gt 0 ]]; then
node=`echo ${x##*!}`
mac_tmp=`echo ${x%%!*}`
else
mac_tmp=$x
fi
if [[ $pos -eq 1 ]]; then
mac1=$mac_tmp
fi
if [[ "$PRIMARYNIC" = "$mac_tmp" ]]; then
mac=$mac_tmp
break
fi
if [[ -z "$PRIMARYNIC" ]] || [[ "$PRIMARYNIC" = "mac" ]]; then
if [[ -z $node ]] || [[ "$node" = "$NODE" ]]; then
mac=$mac_tmp
break
fi
fi
done
if [[ -z $mac ]]; then
if [[ -z "$PRIMARYNIC" ]] || [[ "$PRIMARYNIC" = "mac" ]]; then
mac=$mac1 #if nothing mathes, take the first mac
else
nic=$PRIMARYNIC #or the primary nic itself is the nic
fi
fi
else
logger -t xcat "config_ops_bm_node: no mac addresses are defined in the mac table for the node $NODE"
echo "config_ops_bm_node: no mac addresses are defined in the mac table for the node $NODE"
index=$((index+1))
continue
fi
echo "mac=$mac"
#find the nic that has the mac
if [[ -z $nic ]]; then
#go to each nic to match the mac address
ret=`ifconfig |grep -i $mac 2>&1`;
if [ $? -eq 0 ]; then
nic=`echo $ret |head -n1|cut -d' ' -f 1`
else
logger -t xcat "config_ops_bm_node: The mac address for the network for $NODE is not defined."
echo "config_ops_bm_node: The mac address for the network for $NODE is not defined."
fi
fi
echo "nic=$nic"
#now setup the ip alias
setup_ip $str_os_type $nic:0 $ops_ip $ops_mask
fi
@@ -1,94 +0,0 @@
#!/bin/sh
# IBM(c) 2014 EPL license http://www.eclipse.org/legal/epl-v10.html
# xCAT post script for deconfiguring the openstack baremetal node.
# The format is:
# deconfig_ops_bm_node ops_ip
get_os_type()
{
#get os type
str_os_type=`uname | tr 'A-Z' 'a-z'`
str_temp=''
if [ "$str_os_type" = "linux" ];then
str_temp=`echo $OSVER | grep -E '(sles|suse)'`
if [ -f "/etc/debian_version" ];then
str_os_type="debian"
elif [ -f "/etc/SuSE-release" -o -n "$str_temp" ];then
str_os_type="sles"
else
str_os_type="redhat"
fi
else
str_os_type="aix"
fi
echo "$str_os_type"
}
#change hostname permanently
change_host_name()
{
str_os_type=$1
str_hostname=$2
hostname $str_hostname
if [ "$str_os_type" = "sles" ];then
echo "Persistently changing the hostname not implemented yet."
#debian ubuntu and rh7
elif [ -f "/etc/hostname" ];then
conf_file="/etc/hostname"
echo "$str_hostname" > $conf_file
else
conf_file="/etc/sysconfig/network"
if [ ! -f $conf_file ]; then
touch $conf_file
fi
grep 'HOSTNAME' $conf_file 2>&1 > /dev/null
if [ $? -eq 0 ]; then
sed -i "s/HOSTNAME=.*/HOSTNAME=$str_hostname/" $conf_file
else
echo "HOSTNAME=$str_hostname" >> $conf_file
fi
fi
}
str_os_type=$(get_os_type)
echo "os_type=$str_os_type"
if [ $str_os_type == "aix" ]; then
logger -t xcat "deconfig_ops_bm_node dose not support AIX."
echo "deconfig_ops_bm_node dose not support AIX."
exit 0
fi
#change the hostname
#hostname $NODE
change_host_name $str_os_type $NODE
#remove the openstack ip from the node
if [[ -n $1 ]]; then
ops_ip=$1
nic=$(ip addr | grep $ops_ip | awk '{print $NF}')
echo "nic=$nic, ops_ip=$ops_ip"
ifconfig $nic del $ops_ip
#delete the configuration file
if [ "$str_os_type" = "sles" ]; then
str_conf_file="/etc/sysconfig/network/ifcfg-$nic"
elif [ "$str_os_type" = "debian" ]; then #debian ubuntu
str_conf_file="/etc/network/interfaces.d/$nic"
else #redhat
str_conf_file="/etc/sysconfig/network-scripts/ifcfg-$nic"
fi
if [ -f $str_conf_file ]; then
rm $str_conf_file
fi
fi
@@ -1,102 +0,0 @@
Summary: Executables and data of the xCAT baremetal driver for OpenStack
Name: xCAT-OpenStack-baremetal
Version: %(cat Version)
Release: snap%(date +"%Y%m%d%H%M")
Epoch: 4
License: IBM
Group: Applications/System
Source: xCAT-OpenStack-baremetal-%{version}.tar.gz
Packager: IBM Corp.
Vendor: IBM Corp.
Distribution: %{?_distribution:%{_distribution}}%{!?_distribution:%{_vendor}}
Prefix: /opt/xcat
BuildRoot: /var/tmp/%{name}-%{version}-%{release}-root
%ifos linux
BuildArch: noarch
%endif
Provides: xCAT-OpenStack-baremetal = %{epoch}:%{version}
Requires: xCAT-client
%description
xCAT-OpenStack-baremetal provides the baremetal driver for OpenStack.
%prep
%setup -q -n xCAT-OpenStack-baremetal
%build
# Convert pods to man pages and html pages
./xpod2man
%install
# The install phase puts all of the files in the paths they should be in when the rpm is
# installed on a system. The RPM_BUILD_ROOT is a simulated root file system and usually
# has a value like: /var/tmp/xCAT-OpenStack-baremetal-2.0-snap200802270932-root
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/%{prefix}/bin
mkdir -p $RPM_BUILD_ROOT/%{prefix}/sbin
mkdir -p $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin
mkdir -p $RPM_BUILD_ROOT/%{prefix}/lib/python/xcat/openstack/baremetal
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/openstack/postscripts
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/man/man1
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/doc/man1
set +x
cp -R lib/* $RPM_BUILD_ROOT/%{prefix}/lib
cp share/xcat/openstack/postscripts/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/openstack/postscripts
# These were built dynamically in the build phase
cp share/man/man1/* $RPM_BUILD_ROOT/%{prefix}/share/man/man1
chmod 444 $RPM_BUILD_ROOT/%{prefix}/share/man/man1/*
# These were built dynamically during the build phase
cp share/doc/man1/* $RPM_BUILD_ROOT/%{prefix}/share/doc/man1
chmod 644 $RPM_BUILD_ROOT/%{prefix}/share/doc/man1/*
# These links get made in the RPM_BUILD_ROOT/prefix area
ln -sf ../bin/xcatclient $RPM_BUILD_ROOT/%{prefix}/sbin/deploy_ops_bm_node
ln -sf ../bin/xcatclient $RPM_BUILD_ROOT/%{prefix}/sbin/cleanup_ops_bm_node
ln -sf ../bin/xcatclient $RPM_BUILD_ROOT/%{prefix}/bin/opsaddbmnode
ln -sf ../bin/xcatclientnnr $RPM_BUILD_ROOT/%{prefix}/bin/opsaddimage
set -x
%clean
# This step does not happen until *after* the %files packaging below
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
#%doc LICENSE.html
# Just package everything that has been copied into RPM_BUILD_ROOT
%{prefix}
%changelog
%post
#copy the postscripts under /installl/postscripts directory on MN only
if [ -f "/etc/xCATMN" ]; then
cp $RPM_INSTALL_PREFIX0/share/xcat/openstack/postscripts/* /install/postscripts/
fi
%preun
#remove postscripts under /installl/postscripts directory on MN only
if [ -f "/etc/xCATMN" ]; then
for fn in $RPM_INSTALL_PREFIX0/share/xcat/openstack/postscripts/*
do
bn=`basename $fn`
rm /install/postscripts/$bn
done
fi
exit 0
-214
View File
@@ -1,214 +0,0 @@
#!/usr/bin/perl
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
# First builds the xCAT summary man page from Synopsis of each man page.
# Then converts all of the pod man pages into html (including links to each other)
# We assume that this script is run in the xCAT-vlan-2.0 dir, so everything is
# done relative to that.
use strict;
#use lib '.';
use Pod::Man;
use Pod::Html;
my $poddir = 'pods';
my $mandir = 'share/man';
my $htmldir = 'share/doc';
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;
$manfile =~ s/^$poddir/$mandir/; # change the beginning of the path
$manfile =~ s/\.pod$//; # change the ending
my $mdir = $manfile;
$mdir =~ s|/[^/]*$||; # get rid of the basename part
if (system("mkdir -p $mdir")) { die "Error: could not create $mdir.\n"; }
my ($section) = $podfile =~ /\.(\d+)\.pod$/;
convertpod2man($podfile, $manfile, $section);
}
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
unlink("$cachedir/pod2htmd.tmp", "$cachedir/pod2htmi.tmp");
foreach my $podfile (@pods) {
my $htmlfile = $podfile;
$htmlfile =~ s/^$poddir/$htmldir/; # change the beginning of the path
$htmlfile =~ s/\.pod$/\.html/; # change the ending
my $hdir = $htmlfile;
$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);
}
# Remove the dummy pods
unlink @dummyPods;
rmdir "$poddir/man7";
exit;
# To enable linking between the cmd man pages and the db man pages, need to:
# grep thru the cmd pods searching for references (L<>) to any section 5 man page
# if that pod does not exist, create an empty one that will satisfy pod2html
# keep track of all dummy pods created, so they can be removed later
sub createDummyPods {
my ($poddir, $pods) = @_;
my $cmd = "grep -r -E 'L<.+\\([57]\\)\\|.+\\.[57]>' " . $poddir;
#print "Running cmd: ", $cmd, "\n";
my @lines = `$cmd`;
if ($?) { print "Error running: $cmd\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; }
}
}
# Create these empty files
print "Creating empty linked-to files: ", join(', ', @dummyPods), "\n";
mkdir "$poddir/man7";
foreach my $d (@dummyPods) {
if (!open(TMP, ">>$d")) { warn "Could not create dummy pod file $d ($!)\n"; }
else { close TMP; }
}
return @dummyPods;
}
# Recursively get the list of pod man page files.
sub getPodList {
my $poddir = shift;
my @files;
# 1st get toplevel dir listing
opendir(DIR, $poddir) or die "Error: could not read $poddir.\n";
my @topdir = grep !/^\./, readdir(DIR); # /
close(DIR);
# Now go thru each subdir (these are man1, man3, etc.)
foreach my $mandir (@topdir) {
opendir(DIR, "$poddir/$mandir") or die "Error: could not read $poddir/$mandir.\n";
my @dir = grep !/^\./, readdir(DIR); # /
close(DIR);
foreach my $file (@dir) {
push @files, "$poddir/$mandir/$file";
}
}
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<xcat> - 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<xcatdb(5)|xcatdb.5> 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<within each section>,
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 = <MANPAGE>;
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<xcattest(1)|xcattest.1>\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) = @_;
#TODO: use --css=<stylesheet> and --title=<pagetitle> to make the pages look better
pod2html($podfile,
"--outfile=$htmlfile",
"--podpath=man1",
"--podroot=$poddir",
"--htmldir=$htmldir",
"--recurse",
"--cachedir=$cachedir",
);
}
# Create the man page for one pod.
sub convertpod2man {
my ($podfile, $manfile, $section) = @_;
my $parser = Pod::Man->new(section => $section);
$parser->parse_from_file($podfile, $manfile);
}
@@ -1,6 +0,0 @@
include AUTHORS
include ChangeLog
exclude .gitignore
exclude .gitreview
global-exclude *.pyc
@@ -1,44 +0,0 @@
xCAT Driver for ironic x86/64 machine
==================================
xCAT is a Extreme Cluster/Cloud Administration Toolkit. We can use xcat
to do :
1 hardward discoveery
2 remote hardware control
3 remote sonsole
4 hardware inventory
5 firmware flashing
Ironic is a project in Openstack, it will replace the nova-baremetal in juno release. Ironic's design is very flexable, we can add driver to extend function
without change any code in Openstack. Ironic xCAT driver takes the advantage of xcat and openstack, we can use it to deploy the baremetal machine very easily.
Before using this driver, we must setup the openstack environment at least for two nodes( ironic conductor and neutron network node can't setup on the same node)
Ironic conductor and the baremetal node( waiting for deploy) must in the same vlan
Add the follows in the ironic egg-info entry_points.txt file (ironic.drivers section)
pxe_xcat = ironic.drivers.xcat:XCATBaremetalDriver
When the openstack with ironic is ready, just execute command in the ironic_xcat directory as follows:
$ python setup.py install
Restart the ironic-conductor process
Initialize the xcat environment according to http://sourceforge.net/p/xcat/wiki/XCAT_iDataPlex_Cluster_Quick_Start/
Using xCAT baremetal driver need config site table and run copycds to generate image. The node definition is not requirement.
Ironic use neutron as the network service.
Check the openvswitch config on the network node ,make sure brbm bridge connect to the baremetal node.
==================================================================================
Some Example to use the xCAT baremetal driver.
$touch /tmp/rhelhpc6.5-x86_64-install-compute.qcow2;glance image-create --name rhelhpc6.5-x86_64-install-compute --public --disk-format qcow2 --container-format bare --property xcat_image_name='rhels6.4-x86_64-install-compute' < /tmp/rhelhpc6.5-x86_64-install-compute.qcow2
--name rhelhpc6.5-x86_64-install-compute is the image name in xcat. You can use lsdef -t osimage on the ironic-conductor node which xcat is installed.
$ ironic node-create --driver pxe_xcat -i ipmi_address=xxx.xxx.xxx.xxx -i ipmi_username=userid -i ipmi_password=password -i xcat_node=x3550m4n02 -i xcatmaster=10.1.0.241 -i netboot=xnba -i ipmi_terminal_port=0 -p memory_mb=2048 -p cpus=8
$ ironic port-create --address ff:ff:ff:ff:ff:ff --node_uuid <ironic node uuid>
$ nova boot --flavor baremetal --image <image-id> testing --nic net-id=<internal network id>
@@ -1,25 +0,0 @@
"""xCAT baremtal exceptions.
"""
from oslo.config import cfg
import six
from ironic.openstack.common.gettextutils import _
from ironic.openstack.common import log as logging
from ironic.common.exception import IronicException
LOG = logging.getLogger(__name__)
class xCATCmdFailure(IronicException):
message = _("xcat call failed: %(cmd)s %(node)s %(args)s.")
class xCATDeploymentFailure(IronicException):
message = _("xCAT node deployment failed for node %(node)s:%(error)s")
class GetNetworkFixedIPFailure(IronicException):
message = _("get fixed ip failed for mac %(mac_address)s")
class GetNetworkIdFailure(IronicException):
message = _("get node network in failed for mac %(mac_address)s")
class FailedToGetInfoOnPort(IronicException):
message = _("Show info on port: %(port_id)s failed.")
@@ -1,41 +0,0 @@
"""
Get the network from neutron
This is a xcat patch for the ironic/common/neutron.py
"""
from neutronclient.common import exceptions as neutron_client_exc
from ironic.common import exception
from ironic.openstack.common import log as logging
from ironic.common import neutron
from ironic.drivers.modules import xcat_exception
LOG = logging.getLogger(__name__)
def get_vif_port_info(task, port_id):
""" Get detail port info from neutron with a given port id """
api = neutron.NeutronAPI(task.context)
try:
port_info = api.client.show_port(port_id)
except neutron_client_exc.NeutronClientException:
LOG.exception(_("Failed to get port info %s."), port_id)
raise exception.FailedToGetInfoOnPort(port_id=port_id)
return port_info
def get_ports_info_from_neutron(task):
""" Get neutron port info from neutron about this task """
vifs = neutron.get_node_vif_ids(task)
if not vifs:
LOG.warning(_("No VIFs found for node %(node)s when attempting to "
"update Neutron DHCP BOOT options."),
{'node': task.node.uuid})
return
failures = []
vif_ports_info = {}
for port_id, port_vif in vifs.iteritems():
try:
vif_ports_info[port_id] = get_vif_port_info(task,port_vif)
except xcat_exception.FailedToGetInfoOnPort(port_id=port_vif):
failures.append(port_vif)
return vif_ports_info
@@ -1,462 +0,0 @@
"""
pxe procedure for the xcat baremetal driver
use xcat to config dhcp and tftp
"""
import os
import time
import paramiko
import datetime
from oslo.config import cfg
from ironic.common import exception
from ironic.common import image_service as service
from ironic.common import keystone
from ironic.common import states
from ironic.common import utils
from ironic.conductor import task_manager
from ironic.conductor import utils as manager_utils
from ironic.drivers import base
from ironic.drivers import utils as driver_utils
from ironic.openstack.common import log as logging
from ironic.openstack.common import strutils
from ironic.drivers.modules import xcat_neutron
from ironic.drivers.modules import xcat_util
from ironic.openstack.common import loopingcall
from nova.openstack.common import timeutils
from ironic.openstack.common import lockutils
from ironic.drivers.modules import xcat_exception
pxe_opts = [
cfg.StrOpt('pxe_append_params',
default='nofb nomodeset vga=normal',
help='Additional append parameters for baremetal PXE boot.'),
cfg.StrOpt('default_ephemeral_format',
default='ext4',
help='Default file system format for ephemeral partition, '
'if one is created.'),
]
xcat_opts = [
cfg.StrOpt('network_node_ip',
default='127.0.0.1',
help='IP address of neutron network node'),
cfg.StrOpt('ssh_user',
default='root',
help='Username of neutron network node.'),
cfg.StrOpt('ssh_password',
default='cluster',
help='Password of neutron network node'),
cfg.IntOpt('ssh_port',
default=22,
help='ssh connection port for the neutron '),
cfg.StrOpt('host_filepath',
default='/etc/hosts',
help='host file of server'),
cfg.IntOpt('deploy_timeout',
default=3600,
help='max depolyment time(seconds) for the xcat driver'),
cfg.IntOpt('deploy_checking_interval',
default=30,
help='interval time(seconds) to check the xcat deploy state'),
]
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
CONF.register_opts(pxe_opts, group='pxe')
CONF.register_opts(xcat_opts, group='xcat')
CONF.import_opt('use_ipv6', 'ironic.netconf')
REQUIRED_PROPERTIES = {
'pxe_deploy_kernel': _("UUID (from Glance) of the deployment kernel. "
"Required."),
'pxe_deploy_ramdisk': _("UUID (from Glance) of the ramdisk that is "
"mounted at boot time. Required."),
}
COMMON_PROPERTIES = REQUIRED_PROPERTIES
EM_SEMAPHORE = 'xcat_pxe'
def _check_for_missing_params(info_dict, param_prefix=''):
missing_info = []
for label, value in info_dict.items():
if not value:
missing_info.append(param_prefix + label)
if missing_info:
raise exception.InvalidParameterValue(_(
"Can not validate PXE bootloader. The following parameters "
"were not passed to ironic: %s") % missing_info)
def _parse_driver_info(node):
"""Gets the driver specific Node deployment info.
This method validates whether the 'driver_info' property of the
supplied node contains the required information for this driver to
deploy images to the node.
:param node: a single Node.
:returns: A dict with the driver_info values.
"""
info = node.driver_info
d_info = {}
d_info['xcat_node'] = info.get('xcat_node')
return d_info
def _parse_instance_info(node):
"""Gets the instance specific Node deployment info.
This method validates whether the 'instance_info' property of the
supplied node contains the required information for this driver to
deploy images to the node.
:param node: a single Node.
:returns: A dict with the instance_info values.
"""
info = node.instance_info
i_info = {}
i_info['image_source'] = info.get('image_source')
i_info['root_gb'] = info.get('root_gb')
i_info['image_file'] = i_info['image_source']
_check_for_missing_params(i_info)
# Internal use only
i_info['deploy_key'] = info.get('deploy_key')
i_info['swap_mb'] = info.get('swap_mb', 0)
i_info['ephemeral_gb'] = info.get('ephemeral_gb', 0)
i_info['ephemeral_format'] = info.get('ephemeral_format')
err_msg_invalid = _("Can not validate PXE bootloader. Invalid parameter "
"%(param)s. Reason: %(reason)s")
for param in ('root_gb', 'swap_mb', 'ephemeral_gb'):
try:
int(i_info[param])
except ValueError:
reason = _("'%s' is not an integer value.") % i_info[param]
raise exception.InvalidParameterValue(err_msg_invalid %
{'param': param, 'reason': reason})
if i_info['ephemeral_gb'] and not i_info['ephemeral_format']:
i_info['ephemeral_format'] = CONF.pxe.default_ephemeral_format
preserve_ephemeral = info.get('preserve_ephemeral', False)
try:
i_info['preserve_ephemeral'] = strutils.bool_from_string(
preserve_ephemeral, strict=True)
except ValueError as e:
raise exception.InvalidParameterValue(err_msg_invalid %
{'param': 'preserve_ephemeral', 'reason': e})
return i_info
def _parse_deploy_info(node):
"""Gets the instance and driver specific Node deployment info.
This method validates whether the 'instance_info' and 'driver_info'
property of the supplied node contains the required information for
this driver to deploy images to the node.
:param node: a single Node.
:returns: A dict with the instance_info and driver_info values.
"""
info = {}
info.update(_parse_instance_info(node))
info.update(_parse_driver_info(node))
return info
def _validate_glance_image(ctx, deploy_info):
"""Validate the image in Glance.
Check if the image exist in Glance and if it contains the
'kernel_id' and 'ramdisk_id' properties.
:raises: InvalidParameterValue.
"""
image_id = deploy_info['image_source']
if not image_id:
raise exception.ImageNotFound
class PXEDeploy(base.DeployInterface):
"""PXE Deploy Interface: just a stub until the real driver is ported."""
def get_properties(self):
return COMMON_PROPERTIES
def validate(self, task):
"""Validate the deployment information for the task's node.
:param task: a TaskManager instance containing the node to act on.
:raises: InvalidParameterValue.
"""
node = task.node
if not driver_utils.get_node_mac_addresses(task):
raise exception.InvalidParameterValue(_("Node %s does not have "
"any port associated with it.") % node.uuid)
d_info = _parse_deploy_info(node)
# Try to get the URL of the Ironic API
try:
# TODO(lucasagomes): Validate the format of the URL
CONF.conductor.api_url or keystone.get_service_url()
except (exception.CatalogFailure,
exception.CatalogNotFound,
exception.CatalogUnauthorized):
raise exception.InvalidParameterValue(_(
"Couldn't get the URL of the Ironic API service from the "
"configuration file or keystone catalog."))
_validate_glance_image(task.context, d_info)
@task_manager.require_exclusive_lock
def deploy(self, task):
"""Start deployment of the task's node'.
Config host file and xcat dhcp, generate image info for xcat
and issues a reboot request to the power driver.
This causes the node to boot into the deployment ramdisk and triggers
the next phase of PXE-based deployment via
VendorPassthru._continue_deploy().
:param task: a TaskManager instance containing the node to act on.
:returns: deploy state DEPLOYDONE.
"""
d_info = _parse_deploy_info(task.node)
if not task.node.instance_info.get('fixed_ip_address') or not task.node.instance_info.get('image_name'):
raise exception.InvalidParameterValue
self._config_host_file(d_info,task.node.instance_info.get('fixed_ip_address'))
self._make_dhcp()
self._nodeset_osimage(d_info,task.node.instance_info.get('image_name'))
manager_utils.node_set_boot_device(task, 'pxe', persistent=True)
manager_utils.node_power_action(task, states.REBOOT)
try:
self._wait_for_node_deploy(task)
except xcat_exception.xCATDeploymentFailure:
LOG.info(_("xcat deployment failed"))
return states.ERROR
return states.DEPLOYDONE
@task_manager.require_exclusive_lock
def tear_down(self, task):
"""Tear down a previous deployment on the task's node.
Power off the node. All actual clean-up is done in the clean_up()
method which should be called separately.
:param task: a TaskManager instance containing the node to act on.
:returns: deploy state DELETED.
"""
manager_utils.node_power_action(task, states.POWER_OFF)
return states.DELETED
def prepare(self, task):
"""Prepare the deployment environment for this task's node.
Get the image info from glance, config the mac for the xcat
use ssh and iptables to disable dhcp on network node
:param task: a TaskManager instance containing the node to act on.
"""
# TODO(deva): optimize this if rerun on existing files
d_info = _parse_deploy_info(task.node)
i_info = task.node.instance_info
image_id = d_info['image_source']
try:
glance_service = service.Service(version=1, context=task.context)
image_name = glance_service.show(image_id)['name']
i_info['image_name'] = image_name
except (exception.GlanceConnectionFailed,
exception.ImageNotAuthorized,
exception.Invalid):
LOG.warning(_("Failed to connect to Glance to get the properties "
"of the image %s") % image_id)
node_mac_addresses = driver_utils.get_node_mac_addresses(task)
vif_ports_info = xcat_neutron.get_ports_info_from_neutron(task)
try:
network_info = self._get_deploy_network_info(vif_ports_info, node_mac_addresses)
except (xcat_exception.GetNetworkFixedIPFailure,xcat_exception.GetNetworkIdFailure):
LOG.error(_("Failed to get network info"))
return
if not network_info:
LOG.error(_("Failed to get network info"))
return
fixed_ip_address = network_info['fixed_ip_address']
deploy_mac_address = network_info['mac_address']
network_id = network_info['network_id']
i_info['fixed_ip_address'] = fixed_ip_address
i_info['network_id'] = network_id
i_info['deploy_mac_address'] = deploy_mac_address
# use iptables to drop the dhcp mac of baremetal machine
self._ssh_append_dhcp_rule(CONF.xcat.network_node_ip,CONF.xcat.ssh_port,CONF.xcat.ssh_user,
CONF.xcat.ssh_password,network_id,deploy_mac_address)
self._chdef_node_mac_address(d_info,deploy_mac_address)
def clean_up(self, task):
"""Clean up the deployment environment for the task's node.
Unlinks TFTP and instance images and triggers image cache cleanup.
Removes the TFTP configuration files for this node. As a precaution,
this method also ensures the keystone auth token file was removed.
:param task: a TaskManager instance containing the node to act on.
"""
pass
def take_over(self, task):
pass
def _get_deploy_network_info(self, vif_ports_info, valid_node_mac_addrsses):
"""Get network info from mac address of ironic node.
:param vif_ports_info: info collection from neutron ports
:param valid_node_mac_addrsses: mac address from ironic node
:raises: GetNetworkFixedIpFailure if search the fixed ip from mac address failure
:raises: GetNetworkIdFailure if search the network id from mac address failure
"""
network_info = {}
for port_info in vif_ports_info.values():
if(port_info['port']['mac_address'] in valid_node_mac_addrsses ):
network_info['fixed_ip_address'] = port_info['port']['fixed_ips'][0]['ip_address']
if not network_info['fixed_ip_address']:
raise xcat_exception.GetNetworkFixedIPFailure(mac_address=port_info['port']['mac_address'])
network_info['mac_address'] = port_info['port']['mac_address']
network_info['network_id'] = port_info['port']['network_id']
if not network_info['network_id']:
raise xcat_exception.GetNetworkIdFailure(mac_address=port_info['port']['mac_address'])
network_info['port_id'] = port_info['port']['id']
return network_info
return network_info
def _chdef_node_mac_address(self, driver_info, deploy_mac):
""" run chdef command to set mac address"""
cmd = 'chdef'
args = 'mac='+ deploy_mac
try:
out_err = xcat_util.exec_xcatcmd(driver_info, cmd, args)
LOG.info(_("xcat chdef cmd exetute output: %(out_err)s") % {'out_err':out_err})
except xcat_exception.xCATCmdFailure as e:
LOG.warning(_("xcat chdef failed for node %(xcat_node)s with "
"error: %(error)s.")
% {'xcat_node': driver_info['xcat_node'], 'error': e})
raise exception.IPMIFailure(cmd=cmd)
@lockutils.synchronized(EM_SEMAPHORE, 'xcat-hosts-')
def _config_host_file(self, driver_info, deploy_ip):
""" append node and ip infomation to host file"""
with open(CONF.xcat.host_filepath,"r+") as f:
lines = []
for line in f:
temp = line.split('#')
if temp[0].strip():
host_name = xcat_util._tsplit(temp[0].strip(),(' ','\t'))[1]
if driver_info['xcat_node'] not in host_name:
lines.append(line)
# append a new line to host file
line = "%s\t%s\n" %(deploy_ip,driver_info['xcat_node'])
lines.append(line)
f.seek(0)
f.truncate()
for line in lines:
f.write(line)
def _nodeset_osimage(self, driver_info, image_name):
"""run nodeset command to config the image for the xcat node
:param driver_info: xcat node deploy info
:param image_name: image for the xcat deployment
"""
cmd = 'nodeset'
args = 'osimage='+ image_name
try:
xcat_util.exec_xcatcmd(driver_info, cmd, args)
except xcat_exception.xCATCmdFailure as e:
LOG.warning(_("xcat nodeset failed for node %(xcat_node)s with "
"error: %(error)s.")
% {'xcat_node': driver_info['xcat_node'], 'error': e})
def _make_dhcp(self):
"""run makedhcp command to setup dhcp environment for the xcat node"""
cmd = ['makedhcp',
'-n'
]
try:
out, err = utils.execute(*cmd)
LOG.info(_(" excute cmd: %(cmd)s \n output: %(out)s \n. Error: %(err)s \n"),
{'cmd':cmd,'out': out, 'err': err})
except Exception as e:
LOG.error(_("Unable to execute %(cmd)s. Exception: %(exception)s"),
{'cmd': cmd, 'exception': e})
# makedhcp -a
cmd = ['makedhcp',
'-a'
]
try:
out, err = utils.execute(*cmd)
LOG.info(_(" excute cmd: %(cmd)s \n output: %(out)s \n. Error: %(err)s \n"),
{'cmd':cmd,'out': out, 'err': err})
except Exception as e:
LOG.error(_("Unable to execute %(cmd)s. Exception: %(exception)s"),
{'cmd': cmd, 'exception': e})
def _ssh_append_dhcp_rule(self,ip,port,username,password,network_id,mac_address):
""" drop the dhcp package in network node to avoid of confilct of dhcp """
netns = 'qdhcp-%s' %network_id
append_cmd = 'sudo ip netns exec %s iptables -A INPUT -m mac --mac-source %s -j DROP' % \
(netns,mac_address)
cmd = [append_cmd]
xcat_util.xcat_ssh(ip,port,username,password,cmd)
def _ssh_delete_dhcp_rule(self,ip,port,username,password,network_id,mac_address):
""" delete the iptable rule on network node to recover the environment"""
netns = 'qdhcp-%s' %network_id
cancel_cmd = 'sudo ip netns exec %s iptables -D INPUT -m mac --mac-source %s -j DROP' % \
(netns,mac_address)
cmd = [cancel_cmd]
xcat_util.xcat_ssh(ip,port,username,password,cmd)
def _wait_for_node_deploy(self, task):
"""Wait for xCAT node deployment to complete."""
locals = {'errstr':''}
driver_info = _parse_deploy_info(task.node)
node_mac_addrsses = driver_utils.get_node_mac_addresses(task)
i_info = task.node.instance_info
def _wait_for_deploy():
out,err = xcat_util.exec_xcatcmd(driver_info,'nodels','nodelist.status')
if err:
locals['errstr'] = _("Error returned when quering node status"
" for node %s:%s") % (driver_info['xcat_node'], err)
LOG.warning(locals['errstr'])
raise loopingcall.LoopingCallDone()
if out:
node,status = out.split(": ")
status = status.strip()
if status == "booted":
LOG.info(_("Deployment for node %s completed.")
% driver_info['xcat_node'])
raise loopingcall.LoopingCallDone()
if (CONF.xcat.deploy_timeout and
timeutils.utcnow() > expiration):
locals['errstr'] = _("Timeout while waiting for"
" deployment of node %s.") % driver_info['xcat_node']
LOG.warning(locals['errstr'])
raise loopingcall.LoopingCallDone()
expiration = timeutils.utcnow() + datetime.timedelta(
seconds=CONF.xcat.deploy_timeout)
timer = loopingcall.FixedIntervalLoopingCall(_wait_for_deploy)
# default check every 10 seconds
timer.start(interval=CONF.xcat.deploy_checking_interval).wait()
if locals['errstr']:
raise xcat_exception.xCATDeploymentFailure(locals['errstr'])
# deploy end, delete the dhcp rule for xcat
self._ssh_delete_dhcp_rule(CONF.xcat.network_node_ip,CONF.xcat.ssh_port,CONF.xcat.ssh_user,
CONF.xcat.ssh_password,i_info['network_id'],node_mac_addrsses[0])
@@ -1,444 +0,0 @@
"""
IPMI power manager driver.
"""
import contextlib
import os
import stat
import tempfile
import time
from oslo.config import cfg
from ironic.common import exception
from ironic.common import states
from ironic.common import utils
from ironic.conductor import task_manager
from ironic.drivers import base
from ironic.drivers.modules import console_utils
from ironic.openstack.common import excutils
from ironic.openstack.common import log as logging
from ironic.openstack.common import loopingcall
from ironic.openstack.common import processutils
from ironic.drivers.modules import xcat_exception
from ironic.drivers.modules import xcat_util
CONF = cfg.CONF
CONF.import_opt('retry_timeout',
'ironic.drivers.modules.ipminative',
group='ipmi')
CONF.import_opt('min_command_interval',
'ironic.drivers.modules.ipminative',
group='ipmi')
LOG = logging.getLogger(__name__)
VALID_PRIV_LEVELS = ['ADMINISTRATOR', 'CALLBACK', 'OPERATOR', 'USER']
REQUIRED_PROPERTIES = {
'ipmi_address': _("IP address or hostname of the node. Required.")
}
OPTIONAL_PROPERTIES = {
'ipmi_password': _("password. Optional."),
'ipmi_priv_level': _("privilege level; default is ADMINISTRATOR. One of "
"%s. Optional.") % ', '.join(VALID_PRIV_LEVELS),
'ipmi_username': _("username; default is NULL user. Optional.")
}
COMMON_PROPERTIES = REQUIRED_PROPERTIES.copy()
COMMON_PROPERTIES.update(OPTIONAL_PROPERTIES)
CONSOLE_PROPERTIES = {
'ipmi_terminal_port': _("node's UDP port to connect to. Only required for "
"console access.")
}
TIMING_SUPPORT = None
def _is_timing_supported(is_supported=None):
# shim to allow module variable to be mocked in unit tests
global TIMING_SUPPORT
if (TIMING_SUPPORT is None) and (is_supported is not None):
TIMING_SUPPORT = is_supported
return TIMING_SUPPORT
def check_timing_support():
"""Check the installed version of ipmitool for -N -R option support.
Support was added in 1.8.12 for the -N -R options, which enable
more precise control over timing of ipmi packets. Prior to this,
the default behavior was to retry each command up to 18 times at
1 to 5 second intervals.
http://ipmitool.cvs.sourceforge.net/viewvc/ipmitool/ipmitool/ChangeLog?revision=1.37 # noqa
This method updates the module-level TIMING_SUPPORT variable so that
it is accessible by any driver interface class in this module. It is
intended to be called from the __init__ method of such classes only.
:returns: boolean indicating whether support for -N -R is present
:raises: OSError
"""
if _is_timing_supported() is None:
# Directly check ipmitool for support of -N and -R options. Because
# of the way ipmitool processes' command line options, if the local
# ipmitool does not support setting the timing options, the command
# below will fail.
try:
out, err = utils.execute(*['ipmitool', '-N', '0', '-R', '0', '-h'])
except processutils.ProcessExecutionError:
# the local ipmitool does not support the -N and -R options.
_is_timing_supported(False)
else:
# looks like ipmitool supports timing options.
_is_timing_supported(True)
def _console_pwfile_path(uuid):
"""Return the file path for storing the ipmi password for a console."""
file_name = "%(uuid)s.pw" % {'uuid': uuid}
return os.path.join(tempfile.gettempdir(), file_name)
def _parse_driver_info(node):
"""Gets the parameters required for ipmitool to access the node.
:param node: the Node of interest.
:returns: dictionary of parameters.
:raises: InvalidParameterValue if any required parameters are missing.
"""
info = node.driver_info or {}
address = info.get('ipmi_address')
username = info.get('ipmi_username')
password = info.get('ipmi_password')
port = info.get('ipmi_terminal_port')
priv_level = info.get('ipmi_priv_level', 'ADMINISTRATOR')
xcat_node = info.get('xcat_node')
xcatmaster = info.get('xcatmaster')
netboot = info.get('netboot')
if port:
try:
port = int(port)
except ValueError:
raise exception.InvalidParameterValue(_(
"IPMI terminal port is not an integer."))
if not address:
raise exception.InvalidParameterValue(_(
"IPMI address not supplied to xcat driver."))
if priv_level not in VALID_PRIV_LEVELS:
valid_priv_lvls = ', '.join(VALID_PRIV_LEVELS)
raise exception.InvalidParameterValue(_(
"Invalid privilege level value:%(priv_level)s, the valid value"
" can be one of %(valid_levels)s") %
{'priv_level': priv_level, 'valid_levels': valid_priv_lvls})
if not xcat_node:
raise exception.InvalidParameterValue(_(
"xcat node name not supplied to xcat driver"))
if not xcatmaster:
raise exception.InvalidParameterValue(_(
"xcatmaster not supplied to xcat driver"))
if not netboot:
raise exception.InvalidParameterValue(_(
"netboot not supplied to xcat driver"))
return {
'address': address,
'username': username,
'password': password,
'port': port,
'uuid': node.uuid,
'priv_level': priv_level,
'xcat_node': xcat_node,
'xcatmaster': xcatmaster,
'netboot': netboot
}
def chdef_node(driver_info):
"""Run the chdef command in xcat, config the node
:param driver_info: driver_info for the xcat node
"""
cmd = 'chdef'
args = 'mgt=ipmi' + \
' bmc=' + driver_info['address'] + \
' bmcusername=' + driver_info['username'] + \
' bmcpassword=' + driver_info['password'] + \
' xcatmaster=' + driver_info['xcatmaster']+ \
' netboot=' + driver_info['netboot']+ \
' primarynic=mac'+ \
' installnic=mac'+ \
' monserver=' + driver_info['xcatmaster'] + \
' nfsserver=' + driver_info['xcatmaster'] + \
' serialflow=hard'+ \
' serialspeed=115200' + \
' serialport=' + str(driver_info['port']);
try:
xcat_util.exec_xcatcmd(driver_info, cmd, args)
except xcat_exception.xCATCmdFailure as e:
LOG.warning(_("xcat chdef failed for node %(node_id)s with "
"error: %(error)s.")
% {'node_id': driver_info['uuid'], 'error': e})
def _sleep_time(iter):
"""Return the time-to-sleep for the n'th iteration of a retry loop.
This implementation increases exponentially.
:param iter: iteration number
:returns: number of seconds to sleep
"""
if iter <= 1:
return 1
return iter ** 2
def _set_and_wait(target_state, driver_info):
"""Helper function for DynamicLoopingCall.
This method changes the power state and polls the BMCuntil the desired
power state is reached, or CONF.ipmi.retry_timeout would be exceeded by the
next iteration.
This method assumes the caller knows the current power state and does not
check it prior to changing the power state. Most BMCs should be fine, but
if a driver is concerned, the state should be checked prior to calling this
method.
:param target_state: desired power state
:param driver_info: the ipmitool parameters for accessing a node.
:returns: one of ironic.common.states
:raises: IPMIFailure on an error from ipmitool (from _power_status call).
"""
if target_state == states.POWER_ON:
state_name = "on"
elif target_state == states.POWER_OFF:
state_name = "off"
def _wait(mutable):
try:
# Only issue power change command once
if mutable['iter'] < 0:
xcat_util.exec_xcatcmd(driver_info,'rpower',state_name)
else:
mutable['power'] = _power_status(driver_info)
except Exception:
# Log failures but keep trying
LOG.warning(_("xcat rpower %(state)s failed for node %(node)s."),
{'state': state_name, 'node': driver_info['uuid']})
finally:
mutable['iter'] += 1
if mutable['power'] == target_state:
raise loopingcall.LoopingCallDone()
sleep_time = _sleep_time(mutable['iter'])
if (sleep_time + mutable['total_time']) > CONF.ipmi.retry_timeout:
# Stop if the next loop would exceed maximum retry_timeout
LOG.error(_('xcat rpower %(state)s timed out after '
'%(tries)s retries on node %(node_id)s.'),
{'state': state_name, 'tries': mutable['iter'],
'node_id': driver_info['uuid']})
mutable['power'] = states.ERROR
raise loopingcall.LoopingCallDone()
else:
mutable['total_time'] += sleep_time
return sleep_time
# Use mutable objects so the looped method can change them.
# Start 'iter' from -1 so that the first two checks are one second apart.
status = {'power': None, 'iter': -1, 'total_time': 0}
timer = loopingcall.DynamicLoopingCall(_wait, status)
timer.start().wait()
return status['power']
def _power_on(driver_info):
"""Turn the power ON for this node.
:param driver_info: the xcat parameters for accessing a node.
:returns: one of ironic.common.states POWER_ON or ERROR.
:raises: IPMIFailure on an error from ipmitool (from _power_status call).
"""
return _set_and_wait(states.POWER_ON, driver_info)
def _power_off(driver_info):
"""Turn the power OFF for this node.
:param driver_info: the xcat parameters for accessing a node.
:returns: one of ironic.common.states POWER_OFF or ERROR.
:raises: IPMIFailure on an error from ipmitool (from _power_status call).
"""
return _set_and_wait(states.POWER_OFF, driver_info)
def _power_status(driver_info):
"""Get the power status for a node.
:param driver_info: the xcat access parameters for a node.
:returns: one of ironic.common.states POWER_OFF, POWER_ON or ERROR.
:raises: IPMIFailure on an error from ipmitool.
"""
cmd = "rpower"
try:
out_err = xcat_util.exec_xcatcmd(driver_info,cmd,'status')
except Exception as e:
LOG.warning(_("xcat rpower status failed for node %(node_id)s with "
"error: %(error)s.")
% {'node_id': driver_info['uuid'], 'error': e})
if out_err[0].split(' ')[1].strip() == "on":
return states.POWER_ON
elif out_err[0].split(' ')[1].strip() == "off":
return states.POWER_OFF
else:
return states.ERROR
class XcatPower(base.PowerInterface):
def __init__(self):
try:
check_timing_support()
except OSError:
raise exception.DriverLoadError(
driver=self.__class__.__name__,
reason="Unable to locate usable xcat command in "
"the system path when checking xcat version")
def get_properties(self):
return COMMON_PROPERTIES
def validate(self, task):
"""Validate driver_info for xcat driver.
Check that node['driver_info'] contains IPMI credentials.
:param task: a TaskManager instance containing the node to act on.
:raises: InvalidParameterValue if required ipmi parameters are missing.
"""
driver_info = _parse_driver_info(task.node)
try:
chdef_node(driver_info)
except exception:
LOG.error(_("chdef xcat info error!"))
def get_power_state(self, task):
"""Get the current power state of the task's node.
:param task: a TaskManager instance containing the node to act on.
:returns: one of ironic.common.states POWER_OFF, POWER_ON or ERROR.
"""
driver_info = _parse_driver_info(task.node)
return _power_status(driver_info)
@task_manager.require_exclusive_lock
def set_power_state(self, task, pstate):
"""Turn the power on or off.
:param task: a TaskManager instance containing the node to act on.
:param pstate: The desired power state, one of ironic.common.states
POWER_ON, POWER_OFF.
:raises: InvalidParameterValue if required ipmi parameters are missing
or if an invalid power state was specified.
:raises: PowerStateFailure if the power couldn't be set to pstate.
"""
driver_info = _parse_driver_info(task.node)
if pstate == states.POWER_ON:
state = _power_on(driver_info)
elif pstate == states.POWER_OFF:
state = _power_off(driver_info)
else:
raise exception.InvalidParameterValue(_("set_power_state called "
"with invalid power state %s.") % pstate)
if state != pstate:
raise exception.PowerStateFailure(pstate=pstate)
@task_manager.require_exclusive_lock
def reboot(self, task):
"""Cycles the power to the task's node.
:param task: a TaskManager instance containing the node to act on.
:raises: InvalidParameterValue if required ipmi parameters are missing.
:raises: PowerStateFailure if the final state of the node is not
POWER_ON.
"""
driver_info = _parse_driver_info(task.node)
_power_off(driver_info)
state = _power_on(driver_info)
if state != states.POWER_ON:
raise exception.PowerStateFailure(pstate=states.POWER_ON)
class IPMIShellinaboxConsole(base.ConsoleInterface):
"""A ConsoleInterface that uses ipmitool and shellinabox."""
def __init__(self):
try:
check_timing_support()
except OSError:
raise exception.DriverLoadError(
driver=self.__class__.__name__,
reason="Unable to locate usable xcat command in "
"the system path when checking xcat version")
def get_properties(self):
return COMMON_PROPERTIES
def validate(self, task):
"""Validate the Node console info.
:param task: a task from TaskManager.
:raises: InvalidParameterValue
"""
driver_info = _parse_driver_info(task.node)
if not driver_info['xcat_node']:
raise exception.InvalidParameterValue(_(
"xcat node name not supplied to xcat baremetal driver."))
if not driver_info['port']:
raise exception.InvalidParameterValue(_(
"IPMI terminal port not supplied to IPMI driver."))
def start_console(self, task):
"""Start a remote console for the node."""
driver_info = _parse_driver_info(task.node)
path = _console_pwfile_path(driver_info['uuid'])
pw_file = console_utils.make_persistent_password_file(
path, driver_info['password'])
ipmi_cmd = "/:%(uid)s:%(gid)s:HOME:ipmitool -H %(address)s" \
" -I lanplus -U %(user)s -f %(pwfile)s" \
% {'uid': os.getuid(),
'gid': os.getgid(),
'address': driver_info['address'],
'user': driver_info['username'],
'pwfile': pw_file}
if CONF.debug:
ipmi_cmd += " -v"
ipmi_cmd += " sol activate"
console_utils.start_shellinabox_console(driver_info['uuid'],
driver_info['port'],
ipmi_cmd)
def stop_console(self, task):
"""Stop the remote console session for the node."""
driver_info = _parse_driver_info(task.node)
console_utils.stop_shellinabox_console(driver_info['uuid'])
utils.unlink_without_raise(_console_pwfile_path(driver_info['uuid']))
def get_console(self, task):
"""Get the type and connection information about the console."""
driver_info = _parse_driver_info(task.node)
url = console_utils.get_shellinabox_console_url(driver_info['port'])
return {'type': 'shellinabox', 'url': url}
@@ -1,110 +0,0 @@
"""
util for xcat baremetal driver
exec_xcatcmd
xcat_ssh to excute remote cmd
"""
import paramiko
import time
import socket
from ironic.openstack.common import log as logging
from oslo.config import cfg
from ironic.drivers.modules import xcat_exception
from ironic.common import utils
xcat_opts = [
cfg.IntOpt('ssh_session_timeout',
default=10,
help='ssh session time'),
cfg.FloatOpt('ssh_shell_wait',
default=0.5,
help='wait time for the ssh cmd excute'),
cfg.IntOpt('ssh_buf_size',
default=65535,
help='Maximum size (in charactor) of cache for ssh, '
'including those in use'),
cfg.StrOpt('ssh_key',
default=None,
help='ssh private key to login '),
cfg.StrOpt('ssh_key_pass',
default=None,
help='Maximum size (in charactor) of cache for ssh, '
'including those in use'),
]
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
CONF.register_opts(xcat_opts, group='xcat')
LAST_CMD_TIME = {}
def xcat_ssh(ip,port,username,password,cmd):
""" exec remote command with ssh """
key =None
if CONF.xcat.ssh_key:
try:
key=paramiko.RSAKey.from_private_key_file(CONF.xcat.ssh_key)
except paramiko.PasswordRequiredException:
if not CONF.ssh_key_pass:
raise Exception.message("no pubkey password")
key = paramiko.RSAKey.from_private_key_file(
CONF.xcat.ssh_key, CONF.xcat.ssh_key.ssh_key_pass)
s = paramiko.SSHClient()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
s.connect(ip,port,username=username,password=password,pkey=key,
timeout=CONF.xcat.ssh_session_timeout)
except socket.timeout as e:
LOG.error(_("Unable to connect to the ssh server Exception: %(exception)s"),
{'exception': e})
chan = s.invoke_shell()
output = chan.recv(CONF.xcat.ssh_buf_size)
while not output.rstrip().endswith('#') and not output.rstrip().endswith('$'):
output = chan.recv(CONF.xcat.ssh_buf_size)
for c in cmd :
_xcat_ssh_exec(chan,c,password)
def _xcat_ssh_exec(chan,cmd,password):
""" exec ssh command """
chan.send(cmd + '\n')
time.sleep(CONF.xcat.ssh_shell_wait)
ret = chan.recv(CONF.xcat.ssh_buf_size)
if 'password' in ret and ret.rstrip().endswith(':'):
chan.send(password + '\n')
output = chan.recv(CONF.xcat.ssh_buf_size)
while not output.rstrip().endswith('#') and not output.rstrip().endswith('$'):
output = chan.recv(CONF.xcat.ssh_buf_size)
return output
def _tsplit(string, delimiters):
""" Behaves str.split but supports multiple delimiters. """
delimiters = tuple(delimiters)
stack = [string,]
for delimiter in delimiters:
for i, substring in enumerate(stack):
substack = substring.split(delimiter)
stack.pop(i)
for j, _substring in enumerate(substack):
stack.insert(i+j, _substring)
return stack
def exec_xcatcmd(driver_info, command, args):
""" excute xcat cmd """
cmd = [command,
driver_info['xcat_node']
]
cmd.extend(args.split(" "))
# NOTE: ensure that no communications are excuted more
# often than once every min_command_interval seconds.
time_till_next_poll = CONF.ipmi.min_command_interval - (
time.time() - LAST_CMD_TIME.get(driver_info['xcat_node'], 0))
if time_till_next_poll > 0:
time.sleep(time_till_next_poll)
try:
out, err = utils.execute(*cmd)
if err:
raise xcat_exception.xCATCmdFailure(cmd=cmd,node=driver_info['xcat_node'],
args=args)
finally:
LAST_CMD_TIME[driver_info['xcat_node']] = time.time()
return out, err
@@ -1,27 +0,0 @@
"""
XCATBaremetalDriver
use xcat to deploy a baremetal machine
"""
from ironic.drivers import base
from ironic.drivers.modules import ipmitool
from ironic.drivers.modules import pxe
from ironic.drivers.modules import xcat_pxe
from ironic.drivers import utils
from ironic.drivers.modules import xcat_rpower
class XCATBaremetalDriver(base.BaseDriver):
"""xCAT driver
This driver implements the `core` functionality, combinding
:class:`ironic.drivers.xcat_rpower.XcatPower` for power on/off and reboot with
:class:`ironic.driver.xcat_pxe.PXEDeploy` for image deployment. Implementations are in
those respective classes; this class is merely the glue between them.
"""
def __init__(self):
self.power = xcat_rpower.XcatPower()
self.console = ipmitool.IPMIShellinaboxConsole()
self.deploy = xcat_pxe.PXEDeploy()
self.management = ipmitool.IPMIManagement()
self.vendor = pxe.VendorPassthru()
@@ -1,33 +0,0 @@
[DEFAULT]
# The list of modules to copy from oslo-incubator
module=cliutils
module=config.generator
module=context
module=db
module=db.sqlalchemy
module=db.sqlalchemy.migration_cli
module=eventlet_backdoor
module=excutils
module=fileutils
module=gettextutils
module=importutils
module=jsonutils
module=local
module=lockutils
module=log
module=loopingcall
module=network_utils
module=periodic_task
module=policy
module=processutils
module=service
module=strutils
module=timeutils
module=versionutils
# Tools
# The base module to hold the copy of openstack.common
base=ironic

Some files were not shown because too many files have changed in this diff Show More