Compare commits

...

1743 Commits

Author SHA1 Message Date
lissav 6cf827b891 defect 4022 and add podchecker, good debug tool 2014-03-17 06:50:23 -04:00
lissav 3f08f410fe defect 4022 and add podchecker, good debug tool 2014-03-17 06:49:46 -04:00
daniceexi c55655a50c Add more rest api support 2014-03-17 10:11:27 -04:00
Bruce Potter 3eaf383163 started the table api calls 2014-03-16 19:54:00 -04:00
ligc 7f63cf564c fix for bug 3935: support nic name with space, like Local Area Network on windows 2014-03-14 17:49:49 -05:00
ligc 6f79aead61 fix for bug 3937: return 1 when lsdef <object> can not find the object 2014-03-14 17:02:47 -05:00
daniceexi df3239cbb5 new implementaion of xCAT rest api 2014-03-14 09:45:04 -04:00
ligc 50fed0a17a fix for bug 3976: check -i flag 2014-03-14 16:15:16 -05:00
lissav 9ae698fb70 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2014-03-13 10:43:26 -04:00
immarvin dcaef3f2eb add xCAT-OpenStack-baremetal to build-ubunturepo package list, change debian/source/format to 1.0 2014-03-13 07:45:29 -07:00
lissav 5fc7fe289e Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2014-03-13 10:37:53 -04:00
lissav 2c49eb1195 additional checks 2014-03-13 10:37:35 -04:00
immarvin 770e8a7301 add ubuntu/debian package files for dpkg-buildpackage 2014-03-13 07:13:28 -07:00
lissav 25e02c8b73 change sync of keys so they are cleaned up when zones are removed 2014-03-13 09:50:10 -04:00
lissav ddcec671a0 chzone manpage 2014-03-13 08:45:16 -04:00
lissav 62cdefa219 add and improve zone manpages 2014-03-13 07:53:23 -04:00
lissav 655148ffdd add man page for mkzone 2014-03-12 12:30:23 -04:00
lissav 24da10e021 fix parsing 2014-03-12 11:33:27 -04:00
lissav acc07123e9 rm id_rsa so we can switch between sshbetweennode yes and no 2014-03-12 10:46:45 -04:00
linggao 89c649ae56 xCAT baremetal driver for OpenStack supports nodes with all hw types that are supported by xCAT 2014-03-13 03:18:27 -04:00
linggao dbf362ea52 fix the description for table hwinv. 2014-03-13 03:15:59 -04:00
lissav 77f1e2452e chzone code 2014-03-11 14:19:36 -04:00
xcat aix bld machine d3f205440a create instoss for AIX 6.1Y using new perl-Net_SSLeay.pm-1.55 2014-03-11 04:24:33 -04:00
zhaoertao dd1eaab04c fix bug 4014: updatenodegroups routine always add all group to the node 2014-03-10 19:09:26 -07:00
lissav cc955a172b a lot of chzone, needs more work 2014-03-10 14:43:35 -04:00
immarvin 4323842e28 rhels7 statelite/stateless support 2014-03-08 06:40:40 -08:00
immarvin 376c57d74e fix defect 4015 2014-03-07 08:06:11 -08:00
lissav 127934c3d3 rmzone 2014-03-07 09:57:52 -05:00
lissav 1ded53ae14 rmzone support 2014-03-07 09:56:51 -05:00
immarvin 35ed43d06b fix defect #3999 2014-03-07 06:02:26 -08:00
immarvin 5a8d12715a fix defect #3999 and #4013 2014-03-07 05:59:13 -08:00
ligc 72abb182bb fix for bug 4010: remove xcatws.cgi from PCM build 2014-03-06 15:52:23 -06:00
zhaoertao c8ebe8a9df fix bug 4007: DFM support Powerlinux, mkvm return error 2014-03-05 00:53:58 -08:00
lissav 555810f7ed better hierarchical processing for zones 2014-03-04 10:22:55 -05:00
lissav aff04efce8 docuement DSH_REMOTE_PASSWORD env variable 2014-03-04 08:32:41 -05:00
lissav d3c808f75f fix spelling 2014-03-03 14:51:18 -05:00
lissav f4cc23ef0f add xCAT-OpenStack-baremetal rpm 2014-03-03 14:43:53 -05:00
lissav 82d9b5b9ef support getting zone ssh keys 2014-03-03 13:29:29 -05:00
lissav 971808efbd support zone root ssh keys 2014-03-03 13:18:53 -05:00
lissav bf27c3ac96 more zone functions 2014-03-03 13:15:40 -05:00
Bruce Potter e9f220cecc fixed man page issue with xCAT-SoftLayer rpm 2014-03-02 18:33:13 -05:00
Bruce Potter 6be8450b9b added xCAT-SoftLayer rpm to buildcore.sh 2014-03-02 18:11:39 -05:00
Bruce Potter aecc720d7d packaged softlayer files into an rpm 2014-03-02 18:05:09 -05:00
Bruce Potter 9893a2dd71 template and postscript for softlayer node install 2014-03-02 13:11:41 -05:00
ligc c464e3c1d6 fix for bug 4002, configib replaces /etc/sysctl.conf 2014-02-28 14:05:59 -06:00
lissav 43f9eb6384 updatenode customized mypostscript.tmpl with ZONENAME lines 2014-02-27 10:57:02 -05:00
lissav a7867e1370 updatenode customized mypostscript.tmpl with ZONENAME lines 2014-02-27 10:27:23 -05:00
zhaoertao 8751f25154 fix bug 3873: DFM illegal action could work 2014-02-27 01:26:45 -08:00
Bruce Potter 316470c60d Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core
finished test driver for node resource
2014-02-26 19:34:58 -05:00
linggao bccae8efe7 Merge branch 'master' of ssh://linggao@git.code.sf.net/p/xcat/xcat-core 2014-02-27 10:52:23 -05:00
linggao 49d53ed922 more for xCAT baremetal driver for OpenStack 2014-02-27 10:51:50 -05:00
Bruce Potter 681ec3c968 finished test driver for node resource 2014-02-26 19:34:16 -05:00
lissav d122c8a3fa initialize if no zones 2014-02-26 11:32:07 -05:00
lissav 318cf6bfa8 add zonename 2014-02-26 10:41:42 -05:00
lissav 8f6bbd40d9 support zonename 2014-02-26 10:39:17 -05:00
lissav 78d3e285a6 adding routines for support 2014-02-26 10:38:03 -05:00
lissav cd8389984f fix ENABLESSHBETWEENNODES setting in mypostscript file when zones 2014-02-26 08:37:26 -05:00
lissav a5e378a641 fix ENABLESSHBETWEENNODES setting in mypostscript file when zones 2014-02-26 08:17:21 -05:00
daniceexi 4abeecbd03 defect 3961: make domain name keep without . at beginning 2014-02-26 13:27:14 -05:00
linggao ef589ec580 removed the debugger 2014-02-26 04:29:02 -05:00
lissav f3392ba1ee defect 3994 2014-02-25 11:45:10 -05:00
lissav ec5de72ee4 zone hierarchical support for xdsh -K 2014-02-25 10:00:43 -05:00
Bruce Potter c58f440db1 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core
removed user/pw from xcatws-test.sh
2014-02-25 04:11:56 -05:00
Bruce Potter 29c8b4216b removed user/pw from xcatws-test.sh 2014-02-25 04:11:22 -05:00
zhaoertao 61a686acac update manpage for mkvm and chvm about partitioning item 2014-02-25 00:00:40 -08:00
ligc 242b39ace6 fix a typo in updatenode manpage 2014-02-25 13:50:40 -06:00
baiyuan 1607a1dac6 fix:convert array to hash,xcatws.cgi use hash entries 2014-02-25 00:07:34 -05:00
lissav d5695f5727 xdsh -K support (still need to do hierarchy) 2014-02-24 11:48:09 -05:00
lissav 539f37f391 xdsh -K support (still need to do hierarchy) 2014-02-24 11:39:36 -05:00
baiyuan 86e663860d fix:line 6: user: command not found. add: arguments 2014-02-24 04:14:18 -05:00
Bruce Potter b77b8e7c7d got node list of xcatws.cgi also working with new json structure 2014-02-23 16:00:37 -05:00
Bruce Potter e251f0a2cf example rest apis working with new json structure 2014-02-23 04:13:15 -05:00
Bruce Potter aea43684c3 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core
added workaround to pushinitrd for slow SL switches
2014-02-21 10:08:49 -05:00
ligc 54982068cf fix for bug 3991: if the node can not be resolved or ip address is not valid, print warning message and ignore the node 2014-02-21 12:39:57 -06:00
Bruce Potter 84bc552130 added workaround to pushinitrd to handle slow switches 2014-02-21 10:08:20 -05:00
lissav 56e8e8b0d5 zone coce 2014-02-20 12:34:51 -05:00
lissav 2e0ccb7d7e more code 2014-02-20 11:35:20 -05:00
lissav e331cf5085 more code 2014-02-20 11:33:54 -05:00
lissav 4c031e1806 fix for defect 3985 2014-02-20 07:25:29 -05:00
linggao 542259583c xCAT baremetal driver for OpenStack 2014-02-20 09:45:15 -05:00
Bruce Potter c159000f94 pushinitrd is finished, for now 2014-02-19 14:38:04 -05:00
lissav 2598e30ee1 more zone code 2014-02-19 12:52:11 -05:00
lissav 9db5ceef6a designchanges 2014-02-19 08:50:18 -05:00
lissav 1a59531d6c designchanges 2014-02-19 08:48:43 -05:00
lissav cdf72640fd add zone table sshbetweennodes attribute 2014-02-19 07:13:24 -05:00
lissav d45ba76f8e add missing -g flag 2014-02-19 05:24:13 -05:00
lissav 8ced46f7cc more improvements for zones 2014-02-18 10:16:24 -05:00
lissav e16e4d327b more zone support 2014-02-18 09:15:41 -05:00
lissav 22b529f8e3 more zone support 2014-02-18 08:52:24 -05:00
lissav d0e85aeee2 fix man page 2014-02-18 06:21:39 -05:00
arif 1b6225b820 change comment on path of where the gpfs_updates directory is placed 2014-02-17 12:23:17 +00:00
arif 26d8a9b4a5 Merge branch 'add/nodeconsoleondemand' of gitlab.arif-ali.co.uk:arif/xcat-core 2014-02-17 11:14:57 +00:00
Bruce Potter c2e2cefd9f Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core
cmds to push network boot info to softlayer nodes
2014-02-15 16:32:15 -05:00
Bruce Potter 35b919185e add cmds to push the network boot info to softlayer nodes 2014-02-15 16:31:35 -05:00
lissav 540e11c599 link in commands 2014-02-13 13:55:15 -05:00
Jarrod Johnson 14b61f339d Explicitly set SSL_VERIFY_MODE during start ssl in Client 2014-02-13 09:51:40 -05:00
lissav 72acb3b564 Multiple zone support 2014-02-13 07:53:31 -05:00
lissav 352f12aaee Multiple zone support 2014-02-13 07:51:44 -05:00
zhaoertao 8987ad4702 update manpage of mkdef/chdef for osimage 2014-02-13 00:56:48 -08:00
jjhua c58b291e98 only use short node name in loadclouddata 2014-02-13 12:31:28 -05:00
immarvin ea0241e836 specify text installation mode, otherwise, anaconda will drop into choice dialog when fails to start X in graphic mode 2014-02-12 00:56:06 -08:00
immarvin 8aa878427e take *.rhel*.pkglist as pkglist file if *.rhels*.pkglist do not exist 2014-02-12 00:54:54 -08:00
zhaoertao 8bc490094a fix bug 3983: copycds show error info 2014-02-11 22:09:06 -08:00
jjhua 76a60547ff the template for keystone and swift(all in one) 2014-02-12 12:36:47 -05:00
Bruce Potter 751f3c4b89 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core
new getslnodes file
2014-02-11 10:55:13 -05:00
Bruce Potter 6b40d076fa new script to get softlayer info into xcat db 2014-02-11 10:54:18 -05:00
Jarrod Johnson 98bc658385 Have openssl req use better message digest 2014-02-11 10:07:30 -05:00
yinle 84ee1eb9f1 fix bug #3984 Ubuntu 13.10 diskless installation fails 2014-02-11 10:47:13 -08:00
daniceexi 9e91cf4f63 roll back the last change in configmic file; And fix the issue that hostname cannot show the short hostname 2014-02-11 04:50:41 -05:00
Jarrod Johnson af305e1c65 RHEL7 support for diskful compute profile complete 2014-02-10 13:59:14 -05:00
Jarrod Johnson 2b8f1c5086 Have RHEL7 proceed to get through install completion
Still need to get through the postscript phase
2014-02-10 10:48:46 -05:00
Jarrod Johnson 29b7e4331b Add signature detection for RHEL7 media to anaconda 2014-02-10 10:24:59 -05:00
daniceexi b7a04d3c94 fix the issue that hostname command cannot get short hort name 2014-02-10 08:26:55 -05:00
Bruce Potter 9c0fa6a8bb Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core
some improvements to xcatws.cgi
2014-02-09 15:43:53 -05:00
Bruce Potter 80d4cf913b curl working for xcatws.cgi put and some reorg of code 2014-02-09 15:43:37 -05:00
Jarrod Johnson 56556bdeec Fix xCAT init script status reporting
xCAT in some cases was reporting improper status for certain scenarios.
Risk being inaccure if no pid file exists so that it is accurate when it
does exist.
2014-02-07 17:37:56 -05:00
lissav 7f39eb7fe4 new zone table and zonename attribute 2014-02-05 08:39:46 -05:00
Jarrod Johnson d25680575d Correct } mistake in previous commit to IPMI.pm 2014-02-04 10:27:45 -05:00
Jarrod Johnson c2c29970ff Make IPMI 2.0 crypto dependencies mandatory
Faced with an increasing population of IPMI 2 only devices, make the AES/CBC
requirements mandatory as it is a common source of systems failing to work
now.
2014-02-04 10:27:42 -05:00
Bruce Potter dd8096b39f 1st put works with json dict 2014-02-03 15:58:15 -05:00
Bruce Potter 91b4041a3c Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2014-01-31 08:27:40 -05:00
Bruce Potter 466d5f0a9f test scripts for the rest api 2014-01-31 08:26:55 -05:00
Jarrod Johnson 7032988d7f Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2014-01-30 13:01:18 -05:00
Jarrod Johnson ac83cbe428 _clear_cache was removed long ago. _build_cache does all the needed work itself, so skip _build_cache. 2014-01-30 13:01:13 -05:00
arif 65470149e9 add per node consoleondemand 2014-01-29 21:47:09 +00:00
ligc 179a62145b fix for a typo in confignics, caused ib configuration problems 2014-01-29 10:02:13 -06:00
lissav a3d6555515 Add IBM_HPC_Stack_in_an_xCAT_Cluster 2014-01-28 14:48:34 -05:00
yinle 9db688423c minor fix 2014-01-28 13:49:26 -08:00
yinle 0f829608d1 minor fix of message 2014-01-28 13:33:57 -08:00
yinle ae62c9e403 Add range check and message to nmap 2014-01-28 13:32:46 -08:00
baiyuan 2825e469fe fix Undefined subroutine &JSON::decode_json called at /opt/xcat/ws/xcatws.cgi line 168 2014-01-27 23:36:01 -05:00
zhaoertao 4c74a94daf modify usage for 'chvm' and 'mkvm', remove debug msg 2014-01-26 22:52:30 -08:00
zhaoertao 9374e01b76 create VIOS and logical partitions 2014-01-26 22:08:15 -08:00
zhaoertao 5a9abe2acf The scripts used for configuring and provisioning VIOS partition 2014-01-26 22:07:08 -08:00
qyin edf9a4dc64 windows solution: 222013 2014-01-27 13:52:33 +08:00
ligc e299342956 fix for bug 3979: print a message with rnetboot/bootseq when gateway is empty 2014-01-27 09:57:13 -06:00
lissav b26b5c42bd improve man for sshbetweennodes 2014-01-23 12:59:57 -05:00
lissav d5cfab0c97 improve man for sshbetweennodes 2014-01-23 12:26:26 -05:00
zhaoertao addd4ed9c4 3974 rinv failed for Fujitsu Blade Server 2014-01-22 23:17:13 -08:00
baiyuan 6ffaad98d1 upload testcase for ubuntu 2014-01-22 22:34:33 -05:00
baiyuan fa236764e1 fix 3879,complete kit size is too big,just keep build_input in complete kit with buildkit.conf,other_files,plugins and scripts, remove other useless dir 2014-01-21 03:51:06 -05:00
yinle 225a2564bd fix bug #3973 Ubuntu 13.10 diskful installation fails 2014-01-20 13:36:27 -08:00
yinle 542a3dbbe4 Add a new file xcat.conf.apach24 2014-01-20 13:31:53 -08:00
yinle 407bef3e3d Add a new file xcat.conf.apach24 2014-01-20 13:29:02 -08:00
yinle ad6649144c fix bug #3973 Ubuntu 13.10 diskful installation fails 2014-01-20 13:25:36 -08:00
baiyuan 60f33728d2 this part of code is doubled by git automatically, remove redundant part 2014-01-20 09:34:48 -05:00
daniceexi 9908a8156c Change the man page of nodeset to make it supports the shutdown and shell operations 2014-01-20 11:10:07 -05:00
baiyuan 9cb232d069 fix 3879,remove build_input dir from complete kit xxx.tar.gz 2014-01-20 04:08:30 -05:00
baiyuan cc207c5ecd kitconponent should be kitcomponent 2014-01-19 22:20:54 -05:00
baiyuan 584fe221c2 update imgexport/imgimport manpage to surpport kits 2014-01-19 21:56:14 -05:00
arif e86917e218 fix bug 3971, trim othernames variable 2014-01-17 08:45:17 +00:00
baiyuan 481a93554f fixed 3357,add symlink,copy postscripts and plugin files for kit 2014-01-16 21:01:50 -05:00
yinle 894bdb17e7 update building of ubuntu repo to include the supported ubuntu disctros 2014-01-16 04:33:11 -08:00
daniceexi 9164cf83a3 defect 3968: fixed the issue that for statelite on aix, the .statelite dir was not copied to shared_root spot from default spot 2014-01-16 04:49:17 -05:00
lissav f93a5eb28b fix mysqlsetup -u 2014-01-15 06:15:35 -05:00
immarvin caafd03ca0 fix defect #3960 Genimage broken for CentOS 5.4 nodes 2014-01-14 01:03:54 -08:00
lissav 0fab0368ec defect 3541 2014-01-13 12:55:15 -05:00
daniceexi 35376641b4 To make bmcsetup cmd to update node status to be [bmcready] in genesis; And make chain mechanism to support [shutdown] key word which is used to poweroff the node 2014-01-13 07:55:03 -05:00
arif dd3f08682f Merge commit 'e5bde95310d245174ae533251f7eb8a9c6c2702e' 2014-01-10 14:43:07 +00:00
daniceexi b58e374758 fix the issue that proxydhcp configuration file cannot be updated 2014-01-10 09:16:42 -05:00
arif e5bde95310 add nichostnameprefixes to @nodeattrs 2014-01-10 14:16:15 +00:00
sjing a4e0952b6c Fix for bug 3955. 2014-01-10 03:00:25 -05:00
sjing 24215114c6 Fix for bug 3815
Last fix results in "makedhcp -n" not working, so re-fix it.
2014-01-09 22:20:51 -05:00
arif e01827f9d3 first commit for prefix hostname feature 2014-01-09 21:02:53 +00:00
lissav 23c464cbe8 update description 2014-01-09 08:45:15 -05:00
Jarrod Johnson 3b1d444077 Fix detection of debian for some ubuntu installations 2014-01-08 15:16:51 -05:00
lissav 835ab6b592 simplify messages for odbcsetup call 2014-01-08 11:14:22 -05:00
ligc 9e81eccc66 fix for bug 3951: remove the code to check xcat versions during xcatd restart/reload 2014-01-08 23:47:28 +08:00
lissav 41a16bb370 fix for defect 3839 2014-01-08 10:34:21 -05:00
ligc 99802e8a09 fix for bug 3947: add check for AIX and nmap existence 2014-01-08 23:32:40 +08:00
lissav 69e5f3abf6 add catagories to site table 2014-01-08 08:30:44 -05:00
wanghuaz 9976df95e9 handle kit staff in imgexport/imgimport 2014-01-08 20:53:39 +08:00
daniceexi adf723db25 fix the issue that xcatd hangs when reading the request which is formatted in one line like litefile request from statelte CN 2014-01-08 07:42:35 -05:00
daniceexi 23b836102a defect 3135: changed the mount process for the statelite directory (for persistent entries) that make a directory after the node name and remount to the nodename directory instead of nfs root dir for persistent 2014-01-08 05:00:32 -05:00
Jarrod Johnson e02a913e86 Use sha256 by default in openssl.cnf 2014-01-07 14:18:53 -05:00
Jarrod Johnson ee812a995f Have esxi report itself ready at the correct time after a netboot or install 2014-01-07 14:18:05 -05:00
baiyuan 23a51d7bbb fix:remoed should be removed 2014-01-07 03:08:49 -05:00
daniceexi 69833876fa make confignics postscript to accept the site.setinstallnic to configure installnic to be static 2014-01-07 02:27:35 -05:00
lissav e87604fd5f defect 3948 2014-01-06 14:58:46 -05:00
wanghuaz bb4fa36b29 fixing the migration problem that rmkitcomp should remove the kitdeployment parameter file and its contents. 2014-01-06 15:19:24 +08:00
immarvin adb04f1651 fedora19/fedora20 diskful support 2014-01-02 23:52:13 -08:00
baiyuan 0723ce1117 update cases0 for buildkit 2014-01-02 02:52:25 -05:00
ligc 66bb1bc712 do not use nodels --version in /etc/init.d/xcatd 2014-01-02 14:39:40 +08:00
sjing 2cca891e35 Fix for bug 3952
Made makedhcp be able to handle the case where site.nameservers or
networks.nameservers is a comma delimited list with <xcatmaster>
keyword in it.
2014-01-02 01:23:43 -05:00
daniceexi e7dc46a03a defect 3909: make xcatd loads xCAT::Enabletrace by require instead of use to save resource 2014-01-02 02:05:37 -05:00
daniceexi 0599847898 fix man page of mknb to indicate that mknb only supports x86_64 2014-01-02 01:14:51 -05:00
daniceexi 553ecb83d2 Change the Windows deployment templates to support disk configuration, nics configuration and run postscripts 2013-12-31 09:02:26 -05:00
daniceexi 05946f11db Enhance genimage.cmd to accept second and third params for multiple winpe support 2013-12-31 08:04:25 -05:00
wanghuaz 9383ceca98 add an enhancement to skip not well-formed deployment parameters. 2013-12-31 17:03:21 +08:00
wanghuaz 3b1900c52d minor change in last check of passing parameters to postinstall and postbootscritps 2013-12-31 15:36:10 +08:00
daniceexi 3221fed0da Add some comments and help message for genimage.bat 2013-12-30 23:03:37 -05:00
daniceexi cf371f30e7 fixed the issue that missed the winpe-scripting.cab in last checkin 2013-12-30 07:02:49 -05:00
wanghuaz 045f334d33 fixing bug 3815: don't use global variables which doest work well in hierarchy system. 2013-12-30 11:02:02 +08:00
wanghuaz 0c911a96a3 passing kitcomponent deploy parameters to genimage package installation, postinstall script and postbootscripts. 2013-12-30 09:54:46 +08:00
wanghuaz 85d9803221 fixng bug 3945: give an example of how to write ospkgdeps and kitpkgdeps in different arch. 2013-12-27 17:03:32 +08:00
wanghuaz c60e45b4b2 fixng bug 3945: give an example of how to write ospkgdeps and kitpkgdeps in different arch. 2013-12-27 17:02:38 +08:00
baiyuan b63193149d kit release should be mandatory according to mini-design 2013-12-27 02:40:32 -05:00
wanghuaz 01f621ee32 fixing bug 3943: give accureate pattern to match output from console 2013-12-27 15:32:23 +08:00
baiyuan 17b7ee559a fix Use of uninitialized value within @a2 in pattern match (m//) at BuildKitUtils.pm line 273 2013-12-27 01:59:43 -05:00
sjing 62a0cb6350 Support dns master/slave configuration 2013-12-26 22:52:41 -05:00
wanghuaz a2aee1a0bb fixing bug 3848, moving preuninstall script from prerequisite rpm to meta rpm to make sure it can be issued before componnet been uninstalled. 2013-12-26 15:09:52 +08:00
jjhua 921d251301 if there are two roles for one chef-client, the script couldn't assign the
roles to the node. fixed it.
2013-12-26 12:41:15 -05:00
nott b12771ab54 template cleanup 2013-12-23 15:29:39 -05:00
jjhua 623ccadcc0 support for cinder 2013-12-23 16:29:55 -05:00
yinle 71213c8719 Add warning message on fsp wrong slp reply 2013-12-22 05:11:50 -08:00
immarvin 8b38c35e63 grep in busybox do not support long optipn string, use short instead 2013-12-19 19:11:31 -08:00
linggao 1e3062d8e4 Changed table name from capacity to hwinv. 2013-12-19 22:39:50 -05:00
immarvin 06af9c15a1 add rhels5.10 discinfo 2013-12-19 04:56:51 -08:00
immarvin bd36de6f1b fix syntax error if is blank 2013-12-19 04:27:16 -08:00
immarvin f75d136828 grep in busybox do not support long optipn string, use short instead 2013-12-19 01:41:19 -08:00
daniceexi 8eb9348c51 add the second argument for genimage.bat to make it can generate winpe and BCD to a specific dir 2013-12-19 07:26:14 -05:00
immarvin b014538601 fix the problem that rhels5.10 initrd cannot resolve the mn hostname 2013-12-18 23:21:42 -08:00
daniceexi abea7eceee Rewirte the proxydhcp.c with proxydhcp-xcat in perl; Added site.installnic to control the nics setting for windows; Added servicenode.proxydhcp and noderes.proxydhcp to control the starting of proxydhcp-xcat daemon and makedhcp againsts node for windows deployment 2013-12-19 04:55:27 -05:00
yinle 412f3b51c6 Modify the bug that causes mklocalrepo.sh error 2013-12-19 01:07:52 -08:00
linggao 2f17a10f92 added capacity table to store cpu, memory and disk sizes for nodes 2013-12-19 08:25:41 -05:00
Bruce Potter c4170ce728 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-12-18 15:43:59 -05:00
Bruce Potter 69fbb8add5 fixed Error: at the beginning of monshow usage (feature request 73) 2013-12-18 15:42:25 -05:00
lissav a2d494c501 defect 3916 2013-12-18 09:14:50 -05:00
sjing f7812a2517 Support dns master/slave configuration 2013-12-18 01:25:16 -05:00
lissav 91347e0a9b defect 3916 2013-12-17 13:22:27 -05:00
daniceexi b3af99e178 make including winpostscript dir only for linux 2013-12-17 13:55:39 -05:00
jjhua 78bde6f6f7 if we set up the chef-server during os provision, there are some error messages
in the /var/log/messages on the management node. Fixed it.
2013-12-17 14:16:58 -05:00
daniceexi 0851987c3b Make xCAT rpm to install all files in /install/winpostscripts/* for Windows support 2013-12-17 02:24:42 -05:00
daniceexi 7c81f38a80 Enhanced postscript support in templates 2013-12-16 03:57:30 -05:00
daniceexi 9b5ad5113e code drop for windows postscript/postbootscript support. The postscript/postbootscript should be set in node/osimage.postscript/postbootscript and copy to /install/winpostscripts before running nodeset 2013-12-16 02:24:11 -05:00
yinle 8b71e68c68 Add lsslp unicast support 2013-12-13 01:24:18 -08:00
yinle ca73b902f1 Add lsslp unicast support 2013-12-13 01:19:04 -08:00
yinle 22e3c40f09 Add lsslp unicast support 2013-12-13 01:13:44 -08:00
lissav 5585b97e18 fix defect 3942 2013-12-12 11:20:40 -05:00
immarvin 55f981ea47 liteimg use rc.statelite instead of rc.statelite.ppc.redhat for rhels6.5.ppc64 statelite 2013-12-12 02:15:24 -08:00
wanghuaz f8bb5e4b50 prevent the running of postbootscripts 2013-12-12 17:50:49 +08:00
wanghuaz 7c45a82a53 prevent the running of postbootscripts 2013-12-12 17:35:09 +08:00
daniceexi 7a8b802a86 skip the bmc interface for nics configuration 2013-12-10 07:18:53 -05:00
baiyuan 7ab60cf654 add test cases for addkit 2013-12-10 02:21:21 -05:00
daniceexi 663a0b7da8 Mutiple winpes support. nodeset (Windows.pm) will generate configuration file (path of winpe) in /var/lib/xcat/proxydhcp.cfg and send signal to proxydhcp daemon, proxydhcp daemon loads configuration file and offers 4011 service to windows compute nodes. 2013-12-10 05:35:37 -05:00
wanghuaz 2dd2518120 fixing bug 3340: add test option for rmkit to list kitcomponents in use 2013-12-09 21:38:41 -08:00
wanghuaz e2688d0211 fixing bug 3340: add test option for rmkit to list kitcomponents in use 2013-12-09 21:24:51 -08:00
zhaoertao f4b432b9ab modify the vmstorage value format of local path 2013-12-09 19:01:15 -08:00
Bruce Potter b952e390f2 add valid values of kvm, esx, rhevm to nodehm.mgt and power attributes 2013-12-09 19:01:49 -05:00
Bruce Potter b4ab8a1b4c update description of litefile and litetree image attribute to include reference to image groups 2013-12-09 14:38:00 -05:00
immarvin 94ca59d560 rhels6.5 support 2013-12-05 21:51:47 -08:00
Bruce Potter 7f5465e80f filter out another useless line of output from xhtml2pdf in getxcatdocs 2013-12-05 08:42:12 -05:00
Bruce Potter 75f28121ec change getxcatdocs to not exit when it hits an error converting one of the wiki pages 2013-12-05 08:24:36 -05:00
ligc 1170cda7f4 fix for bug 3902: add bridge nics into dhcpd.conf, em\d+ for Fedora 2013-12-05 12:51:49 +08:00
ligc c78350a9bf fix for bug 3922, use getNodesAttribs instead of getNodeAttribs 2013-12-05 09:46:44 +08:00
sjing 0d00b1be94 Fix for bug 3912
update net-snmp rpm version
2013-12-04 03:59:03 -05:00
lissav 810c5324b5 fix lots of info in man page 2013-12-03 07:21:07 -05:00
daniceexi 6dd972fd50 code drop for feature to support multiple disks/paritions and multiple nics configuration for Windows deployment. 2013-12-03 02:36:48 -05:00
sjing 9c24bcf48b Fixed bug 3927
AIX bundle file can not recognize '#' in the middle of line.
2013-12-02 22:55:36 -05:00
wanghuaz 20ec000e77 fixing the typo error in last commit for master 2013-12-03 00:55:56 +08:00
lissav ef5ec3c17c Defect 3926, rerun of mysqlsetup -i leaves xcatd stopped 2013-12-02 06:43:41 -05:00
jjhua 75fbe70734 two environment template files if develop_mode=false 2013-12-02 16:34:06 -05:00
xq2005 7abd27fbfe put mypostscript.tmpl under /opt/xcat/share/xcat/templates/mypostscript 2013-12-02 00:10:47 -08:00
baiyuan e2672df777 update linux.conf.template for autotest 2013-12-01 22:17:02 -05:00
jjhua 4e4ea3c0a2 To support databag in openstack chef cookbook.
--nodevmode is only used when running all the procedure, and will
generate the secret, create the databag, and load the databag item
2013-11-29 14:58:06 -05:00
baiyuan 794ca69b97 support multiple os version 2013-11-29 00:33:09 -05:00
baiyuan d21d6271cc add test cases for buildkit 2013-11-28 22:04:16 -05:00
xq2005 0585d387fb delete unused build script on ubuntu and debian 2013-11-28 00:43:57 -08:00
Bruce Potter f02239bf29 change instoss in builddep.sh to upgrade all net-snmp rpms together - bug 3914 2013-11-27 11:12:36 -05:00
Bruce Potter 5570ab24cf removed the nbroot rpms from the yum group file 2013-11-27 04:36:07 -05:00
Jarrod Johnson 05f5636ebc Have ipmi do wire format, to match ipmitool and microsoft behavior in spite of the spec (which no one follows, not even prior xCAT code) 2013-11-26 10:26:09 -05:00
baiyuan 14ac0776d0 enhance os value in testcase,adding os:rhels,os:sles support in cases0 2013-11-22 03:42:11 -05:00
xq2005 2ce177d155 for bug 3919: version compare problem 2013-11-22 01:38:23 -08:00
xq2005 b19f226801 update the ubuntu dep tarball 2013-11-21 20:03:06 -08:00
zhaoertao cd984f7c51 remove 'sequential' parameter for runxcmd calling in configfpc.pm 2013-11-21 01:05:36 -08:00
zhaoertao 8bc0488764 fix bug 3889 xcatd not running preprocess for multiple plugins when mgt=ipmi 2013-11-21 00:52:08 -08:00
daniceexi a8ba71961f defect 3917: add support for running of postinstall script in mic genimage. The rootimage root is changed to overlay/rootimg from overlay/package 2013-11-21 05:19:11 -05:00
wanghuaz a2a8bbf514 fixing the problem that configing bond0 flushed the default gateway. 2013-11-21 10:15:06 +08:00
daniceexi 49cda4ba0f Change the man pages of nodeset,genimage and geninitrd commands for adding --ignorekernelchk option 2013-11-19 07:08:56 -05:00
ligc f132ece7be Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-11-19 15:55:13 +08:00
daniceexi 9fbd6a0f7d Code drop for new requirement: Add a new flag --ignorekernelchk for nodeset, geninitrd and genimage commands to skip the kernel version checking when injecting drivers from osimage.driverupdatesrc 2013-11-19 06:29:46 -05:00
ligc a3cad111de fix for bug 3913: do not use autocommit=0 for table read 2013-11-19 15:50:15 +08:00
sjing 3b9be43df8 Fix syntax error in 00kitnodebase.pm
When I upgrade xcat to 2.9, I got error "Error loading module
/opt/xcat/lib/perl/xCAT_plugin/00kitnodebase.pm  ...skipping"
This is caused by syntax error of line 182, near "$reques
t_command".
2013-11-19 01:05:39 -05:00
Jarrod Johnson 9799071116 Fix SLES driver update media injection that is not rpm based 2013-11-18 16:31:59 -05:00
lissav f1311c0aa8 defect 3870 2013-11-18 13:43:30 -05:00
lissav f77e980e2e Defect 3906 2013-11-18 06:51:08 -05:00
jjhua 7e66fc5072 fixed bug 3904, if the environements dir doesn't exsit, create it. 2013-11-18 16:28:05 -05:00
Jarrod Johnson e52df92352 Fix problem where bnx2x dependency tree needs special handling in sles 2013-11-14 15:53:36 -05:00
jjhua 0a4d9fd9bc fixed bug 3898. 2013-11-14 14:18:25 -05:00
xq2005 0bf9efc290 replace , or . in xcatlib and confignics 2013-11-13 23:49:05 -08:00
John Simpson 6da15f4770 update to add comment on susspend and RHEL 2013-11-13 15:14:36 -05:00
immarvin 6f9f434b4a fix defect #3693 [DEV] rhels6.4-ppc64 statelite failed with (FATAL error: could not get the entries from litefile table...) when noderes.xcatmaster=<hostname of MN> 2013-11-12 23:41:51 -08:00
sjing f475c143e9 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 02:06:00 -05:00
xq2005 c010a68bb3 cacl broadcast address in configeth 2013-11-12 18:45:49 -08:00
John Simpson 2afe367b20 udpate to rflash man page for NeXtScale FPC 2013-11-12 16:46:36 -05:00
Jarrod Johnson e770d4b6dc Fix problem where fsm pulled in mic support 2013-11-12 10:03:53 -05:00
Jarrod Johnson 00f940d48b Remove ipmi.pm.legacy removal from fsm/zvm builds 2013-11-12 10:03:27 -05:00
sjing 88cbc07d96 update perl-Net_SSLeay.pm to 1.55-3 for AIX7.1.3 and above 2013-11-12 09:25:32 -05:00
sjing 039cf57962 update perl-Net_SSLeay.pm to 1.55-3 for AIX7.1.3 and above 2013-11-12 09:20:37 -05:00
John Simpson efb4906c68 updated the rflash man page with the NeXtScale FPC information 2013-11-11 19:18:26 -05:00
John Simpson bfca7b0bb7 update to fix configtfpc problems with running in xcatd 2013-11-11 17:49:29 -05:00
Jarrod Johnson 80b54be58e Add ability for appliances to forbid 32 bit architectures for RHEL 2013-11-11 15:31:32 -05:00
Jarrod Johnson 2f930993c0 Recognize and translate invalid url message 2013-11-11 09:25:22 -05:00
Jarrod Johnson 3dccc94696 Revert "Have rflash on fpc present a more readable error message"
This reverts commit 5509f6ab48.
2013-11-11 09:23:37 -05:00
Jarrod Johnson 5509f6ab48 Have rflash on fpc present a more readable error message 2013-11-11 09:18:00 -05:00
yinqing 1e40a422b1 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-11-11 17:25:36 +08:00
jjhua b9ef6a4282 fixed bug 3888
initialize the variable uselocalhost;
add new script configgw to configure the public gw
2013-11-11 16:11:18 -05:00
jjhua 5669c23ff1 remove the -vx flag 2013-11-11 14:46:37 -05:00
jjhua b91d6cd875 clean the chef-server data and stop the chef-server before uninstall the chef-server 2013-11-11 13:46:27 -05:00
yinqing 712ac48e82 merge 2.8.2-pcm code change from qing 2013-11-11 17:24:10 +08:00
Jarrod Johnson 3a4b586ea9 Fix bug with genimage and sles 2013-11-08 15:58:38 -05:00
John Simpson 5be4fab2b3 update to rvitals man page to remove summary option 2013-11-08 10:52:46 -05:00
John Simpson c7fbdf4626 update to rvitals man page to remove lcds from the options for BMC 2013-11-08 10:30:08 -05:00
John Simpson 9dabf11cd4 update to rinv man page to add descriptions for mprom, deveid, and guid 2013-11-08 10:24:40 -05:00
John Simpson a11fd07dbc update to process firm the same as firmware 2013-11-08 09:57:20 -05:00
John Simpson 3698609370 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-11-08 09:54:30 -05:00
xq2005 d8f6d1a6b4 confignics search ipv6 networks name automatically 2013-11-08 07:37:18 -08:00
John Simpson d3894733bd updated messages in ipmi.pm to correct double colon problem with IBM::EnergyManager in the string 2013-11-08 09:31:03 -05:00
Bruce Potter 3bd9fbc891 remove ipmi.pm.legacy 2013-11-08 08:31:58 -05:00
xq2005 ad7916eba0 delete grep error information in xcatlib.sh 2013-11-08 02:02:16 -08:00
daniceexi a3040af400 changed the description for column name powermgt in mic table 2013-11-07 23:03:44 -05:00
Jarrod Johnson efb4565f32 Fix problem where SLES11 SP3 SDK disk 3 would overwrite disk 1 2013-11-07 13:45:51 -05:00
Bruce Potter 9ab47e362f Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-11-07 12:10:06 -05:00
Bruce Potter d1066357b4 automatically save previous bld 2013-11-07 12:09:43 -05:00
Jarrod Johnson b91db176cd Add option to xcoll for individual output (-i) 2013-11-07 10:31:15 -05:00
Jarrod Johnson c2e30cadf2 Fix problem where reventlog would fail against a management module 2013-11-07 09:59:07 -05:00
xq2005 253c365f3c build xcat-openstack on ubuntu 2013-11-07 00:06:16 -08:00
xq2005 1fbcfd4785 build xcat-openstack on ubuntu 2013-11-07 00:03:10 -08:00
xq2005 5249e76e70 build xcat-openstack on ubuntu 2013-11-06 23:58:05 -08:00
xq2005 4e47350c59 build xcat-openstack on ubuntu 2013-11-06 23:47:48 -08:00
Bruce Potter 3c1268bc75 change group of sym links too in builddep.sh 2013-11-06 10:57:51 -05:00
Bruce Potter 2ef2f3d77b fix chgrp problem in build scripts on aix 2013-11-06 10:15:13 -05:00
Bruce Potter dae22d2531 update builddep.sh to have instoss install newer perl-Net_SSLeay.pm rpm on aix 71L 2013-11-06 09:41:05 -05:00
wanghuaz 40ea9ba362 Fixing bug 3876, reutrn with usage if no kitcomponent specified to addkitcomp/rmkitcomp 2013-11-06 18:20:22 +08:00
immarvin 88926480a2 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-11-06 01:45:42 -08:00
immarvin 7ba5977869 fix #3877 [FVT]genimage return confusing error message when xCAT-IBMhpc is not installed 2013-11-06 01:45:12 -08:00
daniceexi b33e239dc1 Xeon Phi support. Support nfs mount to any server which set in statelite table. Support power management setting. 2013-11-06 07:09:14 -05:00
wanghuaz 4624c6b9fa fixing bug 3815: check options again in process_request to make sure makedhcp options can be processes on service node. 2013-11-06 17:31:36 +08:00
wanghuaz 957403a1d2 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:26:52 +08:00
xq2005 adae06ce7b bug 3824: systeimager install failed on sles10 golden client 2013-11-04 23:49:20 -08:00
xq2005 53302a77ed bug 3824: systeimager install failed on sles10 golden client 2013-11-04 23:40:46 -08:00
xq2005 4fb578678c bug3872: stay on 'booting' when installing sles10 2013-11-04 22:50:19 -08:00
baiyuan d863097b05 add test cases for cn installation with sn in x86_64 redhat vm with kvm 2013-11-04 03:51:45 -05:00
baiyuan dcefc401c7 add testcase for sn installation in x86_64 redhat vm with kvm 2013-11-04 03:32:31 -05:00
baiyuan 128c35fa74 add testcase for cn diskfull installation with sn in x86_64 sles vm with kvm 2013-11-04 03:20:12 -05:00
baiyuan dee77954a1 add testcase for cn installatiion with sn in x86_64 sles vm with kvm 2013-11-04 03:09:54 -05:00
baiyuan 72b9ac43c7 add testcase for cn installation with sn in x86_64 sles vm with kvm 2013-11-04 03:06:12 -05:00
baiyuan fc3d050265 add testcase for sn installation in x86_64 sles vm with kvm 2013-11-04 02:47:30 -05:00
immarvin 67c66abb1e correct a syntax 2013-11-03 22:02:49 -08:00
daniceexi 4904b08a78 complete comments 2013-11-03 09:40:39 -05:00
daniceexi 9f1fd6c223 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:40:17 -05:00
Bruce Potter 36e4842a1c add db2man for blding xCAT-OpenStack man pages 2013-11-01 16:45:32 -04:00
Bruce Potter 7b57d0ba6c build man pages for xCAT-OpenStack tables and objects 2013-11-01 16:38:35 -04:00
immarvin 5e8d0c91e3 fix defect #2980 install kernel-source fail in genimage in rh6/centos 2013-11-01 04:06:59 -07:00
xq2005 23905cb311 use ip address to find the network name 2013-11-01 03:33:39 -07:00
Bruce Potter ae1241c0b2 add check for git pull success to build script 2013-10-31 12:57:33 -04:00
John Simpson c76c88f0e2 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-10-31 11:33:11 -04:00
jjhua 79f90a33a8 move the environment template files into the ./share/xcat/templates directory 2013-10-31 20:22:32 -04:00
jjhua e727395b75 add 2 environment template files 2013-10-31 17:06:27 -04:00
John Simpson 0bd4a8fc81 update configfpc 2013-10-31 11:32:45 -04:00
immarvin 6f1ff7a924 fix defect #3813 imgexport 2.7 will not imgimport 2.8 2013-10-31 01:42:57 -07:00
jjhua b5589691a9 Merge branch 'master' of ssh://jjhua@git.code.sf.net/p/xcat/xcat-core 2013-10-31 16:01:25 -04:00
jjhua 4cf04607d1 fixed some issues about errors and messages from Linda 2013-10-31 15:58:34 -04:00
yinle ec3fa3a7ec Fix bug #3712 p6 IH full-disk install fails with no /tftpboot/yaboot 2013-10-31 06:54:59 -07:00
yinle d526bbaaa8 Merge branch 'master' of ssh://git.code.sf.net/p//xcat/xcat-core 2013-10-31 06:48:09 -07:00
immarvin 195bd69ab2 fix defect #3393 xcat 2.8 mgt server(rhels6.4-ppc64) hang on Generating /etc/rndc.key during reboot 2013-10-30 07:12:35 -07:00
xq2005 0e54237c42 bug 3831: install ubuntu hang 2013-10-30 03:05:27 -07:00
wanghuaz 213556c27f fixing bug 3867 2013-10-30 01:46:24 -07:00
wanghuaz 3477b1f7a1 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-10-30 01:44:46 -07:00
nott 13e7903b43 buildkit fixes 3845, 3855, 3857 2013-10-29 14:45:14 -04:00
John Simpson 2b7def707f Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-10-29 11:29:51 -04:00
lissav 0eb918b7bd 3865,3864 2013-10-29 11:08:40 -04:00
ligc cac2677c1c 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:48:31 +08:00
Jarrod Johnson 3664f1d5c3 Implement rescansan in esx.pm and wire up svc.pm to issue rescansan 2013-10-28 20:26:40 -04:00
John Simpson 08accdf517 update to configfpc to add support for verbose and -i <int_adapter> option and a ping verification 2013-10-28 16:16:36 -04:00
Jarrod Johnson 952ff38ce4 Add --format to mkstorage 2013-10-28 16:15:25 -04:00
Jarrod Johnson fbce5a6a00 Add formatdisk to esx plugin, to be called by mkstorage 2013-10-28 16:07:38 -04:00
John Simpson abbbe735b5 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-10-28 15:44:16 -04:00
Jarrod Johnson b0ddf05865 Fix stateless esxi warning about ssh 2013-10-28 10:44:40 -04:00
Jarrod Johnson 908efae0ba Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-10-28 10:43:25 -04:00
Jarrod Johnson ec85d06117 Suppress warnings about ssh/tech support shell 2013-10-28 10:43:08 -04:00
yinle 0d827b59ab Add a new file configeth_aix 2013-10-28 07:35:09 -07:00
yinle 3be3d26ac3 Add lsslp support for IMM2. 2013-10-28 07:27:29 -07:00
yinle 8ecf88438c Add check in confignics to give message to AIX user. 2013-10-28 06:33:44 -07:00
yinle 0c7e33c045 Add check in configeth to give message to AIX user. 2013-10-28 06:28:45 -07:00
jjhua 428058af5a move setup_openstack_repo from xCAT/postscripts/ to xCAT-OpenStack/postscripts, and it will be packed into xCAT-OpenStack package 2013-10-28 11:02:30 -04:00
Jarrod Johnson 06fe33434a Fix table sourced controller pointing in *storage calls in svc 2013-10-27 16:49:25 -04:00
Jarrod Johnson bb351003dc Implement rmstorage for sc 2013-10-27 16:39:23 -04:00
Jarrod Johnson bd899691b0 Add detachstorage call to svc plugin 2013-10-27 16:23:52 -04:00
Jarrod Johnson 7cab5a1f41 Have mkstorage report the volumes created. 2013-10-27 15:22:50 -04:00
Jarrod Johnson dc9dd79a5b Add ability to request a specific name when doing mkstorage 2013-10-27 15:16:14 -04:00
Jarrod Johnson 1e8ebff8ac Add lsstorage command to the svc plugin 2013-10-27 14:51:20 -04:00
Jarrod Johnson 2aaeb87959 Fix shared mkstorage to actually function correctly in svc 2013-10-27 11:17:50 -04:00
Jarrod Johnson b44b1bbd6e Tolerate and amend host definitions in SVC removing hard requirement for host names to match svc and xCAT 2013-10-27 11:08:20 -04:00
jjhua fbc44597ca remove the print Dumper() 2013-10-27 16:16:57 -04:00
John Simpson ca3e7da99b update to configfpc to add support for verbose and -i <int_adapter> option and a ping verification 2013-10-25 12:33:38 -04:00
John Simpson 84f4f2c7c9 update to add the configfpc man page 2013-10-25 12:28:57 -04:00
wanghuaz 0ffc189fee fixing bug 3821 give better description for chkkitcomp 2013-10-26 00:19:27 +08:00
wanghuaz f7ae606485 fixing bug 3821 give better description for chkkitcomp 2013-10-26 00:17:42 +08:00
lissav dc9c746cbc defect 3859 2013-10-25 08:28:24 -04:00
immarvin 3d9582728b 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:27:46 -07:00
jjhua aaed135c1e add a new optional --script for confignics 2013-10-25 14:52:08 -04:00
zhaoertao b8f9d57194 fix bug 3856: rmvm could remove cec 2013-10-24 23:32:02 -07:00
jjhua a5424b703b add a new script configbr-ex to configure the IP of the external bridge for network node 2013-10-25 14:33:18 -04:00
zhaoertao 5de59481e1 fix bug 3850: "chtab key=fsp,username=HMC ..." doesn't work for Powerlinux 2013-10-24 23:01:18 -07:00
lissav 9a09552de5 defect 3851, further enhancements 2013-10-24 08:05:59 -04:00
lissav 4bac666675 defect 3851, further enhancements 2013-10-24 07:23:59 -04:00
lissav 3cae77406c defect 3851, further enhancements 2013-10-24 06:55:54 -04:00
daniceexi 399e71a4c0 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:41:48 -04:00
zhaoertao d53c777ca1 fix bug 3820: rinv for feihu FPC is producing errors 2013-10-24 02:13:34 -07:00
daniceexi 245c3eab83 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:58:21 -04:00
daniceexi b18d580dd5 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:07:21 -04:00
sjing fb60b65258 Handle the case where networks.nameservers is a comma delimited list 2013-10-24 04:19:47 -04:00
wanghuaz 5565f20b8b fixing bug 3848: add prerequisite component as dependency of kit component meta rpm 2013-10-24 15:07:04 +08:00
zhaoertao eac9954e26 fix bug 3651: rspconfig with cmm does not execute or provide error when entry found in ipmi table 2013-10-23 23:46:04 -07:00
John Simpson 526ef5fbd8 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-10-23 16:56:22 -04:00
lissav 3bf30fcc38 defect 3851- handle multiple MN in DB 2013-10-23 13:50:05 -04:00
Jarrod Johnson 857af4d498 Send a positive acknowledgement of flow request 2013-10-23 11:15:04 -04:00
daniceexi 67f5b9c808 change the position to run localdisk script that put it before killing udev. For stateless only. 2013-10-23 15:05:26 -04:00
jjhua 7cff252401 add the loadclouddata, share/xcat/mypostscript/mypostscript_cloud.tmpl into xCAT-OpenStack 2013-10-23 22:56:17 -04:00
jjhua 4e59b13e0f move out the code to read cloud/clouds table from Postage.pm to Cloud.pm in xCAT-OpenStack. Move out the loadchefdata script. 2013-10-23 22:41:15 -04:00
daniceexi 50a853c96e add more kernel modules of scsi for localdisk support 2013-10-23 14:01:09 -04:00
Jarrod Johnson 3243037a91 For newer versions of esxi for which we have selected a less vague name, ensure we remake it every time. 2013-10-22 10:45:42 -04:00
immarvin 06e244202b correct xcat-yaboot in error message to yaboot-xcat 2013-10-22 05:11:27 -07:00
immarvin 105b54d4cd fix defect #3626 yaboot.pm needs to use pkgdir 2013-10-22 04:53:02 -07:00
immarvin bcd72b4040 fix defect #3626 yaboot.pm needs to use pkgdir 2013-10-22 00:57:14 -07:00
jjhua d464001ca1 Add the chef-client to invoke the config_chef_client script 2013-10-22 14:29:56 -04:00
jjhua f8daa39253 fixed a minor problem 2013-10-22 13:25:45 -04:00
jjhua e852d0b264 changes for the command makeclouddata 2013-10-22 10:45:41 -04:00
jjhua a77996e933 Postscripts for OpenStack-Chef-Cookbook/xCAT integration 2013-10-22 10:22:39 -04:00
jjhua 42bc6cef07 code for OpenStack-Chef-Cookbook/xCAT integration 2013-10-22 10:07:08 -04:00
Chuck Brazie 66d62f7e65 Adding file back in, not sure why it delted 2013-10-21 14:09:31 -04:00
Chuck Brazie ef75e82fe3 Merge zVM updates into xCAT 2.8.3 2013-10-21 14:01:20 -04:00
lissav 81679ffdb9 defect 3819 2013-10-21 11:28:50 -04:00
zhaoertao 80ba0a4601 fix bug 3774 :getmacs <noderange> -D -V failed 2013-10-21 02:54:15 -07:00
xq2005 617de03d13 delete 127.0.1.1 from /etc/hosts on ubuntu compute node 2013-10-21 01:08:59 -07:00
John Simpson 49f714850b Adding a new plugin confgifpc to support discovery and configuring of NeXtScale FPCs 2013-10-18 16:18:14 -04:00
nott c88d7751de check return from find_latest_pkg 2013-10-18 07:59:14 -04:00
nott 41b7c99bee Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-10-18 07:58:16 -04:00
nott 9f53a3c4e6 check return from find_latest_pkg 2013-10-18 07:57:49 -04:00
lissav e1c55be4ff defect 3844 2013-10-18 07:50:22 -04:00
lissav 059a4fd6f6 defect 3841 2013-10-18 07:24:00 -04:00
immarvin 4fcf3a96e6 fix defect #3370 Create osimage definition for the Management Node 2013-10-18 01:58:05 -07:00
ligc c30f46cc80 fix for bug 3841: syntax error in remoteshell postscript 2013-10-18 15:58:18 +08:00
ligc e5d8576cfd Update Clouds table for xCAT-OpenStack 2013-10-18 15:53:10 +08:00
nott 6bdf5bfc3f add -F option to lskit man 2013-10-17 15:18:07 -04:00
nott 899be1a70d add -F option to lskit 2013-10-17 15:02:18 -04:00
lissav c05b7c9a66 additional flowcontrol error handling defect 3819 2013-10-17 11:46:12 -04:00
lissav 6d00593449 enhance error reporting 2013-10-17 11:04:01 -04:00
xq2005 87db317493 add env parameters in runxcatpost 2013-10-17 02:21:02 -07:00
zhaoertao 52344f9997 fix bug 3835: 'rspconfig blade network=*' result need to be enhanced 2013-10-16 23:52:02 -07:00
xq2005 f8a56d3712 bug 3801: the booted status after syslone reboot 2013-10-16 20:12:52 -07:00
nott b3a222e811 add build_input subdir to complete kit 2013-10-16 15:03:55 -04:00
lissav 529a287a92 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-10-16 12:56:34 -04:00
xq2005 6043695181 bug 3801: the booted status after syslone reboot 2013-10-16 08:43:20 -07:00
lissav 74dffc5f26 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-10-16 06:08:51 -04:00
lissav 5e5cf68068 put manpage back 2013-10-16 06:08:30 -04:00
zhaoertao c8899e694a fix bug 3834: 'lsslp -s CMM -w' write different id for cmm01 with 'rscan cmm01 -u' 2013-10-16 02:35:43 -07:00
zhaoertao 8081d7bf4f modify the operating for CMM doesn't rely on 'id' attribute 2013-10-16 02:35:27 -07:00
zhaoertao ace7a82ef9 modifying 'rscan -u|-w' for working through DFM 2013-10-15 19:40:17 -07:00
Bruce Potter 3bd7a65b37 remove xcat.1.pod, it is generated by xpod2man 2013-10-15 21:10:22 -04:00
Bruce Potter 7040aebf37 require perl-IO-Stty on x86_64 too, in case managing ppc64 nodes 2013-10-15 20:44:05 -04:00
lissav b9144fc028 comment out for now disable buffering on the socket 2013-10-15 14:24:43 -04:00
Jarrod Johnson a52dc5b5f9 Correct problem introduced by partial backout of storable.
Client.pm was still expecting some output to a request no longer sent.  Correct that.
2013-10-15 13:39:20 -04:00
lissav 53974fcaa8 defect 3819, changes for xcatdsklspost and setuppostbootscripts 2013-10-15 10:21:53 -04:00
lissav 9c7f3e41c0 defect 3819 enhance -s behavior 2013-10-15 09:05:44 -04:00
lissav 248415daea defect 3819 enhance -s behavior 2013-10-15 08:15:12 -04:00
wanghuaz 3aca3b2a70 fixing bug 3510 remove useless repos after genimage 2013-10-15 17:49:01 +08:00
wanghuaz 882d64f809 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-10-15 02:32:43 -07:00
wanghuaz 8b035a3570 fixing bug 3510: remove useless repos after genimage. 2013-10-15 02:31:01 -07:00
ligc 6375fb72ad sequential discovery phase 2: add -n, osimage and -s flags 2013-10-15 16:06:26 +08:00
wanghuaz f788778e48 fixing bug 3821, use better description for chkkitcomp command 2013-10-15 15:43:10 +08:00
ligc ca6318cf58 fix for bug 3833: if ip forwarding is not enabled, do not use the MN as gateway 2013-10-15 09:49:30 +08:00
nott e2213896d2 change pkgdir description 2013-10-14 10:21:34 -04:00
xq2005 a9b4000b61 for bug 3817 modification 2013-10-14 04:31:18 -07:00
xq2005 7fc282011b bug 3817: sysclone support rhels 5.9 2013-10-14 03:46:53 -07:00
Sheng Feng Xing 53dc1cde81 Do not import lpar node if FSP network associated with it 2013-10-14 15:05:30 +08:00
jjhua feda4dddbb fixed bug 3683. In rhels 6.x, the mksquashfs doesn't have the -le and -be options.
for sles, the mksquashfs is in /usr/bin/ .
2013-10-14 12:33:55 -04:00
nott d962fc5092 change kit framework to 2 2013-10-13 10:38:20 -04:00
nott f229e78a9e change kit framework to 2 2013-10-13 10:37:22 -04:00
nott baabb6d4ba add -v and aix note 2013-10-12 12:58:15 -04:00
nott 6fa8fdfb74 add -v and aix note 2013-10-12 12:54:38 -04:00
Bruce Potter 008e6ecdb7 filter out signing msg in build script 2013-10-11 17:42:39 -04:00
Bruce Potter e329e234a7 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-10-11 17:31:10 -04:00
Bruce Potter 7a187b19aa set group for files/dirs to root instead of xcat, because the xcat group does not exist on users mn 2013-10-11 17:28:14 -04:00
nott 1842cff1cf add framework to -v and check for aix 2013-10-11 16:40:44 -04:00
Jarrod Johnson 62b436be08 Disable storable encoding for client
Clever things can live in Storable payloads that can essentially be remote execution.
Disable that for now.
2013-10-11 15:57:29 -04:00
Jarrod Johnson 5bfcf11689 Rework previous changeset somewhat and add gateway support 2013-10-11 14:57:26 -04:00
Jarrod Johnson 8376bfab67 Attempt to set ip and netmask remotely 2013-10-11 14:45:19 -04:00
Bruce Potter d3c49894d5 updated description of useflowcontrol attr 2013-10-11 13:31:37 -04:00
lissav 764e263c2f defect 3819 2013-10-11 07:17:30 -04:00
lissav fa24d1f47c defect 3819 2013-10-11 06:47:35 -04:00
immarvin 3724f333fe fix defect #3830 [DEV] rinstall complains inappropriate message 2013-10-11 01:21:25 -07:00
lissav f4610cfc6d defect 3819 2013-10-10 14:53:24 -04:00
lissav 8b84e9e0eb defect 3819 2013-10-10 13:57:18 -04:00
lissav cd1c5414d6 defect 3819 2013-10-10 11:25:36 -04:00
lissav 4a04c8fb10 defect 3823 2013-10-10 09:09:37 -04:00
xq2005 d8c0929f24 bug 3824: install systemimager on sles10 failed 2013-10-10 03:14:50 -07:00
xq2005 39b5298569 bug 3824: install systemimager on sles10 failed 2013-10-10 03:11:53 -07:00
xq2005 381287e451 build ubutnu packages for prega 2013-10-10 02:59:19 -07:00
Jia Zhao bf0c433a8e fix nodeimport message problem 2013-10-10 15:29:35 +08:00
Bruce Potter 81760673e3 fix setversionvars command not found problem during promote 2013-10-09 19:54:10 -04:00
lissav b733b711c3 defect 3819 2013-10-09 15:26:55 -04:00
lissav b83cb162dd defect 3819 2013-10-09 13:46:42 -04:00
lissav 2a4a063169 defect 3760 2013-10-09 12:28:09 -04:00
Jarrod Johnson e81fae18d1 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-10-08 16:09:14 -04:00
Jarrod Johnson 8862d59f99 Add a rmvcluster command for vSphere support 2013-10-08 16:08:51 -04:00
lissav 3598d5047d defect 3816 2013-10-08 15:36:59 -04:00
jjhua eb6cc1d15c fixed bug 3796. At the end of genimage, remove the repositories of zypper. 2013-10-08 16:22:58 -04:00
xq2005 80291f4473 bug 3808: error info when running confignics 2013-10-08 01:45:23 -07:00
xq2005 9c409845ba bug 3809: get the dhcp info from lease file 2013-10-07 22:57:42 -07:00
lissav 4116445f88 update again to log 2013-10-03 10:36:05 -04:00
lissav a632c7b307 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-10-03 09:31:38 -04:00
nott 8461780ea5 add find_latest_pkg 2013-10-02 14:18:34 -04:00
nott 4711465ad0 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-10-02 14:16:38 -04:00
nott d74b4a2527 add find_latest_pkg 2013-10-02 14:15:18 -04:00
nott a4ebd3bf6a add find_latest_pkg 2013-10-02 14:10:36 -04:00
Jarrod Johnson 422cf661ee Add removevlan support to chhypervisor for vmware 2013-10-02 13:46:15 -04:00
Jarrod Johnson 10dd94e428 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-10-02 12:45:57 -04:00
Jarrod Johnson 8b786b30c5 If xCAT-vlan is installed, have chhypervisor change the switch and the hypervisor 2013-10-02 12:28:29 -04:00
nott 213394d3a6 add mult pkg dir support 2013-10-02 12:00:57 -04:00
Jarrod Johnson 698cf75276 Refactor hostportgroup management code in esx plugin
Have esxi support --addvlan parameter
2013-10-02 10:24:18 -04:00
lissav 73d269c8c1 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-10-02 09:14:32 -04:00
lissav 490ea0e57c defect 3797 2013-10-02 09:13:40 -04:00
Jarrod Johnson c440e892da Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-10-02 08:36:30 -04:00
lissav 57f924c50d defect 3811 2013-10-01 08:25:09 -04:00
John Simpson 36c1eb5fd7 Add support for missing NeXtScale sensors 2013-09-30 16:51:00 -04:00
lissav 3e6abbcc60 temp fix for defect 3797, at least get it working on SLES 2013-09-27 09:55:48 -04:00
xq2005 d856b6caf4 ubuntu 13.04 stateful support 2013-09-27 02:56:44 -07:00
daniceexi 09fe6d5c8f 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:59:06 -04:00
xq2005 58e403c28c bug:3804 2013-09-26 19:29:30 -07:00
daniceexi 9f8a003107 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:04:36 -04:00
Jarrod Johnson fbb1c3c1c0 Add lsvcluster private esx function 2013-09-25 17:23:27 -04:00
Jarrod Johnson c0585e091b Add an easter egg entry point for createvcluster 2013-09-25 17:10:49 -04:00
Jarrod Johnson e600768e19 SVC support phase 2
Generally able to create shared and dedicated storage luns

TODO: still put the boot data into storage.osvolume
TODO: format callout to nodetype.os driven plugin (looking at esxi here)

attachstorage/detachstorage/showstorage/rmstorage still TODO
2013-09-25 11:26:27 -04:00
lissav 9845d52bb7 defect 3800 2013-09-25 08:13:39 -04:00
lissav c5119b23fd add /install/custom directory 2013-09-25 07:24:01 -04:00
daniceexi 18d6398e02 defect 3783: add the missing driver for sles11.3; fix the bug of adding new drivers with incorrect order 2013-09-25 02:06:47 -04:00
daniceexi f9c1bd930e defect 3779: change the output of driver injection to make it sensible 2013-09-25 01:49:56 -04:00
Jarrod Johnson 25dd2ce800 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 21:03:48 -04:00
lissav 14696db19f defect 3799 2013-09-24 10:26:00 -04:00
xq2005 b5c87afbb2 bug 3798: confignics -s failed on sles11 sp3 2013-09-24 02:14:43 -07:00
lissav 4a1260201d defect 3618 2013-09-23 12:02:52 -04:00
wanghuaz 5f0bc62131 Fixing bug 3406, using md5 hash algorithm for centos 5.x during createrepo 2013-09-23 18:50:23 +08:00
xq2005 cbba505632 confignics modification for syntactics 2013-09-23 02:57:28 -07:00
Sheng Feng Xing 4dd033b069 Commit new nodeimport man page into master branch for Power rack-mount node support 2013-09-23 15:30:30 +08:00
xq2005 ed0e4b6fc2 bug 3795: node can not boot after cloning sles11.3 with legacy mode 2013-09-23 01:07:55 -07:00
Sheng Feng Xing 9b5e17ab88 Merge PowerLinux 7R2 support patches into master branch 2013-09-23 14:45:43 +08:00
wanghuaz 25563cc4eb Fixing bug 3406, using md5 hash algorithm for centos 5.x during createrepo 2013-09-22 18:21:59 +08:00
Sheng Feng Xing eb16d571a0 Fix #3793: CFMUtils.pm can not sync-up symbolic link directory under cfmdir 2013-09-22 14:34:40 +08:00
Jarrod Johnson c3749b7f93 Add support for esxi5.5 2013-09-19 15:53:29 -04:00
lissav 25c5e4686a defect 3150, check for errors from DB. We can do itgit diff tabutils.pm 2013-09-19 13:06:08 -04:00
lissav 9f7f09d0f7 defect 3580 2013-09-19 10:52:57 -04:00
lissav a23b9ab782 defect 3785 2013-09-19 07:36:48 -04:00
lissav 57db78797e document xcatmaxbatchconnections update 2013-09-18 14:24:16 -04:00
lissav 16f60b110a document xcatmaxbatchconnections, try 2013-09-18 14:09:35 -04:00
lissav 5e0fde83cd defect 3785 2013-09-18 13:45:11 -04:00
lissav e11faa9992 fix extra output on -k interface 2013-09-18 08:21:29 -04:00
lissav e8d067b359 defect 3785 2013-09-18 07:08:41 -04:00
ligc bfe3cdad05 fix for bug 3748: lsdef --osimage need to list all osimage attributes 2013-09-18 13:46:00 +08:00
ligc 982f411251 fix bug 3745: makehosts -d to delete otherinterfaces hosts 2013-09-18 07:54:40 +08:00
Jarrod Johnson 29d9d824fe Fix pasu with multi-node eX5 systems 2013-09-17 17:27:47 -04:00
lissav 82617219fc fix defect 3786 2013-09-17 12:23:17 -04:00
lissav 863481ab17 fix for defect 3785(PCM) requirement 2013-09-17 10:38:04 -04:00
zhaoertao 35479c4cf9 enhancement of supporting partition on IBM power 7R1/7R2 machines. 2013-09-17 07:21:37 -07:00
xq2005 ce0d0e18f7 bug 3763:write install nics's configuration file 2013-09-17 00:49:04 -07:00
litingt 22cbc9f005 confignics test case part one 2013-09-16 23:35:22 -04:00
Sheng Feng Xing c3963a7f80 Fix #3784: CFMUtils.pm reports error messages in Verbose model if osimage.cfmdir is not set 2013-09-17 10:32:49 +08:00
lissav 07397d277f defect 3781 2013-09-16 09:29:20 -04:00
xq2005 69d3902280 bug 3776: post install script hung when deploy rhels5.9 2013-09-16 01:48:57 -07:00
zhaoertao a731c4f20b Enhancement of fixing for bug 3780: Incorrect password selected for blade 2013-09-15 23:17:00 -07:00
lissav c667ff8f28 add support for -a (addrows) flag 2013-09-13 14:21:29 -04:00
lissav a854eaa08f add support for -a (addrows) flag 2013-09-13 14:18:49 -04:00
lissav df24dc4db9 add support for -a (addrows) flag 2013-09-13 14:17:36 -04:00
immarvin a9b22625d3 add fedora19 full install support 2013-09-13 07:16:13 -07:00
lissav 71274bf063 add missing libraries 2013-09-13 07:57:40 -04:00
lissav 48e922423a defect 3750 2013-09-13 07:37:25 -04:00
xq2005 bfd7e6c7ee setupntp do not return directly 2013-09-13 02:05:25 -07:00
zhaoertao cf14e652d1 fix bug 3780: Incorrect password selected for blade 2013-09-13 00:46:26 -07:00
lissav 0b9bccf4df defect 3750 2013-09-12 09:26:39 -04:00
lissav 1b808bcffd Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-09-12 08:19:19 -04:00
lissav 1223ff467e add -t info 2013-09-12 07:54:58 -04:00
xq2005 9390efe04e confignics modify -s option 2013-09-11 23:48:49 -07:00
Jarrod Johnson 787fb3207c Implement rflash support for NeXtScale Enclosure manager 2013-09-11 14:26:03 -04:00
lissav 0537dc4e61 defect 3766 2013-09-11 08:56:09 -04:00
lissav de087c0f9d defect 3778 2013-09-11 07:15:34 -04:00
zhaoertao f3d00082c2 Modifications of setting memory for partitions on Power Machines 2013-09-11 02:46:38 -07:00
daniceexi 9f2f230037 defect 3759: fix the man page for power 6 that attributes syssbpower,sysIPLtime were not in the command line list 2013-09-11 09:47:12 -04:00
xq2005 f9e7a88e69 bug3767:Target node doesn't return 'booted' status in sysclone 2013-09-11 03:23:19 -07:00
xq2005 d7db26b19c bug3767:Target node doesn't return 'booted' status in sysclone 2013-09-11 03:18:06 -07:00
xq2005 689d4837fb bug 3755, No way to setup CN hardware clock 2013-09-11 03:09:17 -07:00
sjing 069169902d Enhance usability of makedns with more checks and better messages. 2013-09-11 05:15:36 -04:00
lissav ad095fe20c fix defect 3777 2013-09-10 14:23:22 -04:00
lissav 0c36ee3155 add centos6 2013-09-10 09:13:58 -04:00
xq2005 3b1333d88f fix the postinst script for xcat-server on ubuntu 2013-09-10 02:24:18 -07:00
wanghuaz 73cf93f36b fixing bug 3764, add osminor version for sles. 2013-09-10 14:50:04 +08:00
wanghuaz 6c6f954ff8 enable snmpv3 monitoring on Linux on master 2013-09-10 14:48:46 +08:00
zhaoertao e42ce7835c Add a column 'physlots' for 'vm' table, it is used for partitioning. 2013-09-08 23:26:25 -07:00
xq2005 b10396f556 bug 3765 2013-09-08 23:55:13 -07:00
Jarrod Johnson 742fc45068 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-09-06 11:16:13 -04:00
Jarrod Johnson f39001788f Provide rpower reseat for NeXTScale 2013-09-06 11:15:39 -04:00
nott 0fac74810f #3655 - add two new subroutines for comparing rpm versions 2013-09-05 13:05:39 -04:00
nott 3b82ab0817 #3674 - add error return code 2013-09-05 12:29:37 -04:00
nott cf6f185635 #3752 - change tmp work dir location 2013-09-05 11:20:25 -04:00
zhaoertao ec4622a096 Modify manpage for mkvm, lsvm, rmvm. And checking if parition is disabled. 2013-09-05 01:28:27 -07:00
zhaoertao 371c4c79a9 Supporting full-partition and physical-partition with DFM 2013-09-05 01:28:01 -07:00
xq2005 4cb0606746 bug 3768,3769,3770 2013-09-04 20:59:20 -07:00
ligc db4b5a2065 add the storage.rhels6.pkglist 2013-09-05 09:59:39 +08:00
sjing 3e71a82741 add an error message if mn's hostname can not be resolved. 2013-09-04 05:58:19 -04:00
xq2005 0f9cd87b13 for bug 3762 2013-09-04 02:45:31 -07:00
Bruce Potter 9263cb2f15 specify --checksum for createrepo so the repo will work on rhel5 2013-08-31 10:35:25 -04:00
ligc e9d60852b7 add rhelhpc6.4 support 2013-08-30 09:13:17 +08:00
lissav c9053f4a6c add timeout support to updatenode to pass into xdsh 2013-08-29 13:53:34 -04:00
lissav bfbdb24622 add timeout support to updatenode to pass into xdsh 2013-08-29 13:34:13 -04:00
lissav f2ded51dec implement timeout in xdsh -K 2013-08-29 09:12:50 -04:00
lissav 856dd30fae more code to enable user input timeout on xdsh -K 2013-08-29 07:59:36 -04:00
xq2005 a5fb87a364 add syscloneimgupdate scripts to update the target nodes files 2013-08-29 02:59:32 -07:00
lissav 2662d2913f add support to supply expect timeout 2013-08-28 13:07:38 -04:00
lissav e8052e3e37 add check for servicenodes and computenodes in noderange for nodeset. Also remove very old commented out code defect 3750 2013-08-27 13:10:37 -04:00
lissav 072e57437a Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-08-27 12:55:34 -04:00
Bruce Potter f61d224d1c fix bld script change 2013-08-27 12:49:04 -04:00
lissav edabe5dc6c add check for servicenodes and computenodes in noderange for nodeset. Also remove very old commented out code defect 3750 2013-08-27 12:48:37 -04:00
Bruce Potter 79abddc476 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-08-27 12:36:38 -04:00
lissav c0fbda2ee2 add check for servicenodes and computenodes in noderange for nodeset. Also remove very old commented out code defect 3750 2013-08-27 12:26:09 -04:00
Bruce Potter b20f9ae848 change git cmd used to get current branch 2013-08-27 11:23:22 -04:00
lissav bacfae1024 fixes for defect 3750 2013-08-27 09:48:31 -04:00
xq2005 260d2a5746 sles.pm modification for sysclone on sles 2013-08-26 20:51:26 -07:00
xq2005 aa892335de update scripts for sysclone supports sles 2013-08-26 20:16:47 -07:00
lissav 1fc54f6bdc changes for defect 3758 git patch 2013-08-26 11:08:06 -04:00
xq2005 b2f511f4df sles.pm modification for sles 2013-08-26 00:01:05 -07:00
daniceexi 098ddc4b46 Just a checkin test, no change 2013-08-26 01:55:39 -04:00
daniceexi 1f7cb1b593 Just a checkin test, no change 2013-08-26 01:53:16 -04:00
daniceexi 2f175e4cef Just a checkin test, no change 2013-08-26 01:48:17 -04:00
ligc 0b874a4bd5 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-08-26 09:29:00 +08:00
lissav a8c36721b0 add additonal ethernet setup 2013-08-24 06:32:33 -04:00
daniceexi afc950912d kill the child processes when create socket failed 2013-08-23 06:42:36 -04:00
xq2005 e87d5fa074 add mksysclone in sles.pm 2013-08-22 23:32:02 -07:00
xq2005 56ed1f53d0 postscripts modification for sysclone on sles 2013-08-22 22:58:53 -07:00
Jarrod Johnson 82e6644c85 Correct more issues with noderange 2013-08-22 14:35:21 -04:00
lissav 84b36c29ab fix schema definition 2013-08-22 12:03:14 -04:00
daniceexi 10a1973aae make geninitrd could run against statelite image to generate initrd 2013-08-22 07:05:41 -04:00
daniceexi 969f535536 Remove the validity checking base machine type so that any power machines can be run with renergy command 2013-08-22 06:38:41 -04:00
xq2005 6df017b620 remove klogd from genesis base 2013-08-21 19:50:17 -07:00
lissav 5d7072da13 defect 3754 2013-08-21 12:55:39 -04:00
xcat ubuntu build machine 0565563156 build packages on ubuntu 2013-08-21 16:31:02 +00:00
xq2005 5aee2ceea8 add reiserfs into genesis to support sysclone for sels 2013-08-21 09:07:48 -07:00
xq2005 66700054a3 add kvm pkglist and template for ubuntu 2013-08-21 07:35:23 -07:00
xq2005 9e2bb00b82 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-08-21 03:07:34 -07:00
xq2005 65a2d35112 modification for builing xcat on ubuntu 2013-08-21 03:05:59 -07:00
Jarrod Johnson 2275e87b6f Try to suppress scary warning at time of checking for bmc port activity 2013-08-20 16:31:53 -04:00
Jarrod Johnson 7ac9dae5af Attempt to fix bmcsetup problem where service processor changes after request to change too late 2013-08-20 15:59:42 -04:00
Jarrod Johnson 21e8a18c9e Fix problem where values after parenthitcal group were not evaluated correctly 2013-08-20 15:34:16 -04:00
wanghuaz 0a59a7beb6 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-08-20 23:11:19 +08:00
wanghuaz 6439ab60ee fixing bug 94319: handle the case of some postscript contains parameters 2013-08-20 23:10:41 +08:00
lissav 8e48b6a40f fix defect 3750 2013-08-20 10:24:06 -04:00
xq2005 3188ab14cc postscripts modifiction about sysclone supporting for sles on master 2013-08-20 02:09:46 -07:00
xq2005 19d72e6f84 add debianpreconf into xcatlib.sh on master 2013-08-19 23:47:34 -07:00
lissav 6cac1a8001 fix pid files did not get removed and the kill term showing up 2013-08-19 13:29:51 -04:00
Bruce Potter bae1fbbdf4 add --nonodecheck to the psh usage and man page 2013-08-17 10:52:52 -04:00
immarvin 6b546dbf85 update node provision status based on the feedback of nodes instead of rpower/rnetboot 2013-08-16 02:17:16 -07:00
immarvin fd0accd00c update node provision status based on the feedback of nodes instead of rpower/rnetboot 2013-08-16 02:05:31 -07:00
immarvin 565f67b9fe update node provision status based on the feedback of nodes instead of rpower/rnetboot 2013-08-16 02:00:23 -07:00
immarvin 6769c92f7e update node provision status based on the feedback of nodes instead of rpower/rnetboot 2013-08-16 01:43:38 -07:00
immarvin 50901d0ac1 update node provision status based on the feedback of nodes instead of rpower/rnetboot 2013-08-16 01:42:53 -07:00
immarvin ef4a931440 update node provision status based on the feedback of nodes instead of rpower/rnetboot 2013-08-16 01:42:10 -07:00
immarvin 8eb4b81c90 update node provision status based on the feedback of nodes instead of rpower/rnetboot 2013-08-16 01:38:09 -07:00
immarvin c507d9a7d1 update the nodelist.status to installing/netbooting via feedback from node during provision 2013-08-16 01:29:08 -07:00
immarvin 1e6f25b395 update the nodelist.status to installing/netbooting via feedback from node during provision 2013-08-16 01:29:08 -07:00
immarvin 6a42e3c11b update the nodelist.status to installing/netbooting via feedback from node during provision 2013-08-16 01:29:08 -07:00
immarvin 4c1c27c753 update the nodelist.status to installing/netbooting via feedback from node during provision 2013-08-16 01:29:08 -07:00
zhaoertao f78ec64c25 The item of updating pre-defined groups for nodes 2013-08-15 23:56:30 -07:00
daniceexi 004e0533f0 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. And merge the status update commit which checked in by Yang Song from 2.8 2013-08-16 05:55:19 -04:00
immarvin 125fb4d812 update the nodelist.status to installing/netbooting via feedback from node during provision 2013-08-15 22:40:47 -07:00
immarvin b1d5658f5e update the nodelist.status to installing/netbooting via feedback from node during provision 2013-08-15 22:38:32 -07:00
immarvin 7cbc8b1bea update the nodelist.status to installing/netbooting via feedback from node during provision 2013-08-15 22:33:51 -07:00
immarvin 6131921307 update the nodelist.status to installing/netbooting via feedback from node during provision 2013-08-15 22:10:07 -07:00
immarvin 988da99f89 update the nodelist.status to installing/netbooting via feedback from node during provision 2013-08-15 20:31:29 -07:00
immarvin c8ca832460 update the nodelist.status to installing/netbooting via feedback from node during provision 2013-08-15 20:29:27 -07:00
immarvin e918aa27a4 update the nodelist.status to installing/netbooting via feedback from node during provision 2013-08-15 20:27:20 -07:00
immarvin 908508f44c update the nodelist.status to installing/netbooting via feedback from node during provision 2013-08-15 20:24:34 -07:00
immarvin 3cef537a5f update the nodelist.status to installing/netbooting via feedback from node during provision 2013-08-15 20:18:47 -07:00
Jarrod Johnson 1c8bee1e14 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-08-15 11:35:33 -04:00
Jarrod Johnson 433866fb0b Default in user/password in the same way that ipmi works in plugin 2013-08-15 11:35:12 -04:00
lissav a13dc3db50 fix syntax 2013-08-15 07:34:54 -04:00
ligc ac9a21620d Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-08-15 11:00:57 +08:00
lissav 10ecce9fac new man page for xcatconfig -t 2013-08-14 09:54:23 -04:00
lissav f11b298acd setup interface for setting tunables 2013-08-14 09:46:19 -04:00
Jarrod Johnson f8cf3fd1d9 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-08-14 08:58:28 -04:00
Jarrod Johnson fa1b9f924b Correct spelling mistake in xCAT-genesis that got in the way of interface bring up 2013-08-14 08:58:01 -04:00
Bruce Potter 23cb176d27 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-08-13 13:52:56 -04:00
Bruce Potter e14616c4f8 fixed build script to include release in the path for the built rpms 2013-08-13 13:49:29 -04:00
Jarrod Johnson c6608120cb Try to bring up extra interfaces for discovery 2013-08-13 13:28:34 -04:00
lissav 6e5fcf3edd bad code in remoteshell for flowcontrol 2013-08-13 11:49:32 -04:00
Jarrod Johnson 4b506b415a Add support for rinv and faster DDR3 dimms 2013-08-13 10:13:45 -04:00
jjhua 2f352c0b1a Merge commit 'origin/master' 2013-08-13 17:18:54 -04:00
jjhua 1d3d316d05 fixed bug 3718. This fix only checked into xCAT 2.9 2013-08-13 17:13:47 -04:00
Jarrod Johnson 275a19151b Fix ipmi FRU parser to give up once malformed data is encountered 2013-08-12 16:04:08 -04:00
lissav a02372c5cb defect 3731 2013-08-12 13:49:31 -04:00
lissav 9209ba674b Defect 3731 2013-08-12 12:52:25 -04:00
daniceexi ddc5274f50 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:18:49 -04:00
xq2005 221caa74ab add comments in anaconda.pm 2013-08-12 02:48:54 -07:00
wanghuaz 0b9b5f957c fixing bug 3721, don't remove the repo from otherpkgdir if the repo is used by other osimage 2013-08-12 14:37:01 +08:00
immarvin 754866a6f5 fix defect 3734 makehosts throw exceptions when node ip is not illegal 2013-08-12 14:37:01 +08:00
Jarrod Johnson 325f887b40 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-08-09 10:31:40 -04:00
Jarrod Johnson 2952f0e907 Do sparse allocation for non-lvm raw format images 2013-08-09 10:30:58 -04:00
wanghuaz ab02c12352 fixing bug 3721, don't remove the repo from otherpkgdir if the repo is used by other osimage 2013-08-09 17:10:36 +08:00
immarvin d5609b9ca8 fix defect 3734 makehosts throw exceptions when node ip is not illegal 2013-08-08 21:32:03 -07:00
Jarrod Johnson 65e1f6f484 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:27:04 -04:00
jjhua fcd5f2fc45 fixed bug 3732, centos 5.x needs the url rpository 2013-08-08 14:26:51 -04:00
daniceexi 4139e20fb3 defect 3703: to support command [nodeset <node> osimage] when the provmethod has been set 2013-08-08 12:54:07 -04:00
daniceexi 9650919738 defect 3703: make the configmic and flashmic could get the correct hostname on the host node 2013-08-08 12:52:35 -04:00
ligc c3ebc4ec3b update testcase lsdef_nics 2013-08-08 16:41:06 +08:00
ligc a092441f67 add testcase lsdef --nics 2013-08-08 16:21:03 +08:00
ligc 00861c3455 add test case lsdef_t_h_i 2013-08-08 16:00:49 +08:00
Jarrod Johnson 2aeee72311 Fix for noderange parentheses handling 2013-08-07 17:00:09 -04:00
daniceexi 2810fbea3f 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 09:59:54 -04:00
immarvin b868858de3 fix defect 3719 [DEV] rcons fails when nodehm.mgt=kvm 2013-08-07 00:42:39 -07:00
yinqing d6debec1a6 #220993 Can not import node by auto discovery switch and switch port. 2013-08-07 13:40:05 +08:00
yinqing 9ddfd08f24 #221180 There is no mechanism to prevent error message printed in kitimagepostdelete when disassociated kit with the image profile 2013-08-07 11:32:13 +08:00
linggao f6ecd4a68e fixed defect 3729 imgexport does not honor rootimgdir 2013-08-06 20:15:23 -04:00
lissav f18d19a102 Change tabprune and tabdump to use MAXMIN routine 2013-08-06 11:55:54 -04:00
Jarrod Johnson cff10ef530 Correct language in sensor decode 2013-08-06 10:56:57 -04:00
lissav 5fe991bc02 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-08-06 09:43:58 -04:00
lissav 42b5373796 fix bug 2013-08-06 09:43:40 -04:00
immarvin 27747c44fa fix defect 3245 2.8:return value of nodeset does not equal to 0 on ppc64 2013-08-06 00:57:05 -07:00
lissav 38c2e8e06f add MAXMIN routine 2013-08-05 14:17:48 -04:00
Jia Zhao a4f86be2c9 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-08-05 19:01:21 +08:00
Jia Zhao aa83596560 fix noderegenips scalability problem 2013-08-05 19:00:42 +08:00
xq2005 b4578aeabe comment the useless apt repo in full installation on ubuntu 2013-08-05 02:23:59 -07:00
Lei Ai f0c90b3a51 initialize global variables to avoid Cannot re-provision the node which has been removed 2013-08-05 15:11:45 +08:00
xcat ubuntu build machine 67161bdcc7 changes to build-ubunturepo for git repo 2013-08-05 03:04:27 +00:00
lissav 6d1a5a12ea add support to generate mypostscript files 2013-08-02 12:27:07 -04:00
lissav 8591165766 add support to generate mypostscript files 2013-08-02 12:25:16 -04:00
lissav e0e331fc2e add support to generate mypostscript files 2013-08-02 12:22:27 -04:00
xq2005 fd48d12d60 transfer the confignics and configeth to shell 2013-08-02 03:03:26 -07:00
xq2005 9800265c12 start the xcatd on ubuntu/debian when system booting 2013-08-02 01:46:26 -07:00
linggao 9ed91d3a09 document tabdump -n 2013-08-01 12:18:16 -04:00
linggao da34a50431 add support to tabdump -n <#records> for auditlog and eventlog 2013-08-01 11:48:39 -04:00
immarvin 057c5668cb fix defect 3722: replace die with MsgUtils->message and exit 2013-08-01 02:38:34 -07:00
root f0e5505b24 fix defect 3724, makehosts should report error/warning messages when entrys in hosts table are not correct 2013-08-01 00:21:21 -07:00
lissav 03281d9891 Impliment flow control call for getpostscript and getcredentials 2013-07-31 09:29:32 -04:00
daniceexi cc888734aa Change the insert_dd function for handling the initrd hacking. 2013-07-31 06:57:34 -04:00
lissav 6588a4e05f Fix makehosts -h does not display and add makehosts -v (version) 2013-07-30 14:36:44 -04:00
lissav 8947209fd7 Fix for defect 3717 2013-07-29 14:24:45 -04:00
Jarrod Johnson 9ffbe24f64 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-29 14:01:34 -04:00
bp-sawyers 992d5c50ce Update bld script for different git branches
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@17034 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-29 15:34:16 +00:00
Jarrod Johnson 39ba905704 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-26 14:31:44 -04:00
bp-sawyers 8098a1b4d7 Updates to build script to build from git
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@17031 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-26 18:07:55 +00:00
lissav d9415d6871 fix message part of defect 3718
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@17030 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-26 13:32:39 +00:00
simba372 581631e87d 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/trunk@17028 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-26 09:47:17 +00:00
creativezj 14656f2613 re-design node plugin 00kitnodebase
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@17026 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-26 09:34:39 +00:00
lissav efbc5003b9 fix syntax error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@17025 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-25 17:38:29 +00:00
jbjohnso d7c4c6e5f9 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/trunk@17024 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-25 15:14:21 +00:00
Jarrod Johnson d82e567d13 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-25 11:10:41 -04:00
jbjohnso 40a65cc564 Fix problem where xcatd would error on end of stream
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@17022 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-25 13:27:37 +00:00
Jarrod Johnson e55dcc8b3e Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-25 09:22:49 -04:00
Jarrod Johnson 725e89bef5 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-25 09:20:32 -04:00
lissav 7fd861742e fix defect 3714
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@17021 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-25 11:00:45 +00:00
sjing d331353592 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/trunk@17019 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-25 01:37:43 +00:00
jbjohnso 1d733e7911 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-07-24 18:39:47 +00:00
Jarrod Johnson 66493d480a Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-24 14:34:49 -04:00
Jarrod Johnson a734799fa1 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-24 13:44:53 -04:00
bp-sawyers d755a59421 update xCAT-genesis-builder for mcp build
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@17013 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-23 19:37:06 +00:00
Jarrod Johnson 1d217b4d47 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-23 14:31:25 -04:00
lissav be0c38e03b Do not check for config file for Mellanox, no longer needed. Also improve error message
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@17012 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-23 13:19:26 +00:00
jjhua 18c8045c66 fixed bug 3706, enabled=0 in the Centos-Base.repo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@17011 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-23 05:27:34 +00:00
lissav 383c35fb49 fix defect 3707
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@17010 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-22 17:11:01 +00:00
Jarrod Johnson b3413a47bf Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-22 09:45:17 -04:00
chudegao c55ab672f0 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/trunk@17008 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-22 06:54:47 +00:00
asirxing d57098c482 Skip to add root relative information into CFM merge files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@17006 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-22 05:55:43 +00:00
jbjohnso cd85ac13c1 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/trunk@17004 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-19 13:26:46 +00:00
Jarrod Johnson 52dff9bf51 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-19 09:22:42 -04:00
jbjohnso db0dd06b3f Fix Client.pm handling of Storable paylod
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@17001 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-18 19:16:07 +00:00
Jarrod Johnson 89f2a8fcb5 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-18 15:11:20 -04:00
Jarrod Johnson 0604637110 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-18 14:56:17 -04:00
lissav ea552b5898 fix so output only shows up under updatenode -V
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@17000 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-18 14:14:33 +00:00
lissav 3f6796b1d3 new osimageusercomment not needed
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16999 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-18 11:32:08 +00:00
lissav 04bb21fef7 checked in with garbage on line 4
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16998 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-18 11:28:18 +00:00
jbjohnso e5dd20f15e Clear $1 prior to calling plugins
xcatd now might let $1 leak into the plugins.  Ideally, the downstream code
would check match before relying upon $1 to be undef, but better to
avoid unintuitive behavior.

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16997 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-17 18:59:10 +00:00
Jarrod Johnson c321b3223b Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-17 14:54:14 -04:00
lissav 97db7efd56 defect 3137
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16996 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-17 18:17:27 +00:00
lissav ee1ec2e91f fix defect 3137
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16995 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-17 17:25:39 +00:00
lissav 9e41f13680 don't implement in AIX
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16994 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-17 15:56:08 +00:00
jbjohnso 40f9dee2c6 Fix problem where Client would wait for EOF with storable encoding.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16993 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-17 15:29:26 +00:00
lissav 5801a0db29 fix defect 3137, add -V flag input to xcatdsklspost to be passed as VERBOSE env variable to postscripts
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16992 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-17 15:28:13 +00:00
Jarrod Johnson 8c671750b9 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-17 11:24:35 -04:00
jbjohnso 1f6177a5c6 Have xcatd send client more similar content between xml and non xml
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16991 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-17 15:20:49 +00:00
Jarrod Johnson 367df148be Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-17 11:16:03 -04:00
jbjohnso f468d1a5d3 Remove extraneous use from ipmi plugin
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16990 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-17 14:55:13 +00:00
Jarrod Johnson 31c6ef075e Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-17 10:50:33 -04:00
Jarrod Johnson acc6f2769c Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-17 10:43:03 -04:00
xq2005 9fdebefca8 fix the syntax error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16989 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-17 14:40:30 +00:00
lissav 437b9348d1 fix defect 3627
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16988 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-17 10:54:05 +00:00
wanghuaz 0602dcfb6d 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/trunk@16987 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-17 08:37:45 +00:00
wanghuaz f4e93057b1 fixing bug 3653 on sles and ubuntu.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16985 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-17 03:07:26 +00:00
nott 4e11f026ef add check for sles10 and rh5
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16983 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-16 16:33:33 +00:00
lissav dac3f1ca3f fix for defect 3464
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16981 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-16 11:59:20 +00:00
lissav 63abcb074b fix defect 3521
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16980 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-15 17:16:32 +00:00
jbjohnso 4e4e10d1f8 Rebuild discovery payload every cycle.
Since some things like LLDP data might trickle in, enable gather to
be gathered as it changes.

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16979 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-15 14:09:19 +00:00
Jarrod Johnson 5c82c9606d Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-15 10:04:31 -04:00
Jarrod Johnson 713a3a5408 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-15 09:57:17 -04:00
lissav ae708fa5e2 document sorting the policy table by priority defect 2959
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16978 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-15 12:31:10 +00:00
lissav 4d21c75a7e sort policy table before checking entries
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16977 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-15 12:22:53 +00:00
daniceexi 22290197a7 add the link for new command geninitrd
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16976 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-15 03:06:28 +00:00
daniceexi d36a03cc36 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/trunk@16975 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-15 03:05:27 +00:00
daniceexi d18c4b0307 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/trunk@16974 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-15 03:04:36 +00:00
bp-sawyers 03fc1d2f34 Improve performance of makeconservercf - bug 3691
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16972 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-13 19:59:15 +00:00
phamt c025c72802 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/trunk@16971 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-13 14:10:26 +00:00
phamt b3b29d3c76 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/trunk@16970 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-13 13:25:22 +00:00
lissav 4057237b48 put back change do not think it breaks build
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16968 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-12 15:41:28 +00:00
zhaoertao 246b1aaa53 fix bug 3689: Modifying manpage for rspconfig and rscan
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16965 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-12 02:43:46 +00:00
lissav 125b6e006c backup kvm line to fix build
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16960 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 16:12:11 +00:00
jbjohnso 785fe50e9f 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/trunk@16957 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 14:59:13 +00:00
Jarrod Johnson 6ca8ae5366 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-11 10:54:20 -04:00
Jarrod Johnson 160343bdef 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
2013-07-11 10:53:15 -04:00
nott 5b661a3160 add call to updtvpkg in instoss
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16955 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 14:01:12 +00:00
Jarrod Johnson a0e2438e06 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-11 08:45:36 -04:00
wanghuaz bc9aaf6b5b 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/trunk@16953 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 10:05:52 +00:00
daniceexi f485547a4d fixed a typo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16950 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 08:31:04 +00:00
ligc 97473a8b09 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/trunk@16948 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 08:18:36 +00:00
zhaoertao c71bc4a320 modify man page for "rspconfig <node> USERID=\*"
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16947 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 07:18:42 +00:00
daniceexi 8e7e887e37 fixed the code to display error messages
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16945 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 07:02:31 +00:00
daniceexi af1638ce7d 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/trunk@16942 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 06:44:52 +00:00
daniceexi 12b4fd8975 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/trunk@16941 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 06:22:02 +00:00
wanghuaz 9c94100609 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/trunk@16938 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 05:22:56 +00:00
xq2005 ba7484e5a1 using nics table when getting vlan ip address
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16934 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-11 02:43:02 +00:00
lissav d12f9bd051 fix defect 3479
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16933 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-10 16:43:02 +00:00
xq2005 bb1a93a385 check the capabilities(CAP_NET_ADMIN) of /usr/bin/qemu-system-x86_64 on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16932 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-10 09:28:47 +00:00
xq2005 d8ccaf37e8 bug 3679, delete all ib nics' configuration files before configure them
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16931 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-10 09:07:51 +00:00
jjhua 4fa363e910 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/trunk@16928 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-10 09:07:11 +00:00
wanghuaz 86276afd3b 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/trunk@16926 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-10 09:05:47 +00:00
wanghuaz c642e22556 Fixing bug 3669: passing envlist to yum upgrade command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16925 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-10 08:30:39 +00:00
phamt 5ff3e2c42d Enable noderes.primarynic to be specified and used during nodeset.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16922 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-09 21:07:17 +00:00
lissav 7245c20ef8 fix 3668 Ubuntu also
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16921 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-09 16:43:58 +00:00
lissav ba524d3dba fix defect 3668
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16919 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-09 16:35:06 +00:00
phamt f2d4b07d2b 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/trunk@16916 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-09 12:30:20 +00:00
phamt bad07970cf 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/trunk@16915 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-09 12:26:42 +00:00
xq2005 5263081254 ubuntu and debian ship SHA.pm instand of SHA1.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16914 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-09 07:21:49 +00:00
xq2005 0db7fd3e4a ubuntu and debian ship SHA.pm instand of SHA1.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16913 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-09 07:20:57 +00:00
xq2005 e5e572f940 ubuntu and debian ship SHA.pm instand of SHA1.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16912 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-09 07:18:25 +00:00
xq2005 b5f3b1b526 ubuntu and debian ship SHA.pm instand of SHA1.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16911 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-09 07:15:39 +00:00
xq2005 4e38b17f76 xHRM support ubuntu/debian
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16910 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-09 06:46:31 +00:00
xq2005 5779f4e927 ubuntu and debian does release SHA.pm instand of SHA1.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16909 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-09 03:24:32 +00:00
xq2005 f40260f9cb ubuntu and debian does release SHA.pm instand of SHA1.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16908 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-09 03:19:47 +00:00
lissav c1731fec39 fix spelling
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16907 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-08 18:41:42 +00:00
phamt 5d0a2c75b7 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/trunk@16905 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-08 13:14:38 +00:00
xq2005 277eb7cc53 build the ubuntu packages
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16903 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-08 07:15:25 +00:00
wanghuaz 2cf7521735 don't uninstall the packages from osimage with rmkit -f
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16900 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-08 03:09:07 +00:00
qyin 8a1502f0a9 #212726 [PCM4.1][Patch] [Dev to propose fix] The image profile kit plugins are not getting called by pcmimageprofile.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16897 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-05 08:36:32 +00:00
xq2005 e54dbe69e4 get the timzone automatic on ubuntu/debian
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16895 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-05 07:10:50 +00:00
daniceexi 8db9e8be80 defect 3673: fix a typo which affects the nodeset next
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16893 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-05 07:09:49 +00:00
xq2005 4bc071aa8d roolback to the last version
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16891 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-05 06:58:05 +00:00
xq2005 01ae96dcb5 xCAT::TableUtils->enablessh in postage.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16889 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-05 06:15:07 +00:00
jjhua 7aabf34d76 chef client/workstation installation based on the cfgmgt table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16887 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-05 03:20:19 +00:00
jjhua 5f35f1d961 add the CFGMGT variable in the template to support the cfgmgt table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16885 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-05 02:12:42 +00:00
jjhua daf8435663 modifiy the install chef server/client/workstation scripts to support the cfgmgt table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16884 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-05 02:11:01 +00:00
xq2005 a728938094 add the double quote for --otherpkgdir option in genimage.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16882 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-05 01:57:36 +00:00
phamt ef30d13e94 Added option to select IPL device. Added more error handling.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16881 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-04 13:49:23 +00:00
wanghuaz 5881cc4268 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/trunk@16879 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-04 05:54:04 +00:00
daniceexi 01d68774a2 Make nodeset can pass parameter --noupdateinitrd to mkinstall command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16878 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-04 05:20:16 +00:00
daniceexi d3f0f4013f Make nodeset can pass parameter --noupdateinitrd to mkinstall command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16876 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-04 05:10:50 +00:00
daniceexi 57889f408a 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/trunk@16874 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-04 05:06:50 +00:00
mellor 425a715d3c 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/trunk@16871 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-03 15:31:10 +00:00
phamt 0111c1e6c3 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/trunk@16870 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-03 14:27:36 +00:00
creativezj bb811495cb fix nodeimport same ip error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16868 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-03 13:42:15 +00:00
jjhua 37c0f9a382 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/trunk@16865 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-03 06:10:51 +00:00
daniceexi 5acfd5a014 To make the mount of /install check to be accurate.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16863 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-03 03:14:03 +00:00
phamt 81b7bb502b Added option under rinv to collect z/VM user profile names.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16862 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-02 20:43:58 +00:00
phamt ba92de3034 Added option under rinv to collect z/VM user profile names.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16861 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-02 20:34:09 +00:00
Jarrod Johnson f317a3e10a Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-07-02 10:00:31 -04:00
leiaibj f7acefece1 Node provision failed after replacing one compute node: We can not call makedhcp twice in a single plugin.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16858 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-02 02:29:09 +00:00
wanghuaz fb6844fb64 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/trunk@16857 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-01 10:18:13 +00:00
daniceexi 171c5a189f 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/trunk@16855 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-01 09:11:24 +00:00
xq2005 17d195449a delete needless file for building xcat-openstack
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16853 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-01 08:01:16 +00:00
wanghuaz 9d2b7e46b0 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/trunk@16849 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-01 07:47:11 +00:00
xq2005 07c61eb98c change the source format into 1.0 on ubuntu/debian
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16848 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-01 07:45:14 +00:00
xq2005 a028fabf7f build xCAT-OpenStack in build-ubunturepo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16846 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-01 07:31:00 +00:00
xq2005 358ba2c411 build xcat-openstack on ubuntu/debian
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16845 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-01 07:28:43 +00:00
ligc 58c5cfaafb undo the last checkin, rerun buildxcat fixed the build failure
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16844 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-01 04:38:27 +00:00
ligc 20383d8ba8 fix the build problem with cons/mic on AIX
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16843 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-01 03:25:11 +00:00
wanghuaz 7e808dc649 fixing several kit related bugs: 3657,3629,3409. the major change is now addkitcomp -a will add its dependency recursively, instead of two levels before. and in each level, it will check if the dependency fits to the osimage. So now user just need to add the highest level of product to osimage, addkitcomp -a will find it dependencies, check them and go to next level based on its kitcomponnent settings in the kit.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16842 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-07-01 02:29:19 +00:00
daniceexi ca435eb5d1 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/trunk@16840 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 04:40:16 +00:00
daniceexi bbeddd775a 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/trunk@16838 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 04:30:33 +00:00
daniceexi 6ab9ab0e29 dir for mic
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16837 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 04:29:29 +00:00
daniceexi cc619af68b Code drop for Xeon Phi (mic) support. Run on host to flash the mic
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16836 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 04:29:00 +00:00
daniceexi 9bd662e82a 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/trunk@16835 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 04:28:19 +00:00
daniceexi 7f3a029049 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/trunk@16827 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 03:57:28 +00:00
daniceexi 349e081cc0 Code drop for Xeon Phi (mic) support. Add the mic table.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16826 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 03:57:13 +00:00
daniceexi abf8941676 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/trunk@16825 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 03:57:00 +00:00
daniceexi 1d9e405667 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/trunk@16824 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-30 03:56:29 +00:00
phamt 536bc94da7 Changed tabs to spaces. Fixed error in xcatconf4z script.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16819 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-28 18:14:52 +00:00
wanghuaz 68e4dd3d70 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/trunk@16817 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-28 06:27:23 +00:00
Jarrod Johnson 360e76309f Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-06-27 15:09:00 -04:00
jbjohnso 18f0040778 Restore xcatws understanding of existing code
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16815 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 19:08:49 +00:00
lissav ba7d622595 Add they are not hierarchical
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16813 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 16:52:15 +00:00
phamt d05143bef8 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/trunk@16810 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 15:25:13 +00:00
xq2005 fb95977151 upload the promote tar ball to xcat/<version>.x_Ubuntu/
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16809 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 14:43:17 +00:00
lissav 58d0965249 fix defect 3461
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16807 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 14:03:26 +00:00
ligc 8a22702ae3 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/trunk@16803 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 08:22:50 +00:00
immarvin a9b79e36d2 add discinfo of centos5.9
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16801 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 08:14:09 +00:00
bp-sawyers a007fb74c9 Fix check for 2nd arg for xCAT-OpenStack
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16797 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 07:01:03 +00:00
zhaoertao b10007be4b delete internal information for rspconfig <celogin1>
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16787 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 03:24:46 +00:00
jjhua c448c7f09a 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/trunk@16783 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-27 01:25:45 +00:00
mellor 69b2b419d6 make xCAT-OpenStack arch specific rpm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16782 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 20:45:11 +00:00
Jarrod Johnson 2d905826f8 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-06-26 16:44:40 -04:00
jbjohnso fc16c672ba Fix problem where Ctrl-C didn't work with new payload format
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16781 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 20:42:39 +00:00
bp-sawyers 265308065c update buildcore.sh to build the new xCAT-OpenStack meta rpm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16780 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 20:21:49 +00:00
mellor 8af3b2587d build tool changes for new xCAT-OpenStack rpm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16779 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 18:54:00 +00:00
mellor f87e899c78 files for new xCAT-OpenStack rpm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16778 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 18:52:41 +00:00
lissav 98295e06b1 fix defect 3641
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16775 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 18:09:22 +00:00
mellor 2aefc417d9 add new cfgmgt table to xCAT database
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16772 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 16:13:36 +00:00
jbjohnso 2a998b99d9 Have rvitals avoid requesting the same sensor multiple times
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16770 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 14:33:52 +00:00
Jarrod Johnson 70f8cae983 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-06-26 10:33:22 -04:00
Jarrod Johnson 85237d5126 Fix problem where rvitals could request the same sensor multiple times 2013-06-26 10:32:07 -04:00
Jarrod Johnson 508071d903 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-06-26 09:58:15 -04:00
nott 3e67ba3e19 enhance msgs for cpcosi error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16768 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 13:51:08 +00:00
chudegao 4998ce006e 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/trunk@16766 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 09:41:39 +00:00
xq2005 e47c090868 change the Maintainer to xCAT when building genesis base on ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16761 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 07:35:59 +00:00
xq2005 28d9fdd2aa change the Maintainer to xCAT when building packages on ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16760 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 07:34:47 +00:00
jjhua 1e42465195 defect 3605. correct the nodesetstate value.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16757 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 06:58:53 +00:00
xq2005 33127b6f2d for bug 3438 on ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16756 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 06:57:48 +00:00
xq2005 5e70dbce10 upload the GA build on ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16753 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-26 06:09:58 +00:00
lissav 46c918d22d fix defect 3642
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16752 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-25 15:30:35 +00:00
lissav e95b7084b9 fix defect 3642
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16750 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-25 14:56:43 +00:00
xq2005 1fba5dfceb 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/trunk@16748 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-25 14:04:33 +00:00
phamt 79c3f3e825 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/trunk@16746 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-25 14:00:37 +00:00
xq2005 2ff3e57296 bug 3474 for removing the rpm error message on ubuntu/debian
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16744 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-25 13:51:47 +00:00
jbjohnso 0eecf43a7e Fix problem where dbworkersocket rename could indicate a missing path
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16743 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-25 13:28:52 +00:00
Jarrod Johnson fe9a146b36 Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core 2013-06-25 09:28:42 -04:00
Jarrod Johnson 4eacc008e3 Fix problem where dbworkersocket rename could indicate a missing path 2013-06-25 09:26:52 -04:00
jjhua 9e4450bab0 defect 3605. 1, change ENABLESSHBETWEENNODES= in the template, and add new subroutine TableUtil::enableSSH() 2, change NODESETSTATE= in the mypostscript.tmpl, and invoke the xCAT::SvrUtils->getNodesetStates
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16739 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-25 09:05:00 +00:00
jbjohnso 3dc34ed30d Do the same thing for pscp that I did for psh to avoid perl misbehavior on opening a reference to null glob
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16737 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-24 19:23:57 +00:00
jbjohnso 6c6f16a8f5 Rework sshnode sub to avoid pasing glob by reference since some perls don't seem to like that
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16736 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-24 19:17:16 +00:00
phamt 0f99809daa 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/trunk@16735 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-24 14:24:46 +00:00
lissav 1b47f597b7 fix defect 3642
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16734 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-24 12:57:49 +00:00
chudegao 02836b7287 remove files checked in by mistake
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16732 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-24 10:01:08 +00:00
ligc 2a33d3dcb2 remove README.txt which was checked in accidently
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16731 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-24 09:13:27 +00:00
xq2005 eee22d9c39 find SHA.pm in /usr/lib/perl on ubuntu/debian
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16729 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-24 07:36:06 +00:00
creativezj 0ef86edf17 fix nodeimport generate ip error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16727 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-24 06:48:40 +00:00
lissav b1d6199c98 add req->{status} to runxcmd for defect 3641
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16726 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-23 10:55:24 +00:00
lissav ce47cdc151 add example of plugin to plugin call
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16723 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-22 11:58:26 +00:00
chudegao 94d469f741 git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16722 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd 2013-06-22 00:24:03 +00:00
jbjohnso 7fb9cdeff5 Fix plurality of pscript variable
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16721 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-21 19:13:03 +00:00
lissav d9e740a251 fix defect 3639
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16720 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-21 17:02:12 +00:00
lissav 56f28c07ab fix defect 3639
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16718 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-21 10:29:37 +00:00
wanghuaz e997e19531 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/trunk@16716 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-21 01:20:31 +00:00
lissav 1141f649c0 fix defect 3637
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16714 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-20 13:06:18 +00:00
duowang 399b7f31bb 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/trunk@16710 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-20 04:01:22 +00:00
wanghuaz d329307578 Fixing bug 3636 for error msg outputing
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16708 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-20 03:42:51 +00:00
zhaoertao 28e70dd89d supportting x222 in "rscan cmm"
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16706 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-20 03:22:24 +00:00
linggao 0afc9b9d9d enhance postscrit perfomance when getting monitoring variables. defect 3605
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16704 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 20:21:09 +00:00
phamt b6e87461db Changed xcatconf4z logging.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16702 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 20:04:58 +00:00
phamt 1b0e64699a Undo some disabled buttons made with last checkin.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16701 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 19:27:55 +00:00
bp-sawyers 3f1f14aa94 require xCAT-buildkit so it is installed by default
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16698 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 18:59:40 +00:00
phamt cd4f866c6a 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/trunk@16697 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 16:18:42 +00:00
phamt 62761908f2 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/trunk@16696 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 16:17:23 +00:00
phamt 9c7b61f341 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/trunk@16695 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 16:16:51 +00:00
phamt 48b710c7cd 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/trunk@16694 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 16:14:21 +00:00
jbjohnso d9100200e1 Simple implementation of postscripts, put in postscripts table and /install/winpostscripts
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16689 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 12:43:34 +00:00
sjing 61a42ec882 add "sysclone" as a valid osimage.provmethod.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16679 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 03:35:06 +00:00
wanghuaz 32f4697d67 fixing bug 3179: adding a sleep and reorder the steps
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16677 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 03:33:24 +00:00
creativezj 5184e7da2b fix nodeimport generate brocadcast ip or gateway ip
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16675 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 02:36:44 +00:00
ligc 1dd791c776 fix for bug 3630: typo with opt_nc and opt_c
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16673 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-19 01:38:02 +00:00
jbjohnso 3e86b5f20c Fix bug in esx.pm where spurious data could find its way into the nicmodel
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16672 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 19:34:54 +00:00
jbjohnso 4e16d8fb9f Fix problem where serialized empty list of args manifested differently between xml and storable strategies
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16671 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 17:45:17 +00:00
jbjohnso df8fdf3896 Add support for flexdiscover to work with x222 servers
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16670 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 17:07:46 +00:00
jbjohnso 5222f25f25 Correct deref in previous commit
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16665 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 15:39:56 +00:00
jbjohnso 8dba31f059 Change flexdiscover to separate imm and cmm search
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16664 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 15:35:07 +00:00
lissav 5849169891 make /xcatpost a variable so that we can override easily with a debug mode
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16663 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 13:51:54 +00:00
jjhua 57da947035 fixed bug 3605
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16661 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 09:06:00 +00:00
creativezj 1226f58bc6 fix modify multiple nodes profile error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16659 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 08:22:12 +00:00
sjing 6abbe5c74b bug2830 - use xCAT::TableUtils->get_site_attribute("installdir") instead of gettab.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16658 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 08:08:03 +00:00
jjhua ebf7ea4be4 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/trunk@16655 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 07:41:10 +00:00
creativezj 628e2a6ca5 fix regenerate ip error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16652 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-18 04:46:29 +00:00
lissav da0ceef6b3 modify limitation on policy table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16649 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-17 18:15:06 +00:00
jbjohnso 9b0c3f100f Add timeout to psh
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16647 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-17 17:50:35 +00:00
lissav 7d0cb74de6 fix defect 3625
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16646 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-17 17:34:52 +00:00
lissav 428c8f299d fix defect 3625
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16644 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-17 15:58:45 +00:00
lissav c4ac51c87d document non supported fields in policy table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16641 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-17 12:56:45 +00:00
daniceexi ab6f939e62 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/trunk@16638 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-15 10:45:29 +00:00
brianfinley 38b5424c5d Captian Grammar fixes spelling -- s/sepcified/specified/g
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16636 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-14 15:45:27 +00:00
jbjohnso 246362ca48 Leave no processes or files behind on exit, allow updatenode to happily exit
Actually retry every interval rather than just endlessly listening

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16635 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-14 14:39:12 +00:00
jbjohnso 25c5f5fc28 Tolerate older bash versions in flowrequest example
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16634 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-14 14:39:06 +00:00
jbjohnso 434739f3a3 Fix problem with getipmicons
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16633 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-14 12:53:14 +00:00
jjhua b855407d64 fixed bug 3569, add #INSTALL_SOURCES# to the storage template file
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16631 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-14 08:17:32 +00:00
xq2005 a079b6c306 makeroutes support on stateless debian/ubuntu nodes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16630 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-14 07:24:59 +00:00
xq2005 7e10342919 makeroutes support on stateless debian/ubuntu nodes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16627 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-14 07:01:59 +00:00
lissav d1230bcf16 moved xcatflowrequest to /install/postscripts
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16626 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-13 16:15:11 +00:00
lissav 29e4fa31e7 add flow request
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16625 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-13 16:14:08 +00:00
nott d069bff740 cleanup comment
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16623 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-13 15:15:29 +00:00
nott 9e7a1c8fb4 clarify cleantar option
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16621 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-13 15:10:50 +00:00
nott bdfe498ee7 make cleantar remove ALL tar files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16619 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-13 14:32:39 +00:00
lissav 87ebb6ae87 removed undocumented/does not work plugin
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16618 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-12 16:30:41 +00:00
lissav b145a34062 checkin for defect 3613
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16617 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-12 13:00:09 +00:00
bp-sawyers 2956839732 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/trunk@16614 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-12 12:29:03 +00:00
daniceexi 43a7d86394 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/trunk@16612 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-12 02:56:50 +00:00
nott f341aa50ab allow kit location and kit name to be different
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16611 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-11 14:51:54 +00:00
nott 0b44aaa1ad more - better description of kit location
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16608 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-11 14:44:54 +00:00
nott 28a6d78c06 better description of kit location
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16606 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-11 12:55:41 +00:00
lissav f14b1042d3 defect 3613
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16605 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-10 20:02:58 +00:00
lissav 41e538c46d defect 3613
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16604 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-10 20:01:41 +00:00
lissav 1753ea7474 defect 3613
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16603 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-10 20:00:40 +00:00
jbjohnso b4f1b9a6ea Have client default to storable model to reduce XML overhead
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16599 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-10 18:44:17 +00:00
jbjohnso 20b3960c09 Prevent child reapers from trouncing accurate syscall errno settings
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16597 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-10 14:42:25 +00:00
jbjohnso 11e2d1e834 Further prepare xcatd to understand alternate encoding
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16596 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-10 14:42:18 +00:00
daniceexi 73e90f6cd9 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/trunk@16594 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-09 09:15:57 +00:00
daniceexi 8ffc45d9cb 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/trunk@16592 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-09 09:13:03 +00:00
daniceexi afa886e729 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/trunk@16590 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-08 23:39:06 +00:00
daniceexi 518d0c0b02 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/trunk@16588 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-08 23:31:28 +00:00
wanghuaz 9ba0cd197e update addkit command according to revision 16568 for kit framework
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16587 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-08 09:29:38 +00:00
ligc faec9945d0 add HAMN scripts cronEdit, activate-mn and deactivate-mn; based on the scripts from John Williams
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16585 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-08 08:34:57 +00:00
sjing 5a18669108 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/trunk@16580 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-08 07:04:09 +00:00
wanghuaz f7f871278c 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/trunk@16579 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-08 05:00:41 +00:00
nott f8bbdf8a97 clarify alt client cleanup
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16575 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-07 17:35:38 +00:00
bp-sawyers 9a42e826b9 Add hfi option to rbootseq man page
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16573 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-07 14:01:19 +00:00
nott cabe21df2c add #'s
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16572 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-07 13:24:04 +00:00
nott e6c93dc100 remove xCAT dependencies
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16570 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-07 13:16:29 +00:00
nott 72f6e3f1b2 add kitloc, create_frameworks, and misc updates
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16568 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-07 13:10:16 +00:00
jbjohnso 7e9a9d09f3 Fix loop after request done, can_read will happily return true even if the client has closed... TODO: perhaps check for client closed explicitly
if we ever feel like doing multiple request scheme

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16566 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-06 17:48:47 +00:00
zhaoertao f79b2850ad adding predefined groups based on hardware types
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16565 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-06 05:24:08 +00:00
immarvin a0f0158e74 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/trunk@16563 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-06 03:14:52 +00:00
wanghuaz 12467ecd6c not export buildkit -n option by default.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16561 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-06 00:50:25 +00:00
bp-sawyers fd4a5040ba fix xCATsn install problem running mknb
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16558 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-05 23:04:36 +00:00
bp-sawyers 2bccc85011 stop building i386 version of xcat pkgs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16556 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-05 21:00:33 +00:00
jbjohnso dc5b18e4ef Have xcatd prepare to accept alternate encoding 'storable'
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16555 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-05 20:58:47 +00:00
nott 0c5c11b541 kitloc and misc updates
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16554 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-05 17:01:28 +00:00
lissav 4d28e9fbe6 fix defect 3603
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16552 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-05 16:26:31 +00:00
jbjohnso c67d9135c1 Accept ECHILD as meaning the same thing as EAGAIN on sysread/syswrite to accomodate seemingly flawed platform behavior
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16548 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-05 13:58:03 +00:00
duowang bcabd11857 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/trunk@16546 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-05 10:34:59 +00:00
wanghuaz 83db9da9b1 code checkin for ordering rpm installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16543 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-05 07:28:04 +00:00
jbjohnso e24032c284 Have kvm update vm.memory if chvm is called
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16536 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-04 18:45:33 +00:00
jbjohnso 235e3e9d7f Recognize some common variants on chvm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16535 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-04 18:36:04 +00:00
jwsimpson a9f5a6b396 Updated with comments only
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16533 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-04 17:07:57 +00:00
jwsimpson 9a7b3b91df fixed syntax problem with checking on option -n
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16532 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-04 12:29:22 +00:00
sjing d5f7c77bc1 git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16530 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd 2013-06-04 08:16:38 +00:00
jjhua 427d482261 service node pool supports for sles
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16529 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-04 07:54:52 +00:00
creativezj 0eb9db534b fix multiple nics problem
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16524 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-04 05:46:55 +00:00
lissav 1e30875be2 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/trunk@16523 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-03 15:37:27 +00:00
xq2005 72e4bea17f fix the syntax error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16521 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-03 08:29:25 +00:00
immarvin 73f7a9322b add code comments
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16520 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-06-01 12:16:35 +00:00
nott 25300a2ef5 add workdir
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16517 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 19:50:36 +00:00
nott 8016f03610 add support for workdir and new spec attrs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16516 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 19:23:54 +00:00
nott 4029cba989 add holders for new attrs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16514 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 19:08:03 +00:00
nott 42af8e7112 add new attr descriptions
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16512 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 19:03:30 +00:00
lissav c17cce832a remove LInux restricction on precreatemypostscript
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16508 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 18:48:12 +00:00
jbjohnso bbfe35a452 Serial console and vdagent support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16507 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 18:47:53 +00:00
lissav a11e9f3242 redesign to match more closely the processing in xcatdsklspost
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16506 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 18:36:42 +00:00
lissav edbbcb625b add new lines for array return
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16505 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 18:35:23 +00:00
immarvin 2bd59af6a2 fix defect #3463 rinstall does not support provmethod=osimagename
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16502 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 10:35:20 +00:00
jjhua 68bf4ad971 for rhels6.x, move the repository generation to pre-script in kickstart
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16500 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 08:58:50 +00:00
jjhua cfa71e3f2c service node pool supports for system X rhels6.x
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16499 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 08:51:20 +00:00
jjhua 43a3259a69 improve the code for last checkin
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16497 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 08:47:19 +00:00
jjhua e4838e2efb service node pool support for system X rhesl6.x
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16496 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 08:36:28 +00:00
jjhua 88f35c5e0e service node pool support for system X rhesl6.x
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16495 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-31 08:34:10 +00:00
jbjohnso 22e92e3c05 Try to doubly make sure that buffering and EGAIN doesn't interfere with communication
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16481 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-30 18:58:15 +00:00
jbjohnso d7ddcebef2 Add some chassis status support to rvitals
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16479 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-30 14:47:19 +00:00
lissav 0b7943fe28 get rid of duplicate messages on updatenode -k
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16478 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-30 11:47:39 +00:00
wanghuaz cadca639d8 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/trunk@16476 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-30 09:24:24 +00:00
xq2005 ccfd373fd3 sudoer support on ubuntu/debian
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16474 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-30 09:02:31 +00:00
daniceexi dccddf6428 force to boot from pxe before the reboot in the genesis
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16472 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-30 08:43:38 +00:00
sjing 93511ea70d removed mkfs.btrfs since it's for ubuntu.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16471 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-30 06:58:56 +00:00
sjing e30fbd2b80 use reboot in genesis instead of shutdown
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16469 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-30 06:06:27 +00:00
sjing 7009498b84 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/trunk@16468 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-30 06:04:47 +00:00
amy0701 e78c04591c 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/trunk@16466 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-30 03:19:10 +00:00
amy0701 30285d5f10 add test bundle for x86_64
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16465 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-30 03:07:24 +00:00
jbjohnso 5c8c7c2a4d 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/trunk@16462 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 18:08:08 +00:00
immarvin 01e0c1c6f5 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/trunk@16457 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 12:14:13 +00:00
lissav ae3c564ef0 defect 3596
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16455 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 11:35:43 +00:00
lissav 80588e01c8 defect 3596
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16454 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 11:34:41 +00:00
lissav 6c293a26e3 defect 3596
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16453 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 11:33:53 +00:00
jjhua 257666102d 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/trunk@16445 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 07:46:27 +00:00
jjhua 58a6b7a28d 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/trunk@16444 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 07:44:21 +00:00
jjhua 3f43a9a760 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/trunk@16443 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 07:23:52 +00:00
jjhua 2f8b62530d 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/trunk@16442 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 07:22:51 +00:00
asirxing a0f77dc958 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/trunk@16438 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-29 03:47:47 +00:00
jwsimpson 3165c35860 comment changes only to dhcp.pm to help document the code
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16436 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-28 15:30:40 +00:00
jbjohnso 130d2b2494 Add event log cmdlets to powershell
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16435 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-28 15:05:07 +00:00
lissav fb01e8e151 use NODE name defined in /opt/xcat/xcatinfo file, if there
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16433 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-28 13:52:39 +00:00
lissav 03ea26b499 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/trunk@16431 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-28 12:27:37 +00:00
lissav 425ec1d0cd remove anaconda.pm.new
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16429 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-28 12:20:48 +00:00
lissav a180201e24 add NODE=<nodename> to kcmdline
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16428 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-28 12:20:12 +00:00
xq2005 970aa52ab3 makeroutes support on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16421 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-24 09:43:29 +00:00
ligc 1bbe000d21 fix for bug 3593: check_options error with makedhcp -s statements
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16420 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-24 09:23:12 +00:00
xq2005 5f7c88a8b9 change tabs to spaces
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16417 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-24 09:06:45 +00:00
xq2005 ac3633b1b2 routeop support on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16415 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-24 08:37:11 +00:00
xq2005 cbe902cf22 change tabs to spaces
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16412 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-24 06:20:34 +00:00
lissav 9a3d8b8703 fix for 3591
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16409 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-23 19:07:11 +00:00
zhaoertao 1d89fb6e1b enhancement of "rspconfig noderange USERID=<password>"
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16408 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-23 08:23:21 +00:00
qyin e6fedc6556 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/trunk@16405 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-23 07:59:27 +00:00
xq2005 7f3056c15f change the tabs to spaces
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16403 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-23 03:07:25 +00:00
lissav e2e793d864 fix defect 3580/3586
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16401 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-22 18:24:28 +00:00
lissav e11519483c remove unused getNodeSpecAttribs routine
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16396 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-22 17:23:42 +00:00
lissav 1da068a263 improve grep for error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16395 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-22 17:07:17 +00:00
daniceexi 0147aa233f support the predefined bmc is set in the hosts.otherinterfaces
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16392 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-22 14:57:01 +00:00
lissav 389c3cb193 support long hostnames
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16391 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-22 12:42:02 +00:00
lissav f5ccad350e cleanup tmp files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16388 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-22 12:39:17 +00:00
zhaoertao 916a05b1cc 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/trunk@16387 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-22 06:14:45 +00:00
lissav d86b8b8413 remove version 2
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16383 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-21 18:15:42 +00:00
lissav 32cf475cf8 fix getpostscript.pm call (noversion)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16381 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-21 18:10:56 +00:00
jbjohnso e815ba5ac9 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/trunk@16380 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-21 14:37:07 +00:00
jbjohnso 398b975563 Fixes and trimming of exported internal function
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16378 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-21 13:50:25 +00:00
jbjohnso 083623ab1b 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/trunk@16375 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-21 12:56:46 +00:00
jwsimpson 20655afd7b 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/trunk@16374 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-21 12:22:17 +00:00
xq2005 181dc9ec47 ubuntu provision need the mirror/http/hostname configuration
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16372 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-21 08:26:26 +00:00
sjing 0f7e5d53f0 new otherpkg list for sysclone
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16370 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-21 06:47:34 +00:00
jbjohnso 2071c5945c Try to make powershell module more tolerant of pathing situations
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16369 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-20 21:21:43 +00:00
jbjohnso 0d6b9af866 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/trunk@16367 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-20 17:59:40 +00:00
jbjohnso 38b3d1c46a Fix error in vbscript
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16365 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-20 14:56:01 +00:00
bp-sawyers 973597d493 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/trunk@16363 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-20 13:12:54 +00:00
lissav ee7d43cc61 Add setup of postgresql
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16361 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-20 11:01:20 +00:00
lissav dd438f5cfa fix defect 3575
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16359 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-18 10:23:43 +00:00
jbjohnso 0b30264d39 Note to future self about tabooseq scope
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16356 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-17 20:55:05 +00:00
phamt a21422aad7 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/trunk@16355 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-17 20:20:59 +00:00
jbjohnso 784b582b1f 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/trunk@16352 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-17 13:38:45 +00:00
zhaoertao 2a8e95b4e8 the feature:enhancement of rspconfig for blacktip blade
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16349 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-17 09:30:50 +00:00
zhaoertao e3cbfd954f 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/trunk@16347 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-17 02:54:46 +00:00
ligc 2a396bc1fd 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/trunk@16344 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-17 02:38:48 +00:00
jbjohnso b21c3d7a61 Provide hook for OS volume selection
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16343 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 21:03:24 +00:00
jbjohnso 5c3e7c96e7 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/trunk@16341 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 19:52:08 +00:00
jbjohnso 9064aaf24b Remove debug output from Client
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16340 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 18:30:44 +00:00
lissav 99a88822e3 use new interface to makescript
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16337 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 17:07:05 +00:00
lissav c45ed81db3 add check for nofiles and more than one node
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16336 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 16:45:38 +00:00
lissav 43c5246b1a more postage removal
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16334 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 16:04:57 +00:00
lissav 8dde80a13a add info
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16331 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 15:59:24 +00:00
lissav 92091599da remove debug code
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16329 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 15:44:17 +00:00
lissav 86e108ead9 remove comment out call to writescript
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16326 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 14:17:14 +00:00
lissav 6d452dbcd4 remove writescript
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16325 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 14:14:59 +00:00
lissav 62b988207f remove postage xCAT command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16322 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 14:08:38 +00:00
lissav 748b4ee78c first update for enhance precreatemypostscript handling, more todo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16321 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 13:56:17 +00:00
jbjohnso cc457b33ee Support LLA with scope index XCATHOST
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16318 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 13:34:41 +00:00
daniceexi 8a98c3f75d add the man page for nodediscoverdef command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16316 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 13:07:37 +00:00
daniceexi 53ba6a49ef add the manual type of discovery method
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16314 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 08:36:11 +00:00
daniceexi 5b4d1a01d6 add link for nodediscoverdef command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16313 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 08:26:27 +00:00
daniceexi c8eadb91df add the nodediscoverdef command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16309 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 08:17:47 +00:00
daniceexi cd4e45e385 filter off several inside attributes from request
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16308 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 08:16:50 +00:00
jjhua c20c72aba9 feature-request#157 Some Improvements to the mlnxofed_ib_install script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16306 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 07:48:55 +00:00
amy0701 eef51c0af1 add testcase in bundle
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16304 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-16 07:19:54 +00:00
jwsimpson 322fde4ed9 updates to dhcp.pm and makedhcp man page for makedhcp query
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16303 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-15 20:36:34 +00:00
jbjohnso 688aec431a 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/trunk@16301 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-15 15:04:39 +00:00
phamt 775339a584 Make IP and hostname inputs optional when configuring the group profile.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16300 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-15 14:20:55 +00:00
phamt 24cfe77966 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/trunk@16299 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-15 14:10:28 +00:00
jbjohnso 6839048a17 Fix networkutils to work with CIDR again
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16297 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 15:28:11 +00:00
jbjohnso 60609b1b24 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/trunk@16295 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 15:13:28 +00:00
jbjohnso 86466c955c Fix problem where default gateway was interpreted oddly in makedhcp ipv6
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16293 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 14:50:12 +00:00
amy0701 6684bdab99 add testcase chdef_group_p for defect3574
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16291 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 09:29:22 +00:00
ligc 94f876a1cc fix for bug 3574: the blank grptype means static nodegroup
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16289 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 07:17:21 +00:00
immarvin 6c19753851 move "dbworker.sock.$$" from "/tmp/xcat" to "/var/run/xcat/" to avoid mis-deletion
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16288 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 05:18:56 +00:00
sjing d8c107b54a back port sysclone support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16285 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 02:42:48 +00:00
daniceexi 5b81a7a8ca add comment to support multiple actions for the nodeset state
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16283 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 02:41:23 +00:00
sjing d569bfab3d back port sysclone support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16281 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 02:38:07 +00:00
daniceexi b173de4f13 add comment for why the /etc/mtab needs special case
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16277 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 02:19:49 +00:00
bp-sawyers 906dbc3015 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/trunk@16274 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-14 02:17:41 +00:00
lissav 89e1f04f29 fix defect 3565
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16272 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 13:51:44 +00:00
xq2005 fb9501a197 upgrade xcat-genesis-base error on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16262 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 10:31:46 +00:00
xq2005 e6f7ece3d2 Check more directly for location of arp
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16255 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 09:07:22 +00:00
xq2005 cae54539ab build perl-xCAT when build xcat package
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16249 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 08:03:38 +00:00
sjing 34acc982c3 add SCRIPTNAME into kernel append parameters
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16248 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 08:01:45 +00:00
sjing 8d2e4859fc fix unrecognized chars in genesis
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16247 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 07:54:44 +00:00
xq2005 7fd4933fe8 lsxcatd -v return error revision on debian/ubuntu(bug 3564)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16245 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 07:52:27 +00:00
sjing ebd1b34f84 change file mod to 755
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16244 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-13 07:48:13 +00:00
bp-sawyers 867e18a67c Fixed some typos in the postscripts descriptions
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16243 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-11 10:09:29 +00:00
nott 79a0dcd3d5 add check for blank file name
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16240 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-10 16:53:00 +00:00
jbjohnso 2bbce57260 Simple implementation of postscripts, put in postscripts table and /install/winpostscripts
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16237 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-10 14:52:44 +00:00
jbjohnso e1a21649ff Check more directly for location of arp (TODO: stop using arp, use ip neigh)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16234 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-10 13:29:23 +00:00
zhaoertao 58dc034d02 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/trunk@16233 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-10 05:27:45 +00:00
lissav 336a1aa2ab do not regenerate hostkeys for xcatconfig -u
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16231 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-09 11:05:24 +00:00
daniceexi 57e42eaccc 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.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16230 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-09 02:43:30 +00:00
mellor 71eb28ebc6 remove template directory. added by mistake with HPC kit build files.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16226 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-08 20:42:00 +00:00
mellor 473f1e6761 remove HPC kit build files. moved to git repository in GSA
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16223 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-08 20:09:52 +00:00
lissav 686ebdb500 fix for defect 3554 and 3549
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16220 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-08 18:24:32 +00:00
xq2005 5463dcdfa5 arp command location is different between redhat and debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16218 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-08 09:52:30 +00:00
xq2005 b13e95a70b arp command location is different between redhat and debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16216 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-08 09:40:02 +00:00
xq2005 cdb5b59df5 upload the building packages to sourceforge by default
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16214 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-08 08:25:56 +00:00
bp-sawyers b44063e744 fix bug 3429: noderange not expanded correctly for some bracket cases
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16213 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-07 19:28:28 +00:00
ligc 4dc12d61ab backout changes for bug 3429, revision 16190, Bruce will follow up
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16212 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-07 13:10:16 +00:00
zhaoertao 1e59b83e1d 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/trunk@16210 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-07 10:53:32 +00:00
wanghuaz 2c2079b8bb enable snmp monitoring on AIX
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16208 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-07 08:53:16 +00:00
amy0701 441ba139d4 add noderange testcase into bat.bundle
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16207 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-07 07:58:21 +00:00
daniceexi a7d3d1da21 take back the filter_nodes operation after the fix in Utils::filter_nodes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16202 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-07 04:44:35 +00:00
daniceexi 6f9e40db93 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/trunk@16201 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-07 04:39:22 +00:00
daniceexi e2c745d9ba 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/trunk@16199 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-07 04:23:39 +00:00
amy0701 f7ca82b1d1 update testcase noderange_group_intersection and noderange_individual_grp
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16196 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-07 02:38:44 +00:00
daniceexi 90a932fe28 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/trunk@16194 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-07 02:25:45 +00:00
linggao 71862fdff0 added openstack grizzly repository for ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16192 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-06 21:02:33 +00:00
jbjohnso 1141b16f3e Attempt to correct dual bracketed noderanges
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16190 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-06 18:01:21 +00:00
jbjohnso 6f69796223 Fix blade to once again work correctly with bladecenter
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16189 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-06 15:26:42 +00:00
jbjohnso 8ae4adb75c Fix problem when staticv6 failed to adequately space out a comment
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16185 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-06 14:03:06 +00:00
zhaoertao f0bfee65d2 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/trunk@16184 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-06 09:39:48 +00:00
jbjohnso ec6325f1f7 Rely upon storage detection code in ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16182 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-03 21:07:31 +00:00
jbjohnso f1e4a15d4e Fixes for ubuntu enhancements
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16181 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-03 21:06:54 +00:00
jbjohnso 12bad57506 Stop filtering out on ITEs renergy for now as well as rspconfig...
Have rspconfig do textid

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16178 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-03 20:34:03 +00:00
jbjohnso b502edec67 Have detectnic write out to preseed.cfg file, which seems to take better
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16177 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-03 18:36:36 +00:00
phamt e39d942d9c 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/trunk@16176 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-03 15:02:06 +00:00
jbjohnso 54909beda7 Have nic detection happen sooner
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16174 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-03 14:06:33 +00:00
xyye 37a76708f1 remove makedhcp command for adding the unmanagement node
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16173 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-03 05:58:59 +00:00
phamt 14b475f74e Removed code that adds the any node to the "all" group.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16170 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-02 21:56:53 +00:00
phamt 4f10fd671a Fixed table ID used when shutdown button is clicked.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16169 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-02 21:44:21 +00:00
phamt 4c2f445b0a 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/trunk@16168 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-02 21:24:26 +00:00
jbjohnso fd95ac4c80 Quiet down ubuntu kernel
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16167 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-02 19:27:19 +00:00
bp-sawyers f8261cf6ad added help back to mktoolscenter
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16165 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-02 19:07:18 +00:00
jbjohnso 1023dbc6f7 Have debian no longer require setting of noderes.nfsserver
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16163 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-02 18:27:41 +00:00
bp-sawyers 4669c26b02 Updated the node discovery man pages
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16161 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-02 16:41:18 +00:00
billwajda 1f1430f074 added NM_CONTROLLED=no for configib and configeth and changed BOOTPROTO=none for redhat in both files for bug 3499
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16160 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-02 15:01:28 +00:00
lissav 3713a0de0b fix defect 3477 PCM
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16159 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-02 11:29:30 +00:00
jbjohnso ff434f5822 Add storage detection logic to debian deploy
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16155 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-01 21:00:28 +00:00
jbjohnso 0d857ceabf Have debian support support BOOTIF autodetection
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16152 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-01 19:10:46 +00:00
jbjohnso 1ec86928e6 Fix from Shadd Gallegos on mktoolscenter
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16150 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-01 18:18:32 +00:00
phamt 36a7a4486c 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/trunk@16149 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-01 17:16:28 +00:00
lissav 71b56b9ed3 on updatenode call xcatdsklspost adds NODE with the nodes database name to the /opt/xcat/xcatinfo file
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16148 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-01 16:40:12 +00:00
lissav 0f2a45f436 add export NODE=nodename; to thexdsh precommand so the node knows it's name as defined in the database
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16147 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-01 16:12:32 +00:00
phamt fc05b61ce0 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/trunk@16146 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-05-01 14:26:45 +00:00
jbjohnso 715e42d86c Actually fix LVM with 6.4
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16144 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-30 19:48:57 +00:00
jbjohnso f8d8231255 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/trunk@16142 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-30 19:32:05 +00:00
jbjohnso ac4206007d Fix problem with certain versions of libvirt and lvm storage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16139 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-30 19:27:58 +00:00
jbjohnso f96b7b59fa 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/trunk@16137 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-30 19:11:02 +00:00
jbjohnso 5dab441718 Fix problem with esxi detection of image template availability
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16135 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-30 18:52:56 +00:00
mellor 121d3de03b defect 3546 add kit framework info to kit.conf files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16133 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-30 18:39:19 +00:00
jbjohnso c0fdce99e0 Fix a problem where partition recipe was incorrectly written out
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16130 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-30 17:41:37 +00:00
mellor d2ea7c3b54 defect 3505 - fix manpage typos
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16129 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-30 13:09:30 +00:00
linggao d628976bd4 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/trunk@16127 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-29 20:27:22 +00:00
jbjohnso ab25897d4e Fix problem where makedns suddenly required hosts table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16125 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-29 18:04:21 +00:00
phamt 0bf672f284 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/trunk@16123 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-29 17:13:20 +00:00
phamt 37307c1058 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/trunk@16122 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-29 16:59:46 +00:00
phamt 272b5fb0eb 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/trunk@16121 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-29 15:37:23 +00:00
phamt 42fa7a7ef1 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/trunk@16120 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-29 15:08:10 +00:00
daniceexi 29af0d1043 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/trunk@16119 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-28 09:00:09 +00:00
zhaoertao e3d0fb9c9e 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/trunk@16117 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-28 06:28:55 +00:00
xyye 7839592fbc make dns and dhcp after adding unmanagement node in profilenodes.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16115 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-28 06:07:08 +00:00
qyin 8067ecb0e1 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/trunk@16111 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-28 05:49:39 +00:00
sjing 55e71dcde5 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/trunk@16109 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-28 02:47:58 +00:00
sjing a478ed4eb4 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/trunk@16107 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-28 02:40:53 +00:00
daniceexi 7b70df4161 run localdisk in stateless
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16106 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-27 08:04:47 +00:00
daniceexi a8a4a10263 move the localdisk mount point creating to genimage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16105 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-27 08:03:10 +00:00
daniceexi 337c515d02 change the mount point of localdisk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16104 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-27 08:01:13 +00:00
daniceexi 1ccb22b56a 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/trunk@16103 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-27 07:55:28 +00:00
daniceexi c2dcbfc537 create localdisk directories during genimage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16102 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-27 07:52:30 +00:00
daniceexi 390f7693b9 support localdisk to run on stateless
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16101 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-27 07:50:49 +00:00
daniceexi 52d1725a0c 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/trunk@16100 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-27 07:46:54 +00:00
daniceexi d19f601dec 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/trunk@16099 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-27 07:44:56 +00:00
ligc eab43f0f39 fix for bug 3533: rnetboot hang for Power5 servers
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16097 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-27 07:23:42 +00:00
sjing 2cd7e5aaa4 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/trunk@16095 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-27 06:11:49 +00:00
qyin 8cf5c6de87 #215407 Typo in man page: nodeimport
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16093 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-27 05:46:44 +00:00
zhaoertao 72993ed022 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/trunk@16091 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-27 02:38:46 +00:00
willn256 ce0fe877db 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/trunk@16088 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 22:28:33 +00:00
phamt a21935e9c7 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/trunk@16085 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 20:19:37 +00:00
jbjohnso 315a7a3c4a 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/trunk@16084 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 20:15:27 +00:00
jbjohnso 9e9000d609 Make local system work and also clean out messages
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16082 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 19:55:24 +00:00
jbjohnso 30d67b4813 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/trunk@16081 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 19:55:13 +00:00
phamt 51e03a7c4d Synched up with changes in 2.8 branch.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16078 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 19:03:55 +00:00
jbjohnso 90f638f3b2 Fix breakage where recent changes broke nodeset shell and friends
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16076 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 14:10:58 +00:00
jbjohnso 248569fa64 Fix issues with bmcsetup
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16075 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 14:10:47 +00:00
lissav 1b87913d30 put rsh/rcp deprecated in comments
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16072 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 11:28:58 +00:00
jjhua c8a4383e9d fixed bug 3354
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16069 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 02:16:18 +00:00
daniceexi feb65fcb64 defect 3520: fixed a typo that using - replace =
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16068 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-26 02:15:52 +00:00
wanghuaz e78b7a27f6 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/trunk@16064 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-25 12:56:34 +00:00
immarvin 775941db70 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/trunk@16062 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-25 12:07:48 +00:00
sjing 34a90f1e78 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/trunk@16061 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-25 07:56:59 +00:00
bp-sawyers 59af92bb8f document the --nonodecheck flag of psh
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16059 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-24 20:13:39 +00:00
daniceexi 58f0ffc4f1 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/trunk@16058 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-24 13:03:26 +00:00
immarvin 1d13b5c300 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/trunk@16057 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-24 08:33:48 +00:00
jjhua ca67d14658 fixed bug 3490.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16055 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-24 08:05:01 +00:00
jjhua c362fa3bc7 fixed bug 3490.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16054 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-24 08:02:36 +00:00
jjhua 226c907bbd fixed the bug 3490. put the insserv message into /dev/null
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16052 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-24 07:57:20 +00:00
linggao 6c4ed80d83 added --dryrun flag for genimage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16049 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-23 19:16:55 +00:00
mellor 0b1d186caf 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/trunk@16047 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-23 19:09:08 +00:00
lissav 31fc76401d fix defect 3512
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16044 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-23 18:26:50 +00:00
lissav 8421c4bcba fix defect 3517
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16043 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-23 14:35:55 +00:00
lissav f643ea5156 fix defect 3517
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16042 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-23 14:29:48 +00:00
daniceexi a868d2358c defect 3516: fixed the typo to handle the getnextdestiny result
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16039 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-23 08:19:42 +00:00
xq2005 e5a4cc7075 fix the SHA1.pm miss problem on ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16037 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-23 02:30:55 +00:00
mellor 7546f8ab98 rebuild teal kits to only include kitcomponents for base,ib,syslog
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16036 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-22 20:19:06 +00:00
jbjohnso 4f2d1153b1 If lzma is older than gzip genesis, prefer newer
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16033 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-22 19:18:34 +00:00
jbjohnso 6fe6d9d9c8 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/trunk@16031 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-22 19:03:07 +00:00
yinle 2151ea5130 support lsslp -s CMM match hostname with switch table.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16030 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-22 10:13:45 +00:00
jjhua 19a7849178 fixed one minor issue
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16028 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-22 07:11:24 +00:00
jjhua c3e9663bf0 remove the xcat-otherpkgs*repo from ospkgs script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16027 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-22 06:30:18 +00:00
daniceexi adf9297047 Fixed the method to receive http payload with chunk format
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16024 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-19 14:02:10 +00:00
xq2005 370376f043 start ttyS0 for stateless boot on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16021 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-19 12:23:49 +00:00
wanghuaz d64e320ce1 remove teal-gpfs and teal-gpfs-sn
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16020 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-19 11:28:13 +00:00
wanghuaz 85f1c3e9b0 remove teal-gpfs and teal-gpfs-sn
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16019 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-19 11:27:00 +00:00
jjhua 27b0f260e6 fixed bug 3513
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16016 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-19 05:56:33 +00:00
nott eacba49833 add clroptionvars
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16015 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-18 15:54:48 +00:00
jbjohnso c40b974182 Fix problem where KMS key not being used as default
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16013 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 18:38:22 +00:00
jwsimpson 3375666c53 Update rpower usage with onstandby and sms
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16012 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 15:10:41 +00:00
mellor 7b85d31579 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/trunk@16009 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 14:11:27 +00:00
jbjohnso 6f21c19ba0 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/trunk@16006 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 13:53:38 +00:00
jjhua 75f98c010e fixed the bug when updatenode on ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16004 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 08:18:12 +00:00
zhaoertao 7ec6aaf2ee 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/trunk@16003 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 07:21:28 +00:00
qyin 233b2bf351 solution:215058 enable switch auto discovery for PCM
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15999 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 07:06:57 +00:00
jjhua a2247f0170 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/trunk@15998 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 07:05:21 +00:00
daniceexi 439985c34d Add the help for flex and iDataplex support for renergy command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15995 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 06:55:47 +00:00
xq2005 0d716b5691 use defined suborutine on hash object import warning message
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15992 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-17 06:38:42 +00:00
phamt 16b23e8045 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/trunk@15991 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-16 19:38:11 +00:00
mellor e61f74a602 set PE env var for kit build
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15990 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-16 18:24:44 +00:00
mellor cf032d05d6 update PE env vars and added other PE kit files to make this dir complete
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15989 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-16 18:19:35 +00:00
phamt 79cf47513e 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/trunk@15986 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-16 17:49:43 +00:00
mellor d8cf8fa312 defect 3482 - fix find wildcarding
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15985 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-16 15:17:49 +00:00
mellor b3c503a8d0 defect 3503 - remove duplicates and sort output of lskmodules
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15983 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-16 13:20:46 +00:00
jjhua f4acade014 only remove the repositories which were created by xCAT for sles
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15978 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-16 05:36:05 +00:00
ligc e8edeca80c 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/trunk@15977 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-16 02:48:38 +00:00
lissav 3f51657eef fix 3477
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15973 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-15 12:28:46 +00:00
xq2005 ac38b17a5a support pgsql on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15971 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-15 07:10:48 +00:00
ligc 7f60027aa1 fix for bug 3496: disable SELinux on RHEL, check rc problem
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15969 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-15 04:53:04 +00:00
daniceexi 97c4aef241 Change how to get the bmc for a predefined node
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15965 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-12 08:10:25 +00:00
daniceexi 3faab403aa 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/trunk@15964 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-12 08:09:37 +00:00
daniceexi 9d73e3a4fb 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/trunk@15963 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-12 08:08:17 +00:00
linggao 61eacdadad modified puppet kit version
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15961 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-11 20:32:06 +00:00
jbjohnso 34f0ece400 Fix problem where hot takeover failed to completely kill off discovery worker
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15960 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-11 20:15:00 +00:00
jbjohnso 4817dfbe26 Fix unclean shutdown induced by discovery worker
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15959 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-11 19:46:48 +00:00
jbjohnso d3adad02ee Fix discovery in worker
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15958 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-11 19:37:23 +00:00
jbjohnso 7d7bfb00b4 Break discovery out to it's own worker
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15957 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-11 19:36:45 +00:00
jbjohnso f54c5dfb36 Remove debug output from wcons
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15956 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-11 18:01:58 +00:00
jbjohnso 47f73b0569 Have wcons not call nodels as a subprocess
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15955 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-11 18:01:45 +00:00
jbjohnso 39d6a2e0d4 start fixing wcons
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15954 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-11 18:01:37 +00:00
nott 6de92a9ef1 remove use of global variable DELNODE
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15950 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-11 14:18:08 +00:00
daniceexi 08c3c1cefc Add cappingGmin support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15948 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-11 04:22:34 +00:00
daniceexi 607ef66ea8 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/trunk@15945 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-11 03:15:27 +00:00
jbjohnso 75159bbfea Fix problem where psh -f would go more than requested
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15942 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 21:01:09 +00:00
bp-sawyers eae50e0deb fix syntax errors in nodediscoverls and nodediscoverstart pod pages
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15940 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 20:50:31 +00:00
mellor cf581571a2 add arch and other attrs to full kitname
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15939 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 19:40:11 +00:00
lissav 0eff1909de fix defect 3483
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15937 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 15:55:06 +00:00
amy0701 adbb9d5609 spelling mistake for Script_Post make script_post fail to work
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15932 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 11:34:17 +00:00
jjhua cb445f14ec remove the debug flag
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15930 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 09:33:56 +00:00
jjhua ffe3068f8c 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/trunk@15928 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 09:32:49 +00:00
jjhua 5b09fc7b4b 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/trunk@15926 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 09:29:45 +00:00
jjhua 7b6e031df2 1. modifies some comments 2. add the rpm post scripts
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15925 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 09:28:56 +00:00
sjing ab76120c96 use genesis kernel/initrd for sysclone.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15921 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 06:36:22 +00:00
wanghuaz 40fe923477 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/trunk@15920 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 06:36:09 +00:00
sjing 0fd3f77e32 use genesis kernel/initrd for sysclone.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15919 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 06:35:36 +00:00
sjing 87f87fe85f use genesis kernel/initrd for sysclone.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15918 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 06:28:16 +00:00
sjing 996e2e9741 use genesis kernel/initrd for sysclone.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15917 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 06:23:55 +00:00
sjing afdd5ef8a7 use genesis kernel/initrd for sysclone.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15916 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 06:18:46 +00:00
sjing 73c2949cee use genesis kernel/initrd
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15915 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 06:07:38 +00:00
sjing 90ba6dba21 use genesis kernel/initrd
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15914 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 06:00:42 +00:00
yinle 1242f4c912 fix bug 3462 no any output executing lsslp --flexdiscover. Remove man information of --flexdiscover.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15913 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 03:06:33 +00:00
yinle 2740e8a6ec fix bug 3462 no any output executing lsslp --flexdiscover. Remove man information of --flexdiscover.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15912 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 03:03:16 +00:00
mellor ca78a2dc38 defect 3465 ppedev 1.2.0-2 kits
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15908 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-10 02:31:17 +00:00
jbjohnso 876fa7df69 Add support for external DNS and DHCP servers
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15906 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 20:21:02 +00:00
lissav 57cbc0c372 fix defect 3477
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15904 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 18:23:51 +00:00
jbjohnso 9c368aaf55 Add a bash+awk variant of a flow request
stil need powershell and python (esxi)

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15903 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 18:16:38 +00:00
jbjohnso 29efa2321b Add a src file for xcatflowrequest
-Tried bash /dev/udp and read built-in.  This causes single byte read() calls (see zread.c in bash source)
-Tried gawk.  No concept of a timeout and getline never did return the data right...

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15902 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 17:30:51 +00:00
mellor 361c5e5665 defect 3474 - fix parsing of rpm names for kitpkgdeps
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15901 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 13:11:19 +00:00
daniceexi af8cf07ece Update the man page for sequential discovery support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15897 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 12:00:20 +00:00
wanghuaz ecd3fbc5ba Removed the sample perl modules
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15896 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 11:27:01 +00:00
wanghuaz 869e5948f6 Removed the sample perl modules
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15895 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 11:25:23 +00:00
wanghuaz a94d088a91 Checkin the partial-teal kit source files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15893 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 09:00:59 +00:00
ligc 6d4cc3f97d fix for bug 3454: handle the object name like fd59::/64
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15892 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 08:20:15 +00:00
jjhua f3fc6a7f25 remove the -vx
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15889 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 08:02:43 +00:00
jjhua a18693ec9f make it work during postboot period
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15888 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 08:02:15 +00:00
yinle ac252f7f83 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/trunk@15887 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 07:13:18 +00:00
immarvin 21df7c201c replace nfs-utils with nfs-kernel-server in sles11 pkglist
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15885 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 06:45:27 +00:00
ligc 6985f95b28 fix for bug 3353: remove lsvpd and busybox-anaconda
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15883 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-09 06:31:17 +00:00
jbjohnso 033b6706b7 Fix problems with IPv6-ification of the UDP service
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15881 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 20:36:14 +00:00
jbjohnso f2de7ef12e Fix problem where tc grants always were sent to the last peer to send traffic
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15880 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 17:37:15 +00:00
jbjohnso 27459a2869 Fix issue where TC requests would be remembered not at all and then forever
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15879 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 17:37:10 +00:00
jbjohnso 15d0a15364 Fix output to have a newline in packet
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15878 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 17:37:05 +00:00
jbjohnso 4204e9070e Implement udp request (but no reply yet)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15877 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 17:36:57 +00:00
jbjohnso b9e587e703 Step one of traffic control, have SSL inform UDP process of current client count
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15876 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 17:36:51 +00:00
daniceexi 1138ab87d4 support the regular expression in the hosts table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15875 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 08:38:15 +00:00
immarvin 0a226feef7 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/trunk@15872 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 08:19:38 +00:00
jjhua efa051a181 remove the repeated info
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15870 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 08:15:26 +00:00
zhaoertao d5ef187fe1 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/trunk@15868 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 07:35:25 +00:00
ligc bfee3cf96a 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/trunk@15865 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 07:28:55 +00:00
ligc 6801e064cf 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/trunk@15864 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 07:12:02 +00:00
zhaoertao db6fc2c563 change \'-s\' to \'-u\' for mkdef|chdef command to have osimage find custom files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15862 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 07:03:24 +00:00
daniceexi 89f238f5cd 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/trunk@15859 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 06:36:07 +00:00
jjhua cdb7aa0ab6 remove the -vx from the shell script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15858 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 06:31:35 +00:00
jjhua 91a1736e61 Added code for xCAT chef intergration on Ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15856 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 06:27:25 +00:00
jjhua 3e02ce0e4f Added code for xCAT chef intergration on RH
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15853 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 06:19:41 +00:00
jjhua e2e7c0b35c remove the repositoris whose prefix is -path
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15852 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-08 01:38:17 +00:00
xq2005 beadfcd627 buildkit support on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15849 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-07 08:41:35 +00:00
ligc dfd91e4d4a fix for bug 3476: remove empty nics definition from nics table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15848 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-07 06:53:23 +00:00
wanghuaz 64af7cbc19 Fixed an error in last checkin.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15844 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-07 06:30:53 +00:00
asirxing 2d555c821a Merge lskit/lskitcomp/lskitdeployparam codes to xCAT trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15843 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-07 06:17:34 +00:00
xq2005 786cfde0a8 buildkit support on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15842 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-07 06:14:08 +00:00
daniceexi e1c60cb830 add nodediscoverstart -V to display detail free host ips and bmc ips. And make sequential.pm handle the usage display for both sequential and profile discovery
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15840 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-06 09:09:08 +00:00
daniceexi b7daccfe36 move the usage message display to sequential.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15839 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-06 09:07:21 +00:00
jbjohnso 571487bf46 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/trunk@15838 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-05 20:51:12 +00:00
phamt 85b4be21c5 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/trunk@15836 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-05 02:35:29 +00:00
jbjohnso aca5b290c2 Correct syntax error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15835 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-04 20:16:40 +00:00
jbjohnso 97e50a2aae Fix typo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15834 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-04 20:16:34 +00:00
jbjohnso 4a30157492 Apply methodology from previous commit to a number of other places
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15831 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-04 20:11:28 +00:00
jbjohnso c72f824670 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/trunk@15830 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-04 20:11:19 +00:00
phamt e30d85bf2d 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/trunk@15827 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-04 16:01:24 +00:00
jbjohnso 1d37352e85 Fix for template recognition to detect major release generic templates
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15825 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-04 13:03:50 +00:00
jbjohnso c0e81dc8ad Use a different error code
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15824 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 20:57:18 +00:00
jbjohnso bd67c19612 Have copycds error set exit code on client
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15823 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 20:57:08 +00:00
linggao 0768e46b91 bug fix for puppet kit
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15819 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 20:37:32 +00:00
jbjohnso c1a25ac668 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/trunk@15817 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 20:34:15 +00:00
jbjohnso 3995fae3b6 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/trunk@15816 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 20:20:29 +00:00
jbjohnso 2d0f36801a Fix error in esxi plugin
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15814 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 18:21:29 +00:00
xq2005 66e30f3a17 pgsqlsetup support postgresql on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15811 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 16:29:42 +00:00
lissav cb415007ba add back the csm to xcat migration tools
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15809 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 13:15:25 +00:00
zhaoertao 0a89522d18 add -s for *def command to have osimage find custom files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15808 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 11:43:18 +00:00
xq2005 8990dc25ff debian/ubuntu support internet repo for otherpkgs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15805 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 09:17:08 +00:00
ligc c256f1c0fe fix for bug 3460: add ipv6 default gateway setup for configib
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15804 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 09:16:43 +00:00
xq2005 c5e3b1a06d debian/ubuntu support internet repo for otherpkgs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15802 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 09:12:22 +00:00
zhaoertao acbcc58858 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/trunk@15800 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-03 09:06:33 +00:00
phamt be6a71e607 Updated output message of purgerdr option.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15799 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 20:34:15 +00:00
phamt f69b6ac018 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/trunk@15798 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 20:26:28 +00:00
jbjohnso 7ace2412fe 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/trunk@15796 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 19:55:57 +00:00
mellor ea3431f5a7 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/trunk@15795 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 19:54:24 +00:00
jbjohnso 8360cddd12 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/trunk@15792 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 19:19:30 +00:00
mellor d3043285f2 update kit template with various changes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15790 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 17:54:01 +00:00
mellor 28d75b347f 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/trunk@15786 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 16:31:21 +00:00
mellor 9a639e015e buildkit man page update for addpkg and other changes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15785 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 13:37:28 +00:00
zhaoertao ce4e807a04 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/trunk@15782 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 09:06:11 +00:00
wanghuaz e05b6c62b2 Updated addkitcomp manpage for --noupgrade option
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15780 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-02 04:59:28 +00:00
mellor e705fc08e9 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/trunk@15778 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 21:26:26 +00:00
jbjohnso 8f37638f66 Rename site value to something more specific
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15775 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 19:11:16 +00:00
nott e0b1400489 more usage msgs and error checking
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15773 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 18:49:55 +00:00
bp-sawyers fb0028623a fixed typo in regex example in xcatdb man page
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15771 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 18:46:30 +00:00
jbjohnso 528ecb3e56 Provide site value to suppress credential check messages
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15770 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 17:57:13 +00:00
nott b5afe5e3b9 support xCAT long hostname
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15768 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 17:22:21 +00:00
lissav 525d1dcb63 fix defect 3412
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15766 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 16:46:32 +00:00
wanghuaz e01282f5eb 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/trunk@15764 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 12:51:58 +00:00
wanghuaz a1fdfce779 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
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15761 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 12:09:26 +00:00
wanghuaz 85e66bdcfc 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/trunk@15760 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 10:43:07 +00:00
daniceexi 2d9139705f Code drop for sequential discovery support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15758 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 10:32:07 +00:00
yinle e927682f24 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/trunk@15757 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 07:58:23 +00:00
yinle 69812d996a 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/trunk@15755 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 07:52:32 +00:00
creativezj ff67a1d864 fix multiple nic error while all nics in same network
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15751 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 07:16:59 +00:00
phamt a9e5f73abd 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/trunk@15750 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-04-01 01:46:31 +00:00
wanghuaz 9e26b11fe2 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/trunk@15748 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-31 22:44:19 +00:00
wanghuaz ef9db848fd added addkitcomp --noupgrade option to install multiple PE RTE PTFs.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15747 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-31 22:35:50 +00:00
xq2005 a2c0e85f08 statelss image support internet repo on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15744 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-31 14:39:27 +00:00
phamt 265cbde35b Fixed typo in output string
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15743 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-30 21:47:51 +00:00
phamt 9eda055ddd 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/trunk@15742 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-30 21:38:55 +00:00
linggao ce3ea63680 Openstack support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15740 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-30 21:14:20 +00:00
wanghuaz 83e983106c Create osimage with profile compute for management node
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15738 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-30 07:51:25 +00:00
linggao 30d3984998 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/trunk@15736 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-30 02:10:38 +00:00
linggao 1e1b6417d7 Added code for xCAT puppet integration on RH
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15734 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 19:53:12 +00:00
linggao d8824a068f Added code for xCAT puppet integration on Ubuntu.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15732 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 19:03:18 +00:00
phamt 70414d2b08 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/trunk@15731 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 16:30:41 +00:00
phamt 236a415bf7 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/trunk@15730 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 15:38:05 +00:00
nott 4c82d3101f add default for nichostnamesuffixes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15729 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 13:20:41 +00:00
nott 4c2f0c2ceb description cahnge for nicaliases
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15726 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 12:53:18 +00:00
lissav 6b9baa15e5 fix defect 3426
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15723 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 11:36:48 +00:00
creativezj f93460d4f6 support multiple nics in nodeimport
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15721 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 05:58:26 +00:00
xq2005 b5f73f7a23 copycds support option -i on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15718 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 03:44:57 +00:00
xq2005 43c44ee347 load firmware in debian/ubuntu stateless initrd
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15716 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-29 03:04:41 +00:00
jbjohnso 25eb443587 Have provision for per-node AD admin credentials
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15714 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 20:52:15 +00:00
jbjohnso e899e3d62b Make allowances for per-node activedirectory enablement
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15712 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 18:59:48 +00:00
jbjohnso 52620d3edd Add entry to allow per-node authentication domain configuration
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15710 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 18:53:50 +00:00
jbjohnso d7987c5e46 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/trunk@15708 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 18:50:30 +00:00
jbjohnso e9441739a0 Add more IPv6 magic to ESXi setup
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15705 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 18:30:46 +00:00
lissav abf400572b handle easy regx expressions
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15703 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 12:06:27 +00:00
immarvin 5cabc2b9ef replace kernel with kernel-default in sles11 pkglist
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15702 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 09:33:51 +00:00
immarvin 1d11ddb65f nfs-client not exist in sles11 iso, remove it from pkglist
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15700 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 08:46:15 +00:00
yinle 03eb28bb46 lsslp --flexdiscover enhancement
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15696 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 08:17:39 +00:00
yinle 430d5c0c09 lsslp --flexdiscover enhancement
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15695 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 08:15:58 +00:00
yinle ea966447d6 lsslp --flexdiscover enhancement
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15694 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 08:13:59 +00:00
immarvin 1533cf185c add ntp into the sles pkglist
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15688 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 06:34:22 +00:00
immarvin 749cf2f240 add ntp into the sles pkglist
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15687 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 06:33:14 +00:00
ligc c06c616558 fix for bug 3446: for SLES, do not add FW_DEV_EXT if there is only nic
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15683 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 05:35:58 +00:00
mellor 7dbd6aaf3e added kit.release attr
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15682 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 02:36:54 +00:00
mellor 51fe0df1c4 rewrote buildkit buildtar and addpkgs for kit verrel substitution support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15680 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 02:31:55 +00:00
ligc 045b83d76d 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/trunk@15678 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-28 01:41:14 +00:00
jbjohnso 3d8c237a01 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/trunk@15675 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-27 20:43:00 +00:00
bp-sawyers 5ac785b6f6 corrected chain.chain attribute description
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15673 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-27 20:39:23 +00:00
wanghuaz 4768f5adba 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/trunk@15669 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-27 10:15:07 +00:00
jbjohnso 18193f31a4 Fix DNS client configuration for Windows when doing static assignment
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15668 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-26 14:38:57 +00:00
jbjohnso aad6c3c311 Fix missing close tag on xml in last windows commit
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15666 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 21:08:26 +00:00
jbjohnso 42ae915878 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/trunk@15663 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 20:52:21 +00:00
jbjohnso e5755dbc64 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/trunk@15661 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 20:02:04 +00:00
jbjohnso 4b2e5beb12 Fix issues with previous commit
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15658 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 19:36:31 +00:00
jbjohnso ee48169642 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/trunk@15657 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 19:36:20 +00:00
mellor f20e77dd93 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/trunk@15655 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 17:57:37 +00:00
jbjohnso cdf3b7aeb2 Fix for anaconda claiming toolscenter oses
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15653 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 17:39:33 +00:00
zhaoertao 1a2383d9f8 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/trunk@15635 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-25 02:55:34 +00:00
jbjohnso 037f32bd54 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/trunk@15632 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-23 17:23:20 +00:00
nott 61158bbfcf add support for nicaliases
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15630 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-22 14:19:17 +00:00
nott 6a8534a0f6 add to nicaliases description
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15628 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-22 14:11:05 +00:00
xq2005 f19761ef71 genimage on ubuntu12.04.2 meet package installation error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15626 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-22 07:16:18 +00:00
phamt a4187efcb2 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/trunk@15625 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 21:40:53 +00:00
phamt 922921a739 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/trunk@15624 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 20:32:28 +00:00
nott cee8a7a73b add nicaliases support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15622 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 19:23:46 +00:00
phamt 474c298630 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/trunk@15621 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 18:46:00 +00:00
phamt 0575001ef2 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/trunk@15620 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 18:36:20 +00:00
nott 3ceb5fe7e4 fix bad hosts file entry - 3439
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15618 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 18:18:45 +00:00
jwsimpson d00ded29a2 lsslp support for transAM
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15617 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 17:33:18 +00:00
nott 4312042e2a add bash to aix bundles
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15613 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 15:32:37 +00:00
nott d129856a4f fix rmnimres subroutine - 2
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15610 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 13:52:44 +00:00
nott 5c1c601119 fix rmnimres subroutine
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15609 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 12:37:13 +00:00
xq2005 a2a91cdd21 delete the uesless genimage.old
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15607 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 08:25:02 +00:00
jjhua 4940906c05 made some updates in the pkglist for bug 3444
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15605 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 06:56:38 +00:00
ligc b857a25081 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/trunk@15604 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 06:50:15 +00:00
ligc 83bed2cb04 chdef,mkdef enhancements to support nic attributes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15602 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 06:41:01 +00:00
jjhua 079665a651 fixed bug 3437
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15600 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-21 05:20:18 +00:00
phamt bd38609ba1 Cleaned up how smcli calls are logged in syslog.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15597 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-20 20:47:12 +00:00
xq2005 5777cd4dd7 support copycds -i on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15595 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-20 08:08:50 +00:00
ligc bab48dbc50 lsdef enhancements to show nics attributes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15594 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-20 06:56:32 +00:00
linggao 6c1a840369 fixed SF bug#2433
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15590 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 21:17:46 +00:00
lissav 2830bab937 fix for defect 3436
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15588 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 17:58:17 +00:00
jbjohnso eda584a0f5 HTTP/1.1 sends headers back more, tolerate that
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15587 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 16:01:43 +00:00
jbjohnso 67787dad86 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/trunk@15586 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 16:01:22 +00:00
jbjohnso 4c6b234e13 Fix xCAT-server rpm build srpm problem
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15584 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 14:48:33 +00:00
jbjohnso d095c0fc5f 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/trunk@15580 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 13:35:59 +00:00
jbjohnso cab8191379 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/trunk@15577 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 13:22:33 +00:00
lissav 586c212d93 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/trunk@15575 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 13:16:39 +00:00
lissav 8d8c38d3b4 fix for defect 3434
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15573 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 11:14:23 +00:00
xq2005 c9778bf3f7 setup odbc for mysql on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15571 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 08:55:04 +00:00
xq2005 029df230d6 use mysql db on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15570 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 07:43:30 +00:00
immarvin 1eb4411009 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/trunk@15567 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 07:17:34 +00:00
xq2005 d4e79d7a95 use mysql db on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15565 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 07:13:05 +00:00
amy0701 3bcdc5e371 update testcase for checking geninitrd
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15564 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-19 06:50:22 +00:00
jbjohnso cfed625f4c Add more objdef mappings for table data
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15562 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-18 20:56:02 +00:00
jbjohnso c6672270ea Add node/group level nameserver indication to schema
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15561 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-18 20:55:55 +00:00
amy0701 f0161a5c45 add testcases for diskless/diskfull/SN installation on x86_64 sles11sp2
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15559 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-18 08:22:41 +00:00
wanghuaz 2d6b18cfc9 Added the manpage of addkit -i|--inspection option.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15558 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-18 08:14:39 +00:00
amy0701 eb3ccaa773 add testcase for SN installation,diskless/diskfull/statelite installation with SN on x86_64 redhat
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15557 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-18 07:49:38 +00:00
jbjohnso de9fbe4f82 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/trunk@15551 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-18 00:17:34 +00:00
jbjohnso 0a4d227a2d Add script to export credentials for powershell client
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15550 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-17 22:48:46 +00:00
jbjohnso 9d374c1421 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/trunk@15549 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-17 17:20:53 +00:00
jbjohnso ef8f762590 Work towards an xcoll workalike, also likely a xcsv workalike
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15548 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-17 05:12:06 +00:00
jbjohnso 95c6a3d93d 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/trunk@15547 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-17 02:11:58 +00:00
jbjohnso c519c111ec 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/trunk@15546 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-16 23:27:53 +00:00
jbjohnso 717cd66082 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/trunk@15545 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-16 01:50:35 +00:00
jbjohnso 4a572f5015 Actually have the powershell module successfully be able to run commands
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15544 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-16 01:50:29 +00:00
jbjohnso 0344b08ba1 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/trunk@15543 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-16 01:50:22 +00:00
jwsimpson 4bde0a0ded FSPpower.pm was updated to allow sms option
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15542 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-15 21:43:06 +00:00
jbjohnso c602006c04 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/trunk@15539 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-15 21:12:53 +00:00
jbjohnso 7eaed897e8 Properly restart syslog when dhcp says to
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15538 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-15 20:00:35 +00:00
jbjohnso 16642a0810 Test change to reduce dhclient activity - as suggested by Daniel Weeks
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15537 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-15 19:56:00 +00:00
jbjohnso 4337554e71 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/trunk@15535 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-15 19:42:25 +00:00
jbjohnso 1dc28f2540 A little more PowerShell experimentation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15534 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-15 19:42:17 +00:00
jwsimpson 43826a511a lsslp Usage update to add FSP and IMM2 to -s option
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15533 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-15 13:53:18 +00:00
yinle 57707391b4 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/trunk@15528 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-15 07:46:16 +00:00
yinle f211c92b82 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/trunk@15527 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-15 06:13:29 +00:00
yinle 17abb515db 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/trunk@15522 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-15 06:02:37 +00:00
nott 3c81f67a62 misc cleanup
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15520 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 16:02:31 +00:00
bp-sawyers 221a44d1bd added author to tools help
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15518 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 14:18:54 +00:00
xq2005 45fb564db6 use the default pkglist on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15515 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 08:54:50 +00:00
xq2005 5a4e5a3559 support comment in the pkglist on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15513 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 08:50:57 +00:00
jjhua 2fbdba3fe3 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/trunk@15512 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 07:47:46 +00:00
jjhua c4e7fe9f02 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/trunk@15511 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 07:47:28 +00:00
zhaoertao df466fe7b6 update manpage for reventlog <-s>
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15505 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 07:29:53 +00:00
xq2005 8df12f9219 buildkit support external non_native_pkgs on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15503 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 07:21:22 +00:00
zhaoertao bc44b57b73 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/trunk@15502 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 07:12:37 +00:00
daniceexi dea73cdb01 Add the support for flex
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15499 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 06:27:43 +00:00
jjhua 621ad77911 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/trunk@15498 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 02:44:52 +00:00
jjhua 29945eb0d1 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/trunk@15495 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-14 02:29:50 +00:00
bp-sawyers 111782a728 automatically build readme for tools
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15490 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 23:01:17 +00:00
jbjohnso 4b09b8f926 Fix bug with optional persistence where reset no longer survives
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15489 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 19:59:45 +00:00
jwsimpson d07d624b01 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/trunk@15488 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 19:21:41 +00:00
linggao 10ad3b6945 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/trunk@15484 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 19:05:27 +00:00
nott 46ad21d88c changes to finding xcat node name
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15482 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 18:39:23 +00:00
xq2005 2de350cf80 support makeknownhosts on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15478 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 10:11:02 +00:00
xq2005 2ce147d84b support makeknownhosts on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15477 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 10:06:38 +00:00
xq2005 e05797bb60 support makeknownhosts on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15476 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 10:06:09 +00:00
wanghuaz 774c178272 Don't mount /proc fs since it will confuse the rpm or scripts that they are on diskless nodes.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15475 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 09:54:45 +00:00
xq2005 5f8ed93998 for kdump bug on non-p7 ih power server, bug number 2898
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15472 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-13 06:38:51 +00:00
phamt 50445cdc26 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/trunk@15470 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 23:10:58 +00:00
jbjohnso 4de0a47920 Add centos6.4 discid
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15468 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 18:13:17 +00:00
nott c4c942fbab add xcat node name to /etc/xcatinfo file
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15466 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 16:37:37 +00:00
lissav 5d3e1f3d53 add /share/xcat/tools for aix
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15464 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 13:13:27 +00:00
lissav fbfe3777b4 add /opt/xcat/share/xcat/tools to the path on linux
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15463 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 13:04:37 +00:00
lissav 907b14ba9d add /opt/xcat/share/xcat/tools to the path for AIX
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15461 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 12:35:49 +00:00
daniceexi ede3d3ced7 defect 3195: change the search pattern to the uxspi binary path
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15459 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 11:12:15 +00:00
daniceexi e59dc8a9ce code drop for flex energy management support through cmm snmp interface
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15456 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 10:46:21 +00:00
immarvin f5ed6658ec support rhels5.9
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15455 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 08:09:28 +00:00
immarvin 2abdf800d9 add anaconda template for compute.rhel5.ppc64
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15453 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 07:41:19 +00:00
wanghuaz 180eb62560 ppe rte license 1.3.0.0 can only be used. PTFs cannot include license file
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15450 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 07:08:15 +00:00
xq2005 e6a50b4215 resolve the conflict between xcat-genesis-base-amd64 and xcat-genesis-amd64 on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15449 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-12 06:12:44 +00:00
nott e2aa75569f fix -m and xcat node name issue
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15448 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-11 19:36:19 +00:00
phamt a0d1d5b41a Added check for return code on Linux dd.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15444 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 22:50:16 +00:00
linggao 80b20c444f More fix for SF bug #3404 configib for aix
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15442 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 19:49:02 +00:00
jwsimpson 15447d0398 lsslp replaced flex filter for model 8236 (P7IH - mistake) with P24L model 1457
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15440 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 16:02:06 +00:00
lissav 51d4c30e4a moved insptbls
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15437 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 11:41:20 +00:00
jjhua 7ab0cf1ffd 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/trunk@15434 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 06:07:30 +00:00
immarvin 20ff90225a #3130 installnic=mac does not work for rh5 ppc64 netboot
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15426 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-08 03:05:32 +00:00
wanghuaz 04e63c307e 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/trunk@15415 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-07 20:59:34 +00:00
lissav 6d6ab9b951 fix defect 3403
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15410 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-07 14:26:49 +00:00
lissav 9765d32dc6 fix defect 3403
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15409 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-07 14:25:34 +00:00
xq2005 86b29b0edb buildkit on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15408 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-07 08:59:45 +00:00
linggao 4613a85c23 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/trunk@15406 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-07 00:18:44 +00:00
linggao f2eb32b3c9 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/trunk@15405 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-06 20:18:37 +00:00
lissav 93bcbc5e71 add sudo dcp -F support SF 3403
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15402 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-06 17:48:53 +00:00
linggao 361cd8c42b fix for 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/trunk@15400 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-06 14:49:46 +00:00
xq2005 6ae785af6e fix infinite provision problem after use kit
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15399 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-06 10:33:41 +00:00
immarvin a288b88bd9 prevent remount root filesystem in rw mode during reboot
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15396 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-06 08:47:47 +00:00
xq2005 1e797ed26b buildkit buildtar on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15395 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-06 08:44:26 +00:00
xq2005 89dba8092d build xCAT-buildkit on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15394 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-06 05:47:32 +00:00
xq2005 2195f9261e buildkit for buildrepo on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15393 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-06 05:36:32 +00:00
xq2005 87a957642f buildkit for buildrepo on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15392 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-06 05:31:11 +00:00
sjing a5fd918ba7 support imaged provisioning.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15391 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-06 05:29:06 +00:00
xq2005 7f90243337 build xcat-buildkit on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15389 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-06 05:04:56 +00:00
phamt 11ecff91d4 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/trunk@15388 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-05 15:32:24 +00:00
xq2005 d342bab175 build xCAT-buildkit on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15387 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-05 09:25:45 +00:00
immarvin 9c367350c9 rhels6.4 support for ppc64 and x86_64
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15385 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-05 07:29:18 +00:00
xq2005 002b2ec9df build xCAT-server on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15383 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-05 05:36:29 +00:00
xq2005 59e4b3df05 build xCAT on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15382 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-05 05:35:25 +00:00
phamt 2bdbf688ab Added support for IP pools in xCAT UI. This includes creating a group with an assigned list of node names, IP address, and hostnames. It also includes updating and deleting an existing group with an IP pool.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15380 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-05 04:10:57 +00:00
linggao 845774a571 fixed a defect # 3398 updatenode -P fails if hostname on the node is FQDN
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15379 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 22:32:17 +00:00
jbjohnso 8612355df9 Append rather than prepend xcatpost to PATH
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15378 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 21:56:58 +00:00
jbjohnso 002d093a37 Add a manifest for the powershell xCAT client
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15377 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 21:45:29 +00:00
jbjohnso b787fc643b Rename xCAT powershell module
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15376 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 21:25:31 +00:00
jbjohnso 0073bfd6b3 Modify xCAT Powershell libs to load without warning/error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15375 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 21:25:23 +00:00
phamt 09d423997e Moved mkay4z script into /opt/xcat/share/xcat/scripts directory.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15374 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 19:57:48 +00:00
lissav 9a7dba6d86 fix defect 3401
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15371 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 16:46:28 +00:00
sjing 7d2ad45443 support imaged provisioning.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15368 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 07:38:50 +00:00
sjing 1c2f665993 support imaged provisioning.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15360 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-04 03:05:07 +00:00
jwsimpson 706eca1ef7 update lsslp.pm to not report CEC for flex p blades. Also added support fro IMM2.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15357 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 22:01:04 +00:00
phamt 0d195918e3 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/trunk@15355 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 21:23:24 +00:00
nott dc488dfc08 add support for running local install script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15350 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 19:14:32 +00:00
linggao 2a5ae3d1b4 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/trunk@15348 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 19:11:29 +00:00
lissav acd8d676c1 fix defect 3398
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15343 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 17:33:03 +00:00
nott 01f1a52525 new aix software update script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15342 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 17:03:48 +00:00
lissav 46a89fa1c6 add crontab -l
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15332 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 13:38:09 +00:00
lissav d53284d914 add additional ssl settings for xcatd SF 3396
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15326 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 13:05:34 +00:00
xq2005 e36f3e5684 comppkgname support debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15323 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 09:11:32 +00:00
xq2005 17ae3213cd add the debian directory for building xcat-buildkit on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15320 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 08:59:27 +00:00
ligc 111793e3a6 update description for nics table, IPv6 support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15318 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 08:27:13 +00:00
jjhua f9069a18e0 add some information of multiple paths to linuximage.pkgdir
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15317 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 08:25:52 +00:00
jjhua a0bb9e1665 support multiple paths of osimage on centos6 diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15316 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 07:31:11 +00:00
jjhua 92ecdf8b0b support multiple paths of osimage on centos6 diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15315 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 07:30:10 +00:00
jjhua 2c8c8257a8 support multiple paths of osimage for sles10sp3 diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15314 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 07:09:36 +00:00
ligc e706f5cbd4 configib support multiple ipv4 addresses and IPv6 addresses
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15312 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-03-01 03:39:58 +00:00
phamt 37c015a7ca Fixed clone function.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15298 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 16:04:15 +00:00
bp-sawyers 200e369d5d Remove newline in Version file
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15295 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 15:24:39 +00:00
jjhua a9829ab17b support multiple paths of osimage in rhels diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15289 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 07:20:45 +00:00
jjhua b6ff220b06 support multiple paths of osimage in rhels diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15288 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 07:19:46 +00:00
jjhua 6b2012900a support multiple paths of osimage in rhels6 kvm diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15287 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 07:09:45 +00:00
jjhua e5011c3919 support multiple paths of osimage in rhels6 compute node diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15286 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 07:01:46 +00:00
jjhua 72cf13e8e3 support multiple paths of osimage in rhels6 ppc64 service node diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15285 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 06:56:30 +00:00
jjhua 2c6158570b support multiple paths of osimage in rhels6 ppc64 compute node diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15284 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 06:43:54 +00:00
jjhua 5be856cddc support multiple paths of osimage in rhels6 service node diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15283 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 06:28:08 +00:00
jjhua cbf108f8b8 support multiple paths of osimage in rhels6 compute node diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15282 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 06:26:36 +00:00
jjhua 6e9b41d4bc support multiple paths of osimage in sles11 service node diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15281 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 06:25:16 +00:00
jjhua 0f17710b39 support multiple paths of osimage in sles11 compute node diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15280 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 06:22:36 +00:00
jjhua 0308e63ef4 support multiple paths of osimage in sles diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15279 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 06:20:30 +00:00
jjhua 6a8f62a2ac support multiple paths of osimage in rh diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15278 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 06:19:41 +00:00
jjhua 05bc99e483 support multiple paths of osimage in rh/sles diskfull installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15277 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 06:18:27 +00:00
ligc d9725518d8 makeroutes support IPv6
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15276 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 02:32:24 +00:00
bp-sawyers 6116ea5bd7 Improved the regex section of the xcatdb man page
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15275 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-28 00:30:11 +00:00
mellor 9aacc4d203 add PE RTE ptf1 buildkit.conf file
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15274 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-27 22:48:12 +00:00
jbjohnso b79f6bb7ee 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/trunk@15273 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-27 22:05:53 +00:00
jbjohnso 651e259871 Support site key "persistkvmguests"
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15272 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-27 19:14:36 +00:00
phamt 889ef5508e Fixed column labels for zfcp pools.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15271 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-27 16:33:16 +00:00
brianfinley dee47b2c55 - Added comments from Nate Rini on pciutils RPMs that properly detect PCI Gen3
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15270 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-27 15:23:41 +00:00
daniceexi 39230d1672 defect 3389: support the sles with tightvnc
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15268 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-27 08:10:17 +00:00
xq2005 a5a4feb798 osver() support debian
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15267 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-27 07:36:34 +00:00
jbjohnso 5a21746fe8 Have xCAT support ssl parameter settings in site table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15265 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-26 21:11:54 +00:00
lissav b22f425c3e add crontab -l
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15264 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-26 16:01:48 +00:00
linggao 56684fb6da handle when conserver is management node itslef.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15262 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-26 14:54:55 +00:00
sjing d49c882778 support imaged provisioning.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15261 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-26 04:53:56 +00:00
immarvin e166962d49 support -i for the command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15260 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-26 03:57:36 +00:00
phamt a19b640ba4 Added syslog comments.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15259 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-26 03:01:08 +00:00
sjing 9581e25412 support imaged provisioning.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15258 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-26 02:43:57 +00:00
sjing a035d397ce support imaged provisioning.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15257 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-26 02:43:25 +00:00
sjing 6208b57203 support imaged provisioning.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15256 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-26 02:39:21 +00:00
phamt 05687101ee Added syslog comments.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15255 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-26 02:18:13 +00:00
phamt 9d01a63782 Fixed nodeset to accept noderes.nfsserver. Added golden images to self-service portal.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15254 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-26 00:19:46 +00:00
jbjohnso 73eae21f3c 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/trunk@15253 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-25 22:05:33 +00:00
jbjohnso dabd5d5f09 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/trunk@15251 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-25 16:26:08 +00:00
phamt bcfacb1dbf Added partprobe on cloning.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15250 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-25 15:50:21 +00:00
immarvin bbd1498272 support -i in ppping GetOptions
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15249 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-25 09:31:37 +00:00
phamt 311a25a05a Enabled cloning of offline nodes.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15248 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-25 02:19:33 +00:00
phamt cece5458f9 Fixed cloning where fdasd is need for vanilla disks.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15247 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-24 04:33:12 +00:00
lissav 816d98fb73 fix of defect 3380
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15244 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-23 12:50:14 +00:00
lissav 2192c8e148 fix of defect 3380
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15243 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-23 12:46:23 +00:00
bp-sawyers 2e9d460772 xCAT-genesis-scripts rpm version was mistakenly hard-coded to 2.8
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15242 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-22 15:18:12 +00:00
zhaoertao 3c4b71e06a fix bug 3382:"rvitals cec lcds" no output
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15241 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-22 09:28:24 +00:00
ligc adfb223fd4 call /etc/sysconfig/network-scripts/ifup-ipv6 on RedHat
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15239 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-22 08:48:49 +00:00
immarvin 38b5874b32 add "-l" option support of genimage in dracut mode
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15238 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-22 08:35:36 +00:00
ligc 2142411c43 add configth ipv6 support work with nics table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15237 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-22 08:22:55 +00:00
zhaoertao b9034410a9 enhancement for 'rvitals <Flex node> all' to display 'lcds' infomaiton in case no 'nodetype' attribute defined in 'mp' table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15236 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-22 06:36:36 +00:00
jjhua a840161de9 fixed bug 3342, and made some performance enhancement
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15233 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-21 06:30:07 +00:00
jbjohnso 3d98c4fe6e Correct typo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15232 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-20 19:28:17 +00:00
jbjohnso 2b61bf2c91 Add objdef for storage.osvolume
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15230 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-20 19:13:26 +00:00
lissav 200373f48d ON the MN only start dhcpd if not running if servicenode.dhcpserver set
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15228 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-20 18:57:33 +00:00
lissav 6bbbfeff81 add sudo xdcp
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15227 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-20 15:47:10 +00:00
lissav ba1cadb6e9 add sudo xdcp
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15226 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-20 15:39:57 +00:00
lissav 68f86b703b add sudo xdcp
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15225 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-20 14:59:27 +00:00
lissav 413f6c0010 more cleanup
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15224 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-20 14:05:40 +00:00
lissav a3caf9e5aa Remove useless code in setup_CONS so it will work on the Management NOde
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15223 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-20 12:16:32 +00:00
lissav b5d6951f62 isServiceReq handles MN special case and now returns a hash instead of an array to AAsn.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15222 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-20 11:59:36 +00:00
lissav 1c1e78bf89 AAsn.pm will not setup MN from the servicenode table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15221 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-20 11:56:23 +00:00
xq2005 116e770bfb create repo on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15213 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-20 06:21:19 +00:00
xq2005 bf2aa12fd3 create the signature to the Packages file for authentication checking
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15212 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-20 06:07:54 +00:00
mellor afe5dd5024 add sample doc files to HPC kits
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15210 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-19 20:22:09 +00:00
nott dbdd43de8d fix description of -r
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15209 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-19 15:06:55 +00:00
lissav cfcca53716 setup the MN in the servicenode table with proper defaults
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15208 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-19 13:29:55 +00:00
bp-sawyers 85828d24aa update for latest mcp build
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15207 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-18 22:46:22 +00:00
mellor bd812ab851 defect 3371 - fix osimage check for chkkitcomp
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15205 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-18 21:18:26 +00:00
mellor daf319a402 defect 3376 - need to load XCATSITEVAL global in upd listener process
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15203 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-18 20:30:37 +00:00
lissav 9154b2edc9 improve mgmt into servicenode table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15201 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-18 20:22:36 +00:00
lissav e69cdc2d5f fix bypass mode running makedns plugin when site.dnshandlers is set
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15200 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-18 16:16:19 +00:00
lissav d5c6ad426c fix spelling
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15199 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-18 12:39:25 +00:00
leiaibj 4650f29bb7 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/trunk@15198 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-18 02:04:52 +00:00
brianfinley 6329990417 Addition from the BEF_Scripts for xCAT
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15196 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-17 16:25:57 +00:00
xq2005 1acb9398d6 only create the link to sha.pm after installation on ubuntu/debian
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15194 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-16 07:53:19 +00:00
phamt fa89345a5c Fix MAC address prefix.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15193 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-15 23:12:19 +00:00
phamt bb1f68f440 Fix MAC address prefix.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15191 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-15 22:52:59 +00:00
phamt b4ad09c0ce Fix dependency issue with z/VM build.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15188 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-15 19:52:50 +00:00
phamt 3535bd753d Updated rmigrate man page for z/VM.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15187 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-15 18:15:01 +00:00
phamt b6e467acff Fixed inventory tab.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15185 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-15 17:21:45 +00:00
phamt a838da18d7 Synched up with code in 2.8
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15183 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-14 20:42:32 +00:00
jbjohnso 40dc51dd1b No longer allow weaker connections, rdesktop may lack but xfreerdp is viable and users should use it
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15181 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-14 19:48:04 +00:00
jbjohnso 8bc4dd7476 Have xCAT WS support credentials via header rather than uri
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15180 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-14 19:19:19 +00:00
brianfinley 04268e1f5d - Added slash in front of "var" in the NICSTOBRINGUP dhclient section.
Bug reported by Jeff Lang <jrlang@uwyo.edu>.  Thanks, Jeff!



git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15178 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-14 17:09:29 +00:00
lissav f942046a68 xcatconfig -m add mn to the servicenode table defect 3308
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15174 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-14 15:07:21 +00:00
lissav 24003e0910 fix messages
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15173 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-14 15:04:14 +00:00
phamt 1e2c70f859 Synched up with code in 2.8
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15172 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-14 05:28:55 +00:00
willn256 1f69def767 Commit new kit plugin samples
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15168 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-13 19:44:39 +00:00
mellor a60ce4d483 HPC kits - change license string to ILAN
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15164 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-13 16:34:25 +00:00
lissav 4b7181dfee add comments about not case
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15162 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-13 12:03:45 +00:00
phamt f9f370cd5f Synched up with code in 2.8 branch.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15161 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 22:59:26 +00:00
lissav 8b1334a3d6 improve helps
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15158 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 19:39:20 +00:00
lissav 23f7cd6d36 fix man page with new path
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15157 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 19:21:27 +00:00
lissav 3f986ecf29 remove old scripts
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15156 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 18:57:08 +00:00
lissav 2a55eb6ee5 remove old roadrunner script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15155 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 18:52:59 +00:00
lissav 6f0b9a6eec remove old roadrunner script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15154 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 18:52:06 +00:00
lissav 0835970d7f add /opt/xcat/share/xcat/samples dir
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15153 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 18:50:53 +00:00
lissav d2e361331a moved to samples directory
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15152 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 18:47:41 +00:00
lissav 52db6d0e9a moved to samples directory
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15151 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 18:47:04 +00:00
lissav 204d1a8df5 move db2 SQL script to scripts
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15150 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 18:45:49 +00:00
lissav cad9eca293 remove csm migration tools, if need get from 2.6
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15149 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 18:42:50 +00:00
lissav 612b2d8098 remove db2 scripts, now in scripts directory not tools
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15148 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 18:40:47 +00:00
lissav efed7f2b66 move db2 routines from tools directory to scripts directory
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15147 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 18:39:21 +00:00
lissav 5f6ccbff86 change db2sqlsetup to look for files in /opt/xcat/share/xcat/scripts
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15146 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 18:33:29 +00:00
lissav 12bf36dfc0 Fix xcatdsklspost to xcataixpost interface, allow parameters on updatenode -P for AIX defect 3362
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15145 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-12 15:53:36 +00:00
jbjohnso ab2cfba24a Fix missing mandatory columns in storage table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15141 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-11 22:30:39 +00:00
jbjohnso c4dc675a87 storage table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15140 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-11 22:30:32 +00:00
mellor fde574046e pperte kits - use wildcards for partial kits
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15139 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-11 22:19:23 +00:00
lissav 8fbae2dfa7 fix bug 3365
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15138 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-11 19:08:25 +00:00
phamt 48872e61fd Synched up with 2.8 branch code.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15136 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-11 16:24:06 +00:00
phamt a215989fb3 Updated trunk with code from 2.8
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15133 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-11 00:27:58 +00:00
xq2005 11c5f32f0e do not create the source.list file for sourceforge reason
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15131 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-10 07:52:48 +00:00
xq2005 15616a151e create repo on ubuntu and upload to the sourceforge
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15129 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-09 06:12:35 +00:00
phamt fa783ea9b7 Synch up code that was fixed in 2.8 to trunk.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15128 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-09 05:24:21 +00:00
jbjohnso 8066ec5c07 Fix mistake in the win2k8r2 template
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15120 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 20:52:44 +00:00
jbjohnso e665d1dad8 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/trunk@15118 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 20:11:15 +00:00
jbjohnso 318d33b9b1 Fix Template to add a missing \r to windows templates
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15117 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 19:10:59 +00:00
xq2005 eda83f4580 build xcat-genesis-base-amd64 on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15115 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 15:15:59 +00:00
xq2005 23625b7a48 change xcat package denpency on xcat-genesis-scripts on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15114 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 07:34:18 +00:00
xq2005 af9c8731ee build xcat-genesis-scripts-amd64 on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15113 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 07:31:33 +00:00
xq2005 ae99ef1a30 build xcat-genesis-base package on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15112 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 06:01:28 +00:00
xq2005 5b29162989 build xcat-genesis-script on debian/ubuntu
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15110 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 05:48:50 +00:00
brianfinley a6eea2c977 - Added slash in front of "var" in the NICSTOBRINGUP dhclient section.
Bug reported by Jeff Lang <jrlang@uwyo.edu>.  Thanks, Jeff!



git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15109 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 05:43:18 +00:00
leiaibj 9c69cb198a Fix a bug for hostname valiation pattern
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15107 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-08 01:56:46 +00:00
jbjohnso 8efa7cdd67 Add windows to fsm build variant
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15106 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 22:26:23 +00:00
jbjohnso f6c999796f Fix various 'strict' issues in windows.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15104 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 21:32:19 +00:00
jbjohnso 3f6d09e554 Fix mistake in variable name in windows.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15103 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 21:32:12 +00:00
jbjohnso 615363b332 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/trunk@15100 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 20:55:08 +00:00
jbjohnso c2238857f4 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/trunk@15099 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 20:54:55 +00:00
jbjohnso 602854999a 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/trunk@15097 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 19:25:01 +00:00
lissav 72f1715eb0 add fanout
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15096 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 13:19:45 +00:00
lissav 2af0eff7ed add -E hierarchy and --fanout support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15095 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 12:45:04 +00:00
lissav 4a241ef34e add -E hierarchy and --fanout support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15094 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 12:44:15 +00:00
lissav 8c58adf552 add -E hierarchy and doc --fanout
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15093 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 12:41:46 +00:00
xq2005 6baabbe7bc for kdump bug on non-p7 ih power server, bug number 2898
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15083 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-07 03:33:17 +00:00
bp-sawyers 4c5f1d54d6 trunk is now 2.9
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15082 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2013-02-06 21:15:35 +00:00
918 changed files with 73468 additions and 48053 deletions
+1 -1
View File
@@ -1 +1 @@
2.8
2.9
-241
View File
@@ -1,241 +0,0 @@
#!/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: i386 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
-88
View File
@@ -1,88 +0,0 @@
#!/bin/bash
###########
#
# This script call make<package>deb and create the deb packages
# for xCAT
#
# Author: Leonardo Tonetto <tonetto@linux.vnet.ibm.com>
# Revisor: Adalberto Medeiros <adalbas@linux.vnet.ibm.com>
# Revisor2: Arif Ali <aali@ocf.co.uk>
#
# Input:
#
# $1 is the build type/location
# $2 is the string added to the debian/changelog of each package
#
############
##############
# Get input
##############
PKG_LOCATION=$1 # local | snap | alpha
if [ -z $PKG_LOCATION ]; then
PKG_LOCATION="local"
fi
BUILD_STRING=$2
if [ -z $BUILD_STRING ]; then
BUILD_STRING="Personal Build"
fi
XCAT_VERSION=`cat Version`
TRUNK_REVISION=`svnversion | cut -d ":" -f1`
CUR_DATE=`date +%Y%m%d`
VERSION="${XCAT_VERSION}-${PKG_LOCATION}${CUR_DATE}"
function makedeb {
SRC_ROOT=$1
PKG_LOCATION=$2
BUILD_STRING=$3
VERSION=$4
#
# Make DEBs
#
# build perl-xCAT - deps are libsoap-lite-perl, libdigest-sha1-perl, libdbi-perl
#
find $SRC_ROOT -maxdepth 2 -name debian -type d | while read DEBIAN_DIR
do
DIR=`echo ${DEBIAN_DIR} | sed -e 's/[/]debian$//'`
cd ${DIR}
dch -v $VERSION -b -c debian/changelog "$BUILD_STRING"
dpkg-buildpackage
cd -
RC=$?
if [ ${RC} -gt 0 ]
then
echo "Warning: ${DEBIAN_DIR} failed exit code ${RC}"
fi
done
#
# Clean up
#
# Eliminate unnecessary directories and debian/files made by dpkg-buildpackage
find $SRC_ROOT -maxdepth 3 -type d -name "xcat-*" | grep debian | xargs rm -rf
find $SRC_ROOT -maxdepth 3 -type f -name "files" | grep debian | xargs rm -f
}
# 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"
for file in `echo $packages`
do
makedeb $file $PKG_LOCATION "$BUILD_STRING" $VERSION
done
if [ -d debs ]; then
rm -rf debs
fi
mkdir debs
mv xcat* debs/
mv perl-xcat* debs/
echo $VERSION > latest_version
exit 0
+318 -160
View File
@@ -1,264 +1,422 @@
#!/bin/sh
#!/bin/bash
# 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
#
# Getting Started:
# - Check out the xcat-core svn repository (either the trunk or a branch) into
# a dir called <rel>/src/xcat-core, where <rel> is the same as the release dir it will be
# uploaded to in sourceforge (e.g. devel, or 2.3).
# - You probably also want to put root's pub key from the build machine onto sourceforge for
# the upload user listed below, so you don't have to keep entering pw's. You can do this
# at https://sourceforge.net/account/ssh
# - make sure reprepro is installed on the build machine
# - Run this script from the local svn repository you just created. It will create the other directories that are needed.
# Usage: attr=value attr=value ... ./build-ubunturepo { -c | -d }
# 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
#
# For the dependency packages 1. please run the build-debs-all in xcat-dep svn first( there is usage detail in that script)
# 2. run ./build-ubunturepo -d
#
############################
printusage()
{
printf "Usage: %s {-c | -d} \n" $(basename $0) >&2
echo " -c : Build the xcat core packages and create the repo"
echo " -d : Create the xcat dep repo. Building the xcat dep packages can refer \"build-debs-all\" from svn"
}
# For the purpose of getting the distribution name
. /etc/lsb-release
# Supported distributions
dists="maverick natty oneiric precise "
# Process cmd line variable assignments, assigning each attr=val pair to a variable of same name
for i in $*; do
echo $i | grep '='
if [ $? != 0 ];then
continue
fi
# 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
# Supported distributions
dists="maverick natty oneiric precise saucy"
a_flag= # automatic flag - only update if repo was updated
c_flag= # xcat-core (trunk-delvel) path
d_flag= # xcat-dep (trunk) path
u_flag= # gsa user-id
p_flag= # gsa passwd
local_flag= # build the repository localy
r_flag= #genesis base rpm package path
while getopts 'c:d:u:p:l:a' OPTION
while getopts 'cdr:' OPTION
do
case $OPTION in
c) c_flag=1
xcat_core_path="$OPTARG"
;;
d) d_flag=1
xcat_dep_path="$OPTARG"
;;
u) u_flag=1
gsa_id="$OPTARG"
;;
p) p_flag=1
gsa_passwd="$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> | [-u <gsa_id> -p <gsa_passwd>] } [-a]\n" $(basename $0) >&2
echo "-a Automatic: update only if there's any update on repo"
r) r_flag=1
genesis_rpm_path="$OPTARG"
;;
?) printusage
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
if [ -z "$c_flag" -a -z "$d_flag" ];then
printusage
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
if [ "$c_flag" -a "$d_flag" ];then
printusage
exit 2
fi
if [ "$local_flag" ]
then
repo_xcat_core_path=$local_repo_path"/xcat-core"
repo_xcat_dep_path=$local_repo_path"/xcat-dep"
else
if [ -z "$u_flag" ]
then
if [ "$p_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
echo -n "GSA id: "
read gsa_id
echo -n "GSA password: "
stty -echo; read gsa_passwd; stty echo;
echo ""; echo "";
fi
uploader="bp-sawyers"
# Find where this script is located to set some build variables
old_pwd=`pwd`
cd `dirname $0`
curdir=`pwd`
repo_xcat_core_path="`pwd`/gsa-repo_temp/xcat-core"
repo_xcat_dep_path="`pwd`/gsa-repo_temp/xcat-dep"
#define the dep source code path, core build target path and dep build target path
local_core_repo_path="$curdir/../../xcat-core"
xcat_dep_path="$curdir/../../../xcat-dep/src/xcat-dep"
local_dep_repo_path="$curdir/../../../xcat-dep/xcat-dep"
#define the url used for creating the source list file
#define the upload dir used for uploading packages
sf_repo_url="https://sourceforge.net/projects/xcat/files/ubuntu"
sf_dir="/home/frs/project/x/xc/xcat"
#use flock to only one person build at the same time
# 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
if [ "$a_flag" ]
export HOME=/root
#sync the gpg key to the build machine local
gsa_url=http://pokgsa.ibm.com/projects/x/xcat/build/linux
mkdir -p $HOME/.gnupg
for key_name in pubring.gpg secring.gpg trustdb.gpg; do
if [ ! -f $HOME/.gnupg/$key_name ] || [ `wc -c $HOME/.gnupg/$key_name|cut -f 1 -d' '` == 0 ]; then
rm -f $HOME/.gnupg/$key_name
wget -P $HOME/.gnupg $gsa_url/keys/$key_name
chmod 600 $HOME/.gnupg/$key_name
fi
done
if [ "$c_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
# strip the /src/xcat-core from the end of the dir to get the next dir up and use as the release
if [ -z "$REL" ]; then
t=${curdir%/src/xcat-core}
REL=`basename $t`
fi
ver=`cat Version`
if [ "$PROMOTE" != 1 ]; then
code_change=0
update_log=''
#get the version
if [ "$REL" = "xcat-core" ];then
git_flag=1
REL=`git rev-parse --abbrev-ref HEAD`
if [ "$REL" = "master" ]; then
REL="devel"
fi
if [ -z "$GITUP" ];then
update_log=../coregitup
echo "git pull > $update_log"
git pull > $update_log
else
update_log=$GITUP
fi
if ! grep -q 'Already up-to-date' $update_log; then
code_change=1
fi
else
git_flag=0
if [ -z "$SVNUP" ]; then
update_log=../coresvnup
echo "svn up > $update_log"
svn up > $update_log
else
update_log=$SVNUP
fi
if ! grep -q 'At revision' $update_log;then
code_change=1
fi
fi
ver=`cat Version`
short_ver=`cat Version|cut -d. -f 1,2`
short_short_ver=`cat Version|cut -d. -f 1`
package_dir_name=debs$REL
#TODO: define the core path and tarball name
tarball_name="core-debs-snap.tar.bz2"
if [ $code_change == 0 -a "$UP" != 1 -a "$BUILDALL" != 1 ]; then
echo "Nothing new detected"
exit 0
fi
echo "###############################"
echo "# Building xcat-core packages #"
echo "###############################"
#the package type: local | snap | alpha
#the build introduce stirng
pkg_type="snap"
build_string="Snap_Build"
cur_date=`date +%Y%m%d`
pkg_version="${short_ver}-${pkg_type}${cur_date}"
if [ ! -d ../../$package_dir_name ];then
mkdir -p "../../$package_dir_name"
fi
packages="xCAT-client xCAT-genesis-scripts perl-xCAT xCAT-server xCAT-UI xCAT xCATsn xCAT-test xCAT-OpenStack xCAT-OpenStack-baremetal"
for file in `echo $packages`
do
file_low=`echo $file | tr '[A-Z]' '[a-z]'`
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
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
else
update_core=
if [ "$REL" = "xcat-core" ];then
git_flag=1
REL=`git rev-parse --abbrev-ref HEAD`
if [ "$REL" = "master" ]; then
REL="devel"
fi
fi
package_dir_name=debs$REL
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"
if [ "$PROMOTE" = 1 ]; then
upload_dir="xcat-core"
tar_name="xcat-core-$ver.tar.bz2"
else
upload_dir="core-snap"
tar_name="core-debs-snap.tar.bz2"
fi
echo "#################################"
echo "# Creating xcat-core repository #"
echo "#################################"
if [ -d $repo_xcat_core_path ]; then
rm -rf $repo_xcat_core_path
#clean the repo directory
if [ -e $local_core_repo_path ]; then
rm -rf $local_core_repo_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
mkdir -p $local_core_repo_path
cd $local_core_repo_path
mkdir conf
for dist in $dists; do
cat << __EOF__ >> $repo_xcat_core_path/conf/distributions
cat << __EOF__ >> conf/distributions
Origin: xCAT internal repository
Label: xcat-core bazaar repository
Codename: $dist
Architectures: amd64 i386
Architectures: amd64
Components: main
Description: Repository automatically genereted conf
SignWith: yes
__EOF__
done
cat << __EOF__ > $repo_xcat_core_path/conf/options
cat << __EOF__ > conf/options
verbose
ask-passphrase
basedir .
__EOF__
#import the deb packages into the repo
for dist in $dists; do
for file in `ls $repo_xcat_core_path/*.deb`; do
reprepro -b $repo_xcat_core_path includedeb $dist $file;
for file in `ls ../$package_dir_name/*.deb`; do
reprepro -b ./ 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
#create the mklocalrepo script
cat << '__EOF__' > mklocalrepo.sh
. /etc/lsb-release
cd `dirname $0`
echo deb file://"`pwd`" $DISTRIB_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
chmod 775 mklocalrepo.sh
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" ]
#create the xcat-core.list file
#echo "deb ${sf_repo_url}/${REL}/${upload_dir}/ precise main" > xcat-core.list
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=
cd ../
if ! grep xcat /etc/group ; then
groupadd xcat
fi
chgrp -R root xcat-core
chmod -R g+w xcat-core
#build the tar ball
tar -hjcf $tar_name xcat-core
chgrp root $tar_name
chmod g+w $tar_name
if [ ! -e core-snap ]; then
ln -s xcat-core core-snap
fi
rm -f $SVCUP
else
update_dep=1
# Decide whether to upload or not
if [ -n "$UP" ] && [ "$UP" == 0 ]; then
echo "No need to upload"
cd $old_pwd
exit 0
fi
#upload the deb packages
if [ "$REL" = "devel" -o "$PREGA" != 1 ]; then
i=0
echo "Uploading RPMs from $upload_dir to ${sf_dir}/ubuntu/${REL}/ ..."
while [ $((i+=1)) -le 5 ] && ! rsync -urLv --delete $upload_dir ${uploader},xcat@web.sourceforge.net:${sf_dir}/ubuntu/${REL}/
do : ; done
fi
#upload the tar ball
#for the GA build, upload to https://sourceforge.net/projects/xcat/files/xcat/<version>.x_Ubuntu/
#for other scenario, upload to https://sourceforge.net/projects/xcat/files/ubuntu/<version>
if [ "$PROMOTE" = 1 -a "$REL" != "devel" -a "$PREGA" != 1 ]; then
i=0
echo "Uploading $tar_name to ${sf_dir}/xcat/${REL}.x_Ubuntu/ ..."
while [ $((i+=1)) -le 5 ] && ! rsync -v $tar_name ${uploader},xcat@web.sourceforge.net:${sf_dir}/xcat/${REL}.x_Ubuntu/
do : ; done
else
i=0
echo "Uploading $tar_name to ${sf_dir}/ubuntu/${REL}/ ..."
while [ $((i+=1)) -le 5 ] && ! rsync -v $tar_name ${uploader},xcat@web.sourceforge.net:${sf_dir}/ubuntu/${REL}/
do : ; done
fi
cd $old_pwd
fi
if [ "$d_flag" -a "$update_dep" ]
if [ "$d_flag" ]
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
#clean all old files
if [ -e $local_dep_repo_path ];then
rm -rf $local_dep_repo_path
fi
mkdir -p $local_dep_repo_path
cd $local_dep_repo_path
mkdir conf
#create the conf/distributions file
for dist in $dists; do
cat << __EOF__ >> $repo_xcat_dep_path/conf/distributions
cat << __EOF__ >> conf/distributions
Origin: xCAT internal repository
Label: xcat-dep bazaar repository
Codename: $dist
Architectures: i386 amd64
Architectures: amd64
Components: main
Description: Repository automatically genereted conf
SignWith: yes
__EOF__
done
done
cat << __EOF__ > $repo_xcat_dep_path/conf/options
cat << __EOF__ > conf/options
verbose
ask-passphrase
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;
for file in `ls ../debs/*.deb`; do
reprepro -b ./ includedeb $dist $file;
done
done
cat << '__EOF__' > $repo_xcat_dep_path/mklocalrepo.sh
cat << '__EOF__' > mklocalrepo.sh
. /etc/lsb-release
cd `dirname $0`
echo deb file://"`pwd`" $DISTRIB_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
chmod 775 mklocalrepo.sh
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"]
#echo ""deb ${sf_repo_url}/xcat-dep/ precise main"" > xcat-dep.list
if [ -z "$local_flag" ] # delete the temp repo after upload is done
then
rm -rf ./gsa-repo_temp
cd ..
if ! grep xcat /etc/group ; then
groupadd xcat
fi
chgrp -R root xcat-dep
chmod -R g+w xcat-dep
#create the tar ball
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
if [ -n "$UP" ] && [ "$UP" == 0 ];then
echo "No need to upload the dep packages"
cd $old_pwd
exit 0
fi
#upload the dep packages
i=0
echo "Uploading debs from xcat-dep to ${sf_dir}/ubuntu/xcat-dep/ ..."
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
+107 -60
View File
@@ -19,6 +19,7 @@
# 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/
@@ -31,7 +32,7 @@
# 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
# FRSYUM=0 - put the yum repo and snap builds in the old project web area instead of the FRS area.
# 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
@@ -40,7 +41,7 @@ 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-IBMhpc xCAT-rmc xCAT-UI xCAT-test xCAT-buildkit xCAT xCATsn xCAT-genesis-scripts"
ALLBUILD="perl-xCAT xCAT-client xCAT-server xCAT-IBMhpc xCAT-rmc xCAT-UI xCAT-test xCAT-buildkit xCAT xCATsn xCAT-genesis-scripts xCAT-OpenStack xCAT-SoftLayer xCAT-OpenStack-baremetal"
ZVMBUILD="perl-xCAT xCAT-server xCAT-UI"
ZVMLINK="xCAT-client xCAT xCATsn"
PCMBUILD="xCAT"
@@ -84,15 +85,24 @@ if [ "$OSNAME" != "AIX" ]; then
export HOME=/root # This is so rpm and gpg will know home, even in sudo
fi
# this is needed only when we are transitioning the yum over to frs
if [ "$FRSYUM" != 0 ]; then
YUMDIR=$FRS
YUMREPOURL="https://sourceforge.net/projects/xcat/files/yum"
else
YUMDIR=htdocs
YUMREPOURL="http://xcat.sourceforge.net/yum"
# for the git case, query the current branch and set REL (changing master to devel if necessary)
function setbranch {
#git checkout $BRANCH
#REL=`git rev-parse --abbrev-ref HEAD`
REL=`git name-rev --name-only HEAD`
if [ "$REL" = "master" ]; then
REL="devel"
fi
}
if [ "$REL" = "xcat-core" ]; then # using git
GIT=1
setbranch # this changes the REL variable
fi
YUMDIR=$FRS
YUMREPOURL="https://sourceforge.net/projects/xcat/files/yum"
# Set variables based on which type of build we are doing
if [ -n "$EMBED" ]; then
EMBEDDIR="/$EMBED"
@@ -116,38 +126,38 @@ else
fi
XCATCORE="xcat-core" # core-snap is a sym link to xcat-core
echo "svn --quiet up Version"
svn --quiet up Version
VER=`cat Version`
SHORTVER=`cat Version|cut -d. -f 1,2`
SHORTSHORTVER=`cat Version|cut -d. -f 1`
if [ "$PROMOTE" = 1 ]; then
CORE="xcat-core"
if [ "$OSNAME" = "AIX" ]; then
TARNAME=core-aix-$VER.tar.gz
else
TARNAME=xcat-core-$VER.tar.bz2
fi
if [ "$GIT" = "1" ]; then # using git - need to include REL in the path where we put the built rpms
DESTDIR=../../$REL$EMBEDDIR/$XCATCORE
else
CORE="core-snap"
if [ "$OSNAME" = "AIX" ]; then
TARNAME=core-aix-snap.tar.gz
else
TARNAME=core-rpms-snap.tar.bz2
fi
DESTDIR=../..$EMBEDDIR/$XCATCORE
fi
DESTDIR=../..$EMBEDDIR/$XCATCORE
SRCD=core-snap-srpms
# currently aix builds ppc rpms, but someday it should build noarch
if [ "$OSNAME" = "AIX" ]; then
NOARCH=ppc
SYSGRP=system
else
NOARCH=noarch
SYSGRP=root
fi
function setversionvars {
VER=`cat Version`
SHORTVER=`cat Version|cut -d. -f 1,2`
SHORTSHORTVER=`cat Version|cut -d. -f 1`
}
if [ "$PROMOTE" != 1 ]; then # very long if statement to not do builds if we are promoting
# we are doing a snap build
CORE="core-snap"
if [ "$OSNAME" = "AIX" ]; then
TARNAME=core-aix-snap.tar.gz
else
TARNAME=core-rpms-snap.tar.bz2
fi
mkdir -p $DESTDIR
SRCDIR=$DESTDIR/../$SRCD
mkdir -p $SRCDIR
@@ -168,17 +178,38 @@ else
#echo "source=$source"
fi
# If they have not given us a premade update file, do an svn update and capture the results
if [ -z "$SVNUP" ]; then
SVNUP=../coresvnup
echo "svn up > $SVNUP"
svn up > $SVNUP
fi
# If they have not given us a premade update file, do an svn update or git pull and capture the results
SOMETHINGCHANGED=0
if ! $GREP 'At revision' $SVNUP; then
SOMETHINGCHANGED=1
if [ "$GIT" = "1" ]; then # using git
if [ -z "$GITUP" ]; then
GITUP=../coregitup
echo "git pull > $GITUP"
git pull > $GITUP
if [[ $? != 0 ]]; then
# do not continue so we do not build with old files
echo "The 'git pull' command failed. Exiting the build."
exit 3
fi
fi
if ! $GREP 'Already up-to-date' $GITUP; then
SOMETHINGCHANGED=1
fi
else # using svn
GIT=0
if [ -z "$SVNUP" ]; then
SVNUP=../coresvnup
echo "svn up > $SVNUP"
svn up > $SVNUP
fi
if ! $GREP 'At revision' $SVNUP; then
SOMETHINGCHANGED=1
fi
# copy the SVNUP variable to GITUP so the rest of the script doesnt have to worry whether we did svn or git
GITUP=$SVNUP
fi
setversionvars
# Function for making the noarch rpms
function maker {
rpmname="$1"
@@ -194,7 +225,7 @@ function maker {
}
# If anything has changed, we should always rebuild perl-xCAT
if [ $SOMETHINGCHANGED == 1 -o "$BUILDALL" == 1 ]; then # Use to be: $GREP perl-xCAT $SVNUP; then
if [ $SOMETHINGCHANGED == 1 -o "$BUILDALL" == 1 ]; then # Use to be: $GREP perl-xCAT $GITUP; then
if [[ " $EMBEDBUILD " = *\ perl-xCAT\ * ]]; then
UPLOAD=1
maker perl-xCAT
@@ -206,11 +237,11 @@ 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; do
for rpmname in xCAT-client xCAT-server xCAT-IBMhpc xCAT-rmc xCAT-UI xCAT-test xCAT-buildkit xCAT-SoftLayer; 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 $GREP $rpmname $SVNUP || [ "$BUILDALL" == 1 ]; then
if $GREP $rpmname $GITUP || [ "$BUILDALL" == 1 ]; then
UPLOAD=1
maker $rpmname
fi
@@ -225,7 +256,7 @@ done
# The mknb cmd combines them at install time.
if [ "$OSNAME" != "AIX" ]; then
if [[ " $EMBEDBUILD " = *\ xCAT-genesis-scripts\ * ]]; then
if $GREP xCAT-genesis-scripts $SVNUP || [ "$BUILDALL" == 1 ]; then
if $GREP xCAT-genesis-scripts $GITUP || [ "$BUILDALL" == 1 ]; then
UPLOAD=1
ORIGFAILEDRPMS="$FAILEDRPMS"
./makerpm xCAT-genesis-scripts x86_64 "$EMBED"
@@ -241,17 +272,19 @@ if [ "$OSNAME" != "AIX" ]; then
fi
# Build the xCAT and xCATsn rpms for all platforms
for rpmname in xCAT xCATsn; do
for rpmname in xCAT xCATsn xCAT-OpenStack xCAT-OpenStack-baremetal; 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/" $SVNUP; then
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
./makerpm $rpmname "$EMBED"
if [ $? -ne 0 ]; then FAILEDRPMS="$FAILEDRPMS $rpmname"; fi
else
for arch in x86_64 i386 ppc64 s390x; do
for arch in x86_64 ppc64 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
./makerpm $rpmname $arch "$EMBED"
if [ $? -ne 0 ]; then FAILEDRPMS="$FAILEDRPMS $rpmname-$arch"; fi
done
@@ -322,10 +355,10 @@ if [ "$OSNAME" != "AIX" ]; then
echo '%_gpg_name Jarrod Johnson' >> $MACROS
fi
echo "Signing RPMs..."
build-utils/rpmsign.exp `find $DESTDIR -type f -name '*.rpm'` | grep -v -E '(was already signed|rpm --quiet --resign|WARNING: standard input reopened)'
build-utils/rpmsign.exp $SRCDIR/*rpm | grep -v -E '(was already signed|rpm --quiet --resign|WARNING: standard input reopened)'
createrepo $DESTDIR
createrepo $SRCDIR
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)'
build-utils/rpmsign.exp $SRCDIR/*rpm | grep -v -E '(already contains identical signature|was already signed|rpm --quiet --resign|WARNING: standard input reopened)'
createrepo --checksum sha $DESTDIR # specifying checksum so the repo will work on rhel5
createrepo --checksum sha $SRCDIR
rm -f $SRCDIR/repodata/repomd.xml.asc
rm -f $DESTDIR/repodata/repomd.xml.asc
gpg -a --detach-sign $DESTDIR/repodata/repomd.xml
@@ -338,23 +371,26 @@ if [ "$OSNAME" != "AIX" ]; then
fi
fi
# make everything have a group of xcat, so anyone can manage them once they get on SF
# set group and permissions correctly on the built rpms
if [ "$OSNAME" = "AIX" ]; then
if ! lsgroup xcat >/dev/null 2>&1; then
mkgroup xcat
fi
chmod +x $DESTDIR/instxcat
else # linux
if ! $GREP xcat /etc/group; then
groupadd xcat
fi
fi
chgrp -R xcat $DESTDIR
chgrp -R $SYSGRP $DESTDIR
chmod -R g+w $DESTDIR
chgrp -R xcat $SRCDIR
chgrp -R $SYSGRP $SRCDIR
chmod -R g+w $SRCDIR
fi # end of very long if-not-promote
else # end of very long if-not-promote
# we are only promoting (not building)
setversionvars
setbranch
CORE="xcat-core"
if [ "$OSNAME" = "AIX" ]; then
TARNAME=core-aix-$VER.tar.gz
else
TARNAME=xcat-core-$VER.tar.bz2
fi
fi
cd $DESTDIR
@@ -394,14 +430,17 @@ else
verboseflag=""
fi
echo "Creating $TARNAME ..."
if [[ -e $TARNAME ]]; then
mkdir -p previous
mv -f $TARNAME previous
fi
if [ "$OSNAME" = "AIX" ]; then
tar $verboseflag -hcf ${TARNAME%.gz} $XCATCORE
rm -f $TARNAME
gzip ${TARNAME%.gz}
else
tar $verboseflag -hjcf $TARNAME $XCATCORE
fi
chgrp xcat $TARNAME
chgrp $SYSGRP $TARNAME
chmod g+w $TARNAME
# Decide whether to upload or not
@@ -456,8 +495,16 @@ 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'
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
# extract and upload the tools readme
rpm2cpio ../$XCATCORE/xCAT-server-*.$NOARCH.rpm | cpio -id ./opt/xcat/share/xcat/tools/README.html
i=0
while [ $((i+=1)) -le 5 ] && ! rsync $verboseflag opt/xcat/share/xcat/tools/README.html $UPLOADUSER,xcat@web.sourceforge.net:htdocs/tools/
do : ; done
cd ..
fi
+41 -29
View File
@@ -97,15 +97,15 @@ if [ "$OSNAME" != "AIX" ]; then
# Sign the rpms that are not already signed. The "standard input reopened" warnings are normal.
echo "Signing RPMs..."
$XCATCOREDIR/build-utils/rpmsign.exp `find . -type f -name '*.rpm'` | grep -v -E '(was already signed|rpm --quiet --resign|WARNING: standard input reopened)'
$XCATCOREDIR/build-utils/rpmsign.exp `find . -type f -name '*.rpm'` | grep -v -E '(already contains identical signature|was already signed|rpm --quiet --resign|WARNING: standard input reopened)'
# Create the repodata dirs
echo "Creating repodata directories..."
for i in `find -mindepth 2 -maxdepth 2 -type d `; do
if [ -n "$VERBOSEMODE" ]; then
createrepo $i
createrepo --checksum sha $i # specifying checksum so the repo will work on rhel5
else
createrepo $i >/dev/null
createrepo --checksum sha $i >/dev/null
fi
rm -f $i/repodata/repomd.xml.asc
gpg -a --detach-sign $i/repodata/repomd.xml
@@ -138,8 +138,21 @@ 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
@@ -149,33 +162,37 @@ cd $OSVER
# The only interdependency between the dep rpms so far is that net-snmp requires bash, and
# pyodbc requires unixODBC. (The bash dependency is taken care of automatically because it
# comes earlier in the alphabet.)
# first run /usr/sbin/updtvpkg to make sure any installp software is
# registered with RPM.
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*
for i in `ls *.rpm|grep -v -E '^tcl-|^tk-|^expect-|^unixODBC-|^xCAT-UI-deps|^perl-DBD-DB2Lite'`; do
# 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
if [ "$i" == "perl-Net-DNS-0.66-1.aix5.3.ppc.rpm" ]; then
opts="--nodeps"
else
opts=""
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
# 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
echo rpm -Uvh $opts $i
rpm -Uvh $opts $i
done
# 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
# 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*
EOF
# end of instoss file content ---------------------------------------------
@@ -183,18 +200,13 @@ EOF
chmod +x instoss
fi
# Get the permissions correct. Have to have all dirs/files with a group of xcat
# and have them writeable by group, so any member of the xcat can build.
# Get the permissions and group correct
if [ "$OSNAME" == "AIX" ]; then
if ! lsgroup xcat >/dev/null 2>&1; then
mkgroup xcat
fi
SYSGRP=system
else
if ! $GREP xcat /etc/group; then
groupadd xcat
fi
SYSGRP=root
fi
chgrp -R xcat *
chgrp -R -h $SYSGRP *
chmod -R g+w *
# Build the tarball
-3
View File
@@ -10,9 +10,6 @@
<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>
+7 -3
View File
@@ -24,7 +24,7 @@ function makenoarch {
else # linux
echo "Building $RPMROOT/RPMS/noarch/$RPMNAME-$VER-snap*.noarch.rpm $EMBEDTXT..."
tar --exclude .svn -czf $RPMROOT/SOURCES/$RPMNAME-$VER.tar.gz $RPMNAME
rm -f $RPMROOT/SRPMS/xCAT-server-$VER*rpm $RPMROOT/RPMS/noarch/$RPMNAME-$VER*rpm
rm -f $RPMROOT/SRPMS/$RPMNAME-$VER*rpm $RPMROOT/RPMS/noarch/$RPMNAME-$VER*rpm
rpmbuild $QUIET -ta $RPMROOT/SOURCES/$RPMNAME-$VER.tar.gz
RC=$?
fi
@@ -32,7 +32,7 @@ function makenoarch {
# Make one of the following rpms: xCAT, xCATsn, xCAT-buildkit
# Make one of the following rpms: xCAT, xCATsn, xCAT-buildkit, xCAT-OpenStack
function makexcat {
if [ "$OSNAME" != "AIX" -a "$1" != "xCAT-buildkit" -a -z "$2" ]; then
echo 'Usage: makerpm <RPMname> <arch> [<embedded-system>]'
@@ -75,7 +75,9 @@ 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
@@ -88,6 +90,8 @@ function makexcat {
ARCH="noarch"
TARGET=""
tar --exclude .svn --exclude xCAT-buildkit.spec -czf $RPMROOT/SOURCES/$RPMNAME-$VER.tar.gz $RPMNAME
elif [ "$RPMNAME" = "xCAT-OpenStack" ]; then
tar --exclude .svn --exclude xCAT-OpenStack.spec -czf $RPMROOT/SOURCES/$RPMNAME-$VER.tar.gz $RPMNAME
else # do not recognize rpm
echo "Unrecognized rpm: $RPMNAME"
exit 2
@@ -201,7 +205,7 @@ else # linux
fi
if [ "$1" = "xCAT" -o "$1" = "xCATsn" -o "$1" = "xCAT-buildkit" ]; then
if [ "$1" = "xCAT" -o "$1" = "xCATsn" -o "$1" = "xCAT-buildkit" -o "$1" = "xCAT-OpenStack" ]; then
exportEmbed $3
makexcat $1 $2
elif [ "$1" = "xCAT-nbroot" -o "$1" = "xCAT-nbroot-core" ]; then
+61 -51
View File
@@ -157,61 +157,69 @@ B<tabedit> or B<chtab> commands. They can be viewed using B<nodels> or B<tabdum
Alternatively, the xCAT database can be viewed and edited as logical objects, instead of flat tables.
In this mode, xCAT takes care of which table each attribute should go in. To treat the database
as logical object definitions, use the commands: lsdef, mkdef, chdef, rmdef. See Object Definitions
as logical object definitions, use the commands: B<lsdef>, B<mkdef>, B<chdef>, B<rmdef>. See Object Definitions
below.
xCAT allows the use of different database applications, depending on the needs of your cluster.
The default database is SQLite, which is a daemonless, zero-config database. But you could instead
choose to use something like postgresql for greater scalability and remote access in the
hierarchical/service node case. To use a different database or a different location, create
the file /etc/xcat/cfgloc.
See the appropriate xCAT docuementation for the format of the file for the database you choose.
The following example is for PostgreSQL:
the file /etc/xcat/cfgloc. See the appropriate xCAT docuementation for the format of the file for the database you choose.
The following example /etc/xcat/cfgloc file is for PostgreSQL:
=over 4
=item Pg:dbname=xcat;host=<mgmtnode>|<pgadminuserid>|<pgadminpasswd>
Pg:dbname=xcat;host=<mgmtnode>|<pgadminuserid>|<pgadminpasswd>
where mgmtnode is the hostname of the management node adapter on the cluster side, and the pgadminuserid and pgadminpasswd are the database admin and password.
=back
=head2 GROUPS AND REGULAR EXPRESSIONS IN TABLES
The xCAT database spans a number of tables, some with records associated with particular nodes
(such as nodelist and nodehm) and others that do not have a direct relationship with any given node.
The tables not associated with a given node are straightforward, the data is stored and retrieved
as-is from the database without interpretation, and without any generic inheritance
(though some calling code may implement inheritance for specific fields, for example
nodehm.power inheriting from nodehm.mgt).
The tables with records typically retrieved by node name have some extra features to enable a more
The xCAT database has a number of tables, some with rows that are keyed by node name
(such as noderes and nodehm) and others that are not keyed by node name (for example, the policy table).
The tables that are keyed by node name have some extra features that enable a more
template-based style to be used:
Any group name can be used in lieu of a node name in the node field, and that record will then
be taken to be applicable to any node in that group. If a field is requested for a specific node,
and either a record doesn't exist specifically for that nodename or a record exists, but has no
definition for the requested field, that node's groups are then used to search for
records. If multiple records could apply from two different groups, the precedence is
the order the groups are specified in the nodelist table for that node. This is nearly identical to
most xCAT 1.x tab file conventions. This is useful in tables such as noderes, where typical
configurations have exactly the same field values for large sets of nodes.
Any group name can be used in lieu of a node name in the node field, and that row will then
provide "default" attribute values for any node in that group. A row with a specific node name
can then override one or more attribute values for that specific node. For example, if the nodehm table contains:
xCAT 2 extends the above to be made useful where a field will vary for every node with a given tag,
but in ways that would be trivial to describe. If a field is of the format /I<pattern>/I<replacement>/,
it is taken to be a perl regular expression, to be performed on the nodename. For example, the bmc field
of the ipmi table might be B</\z/-bmc/> for a record with node=ipmi to specify that the BMC hostname is derived
by appending B<-bmc> to the end of the nodename of every node in the ipmi group.
#node,power,mgt,cons,termserver,termport,conserver,serialport,serialspeed,serialflow,getmac,cmdmapping,comments,disable
"mygroup",,"ipmi",,,,,,"19200",,,,,
"node1",,,,,,,,"115200",,,,,
As an extension to the above, a regular expression extended with arithmetic operators is available,
by using the format |I<pattern>|I<replacement>|. This behaves similarly to the above, but () enclosed parts
in I<replacement> are taken to signify arithmetic operations and substituted in. All operations are integer
arithmetic, so 5/4 would come out as 1. The typical perl positional variables are available in such expressions.
In the above example, the node group called mygroup sets mgt=ipmi and serialspeed=19200. Any nodes that are in this group
will have those attribute values, unless overridden. For example, if node2 is a member of mygroup, it will automatically
inherit these attribute values (even though it is not explicitly listed in this table). In the case of node1 above, it
inherits mgt=ipmi, but overrides the serialspeed to be 115200, instead of 19200. A useful, typical way to use this
capability is to create a node group for your nodes and for all the attribute values that are the same for every node,
set them at the group level. Then you only have to set attributes for each node that vary from node to node.
For example, if you have many blades in your cluster and their hostnames have a regular
pattern of blade1, blade2, etc., and your BladeCenter management modules also have a hostname
pattern of amm1, amm2, etc., then your B<mp> table could be expressed by the following single row:
xCAT extends the group capability so that it can also be used for attribute values that vary from node to node
in a very regular pattern. For example, if in the ipmi table you want the bmc attribute to be set to whatever the nodename is with
"-bmc" appended to the end of it, then use this in the ipmi table:
"blade","|\D+(\d+)|amm(($1-1)/14+1)|","|\D+(\d+)|(($1-1)%14+1)|",,
#node,bmc,bmcport,taggedvlan,bmcid,username,password,comments,disable
"compute","/\z/-bmc/",,,,,,,
In this example, "compute" is a node group that contains all of the compute nodes. The 2nd attribute (bmc) is a regular
expression that is similar to a substitution pattern. The 1st part "\z" matches the end of the node name and substitutes "-bmc", effectively appending it to the node name.
Another example is if node1 is to have IP address 10.0.0.1, node2 is to have IP address 10.0.0.2, etc.,
then this could be represented in the hosts table with the single row:
#node,ip,hostnames,otherinterfaces,comments,disable
"compute","|node(\d+)|10.0.0.($1+0)|",,,,
In this example, the regular expression in the ip attribute uses "|" to separate the 1st and 2nd part. This means that
xCAT will allow arithmetic operations in the 2nd part. In the 1st part, "(\d+)", will match the number part of the node
name and put that in a variable called $1. The 2nd part
is what value to give the ip attribute. In this case it will set it to the string "10.0.0." and the number that is
in $1. (Zero is added to $1 just to remove any leading zeroes.)
A more involved example is with the mp table. If your blades have node names node01, node02, etc., and your chassis
node names are cmm01, cmm02, etc., then you might have an mp table like:
#node,mpa,id,nodetype,comments,disable
"blade","|\D+(\d+)|cmm(sprintf('%02d',($1-1)/14+1))|","|\D+(\d+)|(($1-1)%14+1)|",,
Before you panic, let me explain each column:
@@ -221,32 +229,34 @@ Before you panic, let me explain each column:
This is a group name. In this example, we are assuming that all of your blades belong to this
group. Each time the xCAT software accesses the B<mp> table to get the management module and slot number
of a specific blade (e.g. B<blade20>), this row will match (because B<blade20> is in the B<blade> group).
Once this row is matched for B<blade20>, then the processing described in the following items will take
of a specific blade (e.g. B<node20>), this row will match (because B<node20> is in the B<blade> group).
Once this row is matched for B<node20>, then the processing described in the following items will take
place.
=item B<|\D+(\d+)|amm(($1-1)/14+1)|>
=item B<|\D+(\d+)|cmm(sprintf('%02d',($1-1)/14+1))|>
This is a perl substitution pattern that will produce the value for the second column of the table (the
management module hostname).
The text B<\D+(\d+)> between the 1st two vertical bars is
management module hostname). The text B<\D+(\d+)> between the 1st two vertical bars is
a regular expression that matches the node
name that was searched for in this table (in this example B<blade20>). The text that matches
name that was searched for in this table (in this example B<node20>). The text that matches
within the 1st set of parentheses is set to $1. (If there was a 2nd set of parentheses, it would
be set to $2, and so on.) In our case, the \D+ matches the non-numeric part of the name
(B<blade>) and the \d+ matches the numeric part (B<20>). So $1 is set to B<20>. The text B<amm(($1-1)/14+1)> between the
2nd and 3rd vertical bars produces the string that should be used as the value
for this column in a hypothetical row for blade20. Since $1 is set to 20, the expression B<($1-1)/14+1> equals
19/14 + 1, which equals 2. Therefore the whole string is B<amm2>, which will be used as the hostname
(B<node>) and the B<\d+> matches the numeric part (B<20>). So $1 is set to B<20>. The text B<cmm(sprintf('%02d',($1-1)/14+1))> between the
2nd and 3rd vertical bars produces the string that should be used as the value for the mpa attribute for node20.
Since $1 is set to 20, the expression B<($1-1)/14+1> equals
19/14 + 1, which equals 2. (The division is integer division,
so 19/14 equals 1. Fourteen is used as the divisor, because there are 14 blades in each chassis.) The value of 2 is then passed into sprintf() with a format string to add a leading
zero, if necessary, to always make the number two digits. Lastly the string B<cmm> is added to the beginning,
making the resulting string B<cmm02>, which will be used as the hostname
of the management module.
=item B<|\D+(\d+)|(($1-1)%14+1)|>
This item is similar to the one above. This substituion pattern will produce the value for
the 3rd column (the BladeCenter chassis slot number for this blade). Because this row was
the match for B<blade20>, the parentheses
the 3rd column (the chassis slot number for this blade). Because this row was
the match for B<node20>, the parentheses
within the 1st set of vertical bars will set $1 to 20. Since % means modulo division, the
expression B<($1-1)%14+1> will evaluate to 6.
expression B<($1-1)%14+1> will evaluate to B<6>.
=back
+1 -1
View File
@@ -1,7 +1,7 @@
Source: perl-xcat
Section: libs
Priority: extra
Maintainer: Arif Ali <aali@ocf.co.uk>
Maintainer: xCAT <xcat-user@lists.sourceforge.net>
Build-Depends: debhelper (>= 5), libsoap-lite-perl, libdbi-perl
Standards-Version: 3.7.2
+1 -1
View File
@@ -14,7 +14,6 @@ export DH_COMPAT=5
build:
dh_testdir
./modifyUtils `cat ../Version` `svn info | grep Revision | cut -d" " -f 2`
./db2man
clean:
@@ -49,6 +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` `svn info | grep Revision | cut -d" " -f 2`
# dh_installmenu
# dh_installdebconf
# dh_installlogrotate
+10 -18
View File
@@ -1,34 +1,26 @@
#!/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 and svn revision number as arguments" >&2
echo "modifyUtils: Error: must specify the xCAT version as an argument" >&2
exit
fi
VER=$1
SVNREF="svn r$2, "
#SVNINFO=`svn info 2>/dev/null|grep Revision`
#/bin/echo -e $SVNINFO
#if [ $? -ne 0 -a -f .svninfo ]; then
# SVNINFO=`cat .svninfo 2>/dev/null|grep Revision`
#fi
#if [ $? -eq 0 ]
# then
# SVNREF="svn r"`echo $SVNINFO|awk '{print $2}'`", "
# else
# SVNREF=""
# fi
BUILDDATE=`date`
#echo ". '(${SVNREF}built $BUILDDATE)'"
#echo ". '(built $BUILDDATE)'"
if [ "$(uname)" = "AIX" ]
then
sed -e s/"#XCATVERSIONSUBHERE"/". '$VER'"/ -e s/"#XCATSVNBUILDSUBHERE"/". ' (${SVNREF}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
sed -i -e s/"#XCATVERSIONSUBHERE"/". '$VER'"/ -e s/"#XCATSVNBUILDSUBHERE"/". ' (${SVNREF}built $BUILDDATE)'"/ xCAT/Version.pm
if [ -f "/etc/debian_version" ];then
FILENAME="debian/perl-xcat/opt/xcat/lib/perl/xCAT/Version.pm"
else
FILENAME="xCAT/Version.pm"
fi
sed -i -e s/"#XCATVERSIONSUBHERE"/". '$VER'"/ -e s/"#XCATSVNBUILDSUBHERE"/". ' (built $BUILDDATE)'"/ $FILENAME
fi
+1 -2
View File
@@ -25,7 +25,6 @@ Includes xCAT::Table, xCAT::NodeRange, among others.
%define zvm %(if [ "$zvm" = "1" ];then echo 1; else echo 0; fi)
%define fsm %(if [ "$fsm" = "1" ];then echo 1; else echo 0; fi)
%define svninfo %(svn info | grep Revision | awk '{print $2}')
%prep
%setup -q -n perl-xCAT
@@ -37,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} %{svninfo}
./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.
+13 -18
View File
@@ -191,7 +191,12 @@ sub updateUserInfo {
{
for my $record (@diff)
{
print $fp "$record\n";
# skip to add ROOT relative records into MERGE file
if ($record =~ /^root/)
{
next;
}
print $fp "$record\n";
}
}
close ($fp);
@@ -230,24 +235,13 @@ sub setCFMSynclistFile {
# get the cfmdir and synclists attributes
my $osimage_t = xCAT::Table->new('osimage');
my $records = $osimage_t->getAttribs({imagename=>$img}, 'cfmdir', 'synclists');
if ($records)
if (defined ($records->{'cfmdir'}))
{
if ($records->{'cfmdir'}) {$cfmdir = $records->{'cfmdir'}}
if ($records->{'synclists'}) {$synclists = $records->{'synclists'}}
$cfmdir = $records->{'cfmdir'};
if (defined ($records->{'synclists'})) {$synclists = $records->{'synclists'}}
} else {
if ($::VERBOSE)
{
my $rsp = {};
$rsp->{data}->[0] = "There are no records for cfmdir and synclists attribute in the osimage:$img. There is nothing to process.";
xCAT::MsgUtils->message("I", $rsp, $::CALLBACK);
}
return;
}
# no cfmdir defined, return directly
if (!$cfmdir)
{
return;
# no cfmdir defined, return directly
return 0;
}
my $found = 0;
@@ -369,7 +363,8 @@ sub updateCFMSynclistFile {
# recursively list the files under cfm directory
my @files = ();
find ( sub { push @files, $File::Find::name if (! -d) }, $cfmdir);
find ( { wanted => sub { push @files, $File::Find::name if -f }, follow => 1 }, $cfmdir);
if (!@files) # not files under cfm directory, skip to next loop
{
next;
+134 -18
View File
@@ -8,9 +8,11 @@ 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
@@ -77,6 +79,23 @@ 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.
@@ -179,11 +198,28 @@ if (ref($request) eq 'HASH') { # the request is an array, not pure XML
if ($ENV{XCATHOST}) {
$xcathost=$ENV{XCATHOST};
}
my %connargs=();
if ($xcathost =~ s/%([^\]|:]*)//) {
$connargs{PeerScope} = $1;
}
$connargs{PeerAddr} = $xcathost;
$connargs{Timeout} = 15;
if ($connargs{PeerScope} and $connargs{PeerScope} =~ /[a-zA-Z]/) { #non-numeric, need to translate...
my @ipdata = `ip link`;
@ipdata = grep(/[^@]$connargs{PeerScope}(:|@)/,@ipdata);
if (scalar(@ipdata) != 1) {
print STDERR "Unable to identify scope ".$connargs{PeerScope}."\n";
exit(1);
}
$connargs{PeerScope} = $ipdata[0];
$connargs{PeerScope} =~ s/:.*//;
}
my $pclient;
if ($inet6support) {
$pclient = IO::Socket::INET6->new(
PeerAddr => $xcathost,
Timeout => 15,
%connargs,
);
} else {
$pclient = IO::Socket::INET->new(
@@ -206,6 +242,7 @@ if (ref($request) eq 'HASH') { # the request is an array, not pure XML
SSL_key_file => $keyfile,
SSL_cert_file => $certfile,
SSL_ca_file => $cafile,
SSL_verify_mode => SSL_VERIFY_PEER,
SSL_use_cert => 1,
Timeout => 0,
);
@@ -214,21 +251,37 @@ if (ref($request) eq 'HASH') { # the request is an array, not pure XML
Timeout => 0,
);
}
unless ($client) {
print "Unable to open socket connection to xcatd daemon on $xcathost.\n";
print "Verify that the xcatd daemon is running and that your SSL setup is correct.\n";
if ($@ =~ /SSL Timeout/) {
die "Connection failure: SSL Timeout or incorrect certificates in ~/.xcat";
} else {
die "Connection failure: $@"
}
}
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
$msg=XMLout($request,RootName=>'xcatrequest',NoAttr=>1,KeyAttr=>[]);
#print $client "xcatencoding: $encode\n";
#my $encok=<$client>;
send_request($request,$client,$encode);
} else { #XML
$straightprint=1;
$msg=$request;
print $client $msg;
}
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;
$SIG{TERM} = $SIG{INT} = sub { send_request({abortcommand=>[1]},$client,$encode); exit 0; };
my $response;
my $rsp;
my $cleanexit=0;
if ($encode eq 'xml') {
my $massresponse="<massresponse>";
my $nextcoalescetime=time()+1;
my $coalescenow=0;
@@ -282,9 +335,31 @@ 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";
$xCAT::Client::EXITCODE = 1;
}
sub validateXML {
@@ -433,7 +508,7 @@ sub plugin_command {
$usesiteglobal = 1;
}
foreach (@nodes) { #Specified a specific plugin, not a table lookup
$handler_hash{$sent->{value}}->{$_} = 1;
$handler_hash{$::XCATSITEVALS{$sitekey}}->{$_} = 1;
}
}
} elsif ($hdlspec =~ /:/) { #Specificed a table lookup path for plugin name
@@ -597,7 +672,10 @@ sub plugin_command {
no strict "refs";
# eval { #REMOVEEVALFORDEBUG
# if ($dispatch_requests) {
dispatch_request($req,$callback,$modname);
# backup the original req and recover it after the a run
my $org_req = {%$req};
dispatch_request($req,$callback,$modname);
$req = {%$org_req};
# } else {
# $SIG{CHLD}='DEFAULT';
# ${"xCAT_plugin::".$modname."::"}{process_request}->($req,$callback,\&do_request);
@@ -998,7 +1076,7 @@ sub handle_response {
}
#print "in handle_response\n";
# Handle errors
if ($rsp->{errorcode}) {
if (defined($rsp->{errorcode})) {
if (ref($rsp->{errorcode}) eq 'ARRAY') {
foreach my $ecode (@{$rsp->{errorcode}}) {
$xCAT::Client::EXITCODE |= $ecode;
@@ -1012,22 +1090,38 @@ sub handle_response {
#print "printing error\n";
if (ref($rsp->{error}) eq 'ARRAY') {
foreach my $text (@{$rsp->{error}}) {
print STDERR "Error: $text\n";
if ($rsp->{NoErrorPrefix}) {
print STDERR "$text\n";
} else {
print STDERR "Error: $text\n";
}
}
}
else {
print ("Error: ".$rsp->{error}."\n");
if ($rsp->{NoErrorPrefix}) {
print STDERR ($rsp->{error}."\n");
} else {
print STDERR ("Error: ".$rsp->{error}."\n");
}
}
}
if ($rsp->{warning}) {
#print "printing warning\n";
if (ref($rsp->{warning}) eq 'ARRAY') {
foreach my $text (@{$rsp->{warning}}) {
print STDERR "Warning: $text\n";
if ($rsp->{NoWarnPrefix}) {
print STDERR "$text\n";
} else {
print STDERR "Warning: $text\n";
}
}
}
else {
print ("Warning: ".$rsp->{warning}."\n");
if ($rsp->{NoWarnPrefix}) {
print STDERR ($rsp->{warning}."\n");
} else {
print STDERR ("Warning: ".$rsp->{warning}."\n");
}
}
}
if ($rsp->{info}) {
@@ -1065,7 +1159,12 @@ sub handle_response {
#print "printing node\n";
my $node;
foreach $node (@$nodes) {
my $desc=$node->{name}->[0];
my $desc;
if (ref($node->{name}) eq 'ARRAY') {
$desc=$node->{name}->[0];
} else {
$desc=$node->{name};
}
if ($node->{errorcode}) {
if (ref($node->{errorcode}) eq 'ARRAY') {
foreach my $ecode (@{$node->{errorcode}}) {
@@ -1085,7 +1184,24 @@ sub handle_response {
$errflg=1;
}
if ($node->{data}) {
if (ref(\($node->{data}->[0])) eq 'SCALAR') {
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') {
$desc=$desc.": ".$node->{data}->[0];
} else {
if ($node->{data}->[0]->{desc}) {
+11 -13
View File
@@ -8,6 +8,7 @@ use File::stat;
use File::Copy;
use xCAT::Usage;
use Thread qw/yield/;
use Storable qw/store_fd fd_retrieve/;
BEGIN
{
@@ -29,19 +30,18 @@ sub forward_data {
my $rfh;
my $rc = @ready_fds;
foreach $rfh (@ready_fds) {
my $data;
if ($data = <$rfh>) {
while ($data !~ /ENDOFFREEZE6sK4ci/) {
$data .= <$rfh>;
}
my $responses;
eval {
$responses = fd_retrieve($rfh);
};
if ($@ and $@ =~ /^Magic number checking on storable file/) { #this most likely means we ran over the end of available input
$fds->remove($rfh);
close($rfh);
} else {
eval { print $rfh "ACK\n"; }; #Ignore ack loss due to child giving up and exiting, we don't actually explicitly care about the acks
my $responses=thaw($data);
foreach (@$responses) {
$callback->($_);
}
} else {
$fds->remove($rfh);
close($rfh);
}
}
yield(); #Try to avoid useless iterations as much as possible
@@ -62,8 +62,7 @@ sub send_data {
foreach(@_) {
my %output;
if (ref($_) eq HASH) {
print $out freeze([$_]);
print $out "\nENDOFFREEZE6sK4ci\n";
store_fd([$_],$out);
yield();
waitforack($out);
next;
@@ -97,8 +96,7 @@ sub send_data {
} else {
$output{node}->[0]->{data}->[0]->{contents}->[0]=$text;
}
print $out freeze([\%output]);
print $out "\nENDOFFREEZE6sK4ci\n";
store_fd([\%output],$out);
yield();
waitforack($out);
}
Regular → Executable
+195 -8
View File
@@ -57,7 +57,7 @@ sub getObjectsOfType
# The database may be changed between getObjectsOfType calls
# do not use cache %::saveObjList if --nocache is specified
if ($::saveObjList{$type} && !$::opt_c)
if ($::saveObjList{$type} && !$::opt_nc)
{
@objlist = @{$::saveObjList{$type}};
}
@@ -200,7 +200,8 @@ sub getobjattrs
# list of object names
foreach my $table (keys %tableattrs) {
# open the table
my $thistable = xCAT::Table->new($table, -create => 1, -autocommit => 0);
# with autocommit => 0, it does not work on Ubuntu running mysql
my $thistable = xCAT::Table->new($table, -create => 1, -autocommit => 1);
if (!$thistable) {
my $rsp;
$rsp->{data}->[0] = "Could not open the \'$table\' table.";
@@ -606,7 +607,7 @@ sub getDBtable
# save this table info - in case this subr gets called multiple times
# --nocache flag specifies not to use cahe
if (grep(/^$table$/, @::foundTableList) && !$::opt_c)
if (grep(/^$table$/, @::foundTableList) && !$::opt_nc)
{
# already have this
@@ -617,7 +618,7 @@ sub getDBtable
{
# need to get info from DB
my $thistable = xCAT::Table->new($table, -create => 1, -autocommit => 0);
my $thistable = xCAT::Table->new($table, -create => 1);
if (!$thistable)
{
return undef;
@@ -1679,7 +1680,14 @@ sub readFileInput
$look_for_colon = 0; # ok - we have a colon
($objectname, $junk2) = split(/:/, $l);
# Remove any trailing whitespace
$l =~ s/\s*$//;
# IPv6 network names could be something like fd59::/64
# Use all the characters before the last ":" as the object name
# .* means greedy regular expression
$l =~ /^(.*):(.*?)$/;
($objectname, $junk2) = ($1, $2);
# if $junk2 is defined or there's an =
if ($junk2 || grep(/=/, $objectname))
@@ -1999,7 +2007,14 @@ sub getNetwkInfo
my @nodes = ("$node");
my $sn = xCAT::ServiceNodeUtils->get_ServiceNode(\@nodes,"xcat","Node");
my $snkey = (keys %{$sn})[0];
$nethash{$node}{'gateway'} = xCAT::NetworkUtils->getipaddr($snkey);
my $gw = xCAT::NetworkUtils->getipaddr($snkey);
# two possible cases when this code is run:
# 1. flat cluster: ip forwarding is not enabled on MN
# 2. hw ctrl in hierarchy cluster, in which HCP SN is not set
# in either case, MN itself should not be the gateway
if (xCAT::NetworkUtils->thishostisnot($gw)) {
$nethash{$node}{'gateway'} = $gw;
}
}
}
@@ -2150,7 +2165,7 @@ sub getchildren
$::RUNCMD_RC = 1;
return undef;
}
my @ps = $ppctab->getAllNodeAttribs(['node','parent','nodetype']);
my @ps = $ppctab->getAllNodeAttribs(['node','parent','nodetype','hcp']);
foreach my $entry ( @ps ) {
my $p = $entry->{parent};
my $c = $entry->{node};
@@ -2161,13 +2176,19 @@ sub getchildren
# build hash of ppc.parent -> ppc.node
push @{$PPCHASH{$p}}, $c;
}
elsif ($t eq 'blade') {
push @{$PPCHASH{$c}}, $entry->{hcp};
}
} else { # go look in the nodetype table to find nodetype
my $type = getnodetype($c);
my $type = getnodetype($c, "ppc");
if ( $type eq 'fsp' or $type eq 'bpa')
{
# build hash of ppc.parent -> ppc.node
push @{$PPCHASH{$p}}, $c;
}
elsif ($type eq "blade") {
push @{$PPCHASH{$c}}, $entry->{hcp};
}
}
} # not $p and $c
}
@@ -2592,4 +2613,170 @@ sub judge_node
return $flag;
}
#-------------------------------------------------------------------------------
=head3 expandnicsattr
Expand the nics related attributes into the readable format,
for example, the nicsips=eth0!1.1.1.1|2.1.1.1,eth1!3.1.1.1|4.1.1.1
expanded format:
nicsips.eth0=1.1.1.1|2.1.1.1
nicsips.eth1=3.1.1.1|4.1.1.1
Arguments:
nicsattr value, like niccsips=eth0!1.1.1.1|2.1.1.1,eth1!3.1.1.1|4.1.1.1
nicnames: only return the value for specific nics, like "eth0,eth1"
Returns:
expanded format, like:
nicsips.eth0=1.1.1.1|2.1.1.1
nicsips.eth1=3.1.1.1|4.1.1.1
Error:
none
Example:
my $nicsstr = xCAT::DBobjUtils->expandnicsattr($attrval);
Comments:
none
=cut
#-------------------------------------------------------------------------------
sub expandnicsattr()
{
my $nicstr = shift;
if (($nicstr) && ($nicstr =~ /xCAT::/))
{
$nicstr = shift;
}
my $nicnames = shift;
my $ret;
$nicstr =~ /^(.*?)=(.*?)$/;
#Attribute: nicips, nichostnamesuffix, etc.
my $nicattr = $1;
# Value: eth0!1.1.1.1|2.1.1.1,eth1!3.1.1.1|4.1.1.1
my $nicval=$2;
# $nicarr[0]: eth0!1.1.1.1|2.1.1.1
# $nicarr[1]: eth1!3.1.1.1|4.1.1.1
my @nicarr = split(/,/, $nicval);
foreach my $nicentry (@nicarr)
{
#nicentry: eth0!1.1.1.1|2.1.1.1
# $nicv[0]: eth0
# $nicv[1]: 1.1.1.1|2.1.1.1
my @nicv = split(/!/, $nicentry);
# only return nic* attr for these specific nics
if ($nicnames)
{
my @nics = split(/,/, $nicnames);
if ($nicv[0])
{
# Do not need to return the nic attr for this nic
if (!grep(/^$nicv[0]$/, @nics))
{
next;
}
}
}
# ignore the line that does not have nicname or value
if ($nicv[0] && $nicv[1])
{
$ret .= " $nicattr.$nicv[0]=$nicv[1]\n";
}
}
chomp($ret);
return $ret;
}
#-------------------------------------------------------------------------------
=head3 collapsenicsattr
Collapse the nics related attributes into the database format,
for example,
nicsips.eth0=1.1.1.1|2.1.1.1
nicsips.eth1=3.1.1.1|4.1.1.1
the collapsed format:
nicsips=eth0!1.1.1.1|2.1.1.1,eth1!3.1.1.1|4.1.1.1
The collapse will be done against the hash %::FILEATTRS or %::CLIATTRS,
remove the nicips.thx attributes from %::FILEATTRS or %::CLIATTRS,
add the collapsed info nicips into %::FILEATTRS or %::CLIATTRS.
Arguments:
$::FILEATTRS{$objname} or $::CLIATTRS{$objname}
$objname
Returns:
None, update %::FILEATTRS or %::CLIATTRS directly
Error:
none
Example:
xCAT::DBobjUtils->collapsenicsattr($nodeattrhash);
Comments:
none
=cut
#-------------------------------------------------------------------------------
sub collapsenicsattr()
{
my $nodeattrhash = shift;
if (($nodeattrhash) && ($nodeattrhash =~ /xCAT::/))
{
$nodeattrhash = shift;
}
my $objname = shift;
my %nicattrs = ();
foreach my $nodeattr (keys %{$nodeattrhash})
{
# 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 ($1 && $2)
{
# chdef <noderange> nicips.eth2= to remove the definition for eth2
# in this case, the $nodeattrhash->{'nicips.eth0'} is blank
if ($nodeattrhash->{$nodeattr})
{
# $nicattrs{nicips}{eth0} = "1.1.1.1|1.2.1.1"
$nicattrs{$1}{$2} = $nodeattrhash->{$nodeattr};
}
# remove nicips.eth0 from the %::FILEATTRS
delete $nodeattrhash->{$nodeattr};
}
}
}
# $nicattrs{'nicips'}{'eth0'} = "1.1.1.1|1.2.1.1"
# $nicattrs{'nicips'}{'eth1'} = "2.1.1.1|2.2.1.1"
foreach my $nicattr (keys %nicattrs)
{
my @tmparray = ();
foreach my $nicname (keys %{$nicattrs{$nicattr}})
{
# eth0!1.1.1.1|1.2.1.1
push @tmparray, "$nicname!$nicattrs{$nicattr}{$nicname}";
}
# eth0!1.1.1.1|1.2.1.1,eth1!2.1.1.1|2.2.1.1
$nodeattrhash->{$nicattr} = join(',', @tmparray);
}
}
1;
+170 -92
View File
@@ -592,6 +592,7 @@ sub _execute_dsh
xCAT::MsgUtils->message("D", $rsp, $::CALLBACK);
$rsp = {};
push @{$rsp->{error}}, @{$error_buffers{$user_target}};
$rsp->{NoErrorPrefix} = 1;
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK,0);
}
}
@@ -607,6 +608,7 @@ sub _execute_dsh
xCAT::MsgUtils->message("D", $rsp, $::CALLBACK);
$rsp = {};
push @{$rsp->{error}}, @{$error_buffers{$user_target}};
$rsp->{NoErrorPrefix} = 1;
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK,0);
}
@@ -815,7 +817,7 @@ sub fork_fanout_dcp
my @dcp_command;
my $rsyncfile;
if (!$$target_properties{'localhost'})
if (!$$target_properties{'localhost'}) # this is to a remote host
{
my $target_type = $$target_properties{'type'};
@@ -837,6 +839,7 @@ sub fork_fanout_dcp
$rcp_config{'preserve'} = $$options{'preserve'};
$rcp_config{'recursive'} = $$options{'recursive'};
$rcp_config{'sudo'} = $$options{'sudo'};
if ($$options{'pull'})
{
@@ -869,21 +872,25 @@ sub fork_fanout_dcp
my $localhost=0; # this is from the MN to another node
@dcp_command =
$remoteshell->remote_copy_command(\%rcp_config, $remote_copy);
# add sudo for non-root users
if ($$options{'sudo'}) {
unshift (@dcp_command,'sudo');
}
}
else # this is the local host ( running on the Management Node)
{
if ($$options{'destDir_srcFile'}{$user_target})
{
my $target_type = $$target_properties{'type'};
my $target_type = $$target_properties{'type'};
my %rcp_config = ();
my %rcp_config = ();
my $remote_copy;
my $rsh_extension = 'RSH';
my $remote_copy;
my $rsh_extension = 'RSH';
if ($target_type eq 'node')
{
if ($target_type eq 'node')
{
$remote_copy =
$$options{'node-rcp'}{$$target_properties{'context'}}
|| $$target_properties{'remote-copy'};
@@ -891,10 +898,10 @@ sub fork_fanout_dcp
($remote_copy =~ /\/rsync$/) && ($rsh_extension = 'RSYNC');
$rcp_config{'options'} =
$$options{'node-options'}{$$target_properties{'context'}};
}
}
$rcp_config{'preserve'} = $$options{'preserve'};
$rcp_config{'recursive'} = $$options{'recursive'};
$rcp_config{'preserve'} = $$options{'preserve'};
$rcp_config{'recursive'} = $$options{'recursive'};
$rcp_config{'src-file'} = $$options{'source'};
@@ -905,20 +912,19 @@ sub fork_fanout_dcp
$rcp_config{'destDir_srcFile'} =
$$options{'destDir_srcFile'}{$user_target};
#eval "require RemoteShell::$rsh_extension";
eval "require xCAT::$rsh_extension";
my $remoteshell = "xCAT::$rsh_extension";
# HERE: Build the dcp command based on the arguments
my $localhost=1; # this is on the MN to the MN
@dcp_command =
eval "require xCAT::$rsh_extension";
my $remoteshell = "xCAT::$rsh_extension";
# HERE: Build the dcp command based on the arguments
my $localhost=1; # this is on the MN to the MN
@dcp_command =
$remoteshell->remote_copy_command(\%rcp_config, $remote_copy,$localhost);
}
else # just a copy not a sync
{
}
else # just a copy not a sync
{
@dcp_command =
('/bin/cp', '-r', $$options{'source'}, $$options{'target'});
}
}
}
my $rsp = {};
@@ -1013,11 +1019,18 @@ sub fork_fanout_dsh
}
}
}
# save the original exports, we are going to add the unique node name below
while (@$targets_waiting
&& (keys(%$targets_active) < $$options{'fanout'}))
{
my $user_target = shift @$targets_waiting;
# now add export NODE=nodename to the pre-command, if not a device;
my $exportnode;
if (($$options{'devicetype'})) {
$exportnode="";
} else{
$exportnode="export NODE=$user_target; ";
}
my $target_properties = $$resolved_targets{$user_target};
my @commands;
my $localShell =
@@ -1031,17 +1044,39 @@ sub fork_fanout_dsh
$$options{'post-command'} = "";
$dsh_cmd_background = 1;
}
if ($$options{'environment'})
{
# if we are on a servicenode need to get the environment file
# from the SNsyncfiledir, not local
if (xCAT::Utils->isServiceNode()) {
my $newenvfile;
my $synfiledir = "/var/xcat/syncfiles"; #default
# get the directory on the servicenode to and add to filepath
my @syndir= xCAT::TableUtils->get_site_attribute("SNsyncfiledir");
if ($syndir[0])
{
$synfiledir = $syndir[0];
}
$newenvfile = $synfiledir;
$newenvfile .= $$options{'environment'};
$$options{'environment'} = $newenvfile;
}
if (!(-e $$options{'environment'}))
{
my $rsp={};
$rsp->{error}->[0] = "File $$options{'environment'} does not exist";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
}
# build the xdsh command
push @dsh_command,
"$$options{'pre-command'} . $$options{'environment'} ; $$options{'command'}$$options{'post-command'}";
"$exportnode$$options{'pre-command'} . $$options{'environment'} ; $$options{'command'}$$options{'post-command'}";
}
else
{
push @dsh_command,
"$$options{'pre-command'}$$options{'command'}$$options{'post-command'}";
"$exportnode$$options{'pre-command'}$$options{'command'}$$options{'post-command'}";
}
if ($$target_properties{'localhost'})
@@ -1109,7 +1144,7 @@ sub fork_fanout_dsh
#eval "require RemoteShell::$rsh_extension";
eval "require xCAT::$rsh_extension";
$rsh_config{'command'} = "$$options{'pre-command'}";
$rsh_config{'command'} = "$exportnode$$options{'pre-command'}";
my $tmp_env_file;
# for the -E flag here we build and copy the -E env variable
# file to the nodes
@@ -1163,13 +1198,13 @@ sub fork_fanout_dsh
if ($$options{'execute'})
{
# first build the scp command to copy the file to execute
# down to the node into /tmp/*.dsh
# down to the node into /tmp/*.dsh
my $rsp = {};
$rsp->{data}->[0] = "TRACE: Execute option specified.";
$dsh_trace && (xCAT::MsgUtils->message("I", $rsp, $::CALLBACK));
my %exe_rcp_config = ();
$tmp_cmd_file = POSIX::tmpnam . ".dsh";
$tmp_cmd_file = POSIX::tmpnam . ".dsh";
my ($exe_cmd, @args) = @{$$options{'execute'}};
my $chmod_cmd = "";
@@ -2310,10 +2345,14 @@ sub config_dsh
}
}
else
{
# if not Mellanox, it does not need a config file
if (!($$options{'devicetype'} =~ /Mellanox/i)) {
my $rsp = {};
$rsp->{error}->[0] = "EMsgMISSING_DEV_CFG";
xCAT::MsgUtils->message('E', $rsp, $::CALLBACK);
$rsp->{error}->[0] = "The config file: $devicepath is missing";
xCAT::MsgUtils->message('E', $rsp, $::CALLBACK);
}
}
}
@@ -3198,7 +3237,17 @@ sub bld_resolve_nodes_hash
# find out if we have an MN in the list, local cp and sh will be used
# not remote shell
my $mname = xCAT::Utils->noderangecontainsMn(@target_list);
# find out the names for the Management Node
my @MNnodeinfo = xCAT::NetworkUtils->determinehostname;
my $mname = pop @MNnodeinfo; # hostname
my $cmd="hostname";
my $localhostname = xCAT::Utils->runcmd($cmd,0);
if ($::RUNCMD_RC != 0)
{
my $rsp = {};
$rsp->{info}->[0] = "Command: $cmd failed. Continuing...";
xCAT::MsgUtils->message("I", $rsp, $::CALLBACK);
}
foreach my $target (@target_list)
{
@@ -3207,11 +3256,9 @@ sub bld_resolve_nodes_hash
my $localhost;
my $user;
my $context = "XCAT";
# check to see if this node is the Management Node
if ($mname) {
if ($mname eq $target) {
# check to see if this node is the Management Node we are on, can run local commands (sh,cp)
if (($mname eq $target) || ($localhostname eq $target)){
$localhost=$target;
}
}
my %properties = (
'hostname' => $hostname,
@@ -4040,11 +4087,12 @@ sub parse_and_run_dsh
# check if any node in the noderange is the Management Node and exit
# with error, if the Management Node is in the Database and in the
# noderange
my $mname = xCAT::Utils->noderangecontainsMn(@nodelist);
if ($mname) { # MN in the nodelist
my @mname = xCAT::Utils->noderangecontainsMn(@nodelist);
if (@mname) { # MN in the nodelist
my $nodes=join(',', @mname);
my $rsp = {};
$rsp->{error}->[0] =
"You must not run -K option against the Management Node:$mname.";
"You must not run -K option against the Management Node:$nodes.";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK, 1);
return;
}
@@ -4146,7 +4194,7 @@ sub parse_and_run_dsh
#
# setup ssh keys on the nodes or ib switch
#
my $rc = xCAT::TableUtils->setupSSH($options{'nodes'});
my $rc = xCAT::TableUtils->setupSSH($options{'nodes'},$options{'timeout'});
my @results = "return code = $rc";
return (@results);
}
@@ -4216,7 +4264,7 @@ sub usage_dcp
{
### usage message
my $usagemsg1 = " xdcp -h \n xdcp -q\n xdcp -V \n xdcp <noderange>\n";
my $usagemsg2 = " [-B bypass] [-c] [-f fanout] [-l user_ID]\n";
my $usagemsg2 = " [-B bypass] [-c] [-f fanout] [-l user_ID] [--sudo]\n";
my $usagemsg3 =
" [-m] [-o options] [-p] [-P] [-q] [-Q] [-r node_remote_copy]\n";
my $usagemsg4 =
@@ -4325,7 +4373,8 @@ sub parse_and_run_dcp
'T|trace' => \$options{'trace'},
'V|version' => \$options{'version'},
'devicetype=s' => \$options{'devicetype'},
'nodestatus|nodestatus' => \$options{'nodestatus'},
'nodestatus|nodestatus' => \$options{'nodestatus'},
'sudo|sudo' => \$options{'sudo'},
'X:s' => \$options{'ignore_env'}
)
)
@@ -4570,8 +4619,8 @@ sub parse_and_run_dcp
close FILE;
# now put the original syncfile on the queue to sync to the SN's
$rc =
&parse_rsync_input_file_on_MN(\@nodelist, \%options, $tmpsyncfile,
$::SYNCSN, $synfiledir,$nodesyncfiledir);
&parse_rsync_input_file_on_MN(\@nodelist, \%options,$tmpsyncfile,
$::SYNCSN, $synfiledir,$nodesyncfiledir);
# cleanup
my $cmd = "rm $tmpsyncfile";
my @output = xCAT::Utils->runcmd($cmd, 0);
@@ -4657,21 +4706,42 @@ sub parse_and_run_dcp
my $ranpostscripts;
my $ranappendscripts;
my $ranmergescripts;
# if we were called with runxcmd, like by updatenode
# need to save the runxcmd buffer
# $::xcmd_outref
my $save_xcmd_outref;
if ($::xcmd_outref) { # this means we were called with runxcmd
$save_xcmd_outref = $::xcmd_outref;
}
if ((@::postscripts) && ($::SYNCSN == 0)) {
@results2 = &run_rsync_postscripts(\@results,$synfiledir);
@results2 = &run_rsync_postscripts(\@results,$synfiledir,\%options);
$ranpostscripts=1;
}
if ((@::alwayspostscripts) && ($::SYNCSN == 0)) {
@results3 = &run_always_rsync_postscripts(\@nodelist,$synfiledir);
@results3 = &run_always_rsync_postscripts(\@nodelist,$synfiledir,\%options);
}
if (($::appendscript) && ($::SYNCSN == 0)) {
@results4 = &bld_and_run_append(\@nodelist,\@results,$synfiledir,$nodesyncfiledir);
@results4 = &bld_and_run_append(\@nodelist,\@results,$synfiledir,$nodesyncfiledir,\%options);
$ranappendscripts=1;
}
if (($::mergescript) && ($::SYNCSN == 0)) {
@results5 = &bld_and_run_merge(\@nodelist,\@results,$synfiledir,$nodesyncfiledir);
@results5 = &bld_and_run_merge(\@nodelist,\@results,$synfiledir,$nodesyncfiledir,\%options);
$ranmergescripts=1;
}
# restore the runxcmd buffer
if ($save_xcmd_outref) { # this means we were called with runxcmd
$::xcmd_outref = $save_xcmd_outref;
}
# TODO, will we ever need to merge
# if we ran a postscript and we were run
# using runxcmd, and there was previous output in the
# runxcmd buffer and we have output from the postscript
# then we have to merge the outputs
#if (($ranaps == 1) && ($save_xcmd_outref) && ($::xcmd_outref) ) {
# &mergeoutput($save_xcmd_outref);
#}
my @newresults;
if (@results2) {
@newresults = (@results2);
@@ -4686,9 +4756,14 @@ sub parse_and_run_dcp
@newresults = (@newresults,@results3,@results4,@results5);
}
if (@newresults) {
if ($save_xcmd_outref) { # this means we were called with runxcmd
foreach my $line (@newresults) {
push @$::xcmd_outref,$line;
}
}
return (@newresults);
} else {
# don't report results for postscripts,appendscripts,mergescripts because
# don't report other results for postscripts,appendscripts,mergescripts because
# you get all the rsync returned lines
if (($ranpostscripts == 0 ) && ($ranappendscripts == 0)
&& ($ranmergescripts == 0)) {
@@ -5563,7 +5638,7 @@ sub parse_rsync_input_file_on_SN
sub run_rsync_postscripts
{
my ($rsyncoutput,$syncdir) = @_;
my ($rsyncoutput,$syncdir,$options) = @_;
my @rsync_output = @$rsyncoutput;
my @newoutput= ();
my $dshparms;
@@ -5606,27 +5681,26 @@ sub run_rsync_postscripts
# now if we have postscripts to run, run xdsh
my $out;
# if we were called with runxcmd, like by updatenode
# need to save the runxcmd buffer
# $::xcmd_outref
my $save_xcmd_outref;
if ($::xcmd_outref) { # this means we were called with runxcmd
$save_xcmd_outref = $::xcmd_outref;
}
# my $ranaps=0; # did we run a postscript
foreach my $ps ( keys %{$$dshparms{'postscripts'}}) {
my @nodes;
push (@nodes, @{$$dshparms{'postscripts'}{$ps}});
my @args=();
if ($$options{'nodestatus'}) {
push @args,"--nodestatus" ;
}
push @args,"-e";
# if on the service node need to add the $syncdir directory
# to the path
if (xCAT::Utils->isServiceNode()) {
my $tmpp=$syncdir . $ps;
$ps=$tmpp;
}
$out=xCAT::Utils->runxcmd( { command => ['xdsh'],
push @args,$ps;
$out=xCAT::Utils->runxcmd( { command => ['xdsh'],
node => \@nodes,
arg => [ "-e", $ps ]
arg => \@args,
}, $::SUBREQ, 0,1);
foreach my $r (@$out){
push(@newoutput, $r);
@@ -5634,18 +5708,6 @@ sub run_rsync_postscripts
}
# $ranaps=1;
}
# restore the runxcmd buffer
if ($save_xcmd_outref) { # this means we were called with runxcmd
$::xcmd_outref = $save_xcmd_outref;
}
# TODO, will we ever need to merge
# if we ran a postscript and we were run
# using runxcmd, and there was previous output in the
# runxcmd buffer and we have output from the postscript
# then we have to merge the outputs
#if (($ranaps == 1) && ($save_xcmd_outref) && ($::xcmd_outref) ) {
# &mergeoutput($save_xcmd_outref);
#}
return @newoutput;
}
#-------------------------------------------------------------------------------
@@ -5683,7 +5745,7 @@ sub run_rsync_postscripts
sub bld_and_run_append
{
my ($hostnames,$rsyncoutput,$syncdir,$nodesyncfiledir) = @_;
my ($hostnames,$rsyncoutput,$syncdir,$nodesyncfiledir,$options) = @_;
my @hosts = @$hostnames;
my @rsync_output = @$rsyncoutput;
my @newoutput= ();
@@ -5733,8 +5795,10 @@ sub bld_and_run_append
# that were rsyn'd to at least one node
if ($tmpappendfile eq $ps) {
my $parm="$appendfile:$filetoappend ";
$::xdcpappendparms .= $parm;
# check to see if the parameter is already in the list
if (!($::xdcpappendparms =~ /$parm/)) {
$::xdcpappendparms .= $parm;
}
$processappend=1;
}
@@ -5755,10 +5819,16 @@ sub bld_and_run_append
foreach my $ps ( keys %{$$dshparms{'appendscripts'}}) {
my @nodes;
push (@nodes, @{$$dshparms{'appendscripts'}{$ps}});
my @args=();
if ($$options{'nodestatus'}) {
push @args,"--nodestatus" ;
}
push @args,$ps;
push @args,$::xdcpappendparms;
$out=xCAT::Utils->runxcmd( { command => ['xdsh'],
node => \@nodes,
arg => [ $ps , $::xdcpappendparms ]
arg => \@args,
}, $::SUBREQ, 0,1);
foreach my $r (@$out){
push(@newoutput, $r);
@@ -5805,7 +5875,7 @@ sub bld_and_run_append
sub bld_and_run_merge
{
my ($hostnames,$rsyncoutput,$syncdir,$nodesyncfiledir) = @_;
my ($hostnames,$rsyncoutput,$syncdir,$nodesyncfiledir,$options) = @_;
my @hosts = @$hostnames;
my @rsync_output = @$rsyncoutput;
my @newoutput= ();
@@ -5864,8 +5934,10 @@ sub bld_and_run_merge
# that were rsyn'd to at least one node
if ($tmpmergefile eq $ps) {
my $parm="$mergefile:$filetomerge ";
$::xdcpmergeparms .= $parm;
# check to see if the parameter is already in the list
if (!($::xdcpmergeparms =~ /$parm/)) {
$::xdcpmergeparms .= $parm;
}
$processmerge=1;
}
@@ -5887,9 +5959,17 @@ sub bld_and_run_merge
my @nodes;
push (@nodes, @{$$dshparms{'mergescripts'}{$ps}});
# build the argument list
my @args=();
if ($$options{'nodestatus'}) {
push @args,"--nodestatus" ;
}
push @args, $ps;
push @args, $::xdcpmergeparms;
$out=xCAT::Utils->runxcmd( { command => ['xdsh'],
node => \@nodes,
arg => [ $ps , $::xdcpmergeparms ]
arg => \@args,
}, $::SUBREQ, 0,1);
foreach my $r (@$out){
push(@newoutput, $r);
@@ -5915,7 +5995,7 @@ sub bld_and_run_merge
sub run_always_rsync_postscripts
{
my ($hostnames,$syncdir) = @_;
my ($hostnames,$syncdir,$options) = @_;
my @hosts = @$hostnames;
my @newoutput= ();
my $dshparms;
@@ -5937,26 +6017,28 @@ sub run_always_rsync_postscripts
# now if we have postscripts to run, run xdsh
my $out;
# if we were called with runxcmd, like by updatenode
# need to save the runxcmd buffer
# $::xcmd_outref
my $save_xcmd_outref;
if ($::xcmd_outref) { # this means we were called with runxcmd
$save_xcmd_outref = $::xcmd_outref;
}
foreach my $ps ( keys %{$$dshparms{'postscripts'}}) {
my @nodes;
push (@nodes, @{$$dshparms{'postscripts'}{$ps}});
# build the argument list
my @args=();
if ($$options{'nodestatus'}) {
push @args,"--nodestatus" ;
}
push @args,"-e";
# if on the service node need to add the $syncdir directory
# to the path
if (xCAT::Utils->isServiceNode()) {
my $tmpp=$syncdir . $ps;
$ps=$tmpp;
}
push @args, $ps;
push (@nodes, @{$$dshparms{'postscripts'}{$ps}});
$out=xCAT::Utils->runxcmd( { command => ['xdsh'],
$out=xCAT::Utils->runxcmd( { command => ['xdsh'],
node => \@nodes,
arg => [ "-e", $ps ]
arg => \@args,
}, $::SUBREQ, 0,1);
foreach my $r (@$out){
push(@newoutput, $r);
@@ -5964,10 +6046,6 @@ sub run_always_rsync_postscripts
}
}
# restore the runxcmd buffer
if ($save_xcmd_outref) { # this means we were called with runxcmd
$::xcmd_outref = $save_xcmd_outref;
}
return @newoutput;
}
+13 -1
View File
@@ -754,8 +754,20 @@ sub pping_hostnames
my ($class, @hostnames) = @_;
my $hostname_list = join ",", @hostnames;
# read site table, usefping attribute
# if set then run pping -f to use fping
# this fixes a broken nmap in Redhat 6.2 with ip alias (3512)
my $cmd="$::XCATROOT/bin/pping $hostname_list"; # default
my @usefping=xCAT::TableUtils->get_site_attribute("usefping");
if ((defined($usefping[0])) && ($usefping[0] eq "1")) {
$cmd = "$::XCATROOT/bin/pping -f $hostname_list";
}
#my $rsp={};
#$rsp->{data}->[0] = "running command $cmd";
#xCAT::MsgUtils->message("I", $rsp, $::CALLBACK);
my @output =
xCAT::Utils->runcmd("$::XCATROOT/bin/pping $hostname_list", -1);
xCAT::Utils->runcmd($cmd, -1);
if ($::RUNCMD_RC !=0) {
my $rsp={};
$rsp->{error}->[0] = "Error from pping";
+96
View File
@@ -0,0 +1,96 @@
#!/usr/bin/env perl
# IBM(c) 2013 EPL license http://www.eclipse.org/legal/epl-v10.html
package xCAT::DiscoveryUtils;
use strict;
use XML::Simple;
$XML::Simple::PREFERRED_PARSER='XML::Parser';
use xCAT::MsgUtils;
=head3 update_discovery_data
Update the discovery data from the xcat request to discoverydata table to indicate the discovery events
arg1 - the request
=cut
sub update_discovery_data {
my $class = shift;
my $request = shift;
my %disdata;
my %otherdata;
unless ($request->{'uuid'}->[0]) {
xCAT::MsgUtils->message("S", "Discovery Error: Found a node without uuid");
}
if ($request->{'discoverymethod'}->[0]) {
$disdata{'method'} = $request->{'discoverymethod'}->[0];
} else {
$disdata{'method'} = "undef";
}
#discoverytime
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
my $currtime = sprintf("%02d-%02d-%04d %02d:%02d:%02d",
$mon + 1, $mday, $year + 1900, $hour, $min, $sec);
$disdata{'discoverytime'} = $currtime;
foreach my $attr (keys %$request) {
if ($attr =~ /^(command|discoverymethod|_xcat|cacheonly|noderange|environment|method|discoverytime|updateswitch)/) {
next;
} elsif ($attr =~ /^(node|uuid|arch|cpucount|cputype|memory|mtm|serial)$/) {
$disdata{$attr} = $request->{$attr}->[0];
} elsif ($attr eq 'nic') {
# Set the nics attributes
foreach my $nic (@{$request->{nic}}) {
my $nicname = $nic->{'devname'}->[0];
foreach my $nicattr (keys %$nic) {
my $tbattr;
if ($nicattr eq 'driver') {
$tbattr = "nicdriver";
} elsif ($nicattr eq 'ip4address') {
$tbattr = "nicipv4";
} elsif ($nicattr eq 'hwaddr') {
$tbattr = "nichwaddr";
} elsif ($nicattr eq 'pcidev') {
$tbattr = "nicpci";
} elsif ($nicattr eq 'location') {
$tbattr = "nicloc";
} elsif ($nicattr eq 'onboardeth') {
$tbattr = "niconboard";
} elsif ($nicattr eq 'firmdesc') {
$tbattr = "nicfirm";
} elsif ($nicattr =~ /^(switchname|switchaddr|switchdesc|switchport)$/) {
$tbattr = $nicattr;
}
if ($tbattr) {
if ($disdata{$tbattr}) {
$disdata{$tbattr} .= ','.$nicname.'!'.$nic->{$nicattr}->[0];
} else {
$disdata{$tbattr} = $nicname.'!'.$nic->{$nicattr}->[0];
}
}
}
}
} else {
# store to otherdata for the not parsed attributes
$otherdata{$attr} = $request->{$attr};
}
}
if (keys %otherdata) {
$disdata{'otherdata'} = XMLout(\%otherdata,RootName=>'discoveryotherdata' ,NoAttr=>1);
}
my $distab = xCAT::Table->new('discoverydata');
if ($distab) {
$distab->setAttribs({uuid=>$request->{'uuid'}->[0]},\%disdata);
$distab->close();
}
}
1;
+18 -2
View File
@@ -67,7 +67,7 @@ sub getHcpAttribs
}
}
my @ps = $tabs->{ppc}->getAllNodeAttribs(['node','parent','nodetype']);
my @ps = $tabs->{ppc}->getAllNodeAttribs(['node','parent','nodetype','hcp','id']);
for my $entry ( @ps ) {
my $tmp_parent = $entry->{parent};
my $tmp_node = $entry->{node};
@@ -76,6 +76,12 @@ sub getHcpAttribs
push @{$ppchash{$tmp_parent}{children}}, $tmp_node;
#push @{$ppchash{$tmp_parent}}, $tmp_node;
}
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) ) {
@@ -173,6 +179,8 @@ sub getIPaddress
#the $nodetocheck is its' hcp. So set $nodetocheck to $parent variable.
#And then get the FSPs IPs for the CEC.
$parent = $nodetocheck;
} elsif ($type eq "blade") {
return $ppc->{$nodetocheck}->{children}->[0];
} else {
return undef;
}
@@ -363,11 +371,19 @@ sub fsp_api_action {
} elsif( $parameter !=0 && $action =~ /^(on|reset)$/ ) {
#powerinterval for lpars power on
$cmd = "$fsp_api -a $action -i $parameter -T $tooltype -t $type:$fsp_ip:$id:$node_name:";
} elsif ($action =~ /^part_set_lpar_def_state$/) {
$cmd = "$fsp_api -a $action -T $tooltype -s $parameter -t $type:$fsp_ip:$id:$node_name:";
} elsif (exists($request->{opt}->{vios})) {
$cmd = "$fsp_api -a $action -T $tooltype -s 1 -t $type:$fsp_ip:$id:$node_name:$parameter";
} else {
$cmd = "$fsp_api -a $action -T $tooltype -t $type:$fsp_ip:$id:$node_name:$parameter";
}
} else {
$cmd = "$fsp_api -a $action -T $tooltype -t $type:$fsp_ip:$id:$node_name:";
if (exists($request->{opt}->{vios})) {
$cmd = "$fsp_api -a $action -T $tooltype -s 1 -t $type:$fsp_ip:$id:$node_name:";
} else {
$cmd = "$fsp_api -a $action -T $tooltype -t $type:$fsp_ip:$id:$node_name:";
}
}
}
xCAT::MsgUtils->verbose_message($request, "fsp_api_action cmd:$cmd.");
+1 -1
View File
@@ -236,7 +236,7 @@ sub powercmd {
if($action =~ /^lowpower$/) { $action = "cec_on_low_power"; }
#if($action =~ /^cycle$/) {$action = "cec_reboot";}
if($action =~ /^cycle$/) {$action = "reset";}
if($action !~ /^cec_on_autostart$/ && $action !~ /^cec_off$/ && $action !~ /^cec_on_low_power$/ && $action !~ /^onstandby$/ && $action !~ /^reboot_service_processor$/ && $action !~ /^reset$/) {
if($action !~ /^cec_on_autostart$/ && $action !~ /^cec_off$/ && $action !~ /^cec_on_low_power$/ && $action !~ /^onstandby$/ && $action !~ /^reboot_service_processor$/ && $action !~ /^reset$/ && $action !~ /^sms$/) {
push @output, [$node_name, "\'$action\' command not supported for $$d[4]", -1 ];
return (\@output);
}
+34 -5
View File
@@ -13,6 +13,7 @@ use xCAT::GlobalDef;
use xCAT::Usage;
use xCAT::NetworkUtils;
use xCAT::FSPUtils;
require xCAT::data::ibmhwtypes;
#use Data::Dumper;
##############################################
@@ -259,7 +260,8 @@ sub format_output {
# Strip errors for results
#######################################
my @val = grep( !/^#.*: ERROR /, @$values );
xCAT::PPCdb::add_ppc( $hwtype, \@val );
#xCAT::PPCdb::add_ppc( $hwtype, \@val );
$values = xCAT::PPCdb::update_lpar( $hwtype, \@val, "write");
}
###########################################
@@ -270,7 +272,8 @@ sub format_output {
# Strip errors for results
#######################################
my @val = grep( !/^#.*: ERROR /, @$values );
$values = xCAT::PPCdb::update_ppc( $hwtype, \@val );
#$values = xCAT::PPCdb::update_ppc( $hwtype, \@val );
$values = xCAT::PPCdb::update_lpar( $hwtype, \@val );
if ( exists( $opt->{x} ) or exists( $opt->{z} ))
{
unshift @$values, "hmc";
@@ -391,6 +394,7 @@ sub format_stanza {
#################################
# Add each attribute
#################################
my $mtm = undef;
foreach ( @attribs ) {
my $d = $data[$i++];
@@ -401,7 +405,8 @@ sub format_stanza {
} elsif ( /^hwtype$/ ) {
$d = $globalhwtype{$type};
} elsif ( /^groups$/ ) {
$d = "$type,all";
next;
#$d = "$type,all";
} elsif ( /^mgt$/ ) {
$d = $hwtype;
} elsif ( /^cons$/ ) {
@@ -414,7 +419,9 @@ sub format_stanza {
} elsif ( /^(mtm|serial)$/ ) {
if ( $type eq "lpar" ) {
$d = undef;
}
} elsif (/^mtm$/) {
$mtm = $d;
}
} elsif (/^side$/) {
unless ( $type =~ /^fsp|bpa$/ ) {
next;
@@ -422,6 +429,15 @@ sub format_stanza {
}
$result .= "\t$_=$d\n";
}
my $tmp_groups = "$type,all";
if (defined($mtm)) {
my $tmp_pre = xCAT::data::ibmhwtypes::parse_group($mtm);
if (defined($tmp_pre)) {
$tmp_groups .= ",$tmp_pre";
}
}
$result .= "\tgroups=$tmp_groups\n";
}
return( $result );
}
@@ -464,6 +480,7 @@ sub format_xml {
#################################
# Add each attribute
#################################
my $mtm = undef;
foreach ( @attribs ) {
my $d = $data[$i++];
@@ -472,7 +489,8 @@ sub format_xml {
} elsif ( /^hwtype$/ ) {
$d = $globalhwtype{$type};
} elsif ( /^groups$/ ) {
$d = "$type,all";
next;
#$d = "$type,all";
} elsif ( /^mgt$/ ) {
$d = $hwtype;
} elsif ( /^cons$/ ) {
@@ -484,6 +502,8 @@ sub format_xml {
} elsif ( /^(mtm|serial)$/ ) {
if ( $type eq "lpar" ) {
$d = undef;
} elsif (/^mtm$/) {
$mtm = $d;
}
} elsif (/^side$/) {
unless ( $type =~ /^fsp|bpa$/ ) {
@@ -492,6 +512,15 @@ sub format_xml {
}
$href->{Node}->{$_} = $d;
}
my $tmp_groups = "$type,all";
if (defined($mtm)) {
my $tmp_pre = xCAT::data::ibmhwtypes::parse_group($mtm);
if (defined($tmp_pre)) {
$tmp_groups .= ",$tmp_pre";
}
}
$href->{Node}->{groups}=$tmp_groups;
#print Dumper($href);
#################################
# XML encoding
+6 -1
View File
@@ -116,6 +116,9 @@ sub enumerate_lcds {
} else {
my @array = split(/\n/, $data);
foreach my $a (@array) {
if ($a !~ /:\s?[^\s]*\s?[0|1]/) {
next;
}
my @t = split(/:/, $a);
my $name = $t[0];
$data = $t[1];
@@ -429,8 +432,10 @@ sub lcds {
}
}
if( $type =~ /lpar|blade/ ) {
if( $type eq "lpar" ) {
$action = "query_lcds";
} elsif ($type eq "blade") {
$action = "pblade_query_lcds";
} else {
$action = "cec_query_lcds";
}
+906 -53
View File
File diff suppressed because it is too large Load Diff
+3
View File
@@ -37,6 +37,7 @@ $::NODETYPE_MP="mp";
$::STATUS_SYNCING="syncing";
$::STATUS_OUT_OF_SYNC="out-of-sync";
$::STATUS_SYNCED="synced";
$::STATUS_FAILED="failed";
# valid values for nodelist.status columns or other status
@@ -55,6 +56,7 @@ $::STATUS_SHELL="shell";
$::STATUS_DEFINED="defined";
$::STATUS_UNKNOWN="unknown";
$::STATUS_FAILED="failed";
$::STATUS_BMCREADY="bmcready";
%::VALID_STATUS_VALUES = (
$::STATUS_ACTIVE=>1,
$::STATUS_INACTIVE=>1,
@@ -71,6 +73,7 @@ $::STATUS_FAILED="failed";
$::STATUS_DEFINED=>1,
$::STATUS_UNKNOWN=>1,
$::STATUS_FAILED=>1,
$::STATUS_BMCREADY=>1,
$::STATUS_SYNCING=>1,
$::STATUS_OUT_OF_SYNC=>1,
+17 -3
View File
@@ -893,12 +893,12 @@ sub dolitesetup
}
}
if (-e $litetreetab) {
my $rc = xCAT::Utils->runcmd("rm $litetreetab", -1);
if (-e $litetreetable) {
my $rc = xCAT::Utils->runcmd("rm $litetreetable", -1);
if ($::RUNCMD_RC != 0)
{
my $rsp;
push @{$rsp->{data}}, "Could not remove existing $litetreetab file.";
push @{$rsp->{data}}, "Could not remove existing $litetreetable file.";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
@@ -1132,6 +1132,10 @@ sub dolitesetup
# $file could be full path file name or dir name
# ex. /foo/bar/ or /etc/lppcfg
my ($node, $option, $file) = split (/\|/, $line);
if (!$file) {
next;
}
# ex. .../inst_root/foo/bar/ or .../inst_root/etc/lppcfg
my $instrootfile = $instrootloc . $file;
@@ -1349,6 +1353,16 @@ 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;
}
}
}
}
+89 -18
View File
@@ -827,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] = "ok";#"\s*3 >";
$pattern[0] = "local-mac-address.*ok";#"\s*3 >";
$newstate[0] = 1;
# cmd(1) is a dot (.). This is a stack manipulation command that removes one
@@ -1231,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(.*)ok(.*)0 >(.*)";
$pattern[2] = "ok";
$pattern[2] = ".*dev.*packages.*net(.*)ok(.*)0 >(.*)";
#$pattern[2] = "ok";
$newstate[2]= 3;
# state 3, ping the server
@@ -1266,6 +1266,7 @@ 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" ) {
@@ -1323,8 +1324,10 @@ 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 {
@@ -1362,7 +1365,9 @@ 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";
@@ -1849,6 +1854,14 @@ sub boot_network {
$state = $newstate[$state];
}
],
# For some old firmware, does not output "----"
[qr/BOOTP/=>
sub {
nc_msg ($verbose, $msg[$state]);
$rconsole->clear_accum();
$state = $newstate[$state];
}
],
[qr/]/=>
sub {
nc_msg($verbose, "Unexpected prompt\n");
@@ -1917,7 +1930,28 @@ sub Boot {
#],
[qr/BOOTP/=> #-ex
sub {
nc_msg($verbose, "# Network boot proceeding, exiting.\n");
nc_msg($verbose, "# Network boot proceeding - matched BOOTP, exiting.\n");
$rconsole->clear_accum();
}
],
# Welcome to AIX - some old firmware does not output BOOTP or ----
[qr/Welcome/=> #-ex
sub {
nc_msg($verbose, "# Network boot proceeding - matched Welcome, exiting.\n");
$rconsole->clear_accum();
}
],
# tftp file download - some old firmware does not output BOOTP or ----
[qr/FILE/=> #-ex
sub {
nc_msg($verbose, "# Network boot proceeding - matched FILE.\n");
$rconsole->clear_accum();
}
],
# some old firmware does not output BOOTP or ----
[qr/Elapsed/=> #-ex
sub {
nc_msg($verbose, "# Network boot proceeding - matched Elapsed, exiting.\n");
$rconsole->clear_accum();
}
],
@@ -2021,14 +2055,46 @@ sub multiple_open_dev {
; \r";
send_command($verbose, $rconsole, $command);
$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(.*)>/=>
[qr/>/=>
[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);
$rconsole->expect(
$timeout,
[qr/patch new-open-dev(.*)ok/=>
#[qr/>/=>
sub {
nc_msg($verbose, "Status: at End of multiple_open_dev \n");
$rconsole->clear_accum();
@@ -2057,6 +2123,7 @@ sub multiple_open_dev {
}
],
);
return $rc;
}
###################################################################
@@ -2540,7 +2607,7 @@ sub lparnetbootexp
####################################
nc_msg($verbose, "Connecting to the $node.\n");
sleep 3;
$timeout = 2;
$timeout = 10;
$rconsole->expect(
$timeout,
[ qr/Enter.* for help.*/i =>
@@ -2749,6 +2816,8 @@ sub lparnetbootexp
$done = 0;
$retry_count = 0;
$timeout = 10;
while (!$done) {
my @result = $rconsole->expect(
$timeout,
@@ -2856,6 +2925,7 @@ sub lparnetbootexp
}
}
##############################
# Call multiple_open_dev to
# circumvent firmware OPEN-DEV
@@ -2890,6 +2960,7 @@ 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
@@ -2943,7 +3014,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);
}
@@ -3148,12 +3219,12 @@ sub lparnetbootexp
}
],
);
return [1] if ($rc eq 1);
}
nc_msg($verbose, "# bootp sent over network.\n");
$rc = Boot($rconsole, $node, $verbose);#, @expect_out);
unless ($rc eq 0) {
nc_msg($verbose, "Can't boot here. \n");
return [1] if ($rc eq 1);
nc_msg($verbose, "# bootp sent over network.\n");
$rc = Boot($rconsole, $node, $verbose);#, @expect_out);
unless ($rc eq 0) {
nc_msg($verbose, "Can't boot here. \n");
}
}
}
+4 -7
View File
@@ -10,7 +10,7 @@ if ($^O =~ /^aix/i) {
}
use strict;
use Sys::Syslog qw (:DEFAULT setlogsock);
use Sys::Syslog;
use xCAT::Utils;
#use locale;
use Socket;
@@ -456,8 +456,7 @@ sub message
# If they want this msg to also go to syslog, do that now
eval {
openlog("xCAT", '', 'local4');
setlogsock(["tcp", "unix", "stream"]);
openlog("xCAT", "nofatal,pid", "local4");
if ($sev eq 'SE') {
syslog("err", $rsp);
} else {
@@ -503,8 +502,7 @@ sub message
{
print $stdouterrf "Unable to open auditlog\n";
eval {
openlog("xCAT", '', 'local4');
setlogsock(["tcp", "unix", "stream"]);
openlog("xCAT", "nofatal,pid", "local4");
syslog("err", "Unable to write to auditlog");
closelog();
};
@@ -521,8 +519,7 @@ sub message
{ # error
print $stdouterrf "Unable to open auditlog\n";
eval {
openlog("xCAT", '', 'local4');
setlogsock(["tcp", "unix", "stream"]);
openlog("xCAT", "nofatal,pid", "local4");
syslog("err", "Unable to open auditlog");
closelog();
};
-271
View File
@@ -1,271 +0,0 @@
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
package xCAT::NameRange;
require xCAT::Table;
require Exporter;
use strict;
#Perl implementation of namerange
# NOTE: This is identical to xCAT::NodeRange except that no
# database access occurs, no nodes are verified, and
# no nodegroups are expanded.
# Made a new utility since NodeRange is used EVERYWHERE in
# xCAT code and did not want to risk de-stabilizing existing code.
our @ISA = qw(Exporter);
our @EXPORT = qw(namerange);
my $recurselevel=0;
sub subnodes (\@@) {
#Subtract set of nodes from the first list
my $nodes = shift;
my $node;
foreach $node (@_) {
@$nodes = (grep(!/^$node$/,@$nodes));
}
}
sub expandatom {
my $atom = shift;
my @nodes= ();
if ($atom =~ /^\(.*\)$/) { # handle parentheses by recursively calling namerange()
$atom =~ s/^\((.*)\)$/$1/;
$recurselevel++;
return namerange($atom);
}
if ($atom =~ /@/) {
$recurselevel++;
return namerange($atom);
}
if ($atom =~ m/^\//) { # A regular expression - not supported in namerange
return ($atom);
}
if ($atom =~ m/(.*)\[(.*)\](.*)/) { # square bracket range
#for the time being, we are only going to consider one [] per atom
#xcat 1.2 does no better
my @subelems = split(/([\,\-\:])/,$2);
my $subrange="";
while (my $subelem = shift @subelems) {
my $subop=shift @subelems;
$subrange=$subrange."$1$subelem$3$subop";
}
foreach (split /,/,$subrange) {
my @newnodes=expandatom($_);
@nodes=(@nodes,@newnodes);
}
return @nodes;
}
if ($atom =~ m/\+/) { # process the + operator
$atom =~ m/^([^0-9]*)([0-9]+)([^\+]*)\+([0-9]+)/;
my $pref=$1;
my $startnum=$2;
my $suf=$3;
my $end=$4+$startnum;
my $endnum = sprintf("%d",$end);
if (length ($startnum) > length ($endnum)) {
$endnum = sprintf("%0".length($startnum)."d",$end);
}
foreach ("$startnum".."$endnum") {
my @addnodes=expandatom($pref.$_.$suf);
@nodes=(@nodes,@addnodes);
}
return (@nodes);
}
if ($atom =~ m/[-:]/) { # process the minus range operator
my $left;
my $right;
if ($atom =~ m/:/) {
($left,$right)=split /:/,$atom;
} else {
my $count= ($atom =~ tr/-//);
if (($count % 2)==0) { #can't understand even numbers of - in range context
# we might not really be in range context
return ($atom);
}
my $expr="([^-]+?".("-[^-]*"x($count/2)).")-(.*)";
$atom =~ m/$expr/;
$left=$1;
$right=$2;
}
if ($left eq $right) { #if they said node1-node1 for some strange reason
return expandatom($left);
}
my @leftarr=split(/(\d+)/,$left);
my @rightarr=split(/(\d+)/,$right);
if (scalar(@leftarr) != scalar(@rightarr)) { #Mismatch formatting..
# guess it's meant to be a nodename
return ($atom);
}
my $prefix = "";
my $suffix = "";
foreach (0..$#leftarr) {
my $idx = $_;
if ($leftarr[$idx] =~ /^\d+$/ and $rightarr[$idx] =~ /^\d+$/) { #pure numeric component
if ($leftarr[$idx] ne $rightarr[$idx]) { #We have found the iterator (only supporting one for now)
my $prefix = join('',@leftarr[0..($idx-1)]); #Make a prefix of the pre-validated parts
my $luffix; #However, the remainder must still be validated to be the same
my $ruffix;
if ($idx eq $#leftarr) {
$luffix="";
$ruffix="";
} else {
$ruffix = join('',@rightarr[($idx+1)..$#rightarr]);
$luffix = join('',@leftarr[($idx+1)..$#leftarr]);
}
if ($luffix ne $ruffix) { #the suffixes mismatched..
return ($atom);
}
foreach ($leftarr[$idx]..$rightarr[$idx]) {
my @addnodes=expandatom($prefix.$_.$luffix);
@nodes=(@nodes,@addnodes);
}
return (@nodes); #the return has been built, return, exiting loop and all
}
} elsif ($leftarr[$idx] ne $rightarr[$idx]) {
return ($atom);
}
$prefix .= $leftarr[$idx]; #If here, it means that the pieces were the same, but more to come
}
#I cannot conceive how the code could possibly be here, but whatever it is, it must be questionable
return ($atom);
}
return ($atom);
}
sub namerange {
#We for now just do left to right operations
my $range=shift;
my %nodes = ();
my %delnodes = ();
my $op = ",";
my @elems = split(/(,(?![^[]*?])(?![^\(]*?\)))/,$range); # commas outside of [] or ()
if (scalar(@elems)==1) {
@elems = split(/(@(?![^\(]*?\)))/,$range); # only split on @ when no , are present (inner recursion)
}
while (my $atom = shift @elems) {
if ($atom =~ /^-/) { # if this is an exclusion, strip off the minus, but remember it
$atom = substr($atom,1);
$op = $op."-";
}
if ($atom =~ /^\^(.*)$/) { # get a list of nodes from a file
open(NRF,$1);
while (<NRF>) {
my $line=$_;
unless ($line =~ m/^[\^#]/) {
$line =~ m/^([^: ]*)/;
my $newrange = $1;
chomp($newrange);
$recurselevel++;
my @filenodes = namerange($newrange);
foreach (@filenodes) {
$nodes{$_}=1;
}
}
}
close(NRF);
next;
}
my %newset = map { $_ =>1 } expandatom($atom); # expand the atom and make each entry in the resulting array a key in newset
if ($op =~ /@/) { # compute the intersection of the current atom and the node list we have received before this
foreach (keys %nodes) {
unless ($newset{$_}) {
delete $nodes{$_};
}
}
} elsif ($op =~ /,-/) { # add the nodes from this atom to the exclude list
foreach (keys %newset) {
$delnodes{$_}=1; #delay removal to end
}
} else { # add the nodes from this atom to the total node list
foreach (keys %newset) {
$nodes{$_}=1;
}
}
$op = shift @elems;
} # end of main while loop
# Now remove all the exclusion nodes
foreach (keys %nodes) {
if ($delnodes{$_}) {
delete $nodes{$_};
}
}
if ($recurselevel) {
$recurselevel--;
}
return sort (keys %nodes);
}
1;
=head1 NAME
xCAT::NameRange - Perl module for xCAT namerange expansion
=head1 SYNOPSIS
use xCAT::NameRange;
my @nodes=namerange("storage@rack1,node[1-200],^/tmp/nodelist,node300-node400,node401+10,500-550");
=head1 DESCRIPTION
namerange interprets xCAT noderange formatted strings and returns a list of
names. The following two operations are supported on elements, and interpreted
left to right:
, union next element with everything to the left.
@ take intersection of element to the right with everything on the left
(i.e. mask out anything to the left not belonging to what is described to
the right)
Each element can be a number of things:
A node name, i.e.:
=item * node1
A hyphenated node range (only one group of numbers may differ between the left and right hand side, and those numbers will increment in a base 10 fashion):
node1-node200 node1-compute-node200-compute
node1:node200 node1-compute:node200-compute
A namerange denoted by brackets:
node[1-200] node[001-200]
A regular expression describing the namerange:
/d(1.?.?|200)
A node plus offset (this increments the first number found in nodename):
node1+199
And most of the above substituting groupnames.
3C
3C
NameRange tries to be intelligent about detecting padding, so you can:
node001-node200
And it will increment according to the pattern.
=head1 COPYRIGHT
Copyright 2007 IBM Corp. All rights reserved.
=cut
+30 -7
View File
@@ -422,11 +422,6 @@ sub ishostinsubnet {
if ($ip =~ /:/) {#ipv6
$numbits=128;
}
# IPv6 subnet with netmask postfix like /64
if ($subnet && ($subnet =~ /\//))
{
$subnet =~ s/\/.*$//;
}
if ($mask) {
if ($mask =~ /\//) {
$mask =~ s/^\///;
@@ -442,6 +437,10 @@ sub ishostinsubnet {
die "ishostinsubnet must either be called with a netmask or CIDR /bits notation";
}
}
if ($subnet && ($subnet =~ /\//)) #remove CIDR suffix from subnet
{
$subnet =~ s/\/.*$//;
}
$ip = getipaddr($ip,GetNumber=>1);
$subnet = getipaddr($subnet,GetNumber=>1);
$ip &= $mask;
@@ -2186,8 +2185,12 @@ sub isValidMAC
sub isValidHostname
{
my ($class, $hostname) = @_;
if ($hostname =~ /^[a-z0-9][\-a-z0-9]+[a-z0-9]$/){
return 1;
if ($hostname =~ /^[a-z0-9]/){
if ($hostname =~ /[a-z0-9]$/){
if ($hostname =~ /^[\-a-z0-9]+$/){
return 1;
}
}
}
return 0;
}
@@ -2250,6 +2253,26 @@ sub int_to_ip
#-------------------------------------------------------------------------------
=head3 getBroadcast
Description : Get the broadcast ips
Arguments : ipstr - the IPv4 string ip.
netmask - the subnet mask of network
Returns : bcipint - the IPv4 string of broadcast ip.
=cut
#-------------------------------------------------------------------------------
sub getBroadcast
{
my ($class, $ipstr, $netmask) = @_;
my $ipint = xCAT::NetworkUtils->ip_to_int($ipstr);
my $maskint = xCAT::NetworkUtils->ip_to_int($netmask);
my $tmp = sprintf("%d", ~$maskint);
my $bcnum = sprintf("%d", ($ipint | $tmp) & hex('0x00000000FFFFFFFF'));
return xCAT::NetworkUtils->int_to_ip($bcnum);
}
#-------------------------------------------------------------------------------
=head3 get_allips_in_range
Description : Get all IPs in a IP range, return in a list.
Arguments : $startip - start IP address
+99 -33
View File
@@ -1,5 +1,6 @@
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
package xCAT::NodeRange;
use Text::Balanced qw/extract_bracketed/;
require xCAT::Table;
require Exporter;
use strict;
@@ -148,7 +149,7 @@ sub nodesbycriteria {
}
if ($neednewcache) {
if ($nodelist) {
$nodelist->_clear_cache();
#$nodelist->_clear_cache();
$nodelist->_build_cache(\@cachedcolumns);
}
}
@@ -180,7 +181,14 @@ sub nodesbycriteria {
return \%critnodes;
}
sub expandatom { #TODO: implement table selection as an atom (nodetype.os==rhels5.3)
# Expand one part of the noderange from the noderange() function. Initially, one part means the
# substring between commas in the noderange. But expandatom also calls itself recursively to
# further expand some parts.
# Input args:
# - atom to expand
# - verify: whether or not to require that the resulting nodenames exist in the nodelist table
# - options: genericrange - a purely syntactical expansion of the range, not using the db at all, e.g not expanding group names
sub expandatom {
my $atom = shift;
if ($recurselevel > 4096) { die "NodeRange seems to be hung on evaluating $atom, recursion limit hit"; }
unless (scalar(@allnodeset) and (($allnodesetstamp+5) > time())) { #Build a cache of all nodes, some corner cases will perform worse, but by and large it will do better. We could do tests to see where the breaking points are, and predict how many atoms we have to evaluate to mitigate, for now, implement the strategy that keeps performance from going completely off the rails
@@ -189,25 +197,28 @@ sub expandatom { #TODO: implement table selection as an atom (nodetype.os==rhels
@allnodeset = $nodelist->getAllAttribs('node','groups');
%allnodehash = map { $_->{node} => 1 } @allnodeset;
}
my $verify = (scalar(@_) == 1 ? shift : 1);
my $verify = (scalar(@_) >= 1 ? shift : 1);
my %options = @_; # additional options
my @nodes= ();
#TODO: these env vars need to get passed by the client to xcatd
my $nprefix=(defined ($ENV{'XCAT_NODE_PREFIX'}) ? $ENV{'XCAT_NODE_PREFIX'} : 'node');
my $nsuffix=(defined ($ENV{'XCAT_NODE_SUFFIX'}) ? $ENV{'XCAT_NODE_SUFFIX'} : '');
if ($allnodehash{$atom}) { #The atom is a plain old nodename
if (not $options{genericrange} and $allnodehash{$atom}) { #The atom is a plain old nodename
return ($atom);
}
if ($atom =~ /^\(.*\)$/) { # handle parentheses by recursively calling noderange()
$atom =~ s/^\((.*)\)$/$1/;
$recurselevel++;
return noderange($atom);
return noderange($atom,$verify,1,%options);
}
if ($atom =~ /@/) {
$recurselevel++;
return noderange($atom);
return noderange($atom,$verify,1,%options);
}
# Try to match groups?
unless ($options{genericrange}) {
unless ($grptab) {
$grptab = xCAT::Table->new('nodegroup');
}
@@ -269,7 +280,9 @@ sub expandatom { #TODO: implement table selection as an atom (nodetype.os==rhels
}
}
}
}
# node selection based on db attribute values (nodetype.os==rhels5.3)
if ($atom =~ m/[=~]/) { #TODO: this is the clunky, slow code path to acheive the goal. It also is the easiest to write, strange coincidence. Aggregating multiples would be nice
my @nodes;
foreach (@allnodeset) {
@@ -287,7 +300,7 @@ sub expandatom { #TODO: implement table selection as an atom (nodetype.os==rhels
}
if ($atom =~ m/^[0-9]+\z/) { # if only numbers, then add the prefix
my $nodename=$nprefix.$atom.$nsuffix;
return expandatom($nodename,$verify);
return expandatom($nodename,$verify,%options);
}
my $nodelen=@nodes;
if ($nodelen > 0) {
@@ -295,7 +308,7 @@ sub expandatom { #TODO: implement table selection as an atom (nodetype.os==rhels
}
if ($atom =~ m/^\//) { # A regular expression
unless ($verify) { # If not in verify mode, regex makes zero possible sense
if ($verify==0 or $options{genericrange}) { # If not in verify mode, regex makes zero possible sense
return ($atom);
}
#TODO: check against all groups
@@ -309,25 +322,29 @@ sub expandatom { #TODO: implement table selection as an atom (nodetype.os==rhels
}
if ($atom =~ m/(.+?)\[(.+?)\](.*)/) { # square bracket range
# if there are more than 1 [], we picked off just the 1st. if there is another, we will process it later
my @subelems = split(/([\,\-\:])/,$2);
# if there is more than 1 set of [], we picked off just the 1st. If there more sets of [], we will expand
# the 1st set and create a new set of atom by concatenating each result in the 1st expandsion with the rest
# of the brackets. Then call expandatom() recursively on each new atom.
my @subelems = split(/([\,\-\:])/,$2); # $2 is the range inside the 1st set of brackets
my $subrange="";
my $subelem;
my $start = $1;
my $ending = $3;
my $morebrackets = $ending =~ /\[.+?\]/; # if there are more brackets, we have to expand just the 1st part, then add the 2nd part later
while (scalar @subelems) {
my $subelem = shift @subelems;
my $subelem;
my $start = $1; # the text before the 1st set of brackets
my $ending = $3; # the text after the 1st set of brackets (could contain more brackets)
my $morebrackets = $ending =~ /\[.+?\]/; # if there are more brackets, we have to expand just the 1st part, then add the 2nd part later
while (scalar @subelems) { # this while loop turns something like a[1-3] into a1-a3 because another section of expand atom knows how to expand that
my $subelem = shift @subelems;
my $subop=shift @subelems;
$subrange=$subrange."$start$subelem" . ($morebrackets?'':$ending) . "$subop";
}
foreach (split /,/,$subrange) {
my @newnodes=expandatom($_, ($morebrackets?0:$verify));
foreach (split /,/,$subrange) { # this foreach is in case there were commas inside the brackets originally, e.g.: a[1,3,5]b[1-2]
# this expandatom just expands the part of the noderange that contains the 1st set of brackets
# e.g. if noderange is a[1-2]b[1-2] it will create newnodes of a1 and a2
my @newnodes=expandatom($_, ($morebrackets?0:$verify), genericrange=>($morebrackets||$options{genericrange}));
if (!$morebrackets) { push @nodes,@newnodes; }
else {
# for each of the new nodes, add the 2nd brackets and then expand
# for each of the new nodes (prefixes), add the rest of the brackets and then expand recursively
foreach my $n (@newnodes) {
push @nodes, expandatom("$n$ending", $verify);
push @nodes, expandatom("$n$ending", $verify, %options);
}
}
}
@@ -349,7 +366,7 @@ sub expandatom { #TODO: implement table selection as an atom (nodetype.os==rhels
$suf=$nsuffix;
}
foreach ("$startnum".."$endnum") {
my @addnodes=expandatom($pref.$_.$suf,$verify);
my @addnodes=expandatom($pref.$_.$suf,$verify,%options);
@nodes=(@nodes,@addnodes);
}
return (@nodes);
@@ -376,7 +393,7 @@ sub expandatom { #TODO: implement table selection as an atom (nodetype.os==rhels
$right=$2;
}
if ($left eq $right) { #if they said node1-node1 for some strange reason
return expandatom($left,$verify);
return expandatom($left,$verify,%options);
}
my @leftarr=split(/(\d+)/,$left);
my @rightarr=split(/(\d+)/,$right);
@@ -413,7 +430,7 @@ sub expandatom { #TODO: implement table selection as an atom (nodetype.os==rhels
}
}
foreach ($leftarr[$idx]..$rightarr[$idx]) {
my @addnodes=expandatom($prefix.$_.$luffix,$verify);
my @addnodes=expandatom($prefix.$_.$luffix,$verify,%options);
push @nodes,@addnodes;
}
return (@nodes); #the return has been built, return, exiting loop and all
@@ -461,7 +478,7 @@ sub retain_cache { #A semi private operation to be used *ONLY* in the interestin
%allgrphash=();
}
}
sub extnoderange { #An extended noderange function. Needed as the more straightforward function return format too simple for this.
sub extnoderange { #An extended noderange function. Needed by the GUI as the more straightforward function return format too simple for this.
my $range = shift;
my $namedopts = shift;
my $verify=1;
@@ -487,7 +504,7 @@ sub extnoderange { #An extended noderange function. Needed as the more straight
return $return;
}
sub abbreviate_noderange {
#takes a list of nodes or a string and abbreviates
#takes a list of nodes or a string and reduces it by replacing a list of nodes that make up a group with the group name itself
my $nodes=shift;
my %grouphash;
my %sizedgroups;
@@ -533,16 +550,40 @@ sub abbreviate_noderange {
return (join ',',keys %targetelems,keys %nodesleft);
}
sub set_arith {
my $operand = shift;
my $op = shift;
my $newset = shift;
if ($op =~ /@/) { # compute the intersection of the current atom and the node list we have received before this
foreach (keys %$operand) {
unless ($newset->{$_}) {
delete $operand->{$_};
}
}
} elsif ($op =~ /,-/) { # add the nodes from this atom to the exclude list
foreach (keys %$newset) {
delete $operand->{$_}
}
} else { # add the nodes from this atom to the total node list
foreach (keys %$newset) {
$operand->{$_}=1;
}
}
}
# Expand the given noderange
# Input args:
# - noderange to expand
# - verify: whether or not to require that the resulting nodenames exist in the nodelist table
# - exsitenode: whether or not to honor site.excludenodes to automatically exclude those nodes from all noderanges
# - options: genericrange - a purely syntactical expansion of the range, not using the db at all, e.g not expanding group names
sub noderange {
$missingnodes=[];
#We for now just do left to right operations
my $range=shift;
$range =~ s/['"]//g;
my $verify = (scalar(@_) >= 1 ? shift : 1);
#excludenodes attribute in site table,
#these nodes should be excluded for any xCAT commands
my $exsitenode = (scalar(@_) >= 1 ? shift : 1);
my $exsitenode = (scalar(@_) >= 1 ? shift : 1); # if 1, honor site.excludenodes
my %options = @_; # additional options
unless ($nodelist) {
$nodelist =xCAT::Table->new('nodelist',-create =>1);
@@ -553,20 +594,45 @@ sub noderange {
}
my %nodes = ();
my %delnodes = ();
if ($range =~ /\(/) {
my ($middle, $end, $start) =
extract_bracketed($range, '()', qr/[^()]*/);
unless ($middle) { die "Unbalanced parentheses in noderange" }
$middle = substr($middle,1,-1);
my $op = ",";
if ($start =~ m/-$/) { #subtract the parenthetical
$op .= "-"
} elsif ($start =~ m/\@$/) {
$op = "@"
}
$start =~ s/,-$//;
$start =~ s/,$//;
$start =~ s/\@$//;
%nodes = map { $_ => 1 } noderange($start,$verify,$exsitenode,%options);
my %innernodes = map { $_ => 1 } noderange($middle,$verify,$exsitenode,%options);
set_arith(\%nodes,$op,\%innernodes);
$range = $end;
}
my $op = ",";
my @elems = split(/(,(?![^[]*?])(?![^\(]*?\)))/,$range); # commas outside of [] or ()
if (scalar(@elems)==1) {
@elems = split(/(@(?![^\(]*?\)))/,$range); # only split on @ when no , are present (inner recursion)
}
while (my $atom = shift @elems) {
while (defined(my $atom = shift @elems)) {
if ($atom eq '') { next; }
if ($atom eq ',') {
next;
}
if ($atom =~ /^-/) { # if this is an exclusion, strip off the minus, but remember it
$atom = substr($atom,1);
$op = $op."-";
} elsif ($atom =~ /^\@/) { # if this is an exclusion, strip off the minus, but remember it
$atom = substr($atom,1);
$op = "@";
}
if ($atom eq '') { next; }
if ($atom =~ /^\^(.*)$/) { # get a list of nodes from a file
open(NRF,$1);
@@ -577,7 +643,7 @@ sub noderange {
my $newrange = $1;
chomp($newrange);
$recurselevel++;
my @filenodes = noderange($newrange);
my @filenodes = noderange($newrange,$verify,$exsitenode,%options);
foreach (@filenodes) {
$nodes{$_}=1;
}
@@ -587,7 +653,7 @@ sub noderange {
next;
}
my %newset = map { $_ =>1 } expandatom($atom,$verify); # expand the atom and make each entry in the resulting array a key in newset
my %newset = map { $_ =>1 } expandatom($atom,$verify,%options); # expand the atom and make each entry in the resulting array a key in newset
if ($op =~ /@/) { # compute the intersection of the current atom and the node list we have received before this
foreach (keys %nodes) {
@@ -614,7 +680,7 @@ sub noderange {
my $badnoderange = 0;
my @badnodes = ();
if ($::XCATSITEVALS{excludenodes}) {
@badnodes = noderange($::XCATSITEVALS{excludenodes}, 1, 0);
@badnodes = noderange($::XCATSITEVALS{excludenodes}, 1, 0, %options);
foreach my $bnode (@badnodes) {
if (!$delnodes{$bnode}) {
$delnodes{$bnode} = 1;
+3 -3
View File
@@ -139,7 +139,7 @@ sub connect {
my $timeout = $req->{ppctimeout};
my $verbose = $req->{verbose};
my $ssh;
my $expect_log;
my $expect_log = "/dev/null";
my $errmsg;
if ($req->{command} eq 'rflash') {
@@ -170,7 +170,7 @@ sub connect {
##################################################
if ( $verbose ) {
close STDERR;
if ( !open( STDERR, '>', \$expect_log )) {
if ( !open( STDERR, '>', $expect_log )) {
return( "Unable to redirect STDERR: $!" );
}
}
@@ -179,7 +179,7 @@ sub connect {
##################################################
if ( $verbose ) {
close STDOUT;
if ( !open( STDOUT, '>', \$expect_log )) {
if ( !open( STDOUT, '>', $expect_log )) {
return( "Unable to redirect STDOUT: $!" );
}
}
+27 -9
View File
@@ -99,7 +99,7 @@ sub mkhwconn_parse_args
#my $nodetype_hash = $nodetypetab->getNodeAttribs( $node,[qw(nodetype)]);
my $node_parent_hash = $ppctab->getNodeAttribs( $node,[qw(parent)]);
#$nodetype = $nodetype_hash->{nodetype};
$nodetype = xCAT::DBobjUtils->getnodetype($node);
$nodetype = xCAT::DBobjUtils->getnodetype($node,"ppc");
$node_parent = $node_parent_hash->{parent};
if ( !$nodetype )
{
@@ -107,7 +107,7 @@ sub mkhwconn_parse_args
next;
} else
{
unless ( $nodetype =~ /^(fsp|bpa|frame|cec|hmc)$/)
unless ( $nodetype =~ /^(blade|fsp|bpa|frame|cec|hmc)$/)
{
return ( usage("Node type is incorrect. \n"));
}
@@ -486,9 +486,13 @@ sub mkhwconn
# Get IP address
############################
my $cnode;
my $ntype = xCAT::DBobjUtils::getnodetype($node_name);
if ($ntype =~ /^(cec|frame)$/)
#my $ntype = xCAT::DBobjUtils::getnodetype($node_name);
my $ntype = $$d[4];
if ($ntype =~ /^(cec|frame|blade)$/)
{
if ($ntype eq "blade") {
delete $opt->{port};
}
$cnode = xCAT::DBobjUtils::getchildren($node_name, $opt->{port});
} else {
$cnode = $node_name;
@@ -518,12 +522,17 @@ sub mkhwconn
next;
}
my ( undef,undef,$mtms,undef,$type) = @$d;
my ( undef,undef,$mtms,undef,$type,$bpa) = @$d;
my ($user, $passwd);
if ( exists $opt->{P})
{
($user, $passwd) = ('HMC', $opt->{P});
}
elsif ($type eq "blade") {
$user = "USERID";
($user, $passwd) = xCAT::PPCdb::credentials( $bpa, $type, $user);
$type = "cec";
}
else
{
($user, $passwd) = xCAT::PPCdb::credentials( $node_name, $type,'HMC');
@@ -707,7 +716,7 @@ sub rmhwconn
my $d = $node_hash->{$node_name};
my ( undef,undef,undef,undef,$type) = @$d;
if ($type eq "blade") {$type = "cec";}
############################
# Get IP address
############################
@@ -724,10 +733,19 @@ sub rmhwconn
my @ips;
foreach my $entry ( @$nodes_found ) {
if ( $entry =~ /$mtm\*$serial/) {
$entry =~ /ipaddr=(\d+\.\d+\.\d+\.\d+),/;
push @ips, $1;
if ($entry =~ /type_model_serial_num=([^,]*),/) {
my $match_mtm1 = $1;
my $match_mtm2 = $match_mtm1;
$match_mtm2 =~ s/\-//;
if ($match_mtm1 =~ /$mtm\*$serial/ || $match_mtm2 =~ /$mtm\*$serial/) {
$entry =~ /ipaddr=(\d+\.\d+\.\d+\.\d+),/;
push @ips, $1;
}
}
#if ( $entry =~ /$mtm\*$serial/) {
# $entry =~ /ipaddr=(\d+\.\d+\.\d+\.\d+),/;
# push @ips, $1;
#}
}
if (!@ips)
{
+112 -5
View File
@@ -7,6 +7,7 @@ use xCAT::GlobalDef;
use xCAT::Utils;
use xCAT::TableUtils;
use xCAT::NetworkUtils;
require xCAT::data::ibmhwtypes;
###########################################
# Factory defaults
@@ -100,7 +101,6 @@ sub add_ppc {
$parent,
$ips,
$mac ) = split /,/;
###############################
# Update nodetype table
###############################
@@ -168,6 +168,10 @@ sub add_ppc {
# Update nodelist table
###########################
updategroups( $name, $db{nodelist}, $type );
my $tmp_group = xCAT::data::ibmhwtypes::parse_group($model);
if (defined($tmp_group)) {
updategroups($name, $db{nodelist}, $tmp_group);
}
if ( $type =~ /^(fsp|bpa)$/ ) {
$db{nodelist}->setNodeAttribs( $name, {hidden => '1'});
} else {
@@ -236,6 +240,97 @@ sub add_ppc {
}
return undef;
}
##########################################################################
# Update lpar information in the xCAT databases
##########################################################################
sub update_lpar {
my $hwtype = shift;
my $values = shift;
my $write = shift;
my @tabs = qw(ppc vpd nodehm nodelist nodetype ppcdirect hosts mac);
my %db = ();
my @update_list = ();
my @write_list = ();
###################################
# Open database needed
###################################
foreach ( @tabs ) {
$db{$_} = xCAT::Table->new( $_, -create=>1, -autocommit=>0 );
if ( !$db{$_} ) {
return( "Error opening '$_'" );
}
}
my @vpdlist = $db{vpd}->getAllNodeAttribs(['node','serial','mtm','side']);
my @ppclist = $db{ppc}->getAllNodeAttribs(['node','hcp','id',
'pprofile','parent','nodetype',
'comments', 'disable']);
# 'cec,cec1,,8246-L1D,100A9DA,,cec1,,cec1',
# 'lpar,10-0A9DA,1,8246-L1D,100A9DA,,cec1,,cec1'
my %ppchash = ();
my %vpdhash = ();
foreach my $ppcent (@ppclist) {
if ($ppcent->{id} and $ppcent->{nodetype} and $ppcent->{nodetype} eq "lpar") {
my $key = $ppcent->{node};
$ppchash{$key}{id} = $ppcent->{id};
$ppchash{$key}{parent} = $ppcent->{parent};
}
}
foreach my $vpdent (@vpdlist)
{
my $key = $vpdent->{node};
$vpdhash{$key}{mtm} = $vpdent->{mtm};
$vpdhash{$key}{serial} = $vpdent->{serial};
}
my @ppc_lpars = keys %ppchash;
foreach my $value ( @$values ) {
my ($ttype,
$tname,
$tid,
$tmtm,
$tsn,
$tside,
$server,
$pprofile,
$parent) = split /,/, $value;
if ($ttype ne "lpar") {
push @update_list, $value;
next;
}
my $find_node = undef;
foreach my $tmp_node (@ppc_lpars) {
if ($ppchash{$tmp_node}{id} eq $tid) {
if (exists($ppchash{$tmp_node}{parent}) and $ppchash{$tmp_node}{parent} eq $parent) {
$find_node = $tmp_node;
last;
} elsif ($vpdhash{$tmp_node}{mtm} eq $tmtm and $vpdhash{$tmp_node}{serial} eq $tsn) {
$find_node = $tmp_node;
last;
}
}
}
if (defined($find_node)) {
if ( update_node_attribs($hwtype, $ttype, $find_node, $tid, $tmtm, $tsn, $tside,
$server, $pprofile, $parent, "", \%db, $tname, \@ppclist))
{
$value =~ s/^$ttype,$tname,/$ttype,$find_node,/;
push @update_list, $value;
}
} elsif (defined($write)) {
push @write_list, $value;
}
}
if (defined($write)) {
&add_ppc($hwtype, \@write_list);
return ([@update_list,@write_list]);
} else {
foreach ( @tabs ) {
if ( exists( $db{$_}{commit} )) {
$db{$_}->commit;
}
}
return \@update_list;
}
}
##########################################################################
# Update nodes in the xCAT databases
@@ -278,7 +373,6 @@ sub update_ppc {
$pprofile,
$parent,
$ips ) = split /,/, $value;
if ( $ttype eq 'cec' )
{
my $hostname = get_host($tname, "FSP", $tmtm, $tsn, "", "", $tid, "","");
@@ -329,9 +423,7 @@ sub update_ppc {
$pprofile,
$parent,
$ips ) = split /,/, $value;
next if ( $type ne 'cec' );
my $predefined_node = undef;
foreach my $vpdent (@vpdlist)
{
@@ -525,6 +617,10 @@ sub update_node_attribs
if ( $namediff)
{
updategroups( $name, $db->{nodelist}, $type );
my $tmp_group = xCAT::data::ibmhwtypes::parse_group($model);
if (defined($tmp_group)) {
updategroups($name, $db->{nodelist}, $tmp_group);
}
$db->{nodelist}->setNodeAttribs( $name, {status=>$nodelisthash->{status},
appstatus=>$nodelisthash->{appstatus},
primarysn=>$nodelisthash->{primarysn},
@@ -888,6 +984,18 @@ sub get_usr_passwd {
} else {
($ent) = $passwdtab->getNodeAttribs($key, qw(username password));
}
if (!$ent) {
if ($key eq "cec") {
$key = "fsp";
} elsif ($key eq "frame") {
$key = "bpa";
}
if ($user) {
($ent) = $passwdtab->getAttribs({key => $key, username => $user}, qw(password cryptmethod));
} else {
($ent) = $passwdtab->getNodeAttribs($key, qw(username password));
}
}
if (!$ent or !$ent->{password}) {
my $hash = $default_passwd_accounts{$key};
if (!$hash or ($user and !defined($hash->{$user}))) {
@@ -958,7 +1066,6 @@ sub get_host {
# get the information of existed nodes to do the migration
read_from_table() unless (%::OLD_DATA_CACHE);
foreach my $oldnode ( keys %::OLD_DATA_CACHE )
{
my $tmpmtm = @{$::OLD_DATA_CACHE{$oldnode}}[0];
+12 -1
View File
@@ -5,6 +5,8 @@ use strict;
use Getopt::Long;
use xCAT::PPCcli qw(SUCCESS EXPECT_ERROR RC_ERROR NR_ERROR);
use xCAT::Usage;
use xCAT::TableUtils;
require xCAT::data::ibmhwtypes;
##########################################
@@ -59,7 +61,7 @@ sub parse_args {
$Getopt::Long::ignorecase = 0;
Getopt::Long::Configure( "bundling" );
if ( !GetOptions( \%opt, qw(V|verbose) )) {
if ( !GetOptions( \%opt, qw(V|verbose t) )) {
return( usage() );
}
####################################
@@ -75,6 +77,9 @@ sub parse_args {
if ( !defined( $cmd )) {
return(usage( "Invalid command: $ARGV[0]" ));
}
if (exists($opt{t}) and $cmd ne "model") {
return(["Option 't' can only work with 'model'."]);
}
####################################
# Check for an extra argument
####################################
@@ -411,6 +416,12 @@ sub vpd {
#############################
# Output value
#############################
if ($_ eq 'model' and exists($request->{opt}->{t})) {
my $tmp_pre = xCAT::data::ibmhwtypes::parse_args($data->{$_});
if (defined($tmp_pre)) {
xCAT::TableUtils->updatenodegroups($name, $tmp_pre);
}
}
my $value = "@{$prefix{$_}}[0]: $data->{$_}";
push @result, [$name,$value,$Rc];
}
+28 -4
View File
@@ -11,7 +11,7 @@ use xCAT::PPCdb;
use xCAT::GlobalDef;
use xCAT::Usage;
use xCAT::NetworkUtils;
require xCAT::data::ibmhwtypes;
##############################################
# Globals
@@ -545,6 +545,7 @@ sub format_stanza {
#################################
# Add each attribute
#################################
my $mtm = undef;
foreach ( @attribs ) {
my $d = $data[$i++];
@@ -555,7 +556,8 @@ sub format_stanza {
} elsif ( /^hwtype$/ ) {
$d = $globalhwtype{$type};
} elsif ( /^groups$/ ) {
$d = "$type,all";
next;
#$d = "$type,all";
} elsif ( /^mgt$/ ) {
$d = $hwtype;
} elsif ( /^cons$/ ) {
@@ -568,7 +570,9 @@ sub format_stanza {
} elsif ( /^(mtm|serial)$/ ) {
if ( $type eq "lpar" ) {
$d = undef;
}
} elsif (/^mtm$/) {
$mtm = $d;
}
} elsif (/^side$/) {
unless ( $type =~ /^fsp|bpa$/ ) {
next;
@@ -576,6 +580,14 @@ sub format_stanza {
}
$result .= "\t$_=$d\n";
}
my $tmp_groups = "$type,all";
if (defined($mtm)) {
my $tmp_pre = xCAT::data::ibmhwtypes::parse_group($mtm);
if (defined($tmp_pre)) {
$tmp_groups .= ",$tmp_pre";
}
}
$result .= "\tgroups=$tmp_groups\n";
}
return( $result );
}
@@ -623,6 +635,7 @@ sub format_xml {
#################################
# Add each attribute
#################################
my $mtm = undef;
foreach ( @attribs ) {
my $d = $data[$i++];
@@ -631,7 +644,8 @@ sub format_xml {
} elsif ( /^hwtype$/ ) {
$d = $globalhwtype{$type};
} elsif ( /^groups$/ ) {
$d = "$type,all";
next;
#$d = "$type,all";
} elsif ( /^mgt$/ ) {
$d = $hwtype;
} elsif ( /^cons$/ ) {
@@ -643,6 +657,8 @@ sub format_xml {
} elsif ( /^(mtm|serial)$/ ) {
if ( $type eq "lpar" ) {
$d = undef;
} elsif (/^mtm$/){
$mtm = $d;
}
} elsif (/^side$/) {
unless ( $type =~ /^fsp|bpa$/ ) {
@@ -651,6 +667,14 @@ sub format_xml {
}
$href->{Node}->{$_} = $d;
}
my $tmp_groups = "$type,all";
if (defined($mtm)) {
my $tmp_pre = xCAT::data::ibmhwtypes::parse_group($mtm);
if (defined($tmp_pre)) {
$tmp_groups .= ",$tmp_pre";
}
}
$href->{Node}->{groups}=$tmp_groups;
#################################
# XML encoding
#################################
+272 -10
View File
@@ -52,14 +52,21 @@ sub get_allocable_staticips_innet
my $netentry = ($networkstab->getAllAttribsWhere("netname = '$netname'", 'ALL'))[0];
my ($startip, $endip) = split('-', $netentry->{'staticrange'});
my $incremental = $netentry->{'staticrangeincrement'};
my $netmask = $netentry->{'mask'};
my $gateway = $netentry->{'gateway'};
my $validipsref;
if ($incremental and $startip and $endip){
$validipsref = xCAT::NetworkUtils->get_allips_in_range($startip, $endip, $incremental);
}
my $broadcastip = xCAT::NetworkUtils->getBroadcast($startip, $netmask);
foreach (@$validipsref){
if (! exists($iphash{$_})){
push @allocableips, $_;
#Remove ip which is broadcast ip, exclude ip, ips ended with 0, gateway ip
if (exists($iphash{$_}) or $_ eq $broadcastip or $_ eq $gateway
or $_ =~ /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(0)$/){
next;
}
push @allocableips, $_;
}
return \@allocableips;
}
@@ -258,6 +265,7 @@ 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.
@@ -269,7 +277,7 @@ sub get_nodes_nic_attrs{
my $nodes = shift;
my $nicstab = xCAT::Table->new( 'nics');
my $entry = $nicstab->getNodesAttribs($nodes, ['nictypes', 'nichostnamesuffixes', 'niccustomscripts', 'nicnetworks', 'nicips']);
my $entry = $nicstab->getNodesAttribs($nodes, ['nictypes', 'nichostnamesuffixes', 'nichostnameprefixes', 'niccustomscripts', 'nicnetworks', 'nicips']);
my %nicsattrs;
my @nicattrslist;
@@ -301,6 +309,20 @@ 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){
@@ -543,6 +565,96 @@ sub get_allnode_singleattrib_hash
#-------------------------------------------------------------------------------
=head3 get_db_swtiches
Description : Get all records of switch config from a table, then return a string list.
Arguments : $tabname - the table name.
Returns : Reference of the records hash.
=cut
#-------------------------------------------------------------------------------
sub get_db_switches
{
my $class = shift;
my $table = xCAT::Table->new("switches");
my @attribs = ("switch");
my @entries = $table->getAllAttribs(@attribs);
$table->close();
my %allrecords;
foreach (@entries)
{
if ($_->{'switch'}){
$allrecords{$_->{'switch'}} = 0;
}
}
return \%allrecords;
}
#-------------------------------------------------------------------------------
=head3 get_db_swtichports
Description : Get all records of switch config from a table, then return a string list.
Arguments : $tabname - the table name.
Returns : Reference of the records hash.
=cut
#-------------------------------------------------------------------------------
sub get_db_switchports
{
my $class = shift;
my $table = xCAT::Table->new("switch");
my @attribs = ("switch", "port");
my @entries = $table->getAllAttribs(@attribs);
$table->close();
my %allrecords;
foreach (@entries)
{
$allrecords{$_->{'switch'} . "_" . $_->{'port'}} = 0;
}
return \%allrecords;
}
#-------------------------------------------------------------------------------
=head3 get_all_cecs
Description : Get all CEC objects name in system.
Arguments : hashref: if not set, return a array ref.
if set, return a hash ref.
Returns : ref for CECs list.
Example :
my $arrayref = xCAT::ProfiledNodeUtils->get_all_cecs();
my $hashref = xCAT::ProfiledNodeUtils->get_all_cecs(1);
=cut
#-------------------------------------------------------------------------------
sub get_all_cecs
{
my $hashref = shift;
my %cecshash;
my @cecslist;
my $ppctab = xCAT::Table->new('ppc');
my @cecs = $ppctab->getAllAttribsWhere("nodetype = 'cec'", 'node');
foreach (@cecs) {
if($_->{'node'}) {
if ($hashref) {
$cecshash{$_->{'node'}} = 1;
} else {
push @cecslist, $_->{'node'};
}
}
}
$ppctab->close();
# Return the ref accordingly
if ($hashref) {
return \%cecshash;
} else {
return \@cecslist;
}
}
#-------------------------------------------------------------------------------
=head3 is_discover_started
Description : Judge whether profiled nodes discovering is running or not.
Arguments : NA
@@ -607,6 +719,28 @@ sub get_nodes_profiles
return \%profile_dict;
}
#-------------------------------------------------------------------------------
=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 get_imageprofile_prov_method
@@ -701,7 +835,14 @@ sub check_profile_consistent{
my $mgt = undef;
$mgt = $mgtentry->{'mgt'} if ($mgtentry->{'mgt'});
$nodehmtab->close();
#Get hardwareprofile nodetype
my $ppctab = xCAT::Table->new('ppc');
my $ntentry = $ppctab->getNodeAttribs($hardwareprofile, ['nodetype']);
my $nodetype = undef;
$nodetype = $ntentry->{'nodetype'} if ($ntentry->{'nodetype'});
$ppctab->close();
# Check if exists provision network
if (not ($installnic and exists $netprofile_nicshash{$installnic}{"network"})){
return 0, "Provisioning network not defined for network profile."
@@ -720,17 +861,24 @@ sub check_profile_consistent{
return 0, "$nictype networkprofile must use with hardwareprofile.";
}
}
if (not $nictype and $mgt) {
# define hardwareprofile, not define fsp or bmc networkprofile
# 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 ($profile_dict{$mgt} ne $nictype) {
# Networkprofile's nictype is not consistent with hadrwareprofile's mgt
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 ($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, "";
}
@@ -827,6 +975,8 @@ sub parse_nodeinfo_file
my @lines = split /\n/, $filedata;
my $obj_found = 0;
my $attr_found = 0;
my $null_obj;
my ($objname, $append);
foreach my $line (@lines){
@@ -835,6 +985,8 @@ sub parse_nodeinfo_file
# The line ends with :
if (grep(/:\s*$/, $line)){
$attr_found = 0;
$null_obj = $line;
($objname, $append) = split(/:/, $line);
$objname =~ s/^\s*//; # Remove any leading whitespace
$objname =~ s/\s*$//; # Remove any trailing whitespace
@@ -852,6 +1004,7 @@ sub parse_nodeinfo_file
if (! $obj_found){
return 0, "No node defined before line \'$line\'";
}
$attr_found = 1;
my $attr = $1;
my $val = $2;
@@ -875,6 +1028,115 @@ sub parse_nodeinfo_file
return 0, "Invalid Line \'$line\' found";
}
}
# Defined object has no attributes
if (! $attr_found){
return 0, "Invalid Line \'$null_obj\' found";
}
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
format
Arguments: $installnic: the installnic defined in networkprofile
$netprofileattrsref: the attributes of all nics in networkprofile
$freeipshash: the hash of networks' staticrange
$nicips: the string of nicips defined in MAC file
Returns: ($retcode, $output, $errmsg).
$retcode = 1. Parse failed, there are some errors in nicips string. Detailed errors will be set in $errmsg.
$retcode = 0. Parse success, the format of nicips is OK..
=cut
#-------------------------------------------------------------------------------
sub check_nicips{
my $class = shift;
my $installnic = shift;
my $netprofileattrsref = shift;
my $freeipshash = shift;
my $othernics = shift;
my $errmsg = "";
my %nics_hash = ();
my %netprofileattr = %$netprofileattrsref;
foreach my $nic_ips (split(/,/, $othernics)) {
my @nic_and_ips = ();
my $nic = "";
my $nic_ip = "";
if($nic_ips =~ /!/ and $nic_ips !~ /!$/) {
@nic_and_ips = split(/!/, $nic_ips);
my $len = @nic_and_ips;
$nic = $nic_and_ips[0];
$nic_ip = $nic_and_ips[1];
if (exists $nics_hash{$nic} or $len ne 2) {
$errmsg = "The specified nicips is incorrect. It must be formatted correctly, in the form: <nic1>!<nic-ip1>,<nic2>!<nic-ip2>,...";
return (1, "", $errmsg);
}
# Check whether other interfaces contain provision nic
if ($nic eq $installnic) {
$errmsg = "The specified nicips cannot contain NICs used for provisioning.";
return (1, "", $errmsg);
}
# Check whether this interface is defined in networkprofile
unless (exists $netprofileattr{$nic}){
$errmsg = "The specified nicips contains NICs that are not defined in the network profile.";
return (1, "", $errmsg);
}
# Check whether specified IP is in each network's static range
my $nicnetwork = $netprofileattr{$nic}{'network'};
my $freeipsref = $freeipshash->{$nicnetwork};
unless (grep{ $_ eq $nic_ip} @$freeipsref){
$errmsg = "Specified IP address $nic_ip not in static range of network $netprofileattr{$nic}{'network'}";
return (1, "", $errmsg);
}
}else {
$errmsg = "The specified nicips is incorrect. It must be formatted correctly, in the form: <nic1>!<nic-ip1>,<nic2>!<nic-ip2>,...";
return (1, "", $errmsg);
}
$nics_hash{$nic} = $nic_ip;
}
return (0, \%nics_hash, "");
}
+13 -1
View File
@@ -98,13 +98,21 @@ sub remote_copy_command
{
if (-e ("/usr/bin/rsync")) {
if (($usersh == 0) || ($localhost == 1)) { # using ssh, or local
if ($$config{'sudo'}){
$sync_opt = '--rsync-path=sudo /usr/bin/rsync ';
} else {
$sync_opt = '--rsync-path /usr/bin/rsync ';
}
} else {
$sync_opt = '--rsh /bin/rsh --rsync-path /usr/bin/rsync ';
}
} else {
if (($usersh == 0) || ($localhost == 1)) { # using ssh, or local
$sync_opt = '--rsync-path /usr/local/bin/rsync ';
if ($$config{'sudo'}){
$sync_opt = '--rsync-path=sudo /usr/local/bin/rsync ';
} else {
$sync_opt = '--rsync-path=/usr/local/bin/rsync ';
}
} else {
$sync_opt = '--rsh /bin/rsh --rsync-path /usr/local/bin/rsync ';
}
@@ -112,7 +120,11 @@ sub remote_copy_command
}
else #linux
{
if ($$config{'sudo'}) {
$sync_opt = '--rsync-path=\'sudo /usr/bin/rsync\' ';
} else {
$sync_opt = '--rsync-path /usr/bin/rsync ';
}
}
# if only syncing the service node or
# (no postscripts and no append lines) then do not
+43 -31
View File
@@ -35,21 +35,22 @@ 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
[-k] Generates the ssh keys needed , for the user on the MN.
[-s node list] copies the ssh keys to the nodes
optional $timeout = timeout value for the expect. Usually from the xdsh -t flag
default timeout is 10 seconds
exit 0 - good
exit 1 - abort
exit 2 - usage error
Examples:
$rc=xCAT::RemoteShellExp->remoteshellexp("k",$callback,$remoteshellcmd);
$rc=xCAT::RemoteShellExp->remoteshellexp("s",$callback,$remoteshellcmd,$nodes);
$rc=xCAT::RemoteShellExp->remoteshellexp("t",$callback,$remoteshellcmd,$nodes);
$rc=xCAT::RemoteShellExp->remoteshellexp("k",$callback,$remoteshellcmd,$nodes,$timeout);
$rc=xCAT::RemoteShellExp->remoteshellexp("s",$callback,$remoteshellcmd,$nodes,$timeout);
$rc=xCAT::RemoteShellExp->remoteshellexp("t",$callback,$remoteshellcmd,$nodes,$timeout);
=cut
@@ -70,7 +71,7 @@ use strict;
#-----------------------------------------------------------------------------
sub remoteshellexp
{
my ($class, $flag, $callback, $remoteshell, $nodes) = @_;
my ($class, $flag, $callback, $remoteshell, $nodes, $timeout) = @_;
my $rc=0;
$::CALLBACK = $callback;
if (!($flag))
@@ -90,6 +91,10 @@ sub remoteshellexp
return 2;
}
my $expecttimeout=10; # default
if (defined($timeout)) { # value supplied
$expecttimeout=$timeout;
}
# for -s flag must have nodes and a $to_userid password
my $to_user_password;
@@ -139,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'};
@@ -149,18 +154,19 @@ 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
my $key="$home/.ssh/id_rsa";
my $key2="$home/.ssh/id_rsa.pub";
# Check to see if empty
if (-z $key) {
# 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 $rsp = {};
$rsp->{error}->[0] =
"The $key file is empty. Remove it and rerun the command.";
@@ -178,9 +184,8 @@ sub remoteshellexp
}
if (($flag eq "k") && (!(-e $key)))
{
# 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;
# updating keys and the key file does not exist
$rc=xCAT::RemoteShellExp->gensshkeys($expecttimeout);
}
# send ssh keys to the nodes/devices, to setup passwordless ssh
if ($flag eq "s")
@@ -193,15 +198,18 @@ sub remoteshellexp
return 1;
}
if ($ssh_setup_cmd) { # setup ssh on devices
$rc=xCAT::RemoteShellExp->senddeviceskeys($remoteshell,$remotecopy,$to_userid,$to_user_password,$home,$ssh_setup_cmd,$nodes);
$rc=xCAT::RemoteShellExp->senddeviceskeys($remoteshell,$remotecopy,$to_userid,$to_user_password,$home,$ssh_setup_cmd,$nodes, $expecttimeout);
} else { #setup ssh on nodes
$rc=xCAT::RemoteShellExp->sendnodeskeys($remoteshell,$remotecopy,$to_userid,$to_user_password,$home,$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);
}
}
# test ssh setup on the node
if ($flag eq "t")
{
$rc=xCAT::RemoteShellExp->testkeys($remoteshell,$to_userid,$nodes);
$rc=xCAT::RemoteShellExp->testkeys($remoteshell,$to_userid,$nodes,$expecttimeout);
}
return $rc;
}
@@ -220,9 +228,9 @@ sub remoteshellexp
sub gensshkeys
{
my ($class) = @_;
my ($class, $expecttimeout) = @_;
my $keygen;
my $timeout = 10; # sets Expect default timeout, 0 accepts immediately
my $timeout = $expecttimeout; # sets Expect default timeout, 0 accepts immediately
my $keygen_sent = 0;
my $prompt1 = 'Generating public/private rsa';
my $prompt2 = 'Enter file.*:';
@@ -347,9 +355,9 @@ sub gensshkeys
sub testkeys
{
my ($class,$remoteshell,$to_userid,$nodes) = @_;
my ($class,$remoteshell,$to_userid,$nodes, $expecttimeout) = @_;
my $testkeys;
my $timeout = 10; # sets Expect default timeout, 0 accepts immediately
my $timeout = $expecttimeout; # sets Expect default timeout
my $testkeys_sent = 0;
my $prompt1 = 'Are you sure you want to continue connecting (yes/no)?';
my $prompt2 = 'ssword:';
@@ -469,9 +477,9 @@ sub testkeys
sub sendnodeskeys
{
my ($class,$remoteshell,$remotecopy,$to_userid,$to_userpassword,$home,$nodes) = @_;
my ($class,$remoteshell,$remotecopy,$to_userid,$to_userpassword,$home,$nodes, $expecttimeout) = @_;
my $sendkeys;
my $timeout = 10; # sets Expect default timeout, 0 accepts immediately
my $timeout = $expecttimeout; # sets Expect default timeout, 0 accepts immediately
my $sendkeys_sent = 0;
my $prompt1 = 'Are you sure you want to continue connecting (yes/no)?';
my $prompt2 = 'ssword:';
@@ -490,11 +498,15 @@ 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;
@@ -602,11 +614,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/copy.sh $home/.ssh/tmp/authorized_keys $to_userid\@$node:/tmp/$to_userid/.ssh ";
"$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 ";
} else { # no node to node ssh ( don't send private key)
$spawncopyfiles=
"$remotecopy $home/.ssh/copy.sh $home/.ssh/tmp/authorized_keys $to_userid\@$node:/tmp/$to_userid/.ssh ";
"$remotecopy $home/.ssh/id_rsa.pub $home/.ssh/copy.sh $home/.ssh/tmp/authorized_keys $to_userid\@$node:/tmp/$to_userid/.ssh ";
}
# send copy command
unless ($sendkeys->spawn($spawncopyfiles))
@@ -759,7 +771,7 @@ sub sendnodeskeys
=head3 senddeviceskeys
Setup the ssh keys on the nodes
Setup the ssh keys on the switches
=cut
@@ -768,9 +780,9 @@ sub sendnodeskeys
sub senddeviceskeys
{
my ($class,$remoteshell,$remotecopy,$to_userid,$to_userpassword,$home,$ssh_setup_cmd,$nodes) = @_;
my ($class,$remoteshell,$remotecopy,$to_userid,$to_userpassword,$home,$ssh_setup_cmd,$nodes, $expecttimeout) = @_;
my $sendkeys;
my $timeout = 10; # sets Expect default timeout, 0 accepts immediately
my $timeout = $expecttimeout; # sets Expect default timeout, 0 accepts immediately
my $sendkeys_sent = 0;
my $prompt1 = 'Are you sure you want to continue connecting (yes/no)?';
my $prompt2 = 'ssword:';
+32 -14
View File
@@ -202,9 +202,11 @@ sub parse_and_run_sinv
#
my @nodelist = ();
my @cmdparts = ();
my $devicecommand =0;
if ($options{'devicetype'}) {
# must split different because devices have commands with spaces
@cmdparts = split(' ', $cmd,3);
$devicecommand =1;
} else {
@cmdparts = split(' ', $cmd);
}
@@ -503,7 +505,7 @@ sub parse_and_run_sinv
);
# write the results to the tempfile after running through xdshcoll
$rc = &storeresults($callback);
$rc = &storeresults($callback,$devicecommand);
}
$processflg = "node";
@@ -534,7 +536,7 @@ sub parse_and_run_sinv
# write the results to the tempfile after running through xdshcoll
$rc = &storeresults($callback);
$rc = &storeresults($callback,$devicecommand);
# Build report and write to output file
# if file exist and has something in it
@@ -1451,12 +1453,11 @@ sub rinvoutput
sub storeresults
{
my $callback = shift;
my $devicecommand= shift;
# open file to write results of xdsh or rinv command
my $newtempfile = $tempfile;
$newtempfile .= "temp";
open(FILE, ">$newtempfile");
if ($? > 0)
unless (open(NEWTMPFILE, ">$newtempfile"))
{
my $rsp = {};
$rsp->{data}->[0] = "Could not open $newtempfile\n";
@@ -1465,9 +1466,9 @@ sub storeresults
}
foreach my $line (@cmdresult)
{
print FILE $line;
print NEWTMPFILE $line;
}
close FILE;
close NEWTMPFILE;
my $outputfile;
if ($processflg eq "seednode")
{ # cmd to seednode
@@ -1479,8 +1480,7 @@ sub storeresults
}
# open file to put results of xdshcoll
open(FILE, ">$outputfile");
if ($? > 0)
unless (open(NEWOUTFILE, ">$outputfile"))
{
my $rsp = {};
$rsp->{data}->[0] = "Could not open $outputfile\n";
@@ -1489,8 +1489,7 @@ sub storeresults
}
my $cmd = " $::XCATROOT/sbin/xdshcoll <$newtempfile |";
open(XCOLL, "$cmd");
if ($? > 0)
unless (open(XCOLL, "$cmd"))
{
my $rsp = {};
$rsp->{data}->[0] = "Could not call xdshcoll \n";
@@ -1503,18 +1502,37 @@ sub storeresults
while (<XCOLL>)
{
$line = $_;
print FILE $line
print NEWOUTFILE $line
}
close(XCOLL);
close FILE;
close NEWOUTFILE;
system("/bin/rm $newtempfile");
# is device command, we get false errors from the Switch, check for
# blank error output lines and remove them. If there is nothing left
# then there really were no errors
my @newerrresult=();
my $processerrors =1;
if ($devicecommand==1) {
foreach my $line (@errresult)
{
my @newline = (split(/:/, $line));
if ($newline[1] !~ /^\s*$/) { # Not blank, then save it
push @newerrresult,$line;
}
}
my $arraysize=@newerrresult;
if ($arraysize < 1) {
$processerrors =0;
}
}
# capture errors
#
if (@errresult)
if ((@errresult) && ($processerrors ==1))
{ # if errors
my $rsp = {};
my $i = 0;
Regular → Executable
+589 -428
View File
File diff suppressed because it is too large Load Diff
+16 -2
View File
@@ -667,6 +667,9 @@ sub decode_spd {
1066 => 8500,
1333 => 10600,
1600 => 12800,
1867 => 14900,
2133 => 17000,
2134 => 17000,
);
my %ddr3modcap = (
@@ -707,9 +710,20 @@ sub decode_spd {
}
$rethash->{product}->{name}=$memtypes{$spd[2]};
if ($spd[2] == 11) { #DDR3 spec applies
my $ftbdividend = $spd[9] >> 4;
my $ftbdivisor = $spd[9] & 0xf;
my $ftb = $ftbdividend/$ftbdivisor;
my $fineoffset = $spd[34];
if ($fineoffset & 0b10000000) {
#negative value, twos complement
$fineoffset = 0-(($fineoffset ^ 0xff) + 1);
}
$fineoffset = ($ftb * $fineoffset) * 10**-3;
my $mtb = $spd[10]/$spd[11];
my $speed = $speedfromclock{int(2/($mtb*$spd[12]*10**-3))};
$rethash->{product}->{name}="PC3-".$speed;
my $clock = int(2/(($mtb*$spd[12]+$fineoffset)*10**-3));
my $speed = $speedfromclock{$clock};
unless ($speed) { $speed = "UNKNOWN"; }
$rethash->{product}->{name}="PC3-".$speed." ($clock MT/s)";
if ($spd[8]&0b11000) {
$rethash->{product}->{name} .= " ECC";
}
Regular → Executable
+586 -143
View File
File diff suppressed because it is too large Load Diff
+58 -27
View File
@@ -28,9 +28,8 @@ use strict;
Input: service nodename
Output: Masternode, OS and ARCH
Example:
xCAT::ServiceNodeUtils->readSNInfo;
my $retdata = xCAT::ServiceNodeUtils->readSNInfo;
=cut
#-----------------------------------------------------------------------------
sub readSNInfo
{
@@ -81,18 +80,18 @@ sub readSNInfo
Checks the service node table in the database to see
if input Service should be setup on the
input service node
input service node or Management Node (used by AAsn.pm)
Input:servicenodename,ipaddres(s) and hostnames of service node
Output:
array of services to setup for this service node
hash of services to setup for this service node
Globals:
$::RUNCMD_RC = 0; good
$::RUNCMD_RC = 1; error
Error:
none
Example:
@servicestosetup=xCAT::ServiceNodeUtils->isServiceReq($servicenodename, @serviceip) { blah; }
$servicestosetup=xCAT::ServiceNodeUtils->isServiceReq($servicenodename, @serviceip) { blah; }
=cut
@@ -102,13 +101,17 @@ sub isServiceReq
require xCAT::Table;
my ($class, $servicenodename, $serviceip) = @_;
# list of all services from service node table
# note this must be updated if more services added
my @services = (
"nameserver", "dhcpserver", "tftpserver", "nfsserver",
"conserver", "monserver", "ldapserver", "ntpserver",
"ftpserver", "ipforward"
);
# get list of all services from service node table ( actually all defined attributes)
# read the schema
my $schema = xCAT::Table->getTableSchema("servicenode");
my @services; # list of only the actual service attributes from the servicenode table
my @servicesattrs; # building second copy for call to getAllNodeAttribs, which modifies the array
foreach my $c (@{$schema->{cols}}) {
if (($c ne "node") && ($c ne "comments") && ($c ne "disable")) {
push @servicesattrs,$c;
push @services,$c;
}
}
my @ips = @$serviceip; # list of service node ip addresses and names
my $rc = 0;
@@ -131,12 +134,19 @@ sub isServiceReq
return; # do not setup anything
}
my @process_service_list = ();
# Are we on the MN
my $mname;
if (xCAT::Utils->isMN()) {
my @nodeinfo = xCAT::NetworkUtils->determinehostname;
$mname = pop @nodeinfo; # get hostname
}
# read all the nodes from the table, for each service
foreach my $service (@services)
my $servicehash;
# read all the nodes from the table, all the service attributes
my @snodelist= $servicenodetab->getAllNodeAttribs(\@servicesattrs);
foreach my $service (@services) # check list of services
{
my @snodelist = $servicenodetab->getAllNodeAttribs([$service]);
foreach $serviceip (@ips) # check the table for this servicenode
{
@@ -152,18 +162,38 @@ sub isServiceReq
# value 1 or yes then we setup the service
if (($value eq "1") || ($value eq "YES"))
{
push @process_service_list,
$service; # found service to setup
$servicehash->{$service} = "1";
} elsif ($value eq "2") {
$servicehash->{$service} = "2";
} else {
$servicehash->{$service} = "0";
}
}
last;
}
}
}
}
}
# if the ftpserver attribute is not defined in the service node table
# and we are on
# the Linux management node, we need to look at site.vsftp
# if the tftpserver attribute is not defined, then we default it 1
if (($mname) && (xCAT::Utils->isLinux())) {
if (!exists($servicehash->{'ftpserver'})) {
my @tmp = xCAT::TableUtils->get_site_attribute("vsftp");
if ($tmp[0] && ($tmp[0] !~ /0|NO|No|no|N|n/ )) {
$servicehash->{'ftpserver'} = 1;
}
}
if (!exists($servicehash->{'tftpserver'})) {
$servicehash->{'tftpserver'} = 1;
}
}
$servicenodetab->close;
$::RUNCMD_RC = 0;
return @process_service_list;
return $servicehash;
}
@@ -214,12 +244,13 @@ sub getAllSN
# if did not input "ALL" and there is a MN, remove it
my @newservicenodes;
if ((!defined($options)) || ($options ne "ALL")) {
my $mname = xCAT::Utils->noderangecontainsMn(@servicenodes);
if ($mname) { # if there is a MN
foreach my $nodes (@servicenodes) {
if ($mname ne ($nodes)){
push @newservicenodes, $nodes;
}
my @mname = xCAT::Utils->noderangecontainsMn(@servicenodes);
if (@mname) { # if there is a MN
foreach my $node (@servicenodes) {
# check to see if node in MN list
if (!(grep(/^$node$/, @mname))) { # if node not in the MN array
push @newservicenodes, $node;
}
}
$servicenodetab->close;
return @newservicenodes; # return without the MN in the array
@@ -327,7 +358,7 @@ sub getSNList
$servicenodetab->close;
foreach my $node (@nodes)
{
if ($service eq "") # want all the service nodes
if (! defined ($service) || ($service eq "")) # want all the service nodes
{
push @servicenodes, $node->{node};
}
+134 -102
View File
@@ -36,7 +36,7 @@
package xCAT::Table;
use xCAT::MsgUtils;
use Sys::Syslog;
use Storable qw/freeze thaw/;
use Storable qw/freeze thaw store_fd fd_retrieve/;
use IO::Socket;
#use Data::Dumper;
use POSIX qw/WNOHANG/;
@@ -70,7 +70,7 @@ require xCAT::NotifHandler;
my $dbworkerpid; #The process id of the database worker
my $dbworkersocket;
my $dbsockpath = "/tmp/xcat/dbworker.sock.".$$;
my $dbsockpath = "/var/run/xcat/dbworker.sock.".$$;
my $exitdbthread;
my $dbobjsforhandle;
my $intendedpid;
@@ -92,8 +92,6 @@ sub dbc_call {
sub dbc_submit {
my $request = shift;
$request->{'wantarray'} = wantarray();
my $data = freeze($request);
$data.= "\nENDOFFREEZEQFVyo4Cj6Q0v\n";
my $clisock;
my $tries=300;
while($tries and !($clisock = IO::Socket::UNIX->new(Peer => $dbsockpath, Type => SOCK_STREAM, Timeout => 120) ) ) {
@@ -105,22 +103,20 @@ sub dbc_submit {
use Carp qw/cluck/;
cluck();
}
print $clisock $data;
$data="";
store_fd($request,$clisock);
#print $clisock $data;
my $data="";
my $lastline="";
while (read($clisock,$lastline,32768)) { #$lastline ne "ENDOFFREEZEQFVyo4Cj6Q0j\n" and $lastline ne "*XCATBUGDETECTED*76e9b54341\n") { #index($lastline,"ENDOFFREEZEQFVyo4Cj6Q0j") < 0) {
# $lastline = <$clisock>;
$data .= $lastline;
}
my $retdata = fd_retrieve($clisock);
close($clisock);
if ($lastline =~ m/\*XCATBUGDETECTED\*76e9b54341\n\z/) { #if it was an error
if (ref $retdata eq "SCALAR") { #bug detected
#in the midst of the operation, die like it used to die
my $err;
$data =~ /\*XCATBUGDETECTED\*:(.*):\*XCATBUGDETECTED\*/s;
$$retdata =~ /\*XCATBUGDETECTED\*:(.*):\*XCATBUGDETECTED\*/s;
$err = $1;
die $err;
}
my @returndata = @{thaw($data)};
my @returndata = @{$retdata};
if (wantarray) {
return @returndata;
} else {
@@ -163,7 +159,7 @@ sub init_dbworker {
#This process is the database worker, it's job is to manage database queries to reduce required handles and to permit cross-process caching
$0 = "xcatd: DB Access";
use File::Path;
mkpath('/tmp/xcat/');
mkpath('/var/run/xcat/');
use IO::Socket;
$SIG{TERM} = $SIG{INT} = sub {
$exitdbthread=1;
@@ -201,8 +197,7 @@ sub init_dbworker {
xCAT::MsgUtils->message("S","xcatd: possible BUG encountered by xCAT DB worker ".$err);
if ($currcon) {
eval { #avoid hang by allowin client to die too
print $currcon "*XCATBUGDETECTED*:$err:*XCATBUGDETECTED*\n";
print $currcon "*XCATBUGDETECTED*76e9b54341\n";
store_fd("*XCATBUGDETECTED*:$err:*XCATBUGDETECTED*\n",$currcon);
$clientset->remove($currcon);
close($currcon);
};
@@ -230,13 +225,14 @@ sub handle_dbc_conn {
my $client = shift;
my $clientset = shift;
my $data;
if ($data = <$client>) {
my $lastline;
while ($lastline ne "ENDOFFREEZEQFVyo4Cj6Q0v\n") { #$data !~ /ENDOFFREEZEQFVyo4Cj6Q0v/) {
$lastline = <$client>;
$data .= $lastline;
}
my $request = thaw($data);
my $request;
eval {
$request = fd_retrieve($client);
};
if ($@ and $@ =~ /^Magic number checking on storable file/) { #this most likely means we ran over the end of available input
$clientset->remove($client);
close($client);
} elsif ($request) {
my $response;
my @returndata;
if ($request->{'wantarray'}) {
@@ -244,12 +240,7 @@ sub handle_dbc_conn {
} else {
@returndata = (scalar(handle_dbc_request($request)));
}
$response = freeze(\@returndata);
# $response .= "\nENDOFFREEZEQFVyo4Cj6Q0j\n";
print $client $response;
$clientset->remove($client);
close($client);
} else { #Connection terminated, clean up
store_fd(\@returndata,$client);
$clientset->remove($client);
close($client);
}
@@ -332,6 +323,8 @@ sub handle_dbc_request {
return $opentables{$tablename}->{$autocommit}->getAllNodeAttribs(@args);
} elsif ($functionname eq 'getAllEntries') {
return $opentables{$tablename}->{$autocommit}->getAllEntries(@args);
} elsif ($functionname eq 'getMAXMINEntries') {
return $opentables{$tablename}->{$autocommit}->getMAXMINEntries(@args);
} elsif ($functionname eq 'writeAllEntries') {
return $opentables{$tablename}->{$autocommit}->writeAllEntries(@args);
} elsif ($functionname eq 'getAllAttribsWhere') {
@@ -1612,7 +1605,7 @@ sub setAttribs
# delimit the columns of the table
my $delimitedcol = &delimitcol($col);
$cols = $cols . $delimitedcol . " = ?,";
push @bind, (($$elems{$col} =~ /NULL/) ? undef: $$elems{$col});
push @bind, (($$elems{$col} eq "NULL") ? undef: $$elems{$col});
}
chop($cols);
my $cmd ;
@@ -1795,7 +1788,7 @@ sub setAttribsWhere
# delimit the columns of the table
my $delimitedcol = &delimitcol($col);
$cols = $cols . $delimitedcol . " = ?,";
push @bind, (($$elems{$col} =~ /NULL/) ? undef: $$elems{$col});
push @bind, (($$elems{$col} eq "NULL") ? undef: $$elems{$col});
}
chop($cols);
my $cmd = "UPDATE " . $self->{tabname} . " set $cols where " . $where_clause;
@@ -2280,17 +2273,16 @@ sub getNodeAttribs
#skip undefined values, save time
next;
}
if ($datum->{$attrib} =~ /^\/[^\/]*\/[^\/]*\/$/)
{
my $exp = substr($datum->{$attrib}, 1);
chop $exp;
my @parts = split('/', $exp, 2);
my $retval = $node;
my $retval = $node;
$retval =~ s/$parts[0]/$parts[1]/;
$datum->{$attrib} = $retval;
}
elsif ($datum->{$attrib} =~ /^\|.*\|.*\|$/)
elsif ($datum->{$attrib} =~ /^\|.*\|$/)
{
#Perform arithmetic and only arithmetic operations in bracketed issues on the right.
@@ -2300,6 +2292,14 @@ sub getNodeAttribs
my $exp = substr($datum->{$attrib}, 1);
chop $exp;
my @parts = split('\|', $exp, 2);
my $arraySize = @parts;
if ($arraySize < 2) { # easy regx, generate lhs from node
my $lhs;
my @numbers = $node =~ m/[\D0]*(\d+)/g;
$lhs = '[\D0]*(\d+)' x scalar(@numbers);
$lhs .= '.*$';
unshift(@parts,$lhs);
}
my $curr;
my $next;
my $prev;
@@ -2351,71 +2351,6 @@ sub getNodeAttribs
#--------------------------------------------------------------------------
=head3 getNodeSpecAttribs
Description: Retrieves the requested attributes which matching the specified options for a node
Arguments:
Noderange
The specified options
List of attributes
Return:
Attribute hash
Example:
my $tab = xCAT::Table->new('ppcdirect');
my $ent = $tab->getNodeSpecAttribs($node, {username=>'HMC'}, qw/password/);
Comments:
The keys of the specified options can be given in the list of attributes or not,
this routine will deal with them.
=cut
#--------------------------------------------------------------------------
#sub getNodeSpecAttribs {
# my $self = shift;
# my $node = shift;
# my %options = ();
# my @attribs = ();
# my @keys = ();
# if (ref $_[0] eq 'HASH') {
# %options = %{shift()};
# @attribs = @_;
# foreach my $key (keys %options) {
# if (!grep(/^$key$/, @attribs)) {
# push @attribs, $key;
# }
# }
# } else {
# @attribs = @_;
# }
# if ((keys (%options)) == 0) {
# my $ent = $self->getNodeAttribs($node, \@attribs);
# return $ent;
# } else {
# my $nodekey = "node";
# if (defined $xCAT::Schema::tabspec{$self->{tabname}}->{nodecol}) {
# $nodekey = $xCAT::Schema::tabspec{$self->{tabname}}->{nodecol};
# }
# $options{$nodekey} = $node;
# my $ent = $self->getAttribs(\%options, \@attribs);
# if ($ent) {
# return $ent;
# }
# my ($nodeghash) = $self->{nodelist}->getAttribs({node=>$node}, "groups");
# unless(defined($nodeghash) && defined($nodeghash->{groups})) {
# return undef;
# }
# my @nodegroups = split(/,/, $nodeghash->{groups});
# foreach my $group (@nodegroups) {
# $options{$nodekey} = $group;
# my $g_ret = $self->getAttribs(\%options, \@attribs);
# if ($g_ret) {
# return $g_ret;
# }
# }
# }
# return undef;
#}
#--------------------------------------------------------------------------
=head3 getNodeAttribs_nosub
Description:
@@ -2969,10 +2904,14 @@ sub getAllNodeAttribs
$self->{nrcache}->{$data->{$nodekey}}->{tstamp} = time();
}
@nodes = @{$self->{nrcache}->{$data->{$nodekey}}->{value}}; #expand node entry, to make groups expand
unless (@nodes) { #in the event of an entry not in nodelist, use entry value verbatim
@nodes = ($data->{$nodekey});
}
#If node not in nodelist do not add to the hash (SF 3580)
#unless (@nodes) { #in the event of an entry not in nodelist, use entry value verbatim
# @nodes = ($data->{$nodekey});
#} end SF 3580
#my $localhash = $self->getNodesAttribs(\@nodes,$attribq); #NOTE: This is stupid, rebuilds the cache for every entry, FIXME
foreach (@nodes)
{
if ($donenodes{$_}) { next; }
@@ -4051,5 +3990,98 @@ sub output_table {
print $fh "\n";
return 0;
}
#--------------------------------------------------------------------------
=head3 getMAXMINEntries
Description: Select the rows in the Table which has the MAX and the row with the
Min value for the input attribute.
Currently only the auditlog and evenlog are setup to have such an attribute (recid).
Arguments:
Table handle
attribute name ( e.g. recid)
Returns:
HASH
max=> max value
min=> min value
Globals:
Error:
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.
Comments:
none
=cut
#--------------------------------------------------------------------------------
sub getMAXMINEntries
{
my $self = shift;
if ($dbworkerpid) {
return dbc_call($self,'getMAXMINEntries',@_);
}
my $attr = shift;
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
$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')";
}
$query = $self->{dbh}->prepare($qstring);
$query->execute();
while (my $data = $query->fetchrow_hashref())
{
foreach (keys %$data)
{
if ($data->{$_} =~ /^$/)
{
$rets->{"max"} = undef;
} else {
$rets->{"max"} = $data->{$_};
}
last; # better only be one value for max
}
}
$query->finish();
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')";
}
$query = $self->{dbh}->prepare($qstring);
$query->execute();
while (my $data = $query->fetchrow_hashref())
{
foreach (keys %$data)
{
if ($data->{$_} =~ /^$/)
{
$rets->{"min"} = undef;
} else {
$rets->{"min"} = $data->{$_};
}
last; # better be only one value for min
}
}
return $rets;
}
1;
+458 -56
View File
@@ -19,6 +19,8 @@ if ($^O =~ /^aix/i) {
use lib "$::XCATROOT/lib/perl";
use strict;
require xCAT::Table;
require xCAT::Zone;
use File::Path;
#-----------------------------------------------------------------------
=head3
@@ -256,6 +258,7 @@ sub bldnonrootSSHFiles
Arguments:
Array of nodes
Timeout for expect call (optional)
Returns:
Env Variables: $DSH_FROM_USERID, $DSH_TO_USERID, $DSH_REMOTE_PASSWORD
@@ -269,7 +272,7 @@ sub bldnonrootSSHFiles
Error:
0=good, 1=error
Example:
xCAT::TableUtils->setupSSH(@target_nodes);
xCAT::TableUtils->setupSSH(@target_nodes,$expecttimeout);
Comments:
Does not setup known_hosts. Assumes automatically
setup by SSH ( ssh config option StrictHostKeyChecking no should
@@ -280,7 +283,7 @@ sub bldnonrootSSHFiles
#--------------------------------------------------------------------------------
sub setupSSH
{
my ($class, $ref_nodes) = @_;
my ($class, $ref_nodes,$expecttimeout) = @_;
my @nodes = $ref_nodes;
my @badnodes = ();
my $n_str = $nodes[0];
@@ -333,23 +336,24 @@ 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
# generates new keys for root, if they do not already exist ~/.ssh
# nodes not used on this option but in there to preserve the interface
my $rc=
xCAT::RemoteShellExp->remoteshellexp("k",$::CALLBACK,$::REMOTE_SHELL);
xCAT::RemoteShellExp->remoteshellexp("k",$::CALLBACK,$::REMOTE_SHELL,$n_str,$expecttimeout);
if ($rc != 0) {
$rsp->{data}->[0] = "remoteshellexp failed generating keys.";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
@@ -371,7 +375,10 @@ 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\"
@@ -383,6 +390,7 @@ 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
@@ -415,53 +423,50 @@ rmdir \"/tmp/$to_userid\" \n";
xCAT::TableUtils->bldnonrootSSHFiles($from_userid);
}
# 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
# send the keys
# For root user and not to devices only to nodes
if (($from_userid eq "root") && (!($ENV{'DEVICETYPE'}))) {
my $enablenodes;
my $disablenodes;
my @nodelist= split(",", $n_str);
foreach my $n (@nodelist)
# Need to check if nodes are in a zone.
my @zones;
my $tab = xCAT::Table->new("zone");
my @zones;
if ($tab)
{
my $enablessh=xCAT::TableUtils->enablessh($n);
if ($enablessh == 1) {
$enablenodes .= $n;
$enablenodes .= ",";
} else {
$disablenodes .= $n;
$disablenodes .= ",";
# 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 $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);
} 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);
if ($rc != 0)
{
$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);
if ($rc != 0)
{
$rsp->{data}->[0] = "remoteshellexp failed sending keys to disablenodes.";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
{
$rsp->{data}->[0] = "Error sending ssh keys to the nodes.\n";
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);
my $rc=xCAT::RemoteShellExp->remoteshellexp("s",$::CALLBACK,"/usr/bin/ssh",$n_str,$expecttimeout);
if ($rc != 0)
{
$rsp->{data}->[0] = "remoteshellexp failed sending keys.";
@@ -475,7 +480,7 @@ rmdir \"/tmp/$to_userid\" \n";
foreach my $n (@testnodes)
{
my $rc=
xCAT::RemoteShellExp->remoteshellexp("t",$::CALLBACK,"/usr/bin/ssh",$n);
xCAT::RemoteShellExp->remoteshellexp("t",$::CALLBACK,"/usr/bin/ssh",$n,$expecttimeout);
if ($rc != 0)
{
push @badnodes, $n;
@@ -500,6 +505,235 @@ 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];
my @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
@@ -1497,19 +1731,10 @@ sub enablessh
my ($class, $node) = @_;
my $enablessh=1;
if( %::GLOBAL_SN_HASH ) {
if ($::GLOBAL_SN_HASH{$node} == 1) {
if( xCAT::Utils->isSN($node) ) {
$enablessh=1; # service nodes always enabled
}
} else {
if (xCAT::Utils->isSN($node))
{
$enablessh=1; # service nodes always enabled
}
else
{
# if not a service node we need to check, before enabling
my $values;
my @vals = xCAT::TableUtils->get_site_attribute("sshbetweennodes");
@@ -1553,12 +1778,93 @@ sub enablessh
$enablessh=1;
}
}
}
return $enablessh;
}
#-------------------------------------------------------------------------------
=head3 enableSSH
Description:
The function is same as enablessh() above. Before using this function,
the $sn_hash for noderange, and $groups_hash for site.sshbetweennodes should be
got. This is performance improvement.
Arguments:
$node -- node name
$sn_hash -- if the node is one sn, key is the node name, and value is 1.
if the node is not a sn, the key isn't in this hash
$groups_hash -- there are two keys:
1. Each group in the value of site.sshbetweennodes could be the key
2. Each node in the groups from the value of site.sshbetweennodes , if the
value isn't ALLGROUPS or NOGROUPS.
Returns:
1 = enable ssh
0 = do not enable ssh
Globals:
none
Error:
none
Example:
my $enable = xCAT::TableUtils->enableSSH($node);
Comments:
=cut
#-----------------------------------------------------------------------------
sub enableSSH
{
my ($class, $node, $sn_hash, $groups_hash) = @_;
my $enablessh=1;
if( defined($sn_hash) && defined($sn_hash->{node}) && $sn_hash->{$node} == 1 ) {
$enablessh=1; # service nodes always enabled
} else {
# if not a service node we need to check, before enabling
if (keys %$groups_hash) { # not empty
if ($groups_hash->{ALLGROUPS} == 1)
{
$enablessh=1;
}
else
{
if ($groups_hash->{NOGROUPS} == 1)
{
$enablessh=0;
}
else
{ # check to see if the node is a member of a group
my $ismember = 0;
$ismember = $groups_hash->{$node};
if ($ismember == 1)
{
$enablessh=1;
}
else
{
$enablessh=0;
}
}
}
}
else
{ # does not exist, set default
$enablessh=1;
}
}
return $enablessh;
}
#-----------------------------------------------------------------------------
@@ -1662,4 +1968,100 @@ sub getimagenames()
$nodetab->close;
return @imagenames;
}
#-----------------------------------------------------------------------------
=head3 updatenodegroups
Update groups attribute for the specified node
Arguments:
node
tabhd: the handler of 'nodelist' table,
groups: the groups attribute need to be merged.
Can be an array or string.
Globals:
none
Error:
Example:
xCAT::TableUtils->updatenodegroups($node, $tab, $groups);
=cut
#-----------------------------------------------------------------------------
sub updatenodegroups {
my ($class, $node, $tabhd, $groups) = @_;
if (!$groups) {
$groups = $tabhd;
$tabhd = xCAT::Table->new('nodelist');
unless ($tabhd) {
xCAT::MsgUtils->message("E", " Could not read the nodelist table\n");
return;
}
}
my ($ent) = $tabhd->getNodeAttribs($node, ['groups']);
my @list = ();
if (defined($ent) and $ent->{groups}) {
push @list, split(/,/,$ent->{groups});
}
if (ref($groups) eq 'ARRAY') {
push @list, @$groups;
} else {
push @list, split(/,/,$groups);
}
my %saw;
@saw{@list} = ();
@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;
+64 -22
View File
@@ -36,11 +36,13 @@ my %usage = (
LPAR(using Direct FSP Management) specific:
rpower <noderange> [on|off|reset|stat|state|boot|of|sms]
Blade(using Direct FSP Management) specific:
rpower <noderange> [on|off|cycle|state]
rpower <noderange> [on|onstandby|off|cycle|state|sms]
Blade(using AMM) specific:
rpower <noderange> [cycle|softoff] [-V|--verbose]
zVM specific:
rpower noderange [on|off|reset|stat|softoff]
MIC specific:
rpower noderange [stat|state|on|off|reset|boot]
",
"rbeacon" =>
"Usage: rbeacon <noderange> [on|off|stat] [-V|--verbose]
@@ -58,9 +60,11 @@ my %usage = (
Blade specific:
rvitals noderange {temp|wattage|fanspeed|leds|summary|all}
BMC specific:
rvitals noderange {temp|voltage|wattage|fanspeed|power|leds|lcds|summary|all}",
rvitals noderange {temp|voltage|wattage|fanspeed|power|leds|lcds|summary|all}
MIC specific:
rvitals noderange {thermal|all}",
"reventlog" =>
"Usage: reventlog <noderange> [all|clear|<number of entries to retrieve>] [-V|--verbose]
"Usage: reventlog <noderange> [all [-s]|clear|<number of entries to retrieve> [-s]] [-V|--verbose]
reventlog [-h|--help|-v|--version]",
"rinv" =>
"Usage:
@@ -68,22 +72,24 @@ my %usage = (
rinv <noderange> [all|model|serial] [-V|--verbose]
rinv [-h|--help|-v|--version]
BMC specific:
rinv <noderange> [vpd|mprom|deviceid|uuid|guid]
rinv <noderange> [mprom|deviceid|uuid|guid|vpd [-t]|all [-t]]
MPA specific:
rinv <noderange> [firm|bios|diag|mprom|sprom|mparom|mac|mtm]
rinv <noderange> [firm|bios|diag|mprom|sprom|mparom|mac|mtm [-t]]
PPC specific(with HMC):
rinv <noderange> [bus|config|serial|model|firm|all]
rinv <noderange> [all|bus|config|serial|model|firm [-t]]
PPC specific(using Direct FSP Management):
rinv <noderange> [firm]
rinv <noderange> [deconfig [-x]]
Blade specific:
rinv <noderange> [mtm|serial|mac|bios|diag|mprom|mparom|firm|all]
rinv <noderange> [all|serial|mac|bios|diag|mprom|mparom|firm|mtm [-t]]
IBM Flex System Compute Node specific:
rinv <noderange> [firm]
VMware specific:
rinv <noderange>
zVM specific:
rinv noderange [all|config]",
rinv noderange [all|config]
MIC specific:
rinv noderange [system|ver|board|core|gddr|all]",
"rsetboot" =>
"Usage: rsetboot <noderange> [net|hd|cd|floppy|def|stat] [-V|--verbose]
rsetboot [-h|--help|-v|--version]",
@@ -193,10 +199,15 @@ my %usage = (
"Usage:
Common:
mkvm [-h|--help|-v|--version]
For PPC(with HMC):
For PPC(with HMC) specific:
mkvm noderange -i id -l singlenode [-V|--verbose]
mkvm noderange -c destcec -p profile [-V|--verbose]
mkvm noderange --full [-V|--verbose]
PPC (using Direct FSP Management) specific:
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
@@ -210,7 +221,8 @@ my %usage = (
PPC (with HMC) specific:
lsvm <noderange> [-a|--all]
PPC (using Direct FSP Management) specific:
lsvm <noderange> [-l|--long]
lsvm <noderange> [-l|--long] --p775
lsvm <noderange>
zVM specific:
lsvm noderange
lsvm noderange --getnetworknames
@@ -225,9 +237,13 @@ my %usage = (
chvm <noderange> [-p profile][-V|--verbose]
chvm <noderange> <attr>=<val> [<attr>=<val>...]
PPC (using Direct FSP Management) specific:
chvm <noderange> [-p <profile>]
chvm <noderange> --p775 [-p <profile>]
chvm <noderange> --p775 -i <id> [-m <memory_interleaving>] -r <partition_rule>
chvm <noderange> [lparname=<*|name>]
chvm <noderange> -i <id> [-m <memory_interleaving>] -r <partition_rule>
chvm <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]
chvm <noderange> [del_vadapter=slotid]
VMware specific:
chvm <noderange> [-a size][-d disk][-p disk][--resize disk=size][--cpus count][--mem memory]
zVM specific:
@@ -258,11 +274,13 @@ my %usage = (
"rmvm" =>
"Usage: rmvm <noderange> [--service][-V|--verbose]
rmvm [-h|--help|-v|--version],
rmvm [-p] [-f]",
rmvm [-p] [-f]
PPC (using Direct FSP Management) specific:
rmvm <noderange>",
"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]
[-t tries][--vpdtable][-C counts][-T timeout][--flexdiscover]",
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]",
"rflash" =>
"Usage:
rflash [ -h|--help|-v|--version]
@@ -317,17 +335,31 @@ my %usage = (
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 }
Blade specific :
renergy noderange [-V] { all | pd1all | pd2all | { [pd1status] [pd2status] [pd1policy] [pd2policy] [pd1powermodule1] [pd1powermodule2] [pd2powermodule1] [pd2powermodule2] [pd1avaiablepower] [pd2avaiablepower] [pd1reservedpower] [pd2reservedpower] [pd1remainpower] [pd2remainpower] [pd1inusedpower] [pd2inusedpower] [availableDC] [averageAC] [thermaloutput] [ambienttemp] [mmtemp] } }
renergy noderange [-V] { all | { [averageDC] [capability] [cappingvalue] [CPUspeed] [maxCPUspeed] [savingstatus] [dsavingstatus] } }
renergy noderange [-V] { {savingstatus}={on | off} | {dsavingstatus}={on-norm | on-maxp | off} }",
BladeCenter specific :
For Management Modules:
renergy noderange [-V] { all | pd1all | pd2all | [pd1status] [pd2status] [pd1policy] [pd2policy] [pd1powermodule1] [pd1powermodule2] [pd2powermodule1] [pd2powermodule2] [pd1avaiablepower] [pd2avaiablepower] [pd1reservedpower] [pd2reservedpower] [pd1remainpower] [pd2remainpower] [pd1inusedpower] [pd2inusedpower] [availableDC] [averageAC] [thermaloutput] [ambienttemp] [mmtemp] }
For a blade server nodes:
renergy noderange [-V] { all | [averageDC] [capability] [cappingvalue] [CPUspeed] [maxCPUspeed] [savingstatus] [dsavingstatus] }
renergy noderange [-V] { savingstatus={on | off} | dsavingstatus={on-norm | on-maxp | off} }
Flex specific :
For Flex Management Modules:
renergy noderange [-V] { all | [powerstatus] [powerpolicy] [powermodule] [avaiablepower] [reservedpower] [remainpower] [inusedpower] [availableDC] [averageAC] [thermaloutput] [ambienttemp] [mmtemp] }
For Flex node (power and x86):
renergy noderange [-V] { all | [averageDC] [capability] [cappingvalue] [cappingmaxmin] [cappingmax] [cappingmin] [cappingGmin] [CPUspeed] [maxCPUspeed] [savingstatus] [dsavingstatus] }
renergy noderange [-V] { cappingstatus={on | off} | cappingwatt=watt | cappingperc=percentage | savingstatus={on | off} | dsavingstatus={on-norm | on-maxp | off} }
iDataPlex specific :
renergy noderange [-V] [ { cappingmaxmin | cappingmax | cappingmin } ] [cappingstatus] [cappingvalue] [relhistogram]
renergy noderange [-V] { cappingstatus={on | enable | off | disable} | {cappingwatt|cappingvalue}=watt }",
"updatenode" =>
"Usage:
updatenode [-h|--help|-v|--version]
updatenode [-h|--help|-v|--version | -g|--genmypost]
or
updatenode <noderange> [-V|--verbose] [-k|--security] [-s|--sn]
updatenode <noderange> [-V|--verbose] [-k|--security] [-s|--sn] [-t <timeout>]
or
updatenode <noderange> [-V|--verbose] [-F|--sync | -f|--snsync] [-l|--user[username]] [-S|--sw]
updatenode <noderange> [-V|--verbose] [-F|--sync | -f|--snsync] [-l|--user[username]] [--fanout=[fanout value]] [-S|--sw] [-t <timeout>]
[-P|--scripts [script1,script2,...]] [-s|--sn]
[-A|--updateallsw] [-c|--cmdlineonly] [-d alt_source_dir]
[attr=val [attr=val...]]
@@ -342,8 +374,15 @@ Options:
[-F|--sync] Perform File Syncing.
[--fanout] Allows you to assign the fanout value for the command.
See xdsh/xdcp fanout parameter in the man page.
[-f|--snsync] Performs File Syncing to the service nodes that service
the nodes in the noderange.
[-g|--genmypost] Will generate a new mypostscript file for the
the nodes in the noderange, if site precreatemypostscripts is 1 or YES.
[-l|--user] User name to run the updatenode command. It overrides the
current user which is the default.
@@ -357,6 +396,9 @@ Options:
[-s|--sn] Set the server information stored on the nodes.
[-t|--timeout] Time out in seconds to allow the command to run. Default is no timeout,
except for updatenode -k which has a 10 second default timeout.
[-A|--updateallsw] Install or update all software contained in the source
directory. (AIX only)
+402 -31
View File
@@ -21,10 +21,13 @@ use File::Path;
use Socket;
use strict;
use Symbol;
my $sha1support = eval {
require Digest::SHA1;
1;
};
my $sha1support;
if ( -f "/etc/debian_version" ){
$sha1support = eval {require Digest::SHA; 1;};
}
else {
$sha1support = eval { require Digest::SHA1; 1;};
}
use IPC::Open3;
use IO::Select;
use xCAT::GlobalDef;
@@ -117,6 +120,38 @@ This program module file, is a set of utilities used by xCAT commands.
#-------------------------------------------------------------
=head3 clroptionvars
- use this routine to clear GetOptions global option variables
before calling GetOptions.
- this may be needed because a "command" may be called twice
from the same process - and global options may have been
set the first time through. (ex. from a plugin using runxcmd() )
- should really avoid global vars but this provides a quick fix
for now
ex. my $rc = xCAT::Utils->clroptionvars($::opt1, $::opt2 ...)
=cut
#-------------------------------------------------------
sub clroptionvars
{
# skip the class arg and set the rest to undef
my $skippedclass=0;
foreach (@_) {
if ($skippedclass) {
$_ = undef;
}
$skippedclass=1;
}
return 0;
}
#-------------------------------------------------------------
=head3 genUUID
Returns an RFC 4122 compliant UUIDv4 or UUIDv1
Arguments:
@@ -176,7 +211,13 @@ sub genUUID
return $uuid;
} elsif ($args{url} and $sha1support) { #generate a UUIDv5 from URL
#6ba7b810-9dad-11d1-80b4-00c04fd430c8 is the uuid for URL namespace
my $sum = Digest::SHA1::sha1('6ba7b810-9dad-11d1-80b4-00c04fd430c8'.$args{url});
my $sum = '';
if ( -f "/etc/debian_version" ){
$sum = Digest::SHA::sha1('6ba7b810-9dad-11d1-80b4-00c04fd430c8'.$args{url});
}
else{
$sum = Digest::SHA1::sha1('6ba7b810-9dad-11d1-80b4-00c04fd430c8'.$args{url});
}
my @data = unpack("C*",$sum);
splice @data,16;
$data[6] = $data[6] & 0xf;
@@ -936,13 +977,9 @@ sub runcmd
if ($::VERBOSE)
{
# get this systems name as known by xCAT management node
my $Sname = xCAT::InstUtils->myxCATname();
my $msg;
if ($Sname) {
$msg = "Running command on $Sname: $cmd";
} else {
$msg="Running command: $cmd";
}
my $hostname = `/bin/hostname`;
chomp $hostname;
my $msg="Running command on $hostname: $cmd";
if ($::CALLBACK){
my $rsp = {};
@@ -1307,6 +1344,10 @@ sub runxcmd_output
{
push @$::xcmd_outref, @{$resp->{data}};
}
if (defined($resp->{status}))
{
push @$::xcmd_outref, @{$resp->{status}};
}
if (defined($resp->{node}))
{
my $node = $resp->{node}->[0];
@@ -1334,7 +1375,6 @@ sub runxcmd_output
if (defined($resp->{error}))
{
push @$::xcmd_outref, @{$resp->{error}};
$::RUNCMD_RC = 1;
}
if (defined($resp->{errorcode}))
{
@@ -1379,6 +1419,10 @@ sub runxcmd_output2
{
push @{$::xcmd_outref_hash->{data}}, @{$resp->{data}};
}
if (defined($resp->{status}))
{
push @{$::xcmd_outref_hash->{status}}, @{$resp->{status}};
}
if (defined($resp->{node}))
{
push @{$::xcmd_outref_hash->{node}}, @{$resp->{node}};
@@ -1386,7 +1430,6 @@ sub runxcmd_output2
if (defined($resp->{error}))
{
push @{$::xcmd_outref_hash->{error}}, @{$resp->{error}};
$::RUNCMD_RC = 1;
}
if (defined($resp->{errorcode}))
{
@@ -2068,7 +2111,8 @@ sub CheckVersion
=head3 osver
Returns the os and version of the System you are running on
Arguments:
none
$type: which type of os infor you want. Supported values are:
all,os,version,release
Returns:
0 - ok
Globals:
@@ -2085,9 +2129,16 @@ sub CheckVersion
#-------------------------------------------------------------------------------
sub osver
{
my $type = shift;
if ($type =~ /xCAT::Utils/)
{
$type = shift;
}
my $osver = "unknown";
my $os = '';
my $ver = '';
my $rel = '';
my $line = '';
my @lines;
my $relfile;
@@ -2098,14 +2149,31 @@ sub osver
close($relfile);
chomp($line);
$os = "rh";
my $verrel=$line;
$ver=$line;
$ver=~ tr/\.//;
$ver =~ s/[^0-9]*([0-9]+).*/$1/;
if ( $type ) {
$verrel =~ s/[^0-9]*([0-9.]+).*/$1/;
($ver,$rel) = split /\./, $verrel;
} else {
$ver=~ tr/\.//;
$ver =~ s/[^0-9]*([0-9]+).*/$1/;
}
if ($line =~ /AS/) { $os = 'rhas' }
elsif ($line =~ /ES/) { $os = 'rhes' }
elsif ($line =~ /WS/) { $os = 'rhws' }
elsif ($line =~ /Server/) { $os = 'rhserver' }
elsif ($line =~ /Client/) { $os = 'rhclient' }
elsif ($line =~ /Server/) {
if ( $type ) {
$os = 'rhels';
} else {
$os = 'rhserver';
}
} elsif ($line =~ /Client/) {
if ( $type ) {
$os = 'rhel';
} else {
$os = 'rhclient';
}
}
elsif (-f "/etc/fedora-release") { $os = 'rhfc' }
}
elsif (-f "/etc/SuSE-release")
@@ -2120,6 +2188,10 @@ sub osver
$ver =~ tr/\.//;
$ver =~ s/[^0-9]*([0-9]+).*/$1/;
$rel = $lines[2];
$ver =~ tr/\.//;
$rel =~ s/[^0-9]*([0-9]+).*/$1/;
#print "ver: $ver\n";
}
elsif (-f "/etc/UnitedLinux-release")
@@ -2177,8 +2249,21 @@ sub osver
close($relfile);
}
}
$os = "$os" . "$ver";
return ($os);
if ( $type and $type =~ /all/ ) {
if ( $rel ) {
return( "$os" . "," . "$ver" . ".$rel" );
} else {
return( "$os" . "," . "$ver" );
}
} elsif ( $type and $type =~ /os/ ) {
return( $os );
} elsif ( $type and $type =~ /version/ ) {
return( $ver );
} elsif ( $type and $type =~ /release/ ) {
return( $rel );
} else {
return ("$os" . "$ver");
}
}
#-----------------------------------------------------------------------------
@@ -3085,7 +3170,7 @@ sub isSELINUX
Input:
array of nodes in the noderange
Example:
my $mn=xCAT::Utils->noderangecontainsMN($noderange);
my @mn=xCAT::Utils->noderangecontainsMN($noderange);
Comments:
=cut
@@ -3094,26 +3179,312 @@ sub noderangecontainsMn
{
my ($class, @noderange)=@_;
# check if any node in the noderange is the Management Node return the
# name
my $mname;
# name
my @mnames; # management node names in the database, members of __mgmtnode
my $tab = xCAT::Table->new('nodelist');
my @nodelist=$tab->getAllNodeAttribs(['node','groups']);
foreach my $n (@nodelist) {
if (defined($n->{'groups'})) {
my @groups=split(",",$n->{'groups'});
if ((grep (/__mgmtnode/,@groups))) { # this is the MN
$mname=$n->{'node'};
last;
push @mnames,$n->{'node'};
}
}
}
if ($mname) { # if Management Node defined in the database
if (grep(/$mname/, @noderange)) { # if MN in the noderange
return $mname;
} else {
return ;
my @MNs; # management node names found the noderange
if (@mnames) { # if any Management Node defined in the database
foreach my $mn (@mnames) {
if (grep(/^$mn$/, @noderange)) { # if MN in the noderange
push @MNs, $mn;
}
}
if (@MNs) { # management nodes in the noderange
return @MNs;
}
}
return; # if no MN in the noderange, return nothing
}
=head3 filter_nodes
##########################################################################
# Fliter the nodes to specific groups
# For specific command, figure out the node lists which should be handled by blade.pm, fsp.pm or ipmi.pm
# mp group: the nodes will be handled by blade.pm
# fsp group: the nodes will be handled by fsp.pm
# bmc group: the nodes will be handled by ipmi.pm
# For rspconfig network, the NGP ppc blade will be included in the group of mp, othewise in the fsp group
# For getmacs -D, the NGP ppc blade will be included in the group of common fsp, otherwise in the mp group
# For renergy command, NGP blade will be moved to mp group
##########################################################################
=cut
sub filter_nodes{
my ($class, $req, $mpnodes, $fspnodes, $bmcnodes, $nohandle) = @_;
my (@nodes,@args,$cmd);
if (defined($req->{'node'})) {
@nodes = @{$req->{'node'}};
} else {
return 1;
}
if (defined($req->{'command'})) {
$cmd = $req->{'command'}->[0];
}
if (defined($req->{'arg'})) {
@args = @{$req->{'arg'}};
}
# get the nodes in the mp table
my $mptabhash;
my $mptab = xCAT::Table->new("mp");
if ($mptab) {
$mptabhash = $mptab->getNodesAttribs(\@nodes, ['mpa','nodetype']);
}
# get the nodes in the ppc table
my $ppctabhash;
my $ppctab = xCAT::Table->new("ppc");
if ($ppctab) {
$ppctabhash = $ppctab->getNodesAttribs(\@nodes,['hcp']);
}
# get the nodes in the ipmi table
my $ipmitabhash;
my $ipmitab = xCAT::Table->new("ipmi");
if ($ipmitab) {
$ipmitabhash = $ipmitab->getNodesAttribs(\@nodes,['bmc']);
}
my $nodehmhash;
my $nodehmtab = xCAT::Table->new("nodehm");
if ($nodehmtab) {
$nodehmhash = $nodehmtab->getNodesAttribs(\@nodes,['mgt']);
}
my (@mp, @ngpfsp, @ngpbmc, @commonfsp, @commonbmc, @unknow);
# if existing in both 'mpa' and 'ppc', a ngp power blade
# if existing in both 'mpa' and 'ipmi', a ngp x86 blade
# if only in 'ppc', a common power node
# if only in 'ipmi', a common x86 node
foreach (@nodes) {
if (defined ($mptabhash->{$_}->[0]) && defined ($mptabhash->{$_}->[0]->{'mpa'})) {
if ($mptabhash->{$_}->[0]->{'mpa'} eq $_) {
if (defined($nodehmhash->{$_}->[0]) && defined($nodehmhash->{$_}->[0]->{'mgt'}) &&
$nodehmhash->{$_}->[0]->{'mgt'} eq "blade") {
push @mp, $_;
} else {
push @unknow, $_;
}
next;
}
if (defined ($ppctabhash->{$_}->[0]) && defined ($ppctabhash->{$_}->[0]->{'hcp'})) {
# flex power node
push @ngpfsp, $_;
next;
} elsif (defined ($ipmitabhash->{$_}->[0]) && defined ($ipmitabhash->{$_}->[0]->{'bmc'})) {
# flex x86 node
push @ngpbmc, $_;
next;
}
else {
# Non flex blade, but blade node
push @mp, $_;
next;
}
} elsif (defined ($ppctabhash->{$_}->[0]) && defined ($ppctabhash->{$_}->[0]->{'hcp'})) {
# common power node
push @commonfsp, $_;
} elsif (defined ($ipmitabhash->{$_}->[0]) && defined ($ipmitabhash->{$_}->[0]->{'bmc'})) {
# common bmc node
push @commonbmc, $_;
} else {
push @unknow, $_;
}
}
push @{$mpnodes}, @mp;#blade.pm
push @{$fspnodes}, @commonfsp;
push @{$bmcnodes}, @commonbmc;
if (@args && ($cmd eq "rspconfig")) {
if (!(grep /^(cec_off_policy|pending_power_on_side)/, @args)) {
push @{$mpnodes}, @ngpfsp;
} else {
push @{$fspnodes}, @ngpfsp;
}
if (grep /^(network|textid)/, @args) {
push @{$mpnodes}, @ngpbmc;
} else {
push @{$bmcnodes}, @ngpbmc;
}
} elsif($cmd eq "getmacs") {
if (@args && (grep /^-D$/,@args)) {
push @{$fspnodes}, @ngpfsp;
} else {
push @{$mpnodes}, @ngpfsp;
}
push @{$mpnodes}, @ngpbmc;
} elsif ($cmd eq "rvitals") {
if (@args && (grep /^lcds$/,@args)) {
push @{$fspnodes},@ngpfsp;
} else {
push @{$mpnodes}, @ngpfsp;
}
} elsif ($cmd eq "renergy") {
if (grep /^(relhistogram)/, @args) {
push @{$bmcnodes}, @ngpbmc;
} else {
push @{$mpnodes}, @ngpbmc;
}
push @{$mpnodes}, @ngpfsp;
} else {
push @{$fspnodes}, @ngpfsp;
}
push @{$nohandle}, @unknow;
## TRACE_LINE print "Nodes filter: nodetype [commp:@mp,ngpp:@ngpfsp,comfsp:@commonfsp]. mpnodes [@{$mpnodes}], fspnodes [@{$fspnodes}], bmcnodes [@{$bmcnodes}]\n";
return 0;
}
#-------------------------------------------------------------------------------
=head3 filter_nostatusupdate()
filter out the nodes which support provision status feedback from the status-nodes hash
Returns:
returns the filtered status-nodes hash
Globals:
none
Error:
none
Input:
the ref of status-nodes hash to filter
Example:
my $mn=xCAT::Utils->filter_nostatusupdate(\%statusnodehash);
Comments:
=cut
#-------------------------------------------------------------------------------
sub filter_nostatusupdate{
my ($class,$inref)=@_;
my $nttabdata;
my @allnodes=();
#read "nodetype" table to get the "os" attribs for all the nodes with status "installing" or "netbooting"
if(exists $inref->{$::STATUS_INSTALLING}){
push @allnodes, @{$inref->{$::STATUS_INSTALLING}};
}
if(exists $inref->{$::STATUS_NETBOOTING}){
push @allnodes, @{$inref->{$::STATUS_NETBOOTING}};
}
my $nodetypetab = xCAT::Table->new('nodetype');
if ($nodetypetab) {
$nttabdata = $nodetypetab->getNodesAttribs(\@allnodes, ['node', 'os']);
$nodetypetab->close();
}
#filter out the nodes which support the node provision status feedback
my @nodesfiltered=();
if(exists $inref->{$::STATUS_INSTALLING}){
map{ if($nttabdata->{$_}->[0]->{os} !~ /(fedora|rh|centos|sles|ubuntu)/) {push @nodesfiltered,$_;} } @{$inref->{$::STATUS_INSTALLING}};
delete $inref->{$::STATUS_INSTALLING};
if(@nodesfiltered){
@{$inref->{$::STATUS_INSTALLING}}=@nodesfiltered;
}
}
@nodesfiltered=();
if(exists $inref->{$::STATUS_NETBOOTING}){
map{ if($nttabdata->{$_}->[0]->{os} !~ /(fedora|rh|centos|sles|ubuntu)/) {push @nodesfiltered,$_;} } @{$inref->{$::STATUS_NETBOOTING}};
delete $inref->{$::STATUS_NETBOOTING};
if(@nodesfiltered){
@{$inref->{$::STATUS_NETBOOTING}}=@nodesfiltered;
}
}
}
sub version_cmp {
my $ver_a = shift;
if ($ver_a =~ /xCAT::Utils/)
{
$ver_a = shift;
}
my $ver_b = shift;
my @array_a = ($ver_a =~ /([-.]|\d+|[^-.\d]+)/g);
my @array_b = ($ver_b =~ /([-.]|\d+|[^-.\d]+)/g);
my ($a, $b);
my $len_a = @array_a;
my $len_b = @array_b;
my $len = $len_a;
if ( $len_b < $len_a ) {
$len = $len_b;
}
for ( my $i = 0; $i < $len; $i++ ) {
$a = $array_a[$i];
$b = $array_b[$i];
if ($a eq $b) {
next;
} elsif ( $a eq '-' ) {
return -1;
} elsif ( $b eq '-') {
return 1;
} elsif ( $a eq '.' ) {
return -1;
} elsif ( $b eq '.' ) {
return 1;
} elsif ($a =~ /^\d+$/ and $b =~ /^\d+$/) {
if ($a =~ /^0/ || $b =~ /^0/) {
return ($a cmp $b);
} else {
return ($a <=> $b);
}
} else {
$a = uc $a;
$b = uc $b;
return ($a cmp $b);
}
}
return ( $len_a <=> $len_b )
}
#--------------------------------------------------------------------------------
=head3 fullpathbin
returns the full path of a specified binary executable file
Arguments:
string of the bin file name
Returns:
string of the full path name of the binary executable file
Globals:
none
Error:
string of the bin file name in the argument
Example:
my $CHKCONFIG = xCAT::Utils->fullpathbin("chkconfig");
Comments:
none
=cut
#--------------------------------------------------------------------------------
sub fullpathbin
{
my $bin=shift;
if( $bin =~ /xCAT::Utils/)
{
$bin=shift;
}
my @paths= ("/bin","/usr/bin","/sbin","/usr/sbin");
my $fullpath=$bin;
foreach my $path (@paths)
{
if (-x $path.'/'.$bin)
{
$fullpath= $path.'/'.$bin;
last;
}
}
return $fullpath;
}
1;
+1 -1
View File
@@ -26,7 +26,7 @@ sub grab_table_data{ #grab table data relevent to VM guest nodes
if ($vpdtab) {
$cfghash->{vpd} = $vpdtab->getNodesAttribs($noderange,['uuid']);
}
$cfghash->{vm} = $vmtab->getNodesAttribs($noderange,['node','host','migrationdest','cfgstore','storage','vidmodel','vidproto','vidpassword','storagemodel','memory','cpus','nics','nicmodel','bootorder','virtflags','datacenter','guestostype','othersettings','master']);
$cfghash->{vm} = $vmtab->getNodesAttribs($noderange,['node','host','migrationdest','cfgstore','storage','storagecache','storageformat','vidmodel','vidproto','vidpassword','storagemodel','memory','cpus','nics','nicmodel','bootorder','virtflags','datacenter','guestostype','othersettings','master']);
my $mactab = xCAT::Table->new("mac",-create=>1);
my $nrtab= xCAT::Table->new("noderes",-create=>1);
$cfghash->{mac} = $mactab->getAllNodeAttribs(['mac'],1);
+452
View File
@@ -0,0 +1,452 @@
#!/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;
Regular → Executable
+14 -1
View File
@@ -16,6 +16,7 @@ require Exporter;
"1310229985.226287" => "centos6",
"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",
@@ -26,6 +27,7 @@ require Exporter;
"1237641529.260981" => "centos5.3",
"1272326751.405938" => "centos5.5",
"1330913492.861127" => "centos5.8",#x86_64
"1357930415.252042" => "centos5.9",#x86_64
"1195488871.805863" => "centos4.6",
"1195487524.127458" => "centos4.6",
"1301444731.448392" => "centos5.6",
@@ -45,6 +47,10 @@ require Exporter;
"1269260915.992102" => "rhels5.5", #i386
"1269263646.691048" => "rhels5.5", #x86_64
"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
@@ -54,10 +60,15 @@ require Exporter;
"1339641244.734735" => "rhels6.3", #ppc64
"1339640147.274118" => "rhels6.3", #x86_64
"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
"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
"1194015916.783841" => "fedora8",
"1194015385.299901" => "fedora8",
"1210112435.291709" => "fedora9",
@@ -69,7 +80,9 @@ require Exporter;
"1273712675.937554" => "fedora13", #x86_64 DVD ISO
"1287685820.403779" => "fedora14", #x86_64 DVD ISO
"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
+43
View File
@@ -0,0 +1,43 @@
#!/usr/bin/env perl
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
package xCAT::data::ibmhwtypes;
require Exporter;
@EXPORT_OK=qw(parse_group mt2group);
use Data::Dumper;
my %groups2mtm = (
"x3250" => ["2583","4251","4252"],
"x3550" => ["7914","7944","7946"],
"x3650" => ["7915","7945"],
"dx360" => [],
"x220" => ["7906"],
"x240" => ["8737","7863"],
"x440" => ["7917"],
"p260" => ["7895"], #789522X, 789523X
"p460" => [], #789542X
"p470" => ["7954"],
);
%mt2group = ();
foreach my $group (keys %groups2mtm) {
foreach my $mtm (@{$groups2mtm{$group}}) {
$mt2group{$mtm} = $group;
}
}
sub parse_group {
my $mtm = shift;
if ($mtm =~ /xCAT::data/) {
$mtm = shift;
}
if ($mtm =~ /^(\w{4})/) {
$mt = $1;
if ($mt eq "7895" and $mtm =~ /789542X/i) {
return "p460";
}
return $mt2group{$mt};
}
return undef;
}
1;
+12 -2
View File
@@ -208,7 +208,7 @@ sub getNic {
Arguments : User (root or non-root)
Node
Returns : Network names
Example : my $lans = xCAT::zvmCPUtils->getNetworkNames($node);
Example : my $lans = xCAT::zvmCPUtils->getNetworkNames($user, $node);
=cut
@@ -260,7 +260,7 @@ sub getNetworkNames {
Arguments : User (root or non-root)
Node
Returns : Array of networks names
Example : my @networks = xCAT::zvmCPUtils->getNetworkNamesArray($node);
Example : my @networks = xCAT::zvmCPUtils->getNetworkNamesArray($user, $node);
=cut
@@ -468,6 +468,7 @@ sub grantVSwitch {
# Use SMAPI EXEC
my $out = `ssh $user\@$hcp "$sudo $dir/smcli Virtual_Network_Vswitch_Set -T SYSTEM -n $vswitchId -I $userId"`;
xCAT::zvmUtils->printSyslog("grantVSwitch- ssh $user\@$hcp $sudo $dir/smcli Virtual_Network_Vswitch_Set -T SYSTEM -n $vswitchId -I $userId");
$out = xCAT::zvmUtils->trimStr($out);
# If return string contains 'Done' - Operation was successful
@@ -564,6 +565,7 @@ sub smapiFlashCopy {
# Use SMAPI EXEC to flash copy
my $cmd = '\"' . "CMD=FLASHCOPY $srcId $srcAddr 0 END $tgtId $tgtAddr 0 END" . '\"';
my $out = `ssh $user\@$hcp "$sudo $dir/smcli xCAT_Commands_IUO -T $hcpUserId -c $cmd"`;
xCAT::zvmUtils->printSyslog("smapiFlashCopy- ssh $user\@$hcp $sudo $dir/smcli xCAT_Commands_IUO -T $hcpUserId -c $cmd");
$out = xCAT::zvmUtils->trimStr($out);
@@ -656,14 +658,18 @@ sub purgeReader {
$sudo = "";
}
xCAT::zvmUtils->printSyslog("sudoer:$user zHCP:$hcp sudo:$sudo");
my $out;
if (xCAT::zvmUtils->smapi4xcat($user, $hcp)) {
# Use SMAPI EXEC to purge reader
my $cmd = '\"' . "CMD=PURGE $userId RDR ALL" . '\"';
$out = `ssh $user\@$hcp "$sudo $dir/smcli xCAT_Commands_IUO -T $userId -c $cmd"`;
xCAT::zvmUtils->printSyslog("smcli xCAT_Commands_IUO -T $userId -c $cmd");
} else {
# Purge reader using CP
$out = `ssh -o ConnectTimeout=5 $user\@$hcp "$sudo /sbin/vmcp purge $userId rdr all"`;
xCAT::zvmUtils->printSyslog("/sbin/vmcp purge $userId rdr all");
}
$out = xCAT::zvmUtils->trimStr($out);
@@ -695,14 +701,18 @@ sub sendCPCmd {
$sudo = "";
}
xCAT::zvmUtils->printSyslog("sudoer:$user zHCP:$hcp sudo:$sudo");
my $out;
if (xCAT::zvmUtils->smapi4xcat($user, $hcp)) {
# Use SMAPI EXEC to send command
$cmd = '\"' . "CMD=SEND CP $userId " . uc($cmd) . '\"';
$out = `ssh $user\@$hcp "$sudo $dir/smcli xCAT_Commands_IUO -T $userId -c $cmd"`;
xCAT::zvmUtils->printSyslog("smcli xCAT_Commands_IUO -T $userId -c $cmd");
} else {
# Send CP command to given user
$out = `ssh $user\@$hcp "$sudo /sbin/vmcp send cp $userId $cmd"`;
xCAT::zvmUtils->printSyslog("/sbin/vmcp send cp $userId $cmd");
}
$out = xCAT::zvmUtils->trimStr($out);
File diff suppressed because it is too large Load Diff
+269 -78
View File
@@ -6,84 +6,275 @@
#include <stdlib.h>
#include <errno.h>
#include <netinet/in.h>
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));
}
#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();}
}
+48
View File
@@ -0,0 +1,48 @@
/* 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);
}
}
}
}
@@ -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/gpfs_updates directory.
# /install/post/otherpkgs/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
@@ -0,0 +1,6 @@
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
@@ -0,0 +1,9 @@
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>
@@ -0,0 +1,5 @@
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
@@ -0,0 +1 @@
8
+14
View File
@@ -0,0 +1,14 @@
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
+38
View File
@@ -0,0 +1,38 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: xcat-openstack-baremetal
Source: <url://example.com>
Files: *
Copyright: <years> <put author's name and email here>
<years> <likewise for another author>
License: <special license>
<Put the license of the package here indented by 1 space>
<This follows the format of Description: lines in control file>
.
<Including paragraphs>
# If you want to use GPL v2 or later for the /debian/* files use
# the following clauses, or change it to suit. Delete these two lines
Files: debian/*
Copyright: 2014 root <root@unknown>
License: GPL-2+
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>
.
On Debian systems, the complete text of the GNU General
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
# Please also look if there are files or directories which have a
# different copyright/license attached and list them here.
# Please avoid to pick license terms that are more restrictive than the
# packaged work, as it may make Debian's contributions unacceptable upstream.
+7
View File
@@ -0,0 +1,7 @@
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
+2
View File
@@ -0,0 +1,2 @@
xcat-openstack-baremetal_2.8.4-1_all.deb admin extra
xcat-openstack-baremetal_2.8.4-1_all.deb admin extra
+6
View File
@@ -0,0 +1,6 @@
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/
@@ -1,5 +1,5 @@
#!/bin/sh
# postinst script for xcat-genesis
# postinst script for xcat-openstack-baremetal
#
# see: dh_installdeb(1)
@@ -20,13 +20,10 @@ set -e
case "$1" in
configure)
if [ -f /tmp/xCAT-genesis_upgrade.tmp ];then
if [ -f "/proc/cmdline" ]; then # prevent running it during install into chroot image
. /etc/profile.d/xcat.sh
mknb x86_64
fi
rm /tmp/xCAT-genesis_upgrade.tmp
fi
#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)
+46
View File
@@ -0,0 +1,46 @@
#!/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
@@ -0,0 +1,44 @@
#!/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
@@ -0,0 +1 @@
1.0
@@ -0,0 +1,201 @@
dh_installdirs
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
dh_installdirs
dh_install
dh_link
dh_installman
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dh_builddeb
@@ -0,0 +1,4 @@
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
@@ -0,0 +1 @@
misc:Depends=
@@ -0,0 +1,817 @@
# 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 $host;
if(!GetOptions(
'h|help' => \$help,
'v|version' => \$version,
'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;
}
#print "$bmc, $bmc_user, $bmc_password, $mac, $cpu, $memory, $disk\n";
#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~source \~/openrc;$cmd_tmp~;
#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";
xCAT::MsgUtils->message("E", $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 $cloud;
my $ops_img_names;
my $controller;
if(!GetOptions(
'h|help' => \$help,
'v|version' => \$version,
'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;source \~/openrc;$cmd_tmp;rm /tmp/$image.qcow2~;
#print "cmd=$cmd\ncontroller=$controller\n";
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";
xCAT::MsgUtils->message("E", $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;
}
#set boot order, assuming it is ipmi nodes for now
# TODO: add support for system power hw.
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;
}
}
#-------------------------------------------------------------------------------
=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>";
$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>";
$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;
@@ -0,0 +1,17 @@
# 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
@@ -0,0 +1,256 @@
# 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}
@@ -0,0 +1,41 @@
# 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")
@@ -0,0 +1,9 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
"""
Possible xCAT node power states.
"""
OFF = 'off'
ON = 'on'
ERROR = 'error'
@@ -0,0 +1,260 @@
# 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'])
@@ -0,0 +1,90 @@
=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<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.
=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>
@@ -0,0 +1,65 @@
=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<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.
=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>
@@ -0,0 +1,215 @@
#!/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
elif [ "$str_os_type" = "debian" ];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
@@ -0,0 +1,94 @@
#!/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
elif [ "$str_os_type" = "debian" ];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
@@ -0,0 +1,102 @@
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
+213
View File
@@ -0,0 +1,213 @@
#!/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.
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);
}
+326
View File
@@ -0,0 +1,326 @@
<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 9">
<meta name=Originator content="Microsoft Word 9">
<title>Eclipse Public License - Version 1.0</title>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>2</o:Revision>
<o:TotalTime>3</o:TotalTime>
<o:Created>2004-03-05T23:03:00Z</o:Created>
<o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
<o:Pages>4</o:Pages>
<o:Words>1626</o:Words>
<o:Characters>9270</o:Characters>
<o:Lines>77</o:Lines>
<o:Paragraphs>18</o:Paragraphs>
<o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
<o:Version>9.4402</o:Version>
</o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:TrackRevisions/>
</w:WordDocument>
</xml><![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:553679495 -2147483648 8 0 66047 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p
{margin-right:0in;
mso-margin-top-alt:auto;
mso-margin-bottom-alt:auto;
margin-left:0in;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.BalloonText, li.BalloonText, div.BalloonText
{mso-style-name:"Balloon Text";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:8.0pt;
font-family:Tahoma;
mso-fareast-font-family:"Times New Roman";}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style>
</head>
<body lang=EN-US style='tab-interval:.5in'>
<div class=Section1>
<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
</p>
<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
OF THIS AGREEMENT.</span> </p>
<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
in the case of the initial Contributor, the initial code and documentation
distributed under this Agreement, and<br clear=left>
b) in the case of each subsequent Contributor:</span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
changes to the Program, and</span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
additions to the Program;</span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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. </span></p>
<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
entity that distributes the Program.</span> </p>
<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; 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. </span></p>
<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
distributed in accordance with this Agreement.</span> </p>
<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
receives the Program under this Agreement, including all Contributors.</span> </p>
<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
Subject to the terms of this Agreement, each Contributor hereby grants Recipient
a non-exclusive, worldwide, royalty-free copyright license to<span
style='color:red'> </span>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.</span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
Subject to the terms of this Agreement, each Contributor hereby grants
Recipient a non-exclusive, worldwide,<span style='color:green'> </span>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. </span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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.</span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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. </span></p>
<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
Program in object code form under its own license agreement, provided that:</span>
</p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
it complies with the terms and conditions of this Agreement; and</span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
its license agreement:</span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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; </span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
effectively excludes on behalf of all Contributors all liability for damages,
including direct, indirect, special, incidental and consequential damages, such
as lost profits; </span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
states that any provisions which differ from this Agreement are offered by that
Contributor alone and not by any other party; and</span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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.<span style='color:blue'> </span></span></p>
<p><span style='font-size:10.0pt'>When the Program is made available in source
code form:</span> </p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
it must be made available under this Agreement; and </span></p>
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
copy of this Agreement must be included with each copy of the Program. </span></p>
<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
copyright notices contained within the Program. </span></p>
<p><span style='font-size:10.0pt'>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. </span></p>
<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
<p><span style='font-size:10.0pt'>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 (&quot;Commercial
Contributor&quot;) hereby agrees to defend and indemnify every other
Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
costs (collectively &quot;Losses&quot;) 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.</span> </p>
<p><span style='font-size:10.0pt'>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.</span> </p>
<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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. </span></p>
<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
<p><span style='font-size:10.0pt'>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.</span> </p>
<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
<p><span style='font-size:10.0pt'>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.</span> </p>
<p><span style='font-size:10.0pt'>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. </span></p>
<p><span style='font-size:10.0pt'>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. </span></p>
<p><span style='font-size:10.0pt'>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.</span> </p>
<p><span style='font-size:10.0pt'>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.</span> </p>
<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
</div>
</body>
</html>
+411
View File
@@ -0,0 +1,411 @@
#!/usr/bin/perl
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
# Builds the xCAT-OpenStack database table man pages from the descriptions that are contained
# in the Cloud.pm schema plugin. This script is run during the build of the xCAT-OpenStack rpm, but
# is not packaged in the binary form of that rpm.
# This script is run in the xCAT-OpenStack subdir of the rpm build directory, so everything is
# done relative to that.
# The overview of what this script does is:
# - get the table descriptions from lib/perl/xCAT_schema/Clouds.pm and create a summary man page
# - iterate thru the tables in lib/perl/xCAT_schema/Clouds.pm and create pods for each
# - use the pod2man to convert them to man pages
# - use the pod2html to convert them to html pages
use strict;
use lib 'lib/perl';
use xCAT_schema::Clouds;
#use xCAT::Table;
use Pod::Man;
use Pod::Html;
my $VERBOSE = 1; # set this to 1 for debugging
my $poddir = 'pods';
my $mandir = 'share/man';
my $htmldir = 'share/doc';
my $cachedir = '/tmp';
my $poddir5 = 'pods/man5';
my $poddir7 = 'pods/man7';
if (system("mkdir -p $poddir5")) { die "Error: could not create $poddir5.\n"; }
if (system("mkdir -p $poddir7")) { die "Error: could not create $poddir7.\n"; }
# Build the DB overview page.
print "Building PODs pages for the database tables...\n";
writesummarypage("$poddir5/xcat-openstack-db.5.pod", getTableDescriptions(), getDefRef());
# Build the pod man page for each object definition
my $defspecref = getDefRef();
foreach my $defkey (keys %$defspecref) {
my $def = $defspecref->{$defkey};
my $attrs = $def->{'attrs'};
my $podfile = "$poddir7/$defkey.7.pod";
verbose("Writing pod file for $defkey");
writedefmanpage($podfile, $defkey, $attrs);
}
# Build the pod man page for each table.
my $tabspecref = getTableRef();
foreach my $tablekey (keys %$tabspecref) {
my $table = $tabspecref->{$tablekey};
my $summary = $table->{table_desc};
my $colorder = $table->{cols};
my $descriptions = $table->{descriptions};
verbose("Writing pod file for $tablekey");
writepodmanpage("$poddir5/$tablekey.5.pod", $tablekey, $summary, $colorder, $descriptions);
}
my @pods = getPodList($poddir);
verbose('Pod list:' . "@pods");
# Build the man page for each pod.
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$/;
verbose("Converting $podfile to $manfile");
convertpod2man($podfile, $manfile, $section);
}
my @dummyPods = createDummyPods($poddir);
# Build the html page for each pod.
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"; }
verbose("Converting $podfile to $htmlfile");
convertpod2html($podfile, $htmlfile, $poddir, $htmldir);
}
unlink @dummyPods;
exit;
# if VERBOSE is on, print out the given string
sub verbose { if ($VERBOSE) { print $_[0], "\n"; } }
sub getDefRef { return \%xCAT_schema::Clouds::defspec; }
sub getTableRef { return \%xCAT_schema::Clouds::tabspec; }
# Returns a list of the table names in the xCAT database.
sub getTableList { return keys %xCAT_schema::Clouds::tabspec; }
# Returns a reference to the db schema hash for the specified table.
sub getTableSchema { return $xCAT_schema::Clouds::tabspec{$_[0]}; }
# Return a reference to a hash where each key is the table name and each value is the table description.
sub getTableDescriptions {
# List each table name and the value for table_desc.
my $ret = {};
#my @a = keys %{$xCAT_schema::Clouds::tabspec{nodelist}}; print 'a=', @a, "\n";
foreach my $t (getTableList()) { $ret->{$t} = getTableSchema($t)->{table_desc}; }
return $ret;
}
# 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 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=man5:man7",
"--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);
}
# Create the xcat-openstack-db man page that gives a summary description of each table.
sub writesummarypage {
my $file = shift; # relative path file name of the man page
my $descriptions = shift; # a hash containing the description of each table
my $defdescriptions = shift; # a hash containing the description of each object definition
open(FILE, ">$file") or die "Error: could not open $file for writing.\n";
print FILE <<'EOS1';
=head1 NAME
An overview of the xCAT OpenStack database objects and tables.
=head1 DESCRIPTION
The xCAT OpenStack database objects and tables contain user settings for the OpenStack cloud being set up by xCAT.
To get more information about a particular table, run man for that table name.
The tables and objects can be viewed using B<tabdump>, B<nodels>, or B<lsdef>.
The tables and objects can be manipulated directly using B<tabedit>, B<nodech>, or B<chdef>.
For more information about the xCAT database and the base tables and objects, see the L<xcatdb(5)|xcatdb.5> man page.
=head1 XCAT OPENSTACK OBJECT DEFINITIONS
Because it can get confusing what attributes need to go in what tables, the xCAT database can also
be viewed and edited as logical objects, instead of flat tables. Use B<mkdef>, B<chdef>, B<lsdef>,
and B<rmdef> to create, change, list, and delete objects.
When using these commands, the object attributes will be stored in the same tables, as if you edited
the tables by hand. The only difference is that the object commands take care of knowing which tables
all of the information should go in.
To run man for any of the object definitions below, use section 7. For example: B<man 7 node>
The object types are:
=over 2
EOS1
foreach my $def (sort keys %$defdescriptions) {
if ($def eq 'node') { print FILE "\n=item L<$def(7)|node-openstack.7>\n"; } # can not overwrite the node man page in xcat-core
else { print FILE "\n=item L<$def(7)|$def.7>\n"; }
}
print FILE <<"EOS2";
=back
=head1 TABLES
To manipulate the tables directly, use B<nodels(1)>, B<chtab(8)>, B<tabdump(8)>, B<tabedit(8)>,
B<nodeadd(8)>, B<nodech(1)>.
To run man for any of the table descriptions below, use section 5. For example: B<man 5 nodehm>
The tables are:
=over 2
EOS2
foreach my $table (sort keys %$descriptions) {
print FILE "\n=item L<$table(5)|$table.5>\n\n".$descriptions->{$table}."\n";
}
print FILE <<"EOS3";
=back
=head1 SEE ALSO
B<nodels(1)>, B<chtab(8)>, B<tabdump(8)>, B<tabedit(8)>, B<lsdef(1)>, B<mkdef(1)>, B<chdef(1)>, B<rmdef(1)>
EOS3
close FILE;
}
# Create the man page for one object definition.
sub writedefmanpage {
my $file = shift; # relative path file name of the man page
my $defname = shift; # name of object
my $attrs = shift; # reference to the array of attributes
# Make exception for the node object, because we can not overwrite the node man page from xcat-core
if ($defname eq 'node') { $file = "$poddir7/node-openstack.7.pod"; }
# Go thru the attributes, collecting the descriptions
# Note: this logic is loosely taken from DBobjectdefs.pm
my %attrlist; # holds the attr name as the key, and the description & tables as value
foreach my $this_attr (@$attrs) {
my $attr = $this_attr->{attr_name};
my $desc = $this_attr->{description};
my ($table, $at) = split(/\./, $this_attr->{tabentry});
if (!defined($desc)) {
# description key not there, so go to the corresponding
# entry in tabspec to get the description
my $schema = getTableSchema($table);
$desc = $schema->{descriptions}->{$at};
}
# Attr names can appear more than once, if they are in multiple tables.
# We will keep track of that based on the table attribute, because that can be duplicated too
if (!defined($attrlist{$attr})) {
$attrlist{$attr}->{'tables'} = []; # initialize the array, so we can check it below
}
my $tableattr = "$table.$at";
if (!grep(/^$tableattr$/, @{$attrlist{$attr}->{'tables'}})) {
# there can be multiple entries that refer to the same table attribute
# if this is a new table attribute, then save the attr name and description
push @{$attrlist{$attr}->{'tables'}}, $tableattr;
push @{$attrlist{$attr}->{'descriptions'}}, $desc;
}
}
open(FILE, ">$file") or die "Error: could not open $file for writing.\n";
print FILE <<"EOS1";
=head1 NAME
B<$defname> - a logical object definition in the xCAT database.
=head1 SYNOPSIS
EOS1
print FILE "B<$defname Attributes:> I<" . join('>, I<',sort(keys(%attrlist))) . ">\n";
print FILE <<"EOS2";
=head1 DESCRIPTION
Logical objects of this type are stored in the xCAT database in one or more tables. Use the following commands
to manipulate the objects: B<mkdef>, B<chdef>, B<lsdef>, and B<rmdef>. These commands will take care of
knowing which tables the object attributes should be stored in. The attribute list below shows, in
parentheses, what tables each attribute is stored in.
=head1 $defname Attributes:
=over 6
EOS2
foreach my $a (sort keys %attrlist) {
my $d = join("\nor\n", @{$attrlist{$a}->{'descriptions'}});
$d =~ s/\n/\n\n/sg; # if there are newlines, double them so pod sees a blank line, otherwise pod will ignore them
my $t = '(' . join(', ',@{$attrlist{$a}->{'tables'}}) . ')';
#print FILE "\nB<$a> - $d\n";
print FILE "\n=item B<$a> $t\n\n$d\n";
}
print FILE <<"EOS3";
=back
EOS3
if ($defname eq 'node') {
print FILE "B<The node attributes listed above are just the ones that the xCAT-OpenStack RPM adds to the node object definition. For the rest of the node attributes from xcat-core, see the L<node(7)|node.7> man page.>\n\n";
}
print FILE <<"EOS4";
=head1 SEE ALSO
B<mkdef(1)>, B<chdef(1)>, B<lsdef(1)>, B<rmdef(1)>
EOS4
close FILE;
}
# Create the man page for one table.
sub writepodmanpage {
my $file = shift; # relative path file name of the man page
my $tablename = shift; # name of table
my $summary = shift; # description of table
my $colorder = shift; # the order in which the table attributes should be presented in
my $descriptions = shift; # a hash containing the description of each attribute
open(FILE, ">$file") or die "Error: could not open $file for writing.\n";
print FILE <<"EOS1";
=head1 NAME
B<$tablename> - a table in the xCAT database.
=head1 SYNOPSIS
EOS1
print FILE "B<$tablename Attributes:> I<" . join('>, I<',@$colorder) . ">\n";
print FILE <<"EOS2";
=head1 DESCRIPTION
$summary
=head1 $tablename Attributes:
=over 10
EOS2
foreach my $a (@$colorder) {
my $d = $descriptions->{$a};
#$d =~ s/\n/\n\n/sg; # if there are newlines, double them so pod sees a blank line, otherwise pod will ignore them
#print FILE "\nB<$a> - $d\n";
print FILE "\n=item B<$a>\n\n$d\n";
}
print FILE <<"EOS3";
=back
=head1 SEE ALSO
B<nodels(1)>, B<chtab(8)>, B<tabdump(8)>, B<tabedit(8)>
EOS3
close FILE;
}
# To enable linking between the man pages in xCAT-OpenStack and the xcat-core man pages
# we need to create an empty one that will satisfy pod2html.
# Returns all dummy pods created, so they can be removed later
sub createDummyPods {
my $poddir = shift @_;
# Also add xcattest.1.pod and buildkit.1.pod, because the xcat.1.pod summary page refers to it
push @dummyPods, "$poddir/man7/node.7.pod";
push @dummyPods, "$poddir/man5/xcatdb.5.pod";
# 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;
}
+5
View File
@@ -0,0 +1,5 @@
xcat-openstack (2.9) unstable; urgency=low
* Initial release
-- root <root@unknown> Mon, 01 Jul 2013 15:04:41 +0800
+1
View File
@@ -0,0 +1 @@
8
+14
View File
@@ -0,0 +1,14 @@
Source: xcat-openstack
Section: admin
Priority: extra
Maintainer: xCAT <xcat-user@lists.sourceforge.net>
Build-Depends: debhelper (>= 8.0.0)
Standards-Version: 3.9.2
#Vcs-Git: git://git.debian.org/collab-maint/xcat-openstack.git
#Vcs-Browser: http://git.debian.org/?p=collab-maint/xcat-openstack.git;a=summary
Package: xcat-openstack
Architecture: all
Depends: xcat
Description: Meta-Metapackage for a common, default xCAT management node setup with OpenStack
xCAT-OpenStack is an xCAT management node package intended for at-scale management with OpenStack, including hardware management and software management.
+88
View File
@@ -0,0 +1,88 @@
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.
+11
View File
@@ -0,0 +1,11 @@
opt/xcat/lib/perl/xCAT_schema
opt/xcat/lib/perl/xCAT_plugin
opt/xcat/lib/perl/xCAT
opt/xcat/share/xcat/mypostscript
opt/xcat/share/xcat/templates
opt/xcat/sbin
opt/xcat/share/man/man5
opt/xcat/share/doc/man5
opt/xcat/share/man/man7
opt/xcat/share/doc/man7
install/postscripts
+10
View File
@@ -0,0 +1,10 @@
lib/perl/xCAT_schema/* opt/xcat/lib/perl/xCAT_schema/
lib/perl/xCAT_plugin/* opt/xcat/lib/perl/xCAT_plugin/
lib/perl/xCAT/* opt/xcat/lib/perl/xCAT/
sbin/* opt/xcat/sbin/
share/man/man5/* opt/xcat/share/man/man5/
share/doc/man5/* opt/xcat/share/doc/man5/
share/man/man7/* opt/xcat/share/man/man7/
share/doc/man7/* opt/xcat/share/doc/man7/
postscripts/* install/postscripts/
share/xcat/* opt/xcat/share/xcat/
+44
View File
@@ -0,0 +1,44 @@
#!/bin/sh
# postinst script for xCAT
#
# 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)
if [ -f "/proc/cmdline" ];then
if [ -f "/opt/xcat/sbin/xcatd" ];then
/etc/init.d/xcatd reload
fi
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
+53
View File
@@ -0,0 +1,53 @@
#!/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
clean:
dh_testdir
dh_testroot
dh_clean -d
install:
pwd
dh_testdir
dh_testroot
dh_installdirs
`pwd`/db2man
dh_install -X".svn"
chmod 755 `pwd`/debian/xcat-openstack/opt/xcat/lib/perl/xCAT_schema
chmod 644 `pwd`/debian/xcat-openstack/opt/xcat/lib/perl/xCAT_schema/*
chmod 644 `pwd`/debian/xcat-openstack/opt/xcat/lib/perl/xCAT_plugin/*
chmod 644 `pwd`/debian/xcat-openstack/opt/xcat/lib/perl/xCAT/*
chmod 755 `pwd`/debian/xcat-openstack/opt/xcat/sbin/*
chmod 644 `pwd`/debian/xcat-openstack/opt/xcat/share/man/man5/*
chmod 644 `pwd`/debian/xcat-openstack/opt/xcat/share/doc/man5/*
chmod 644 `pwd`/debian/xcat-openstack/opt/xcat/share/man/man7/*
chmod 644 `pwd`/debian/xcat-openstack/opt/xcat/share/doc/man7/*
chmod 755 `pwd`/debian/xcat-openstack/install/postscripts/*
chmod 644 `pwd`/debian/xcat-openstack/opt/xcat/share/xcat/*
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
View File
@@ -0,0 +1 @@
1.0

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