Compare commits

..

400 Commits

Author SHA1 Message Date
Jarrod Johnson 6c6b43f60f Fix problem where tc grants always were sent to the last peer to send traffic 2013-04-08 13:35:17 -04:00
Jarrod Johnson d569677196 Fix issue where TC requests would be remembered not at all and then forever 2013-04-08 10:33:50 -04:00
Jarrod Johnson f17024abe5 Fix output to have a newline in packet 2013-04-08 14:29:46 +00:00
Jarrod Johnson ec114e2fde Implement udp request (but no reply yet) 2013-04-08 14:29:46 +00:00
Jarrod Johnson 7a33da03de Step one of traffic control, have SSL inform UDP process of current client count 2013-04-08 14:29:46 +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
565 changed files with 40486 additions and 6208 deletions
+1 -1
View File
@@ -1 +1 @@
2.8pcm
2.9
+259 -155
View File
@@ -1,264 +1,368 @@
#!/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 "
dists="maverick natty oneiric precise"
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"
uploader="bp-sawyers"
# Find where this script is located to set some build variables
old_pwd=`pwd`
cd `dirname $0`
curdir=`pwd`
#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"
if [ "$PROMOTE" = 1 ]; then
upload_dir="xcat-core"
tar_name="xcat-core-$ver.tar.bz2"
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
repo_xcat_core_path="`pwd`/gsa-repo_temp/xcat-core"
repo_xcat_dep_path="`pwd`/gsa-repo_temp/xcat-dep"
upload_dir="core-snap"
tar_name="core-debs-snap.tar.bz2"
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
#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 [ "$c_flag" -a "$update_core" ]
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
# 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
#get the version
echo "svn --quiet update Version"
svn --quiet up Version
ver=`cat Version`
short_ver=`cat Version|cut -d. -f 1,2`
short_short_ver=`cat Version|cut -d. -f 1`
#TODO: define the core path and tarball name
tarball_name="core-debs-snap.tar.bz2"
#update the code from svn
svn_up_log="../coresvnup"
echo "svn update > $svn_up_log"
svn update > $svn_up_log
#makesure the code change status
code_change=0
if ! grep -q 'At revision' $svn_up_log;then
code_change=1
fi
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 "###############################"
CMD_PATH=`pwd`
cd $xcat_core_path
./build-debs-all "snap" "Nightly_Builds"
#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 ../../debs ];then
mkdir -p "../../debs"
fi
packages="xCAT-client xCAT-genesis-scripts perl-xCAT xCAT-server xCAT-UI xCAT xCATsn xCAT-test"
for file in `echo $packages`
do
file_low=`echo $file | tr '[A-Z]' '[a-z]'`
if grep -q $file $svn_up_log || [ "$BUILDALL" == 1 ]; then
rm -f ../../debs/${file_low}_*.deb
#only for genesis package
rm -f ../../debs/${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}* ../../debs/
fi
done
find ../../debs/* ! -name *.deb | xargs rm -f
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
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 ../debs/*.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 xcat xcat-core
chmod -R g+w xcat-core
#build the tar ball
tar -hjcf $tar_name xcat-core
chgrp xcat $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 [ "$UP" != 1 ]; 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
if [ "$PROMOTE" = 1 -a "$REL" != "devel" -a "$PREGA" != 1 ]; then
echo "";
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
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 xcat 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 xcat $dep_tar_name
chmod g+w $dep_tar_name
if [ "$UP" != 1 ];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
cd $old_pwd
fi
exit 0
+50 -78
View File
@@ -19,7 +19,6 @@
# 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/
@@ -32,7 +31,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
# GITUP=<filename> - control which rpms get built by specifying a coregitup file
# FRSYUM=0 - put the yum repo and snap builds in the old project web area instead of the FRS area.
# 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
@@ -85,24 +84,15 @@ if [ "$OSNAME" != "AIX" ]; then
export HOME=/root # This is so rpm and gpg will know home, even in sudo
fi
# 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
# 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"
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"
@@ -126,12 +116,27 @@ else
fi
XCATCORE="xcat-core" # core-snap is a sym link to xcat-core
if [ "$GIT" = "1" ]; then # using git - need to include REL in the path where we put the built rpms
DESTDIR=../../$REL$EMBEDDIR/$XCATCORE
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
else
DESTDIR=../..$EMBEDDIR/$XCATCORE
CORE="core-snap"
if [ "$OSNAME" = "AIX" ]; then
TARNAME=core-aix-snap.tar.gz
else
TARNAME=core-rpms-snap.tar.bz2
fi
fi
DESTDIR=../..$EMBEDDIR/$XCATCORE
SRCD=core-snap-srpms
# currently aix builds ppc rpms, but someday it should build noarch
@@ -141,21 +146,8 @@ else
NOARCH=noarch
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
@@ -176,32 +168,16 @@ else
#echo "source=$source"
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 [ "$GIT" = "1" ]; then # using git
if [ -z "$GITUP" ]; then
GITUP=../coregitup
echo "git pull > $GITUP"
git pull > $GITUP
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
# 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
SOMETHINGCHANGED=0
if ! $GREP 'At revision' $SVNUP; then
SOMETHINGCHANGED=1
fi
setversionvars
# Function for making the noarch rpms
function maker {
@@ -218,7 +194,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 $GITUP; then
if [ $SOMETHINGCHANGED == 1 -o "$BUILDALL" == 1 ]; then # Use to be: $GREP perl-xCAT $SVNUP; then
if [[ " $EMBEDBUILD " = *\ perl-xCAT\ * ]]; then
UPLOAD=1
maker perl-xCAT
@@ -234,7 +210,7 @@ for rpmname in xCAT-client xCAT-server xCAT-IBMhpc xCAT-rmc xCAT-UI xCAT-test xC
#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 $GITUP || [ "$BUILDALL" == 1 ]; then
if $GREP $rpmname $SVNUP || [ "$BUILDALL" == 1 ]; then
UPLOAD=1
maker $rpmname
fi
@@ -249,7 +225,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 $GITUP || [ "$BUILDALL" == 1 ]; then
if $GREP xCAT-genesis-scripts $SVNUP || [ "$BUILDALL" == 1 ]; then
UPLOAD=1
ORIGFAILEDRPMS="$FAILEDRPMS"
./makerpm xCAT-genesis-scripts x86_64 "$EMBED"
@@ -268,14 +244,14 @@ fi
for rpmname in xCAT xCATsn; do
#if [ "$EMBED" = "zvm" ]; then break; fi
if [[ " $EMBEDBUILD " != *\ $rpmname\ * ]]; then continue; fi
if [ $SOMETHINGCHANGED == 1 -o "$BUILDALL" == 1 ]; then # used to be: if $GREP -E "^[UAD] +$rpmname/" $GITUP; then
if [ $SOMETHINGCHANGED == 1 -o "$BUILDALL" == 1 ]; then # used to be: if $GREP -E "^[UAD] +$rpmname/" $SVNUP; then
UPLOAD=1
ORIGFAILEDRPMS="$FAILEDRPMS"
if [ "$OSNAME" = "AIX" ]; then
./makerpm $rpmname "$EMBED"
if [ $? -ne 0 ]; then FAILEDRPMS="$FAILEDRPMS $rpmname"; fi
else
for arch in x86_64 ppc64 s390x; do
for arch in x86_64 i386 ppc64 s390x; do
./makerpm $rpmname $arch "$EMBED"
if [ $? -ne 0 ]; then FAILEDRPMS="$FAILEDRPMS $rpmname-$arch"; fi
done
@@ -348,8 +324,8 @@ if [ "$OSNAME" != "AIX" ]; then
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 --checksum sha $DESTDIR # specifying checksum so the repo will work on rhel5
createrepo --checksum sha $SRCDIR
createrepo $DESTDIR
createrepo $SRCDIR
rm -f $SRCDIR/repodata/repomd.xml.asc
rm -f $DESTDIR/repodata/repomd.xml.asc
gpg -a --detach-sign $DESTDIR/repodata/repomd.xml
@@ -378,17 +354,7 @@ chmod -R g+w $DESTDIR
chgrp -R xcat $SRCDIR
chmod -R g+w $SRCDIR
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
fi # end of very long if-not-promote
cd $DESTDIR
@@ -493,5 +459,11 @@ if [ "$OSNAME" != "AIX" -a "$REL" = "devel" -a "$PROMOTE" != 1 -a -z "$EMBED" ];
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
+1 -1
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
+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
+18 -10
View File
@@ -1,26 +1,34 @@
#!/bin/sh
# Put the version, svn revision #, and build date into the Version function in Version.pm
if [ -z "$1" ]
if [ -z "$2" ]
then
echo "modifyUtils: Error: must specify the xCAT version as an argument" >&2
echo "modifyUtils: Error: must specify the xCAT version and svn revision number as arguments" >&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 ". '(built $BUILDDATE)'"
#echo ". '(${SVNREF}built $BUILDDATE)'"
if [ "$(uname)" = "AIX" ]
then
sed -e s/"#XCATVERSIONSUBHERE"/". '$VER'"/ -e s/"#XCATSVNBUILDSUBHERE"/". ' (built $BUILDDATE)'"/ xCAT/Version.pm >xCAT/Version.pm.new
sed -e s/"#XCATVERSIONSUBHERE"/". '$VER'"/ -e s/"#XCATSVNBUILDSUBHERE"/". ' (${SVNREF}built $BUILDDATE)'"/ xCAT/Version.pm >xCAT/Version.pm.new
mv xCAT/Version.pm.new xCAT/Version.pm
else
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
sed -i -e s/"#XCATVERSIONSUBHERE"/". '$VER'"/ -e s/"#XCATSVNBUILDSUBHERE"/". ' (${SVNREF}built $BUILDDATE)'"/ xCAT/Version.pm
fi
+2 -1
View File
@@ -25,6 +25,7 @@ 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
@@ -36,7 +37,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}
./modifyUtils %{version} %{svninfo}
# 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.
+22 -6
View File
@@ -433,7 +433,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
@@ -998,7 +998,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 +1012,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}) {
+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);
}
+174 -2
View File
@@ -2150,7 +2150,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 +2161,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 +2598,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+)\.(\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;
+55 -26
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 = {};
@@ -1034,6 +1040,28 @@ sub fork_fanout_dsh
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);
}
push @dsh_command,
"$$options{'pre-command'} . $$options{'environment'} ; $$options{'command'}$$options{'post-command'}";
}
@@ -1163,13 +1191,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 = "";
@@ -4216,7 +4244,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 +4353,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 +4599,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);
+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)/) {
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;
+6 -1
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']);
for my $entry ( @ps ) {
my $tmp_parent = $entry->{parent};
my $tmp_node = $entry->{node};
@@ -76,6 +76,9 @@ 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(exists($ppchash{$tmp_node})) {
# if( defined($tmp_type) ) {
@@ -173,6 +176,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;
}
+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);
}
+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";
}
-1
View File
@@ -2196,7 +2196,6 @@ sub isValidHostname
return 0;
}
#-------------------------------------------------------------------------------
=head3 isValidFQDN
+24 -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,8 +486,9 @@ 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)$/)
{
$cnode = xCAT::DBobjUtils::getchildren($node_name, $opt->{port});
} else {
@@ -518,12 +519,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 +713,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 +730,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)
{
-50
View File
@@ -541,56 +541,6 @@ sub get_allnode_singleattrib_hash
return \%allrecords;
}
#-------------------------------------------------------------------------------
=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 is_discover_started
+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
+5 -5
View File
@@ -90,7 +90,7 @@ sub dodiscover {
}
}
my $printinfo = join(",", @printip);
send_message($args{reqcallback}, 0, "Sending SLP request on interfaces: $printinfo ...") if ($args{reqcallback});
send_message($args{reqcallback}, 0, "Sending SLP request on interfaces: $printinfo ...") if ($args{reqcallback} and !$args{nomsg} );
foreach my $srvtype (@srvtypes) {
send_service_request_single(%args,ifacemap=>$interfaces,SrvType=>$srvtype);
}
@@ -170,12 +170,12 @@ sub dodiscover {
$interval = time() - $startinterval;
if ($args{Time} and $args{Count}) {
if ($rspcount >= $args{Count} or $interval >= $args{Time}) {
send_message($args{reqcallback}, 0, "Received $rspcount1 responses.") if ($args{reqcallback});
send_message($args{reqcallback}, 0, "Received $rspcount1 responses.") if ($args{reqcallback} and !$args{nomsg});
last;
}
}
if ($sendcount > $retrytime and $rspcount1 == 0) {
send_message($args{reqcallback}, 0, "Received $rspcount1 responses.") if ($args{reqcallback});
send_message($args{reqcallback}, 0, "Received $rspcount1 responses.") if ($args{reqcallback} and !$args{nomsg});
last;
}
#########################
@@ -184,8 +184,8 @@ sub dodiscover {
if ( $interval > $retryinterval){#* (2**$sendcount))) { #double time
$sendcount++;
$startinterval = time();
send_message($args{reqcallback}, 0, "Received $rspcount1 responses.") if ($args{reqcallback});
send_message($args{reqcallback}, 0, "Sending SLP request on interfaces: $printinfo ...") if ($args{reqcallback});
send_message($args{reqcallback}, 0, "Received $rspcount1 responses.") if ($args{reqcallback} and !$args{nomsg});
send_message($args{reqcallback}, 0, "Sending SLP request on interfaces: $printinfo ...") if ($args{reqcallback} and !$args{nomsg});
foreach my $srvtype (@srvtypes) {
send_service_request_single(%args,ifacemap=>$interfaces,SrvType=>$srvtype);
}
+118 -35
View File
@@ -61,7 +61,7 @@ statelite => {
#seriously evaluate wider support of multi-domain environments, will leave them
#commented rather than tempt people to try with an expectation that it could work.
domain => {
cols => [qw(node ou authdomain comments disable)],
cols => [qw(node ou authdomain adminuser adminpassword type comments disable)],
keys => ['node'],
table_desc => 'Mapping of nodes to domain attributes',
descriptions => {
@@ -70,6 +70,9 @@ domain => {
# the above column is unimplemented by anything, so leave it out for this pass
ou => 'For an LDAP described machine account (i.e. Active Directory), the orginaztional unit to place the system. If not set, defaults to cn=Computers,dc=your,dc=domain',
authdomain => 'If a node should participate in an AD domain or Kerberos realm distinct from domain indicated in site, this field can be used to specify that',
adminuser => 'Allow a node specific indication of Administrative user. Most will want to just use passwd table to indicate this once rather than by node.',
adminpassword => 'Allow a node specific indication of Administrative user password for the domain. Most will want to ignore this in favor of passwd table.',
type => 'Type, if any, of authentication domain to manipulate. The only recognized value at the moment is activedirectory.',
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
},
@@ -261,20 +264,24 @@ virtsd => {
},
storage => {
cols => [qw(node osvolume comments disable)],
keys => [qw(node)],
table_descr => "Node storage resources",
descriptions => {
'node' => 'The node name',
osvolume => "Specification of what storage to place the node OS image onto. Examples include:
localdisk (Install to first non-FC attached disk)
usbdisk (Install to first USB mass storage deice seen)
wwn=0x50000393c813840c (Install to storage device with given WWN)
WARNING: This is as yet unimplemented by the stock OS deployment templates
WARNING: SAS SAN devices may be considered to be 'localdisk' class.
The default behavior if unspecified is presumed to be 'localdisk'",
}
},
cols => [qw(node osvolume size state storagepool fcprange volumetag comments disable)],
keys => [qw(node)],
table_descr => 'Node storage resources',
descriptions => {
node => 'The node name',
osvolume => "Specification of what storage to place the node OS image onto. Examples include:
localdisk (Install to first non-FC attached disk)
usbdisk (Install to first USB mass storage device seen)
wwn=0x50000393c813840c (Install to storage device with given WWN)",
size => 'Size of the volume. Examples include: 10G, 1024M.',
state => 'State of the volume. The valid values are: free, used, and allocated',
storagepool => 'Name of storage pool where the volume is assigned.',
fcprange => 'A range of acceptable fibre channels that the volume can use. Examples include: 3B00-3C00;4B00-4C00.',
volumetag => 'A specific tag used to identify the volume in the autoyast or kickstart template.',
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
}
},
websrv => {
cols => [qw(node port username password comments disable)],
keys => [qw(node)],
@@ -338,7 +345,7 @@ chain => {
node => 'The node name or group name.',
currstate => 'The current or next chain step to be executed on this node by xCAT-genesis. Set by xCAT during node discovery or as a result of nodeset.',
currchain => 'The chain steps still left to do for this node. This attribute will be automatically adjusted by xCAT while xCAT-genesis is running on the node (either during node discovery or a special operation like firmware update). During node discovery, this attribute is initialized from the chain attribute and updated as the chain steps are executed.',
chain => 'A comma-delimited chain of actions to be performed automatically when this node is discovered. ("Discovered" means a node booted, but xCAT and DHCP did not recognize the MAC of this node. In this case, xCAT initiates the discovery process, the last step of which is to run the operations listed in this chain attribute.) Valid values: discover, boot or reboot, install or netboot, runcmd=<cmd>, runimage=<URL>, shell, standby. (Default - same as no chain). Example, for BMC machines use: runcmd=bmcsetup,shell.',
chain => 'A comma-delimited chain of actions to be performed automatically when this node is discovered. ("Discovered" means a node booted, but xCAT and DHCP did not recognize the MAC of this node. In this situation, xCAT initiates the discovery process, the last step of which is to run the operations listed in this chain attribute, one by one.) Valid values: boot or reboot, install or netboot, runcmd=<cmd>, runimage=<URL>, shell, standby. (Default - same as no chain - it will do only the discovery.). Example, for BMC machines use: runcmd=bmcsetup,shell.',
ondiscover => 'This attribute is currently not used by xCAT. The "nodediscover" operation is always done during node discovery.',
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
@@ -580,7 +587,7 @@ nodepos => {
},
},
noderes => {
cols => [qw(node servicenode netboot tftpserver tftpdir nfsserver monserver nfsdir installnic primarynic discoverynics cmdinterface xcatmaster current_osimage next_osimage nimserver routenames comments disable)],
cols => [qw(node servicenode netboot tftpserver tftpdir nfsserver monserver nfsdir installnic primarynic discoverynics cmdinterface xcatmaster current_osimage next_osimage nimserver routenames nameservers comments disable)],
keys => [qw(node)],
tablespace =>'XCATTBS16K',
table_desc => 'Resources and settings to use when installing nodes.',
@@ -602,6 +609,7 @@ noderes => {
next_osimage => 'Not currently used. The name of the osimage data object that represents the OS image that will be installed on the node the next time it is deployed.',
nimserver => 'Not used for now. The NIM server for this node (as known by this node).',
routenames => 'A comma separated list of route names that refer to rows in the routes table. These are the routes that should be defined on this node when it is deployed.',
nameservers => 'An optional node/group specific override for name server list. Most people want to stick to site or network defined nameserver configuration.',
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
},
@@ -697,8 +705,8 @@ linuximage => {
template => 'The fully qualified name of the template file that is used to create the kick start file for diskful installation.',
boottarget => 'The name of the boottarget definition. When this attribute is set, xCAT will use the kernel, initrd and kernel params defined in the boottarget definition instead of the default.',
addkcmdline=> 'User specified arguments to be passed to the kernel. The user arguments are appended to xCAT.s default kernel arguments. This attribute is ignored if linuximage.boottarget is set.',
pkglist => 'The fully qualified name of the file that stores the distro packages list that will be included in the image.',
pkgdir => 'The name of the directory where the distro packages are stored.',
pkglist => 'The fully qualified name of the file that stores the distro packages list that will be included in the image. Make sure that if the pkgs in the pkglist have dependency pkgs, the dependency pkgs should be found in one of the pkgdir',
pkgdir => 'The name of the directory where the distro packages are stored. It could be set multiple paths.The multiple paths must be seperated by ",". The first path in the value of osimage.pkgdir must be the OS base pkg dir path, such as pkgdir=/install/rhels6.2/x86_64,/install/updates . In the os base pkg path, there are default repository data. And in the other pkg path(s), the users should make sure there are repository data. If not, use "createrepo" command to create them. ',
otherpkglist => 'The fully qualified name of the file that stores non-distro package lists that will be included in the image.',
otherpkgdir => 'The base directory where the non-distro packages are stored.',
exlist => 'The fully qualified name of the file that stores the file names and directory names that will be excluded from the image during packimage command. It is used for diskless image only.',
@@ -889,7 +897,7 @@ site => {
" failed nodes for any xCAT commands. See the 'noderange' manpage for\n".
" details on supported formats.\n\n".
" forwarders: The DNS servers at your site that can provide names outside of the\n".
" cluster. The makedns command will configuire the DNS on the management\n".
" cluster. The makedns command will configure the DNS on the management\n".
" node to forward requests it does not know to these servers.\n".
" Note that the DNS servers on the service nodes will ignore this value\n".
" and always be configured to forward requests to the management node.\n\n".
@@ -1038,6 +1046,8 @@ site => {
" and node requests, e.g. to get postscripts. Default is 64.\n\n".
" xcatdport: The port used by the xcatd daemon for client/server communication.\n\n".
" xcatiport: The port used by xcatd to receive install status updates from nodes.\n\n",
" xcatsslversion: The ssl version by xcatd. Default is SSLv3.\n\n",
" xcatsslciphers: The ssl cipher by xcatd. Default is 3DES.\n\n",
value => 'The value of the attribute specified in the "key" column.',
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
@@ -1216,7 +1226,7 @@ routes => {
routename => 'Name used to identify this route.',
net => 'The network address.',
mask => 'The network mask.',
ifname => '(optional) The interface name of the management node facing the gateway.',
ifname => 'The interface name that facing the gateway. It is optional for IPv4 routes, but it is required for IPv6 routes.',
gateway => 'The gateway that routes the ip traffic from the mn to the nodes. It is usually a service node.',
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
@@ -1261,29 +1271,27 @@ nics => {
nicips => 'Comma-separated list of IP addresses per NIC. To specify one ip address per NIC:
<nic1>!<ip1>,<nic2>!<ip2>,..., for example, eth0!10.0.0.100,ib0!11.0.0.100
To specify multiple ip addresses per NIC:
<nic1>!<ip1>|<ip2>,<nic2>!<ip1>|<ip2>,..., for example, eth0!10.0.0.100|fd55::214:5eff:fe15:849b,ib0!11.0.0.100|2001::214:5eff:fe15:849a
<nic1>!<ip1>|<ip2>,<nic2>!<ip1>|<ip2>,..., for example, eth0!10.0.0.100|fd55::214:5eff:fe15:849b,ib0!11.0.0.100|2001::214:5eff:fe15:849a. The xCAT object definition commands support to use nicips.<nicname> as the sub attributes.
Note: The primary IP address must also be stored in the hosts.ip attribute. The nichostnamesuffixes should specify one hostname suffix for each ip address.',
nichostnamesuffixes => 'Comma-separated list of hostname suffixes per NIC.
If only one ip address is associated with each NIC:
<nic1>!<ext1>,<nic2>!<ext2>,..., for example, eth0!-eth0,ib0!-ib0
If multiple ip addresses are associcated with each NIC:
<nic1>!<ext1>|<ext2>,<nic2>!<ext1>|<ext2>,..., for example, eth0!-eth0|-eth0-ipv6,ib0!-ib0|-ib0-ipv6.',
nictypes => 'Comma-separated list of NIC types per NIC. <nic1>!<type1>,<nic2>!<type2>, e.g. eth0!Ethernet,ib0!Infiniband',
niccustomscripts => 'Comma-separated list of custom scripts per NIC. <nic1>!<script1>,<nic2>!<script2>, e.g. eth0!configeth eth0, ib0!configib ib0
<nic1>!<ext1>|<ext2>,<nic2>!<ext1>|<ext2>,..., for example, eth0!-eth0|-eth0-ipv6,ib0!-ib0|-ib0-ipv6.
The xCAT object definition commands support to use nichostnamesuffixes.<nicname> as the sub attributes.
Note: According to DNS rules a hostname must be a text string up to 24 characters drawn from the alphabet (A-Z), digits (0-9), minus sign (-),and period (.). When you are specifying "nichostnamesuffixes" or "nicaliases" make sure the resulting hostnames will conform to this naming convention',
nictypes => 'Comma-separated list of NIC types per NIC. <nic1>!<type1>,<nic2>!<type2>, e.g. eth0!Ethernet,ib0!Infiniband. The xCAT object definition commands support to use nictypes.<nicname> as the sub attributes.',
niccustomscripts => 'Comma-separated list of custom scripts per NIC. <nic1>!<script1>,<nic2>!<script2>, e.g. eth0!configeth eth0, ib0!configib ib0. The xCAT object definition commands support to use niccustomscripts.<nicname> as the sub attribute
.',
nicnetworks => 'Comma-separated list of networks connected to each NIC.
If only one ip address is associated with each NIC:
<nic1>!<network1>,<nic2>!<network2>, for example, eth0!10_0_0_0-255_255_0_0, ib0!11_0_0_0-255_255_0_0
If multiple ip addresses are associated with each NIC:
<nic1>!<network1>|<network2>,<nic2>!<network1>|<network2>, for example, eth0!10_0_0_0-255_255_0_0|fd55:faaf:e1ab:336::/64,ib0!11_0_0_0-255_255_0_0|2001:db8:1:0::/64
',
nicaliases => 'NOT YET IMPLEMENTED.
Comma-separated list of aliases for each NIC.
Format: eth0!<alias>,eth1!<alias1>|<alias2>
For example: eth0!moe,eth1!larry|curly',
<nic1>!<network1>|<network2>,<nic2>!<network1>|<network2>, for example, eth0!10_0_0_0-255_255_0_0|fd55:faaf:e1ab:336::/64,ib0!11_0_0_0-255_255_0_0|2001:db8:1:0::/64. The xCAT object definition commands support to use nicnetworks.<nicname> as the sub attributes.',
nicaliases => 'Comma-separated list of hostname aliases for each NIC.
Format: eth0!<alias list>,eth1!<alias1 list>|<alias2 list>
For multiple aliases per nic use a space-separated list.
For example: eth0!moe larry curly,eth1!tom|jerry',
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
},
@@ -1332,7 +1340,7 @@ osdistroupdate => {
},
},
kit => {
cols => [qw(kitname basename description version ostype isinternal kitdeployparams kitdir comments disable)],
cols => [qw(kitname basename description version release ostype isinternal kitdeployparams kitdir comments disable)],
keys => [qw(kitname)],
table_desc => 'This table stores all kits added to the xCAT cluster.',
descriptions => {
@@ -1340,6 +1348,7 @@ kit => {
basename => 'The kit base name',
description => 'The Kit description.',
version => 'The kit version',
release => 'The kit release',
ostype => 'The kit OS type. Linux or AIX.',
isinternal => 'A flag to indicated if the Kit is internally used. When set to 1, the Kit is internal. If 0 or undefined, the kit is not internal.',
kitdeployparams => 'The file containing the default deployment parameters for this Kit. These parameters are added to the OS Image definition.s list of deployment parameters when one or more Kit Components from this Kit are added to the OS Image.',
@@ -1389,6 +1398,42 @@ kitcomponent => {
disable => "Set to 'yes' or '1' to comment out this row.",
},
},
discoverydata => {
cols => [qw(uuid node method discoverytime arch cpucount cputype memory mtm serial nicdriver nicipv4 nichwaddr nicpci nicloc niconboard nicfirm switchname switchaddr switchdesc switchport otherdata comments disable)],
keys => [qw(uuid)],
tablespace =>'XCATTBS32K',
table_desc => 'Discovery data which sent from genesis.',
types => {
otherdata => 'VARCHAR(2048)',
},
descriptions => {
uuid => 'The uuid of the node which send out the discovery request.',
node => 'The node name which assigned to the discovered node.',
method => 'The method which handled the discovery request. The method could be one of: switch, blade, profile, sequential.',
discoverytime => 'The last time that xCAT received the discovery message.',
arch => 'The architecture of the discovered node. e.g. x86_64.',
cpucount => 'The cpu number of the discovered node. e.g. 32.',
cputype => 'The cpu type of the discovered node. e.g. Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz',
memory => 'The memory size of the discovered node. e.g. 198460852',
mtm => 'The machine type model of the discovered node. e.g. 786310X',
serial => 'The serial number of the discovered node. e.g. 1052EFB',
nicdriver => 'The driver of the nic. The value should be comma separated <nic name!driver name>. e.g. eth0!be2net,eth1!be2net',
nicipv4 => 'The ipv4 address of the nic. The value should be comma separated <nic name!ipv4 address>. e.g. eth0!10.0.0.212/8',
nichwaddr => 'The hardware address of the nic. The should will be comma separated <nic name!hardware address>. e.g. eth0!34:40:B5:BE:DB:B0,eth1!34:40:B5:BE:DB:B4',
nicpci => 'The pic device of the nic. The value should be comma separated <nic name!pci device>. e.g. eth0!0000:0c:00.0,eth1!0000:0c:00.1',
nicloc => 'The location of the nic. The value should be comma separated <nic name!nic location>. e.g. eth0!Onboard Ethernet 1,eth1!Onboard Ethernet 2',
niconboard => 'The onboard info of the nic. The value should be comma separated <nic name!onboard info>. e.g. eth0!1,eth1!2',
nicfirm => 'The firmware description of the nic. The value should be comma separated <nic name!fimware description>. e.g. eth0!ServerEngines BE3 Controller,eth1!ServerEngines BE3 Controller',
switchname => 'The switch name which the nic connected to. The value should be comma separated <nic name!switch name>. e.g. eth0!c909f06sw01',
switchaddr => 'The address of the switch which the nic connected to. The value should be comma separated <nic name!switch address>. e.g. eth0!192.168.70.120',
switchdesc => 'The description of the switch which the nic connected to. The value should be comma separated <nic name!switch description>. e.g. eth0!IBM Flex System Fabric EN4093 10Gb Scalable Switch, flash image: version 7.2.6, boot image: version 7.2.6',
switchport => 'The port of the switch that the nic connected to. The value should be comma separated <nic name!switch port>. e.g. eth0!INTA2',
otherdata => 'The left data which is not parsed to specific attributes (The complete message comes from genesis)',
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
},
},
); # end of tabspec definition
@@ -1565,6 +1610,10 @@ my @nodeattrs = (
{attr_name => 'netboot',
tabentry => 'noderes.netboot',
access_tabentry => 'noderes.node=attr:node',
},
{attr_name => 'nameservers',
tabentry => 'noderes.nameservers',
access_tabentry => 'noderes.node=attr:node',
},
{attr_name => 'routenames',
tabentry => 'noderes.routenames',
@@ -2089,6 +2138,36 @@ my @nodeattrs = (
access_tabentry => 'nics.node=attr:node',
},
######################
# prodkey table #
######################
{attr_name => 'productkey',
tabentry => 'prodkey.key',
access_tabentry => 'prodkey.node=attr:node',
},
######################
# domain table #
######################
{attr_name => 'ou',
tabentry => 'domain.ou',
access_tabentry => 'domain.node=attr:node',
},
{attr_name => 'domainadminuser',
tabentry => 'domain.adminuser',
access_tabentry => 'domain.node=attr:node',
},
{attr_name => 'domainadminpassword',
tabentry => 'domain.adminpassword',
access_tabentry => 'domain.node=attr:node',
},
{attr_name => 'authdomain',
tabentry => 'domain.authdomain',
access_tabentry => 'domain.node=attr:node',
},
{attr_name => 'domaintype',
tabentry => 'domain.type',
access_tabentry => 'domain.node=attr:node',
},
######################
# storage table #
######################
{attr_name => 'osvolume',
@@ -3115,6 +3194,10 @@ push(@{$defspec{group}->{'attrs'}}, @nodeattrs);
tabentry => 'kit.version',
access_tabentry => 'kit.kitname=attr:kitname',
},
{attr_name => 'release',
tabentry => 'kit.release',
access_tabentry => 'kit.kitname=attr:kitname',
},
{attr_name => 'ostype',
tabentry => 'kit.ostype',
access_tabentry => 'kit.kitname=attr:kitname',
+33 -9
View File
@@ -28,7 +28,7 @@ use strict;
Input: service nodename
Output: Masternode, OS and ARCH
Example:
xCAT::ServiceNodeUtils->readSNInfo;
my $retdata = xCAT::ServiceNodeUtils->readSNInfo;
=cut
#-----------------------------------------------------------------------------
@@ -81,18 +81,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
@@ -131,8 +131,14 @@ 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
}
my $servicehash;
# read all the nodes from the table, for each service
foreach my $service (@services)
{
@@ -152,18 +158,36 @@ 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";
} 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;
}
+28 -30
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/;
@@ -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 {
@@ -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);
}
@@ -2280,17 +2271,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 +2290,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;
+1
View File
@@ -19,6 +19,7 @@ if ($^O =~ /^aix/i) {
use lib "$::XCATROOT/lib/perl";
use strict;
require xCAT::Table;
use File::Path;
#-----------------------------------------------------------------------
=head3
+7 -3
View File
@@ -60,7 +60,7 @@ my %usage = (
BMC specific:
rvitals noderange {temp|voltage|wattage|fanspeed|power|leds|lcds|summary|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:
@@ -261,7 +261,7 @@ my %usage = (
rmvm [-p] [-f]",
"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]
lsslp [<noderange>][-V|--verbose][-i ip[,ip..]][-w][-r|-x|-z][-n][-I][-s FRAME|CEC|MM|IVM|RSA|HMC|CMM|IMM2|FSP]
[-t tries][--vpdtable][-C counts][-T timeout][--flexdiscover]",
"rflash" =>
"Usage:
@@ -327,7 +327,7 @@ my %usage = (
or
updatenode <noderange> [-V|--verbose] [-k|--security] [-s|--sn]
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]
[-P|--scripts [script1,script2,...]] [-s|--sn]
[-A|--updateallsw] [-c|--cmdlineonly] [-d alt_source_dir]
[attr=val [attr=val...]]
@@ -342,8 +342,12 @@ 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.
[-l|--user] User name to run the updatenode command. It overrides the
current user which is the default.
+168 -9
View File
@@ -1334,7 +1334,6 @@ sub runxcmd_output
if (defined($resp->{error}))
{
push @$::xcmd_outref, @{$resp->{error}};
$::RUNCMD_RC = 1;
}
if (defined($resp->{errorcode}))
{
@@ -1386,7 +1385,6 @@ sub runxcmd_output2
if (defined($resp->{error}))
{
push @{$::xcmd_outref_hash->{error}}, @{$resp->{error}};
$::RUNCMD_RC = 1;
}
if (defined($resp->{errorcode}))
{
@@ -2068,7 +2066,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 +2084,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 +2104,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 +2143,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 +2204,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");
}
}
#-----------------------------------------------------------------------------
@@ -3116,4 +3156,123 @@ sub noderangecontainsMn
}
}
=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 (@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 (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;
if (grep /^(network=)/, @args) {
push @{$mpnodes}, @ngpbmc;
}
} else {
push @{$fspnodes}, @ngpfsp;
}
} elsif($cmd eq "getmacs") {
if (@args && (grep /^-D$/,@args)) {
push @{$fspnodes}, @ngpfsp;
} else {
push @{$mpnodes}, @ngpfsp;
}
} elsif ($cmd eq "rvitals") {
if (@args && (grep /^lcds$/,@args)) {
push @{$fspnodes},@ngpfsp;
} else {
push @{$mpnodes}, @ngpfsp;
}
} elsif ($cmd eq "renergy") {
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;
}
1;
+5
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",
@@ -45,6 +46,8 @@ 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
"1285193176.460470" => "rhels6", #x86_64
"1285192093.430930" => "rhels6", #ppc64
"1305068199.328169" => "rhels6.1", #x86_64
@@ -54,6 +57,8 @@ 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
"1285193176.593806" => "rhelhpc6", #x86_64
"1305067719.718814" => "rhelhpc6.1",#x86_64
"1321545261.599847" => "rhelhpc6.2",#x86_64
+10
View File
@@ -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);
+34 -2
View File
@@ -286,8 +286,40 @@ sub printLn {
# Print string
my $rsp;
my $type = "I";
if ($str =~ m/error/i) { # Set to print error if the string contains error
$type = "E";
}
$rsp->{data}->[0] = "$str";
xCAT::MsgUtils->message( "I", $rsp, $callback );
xCAT::MsgUtils->message( $type, $rsp, $callback );
# xCAT::MsgUtils->message( "S", $str ); # Print to syslog
return;
}
#-------------------------------------------------------
=head3 printSyslog
Description : Print a string to syslog
Arguments : String
Returns : Nothing
Example : xCAT::zvmUtils->printSyslog($str);
=cut
#-------------------------------------------------------
sub printSyslog {
# Get inputs
my ( $class, $str ) = @_;
# Prepend where this message came from
$str = $class . " " . $str;
# Print string
xCAT::MsgUtils->message( "S", $str );
return;
}
@@ -483,7 +515,7 @@ sub getIfcfgByNic {
foreach (@parms) {
# If the network file contains the NIC address
$out = `ssh -o ConnectTimeout=5 $user\@$node "$sudo cat $_" | grep "$nic"`;
$out = `ssh -o ConnectTimeout=5 $user\@$node "$sudo cat $_" | egrep -i "$nic"`;
if ($out) {
# Return network file path
+109 -29
View File
@@ -731,7 +731,7 @@ function configGroupPanel(data) {
// Create table
var tableId = panelId + 'Datatable';
var table = new DataTable(tableId);
table.init(['<input type="checkbox" onclick="selectAllCheckbox(event, $(this))">', 'Name', 'Selectable', 'IP', 'Hostname', 'Network', 'Description']);
table.init(['<input type="checkbox" onclick="selectAllCheckbox(event, $(this))">', 'Name', 'Selectable', 'IP', 'Hostname', 'Description']);
// Insert groups into table
var nodePos = 0;
@@ -787,12 +787,6 @@ function configGroupPanel(data) {
desc = jQuery.trim(desc);
}
// Save network
if (tmp[j].indexOf('network:') > -1) {
network = tmp[j].replace('network:', '');
network = jQuery.trim(network);
}
// Is the group selectable?
if (tmp[j].indexOf('selectable:') > -1) {
selectable = tmp[j].replace('selectable:', '');
@@ -802,7 +796,7 @@ function configGroupPanel(data) {
}
// Columns are: name, selectable, network, and description
var cols = new Array(name, selectable, ip, hostname, network, desc);
var cols = new Array(name, selectable, ip, hostname, desc);
// Add remove button where id = user name
cols.unshift('<input type="checkbox" name="' + name + '"/>');
@@ -851,10 +845,9 @@ function configGroupPanel(data) {
var selectable = cols.eq(2).text();
var ip = cols.eq(3).text();
var hostnames = cols.eq(4).text();
var network = cols.eq(5).text();
var description = cols.eq(6).text();
var description = cols.eq(5).text();
editGroupDialog(group, selectable, ip, hostnames, network, description);
editGroupDialog(group, selectable, ip, hostnames, description);
}
}
});
@@ -913,9 +906,10 @@ function groupDialog() {
var selectable = $('<div><label>Selectable:</label><input type="checkbox" name="selectable" title="Select if you want this group to appear on the self service portal"/></div>');
var ip = $('<div><label>IP:</label><input type="text" name="ip" title="The IP address of the nodes, usually given as a regular expression, e.g. |ihost(\d+)|10.1.1.($1+0)|"/></div>');
var hostnames = $('<div><label>Hostnames:</label><input type="text" name="hostnames" title="The hostname of the nodes, usually given as a regular expression, e.g. |(.*)|($1).sourceforge.net|"/></div>');
var network = $('<div><label>Network:</label><input type="text" name="network" title="The groups network and its subnet mask, e.g. 10.1.1.0/24"/></div>');
var comments = $('<div><label>Description:</label><input type="text" name="comments" title="A description of the group"/></div>');
groupForm.append(group, selectable, ip, hostnames, network, comments);
var ipPool = $('<div><label style="vertical-align: top;">IP pool:</label><textarea name="ip_pool" title="A pool of node names, IP addresses, and hostnames that can be chosen from for a newly provisioned virtual machine. An entry in the pool could be: ihost12,10.1.2.12,ihost12.endicott.ibm.com. A newline separates each entry."/></div>');
groupForm.append(group, selectable, ip, hostnames, comments, ipPool);
// Generate tooltips
groupForm.find('div input[title],textarea[title],select[title]').tooltip({
@@ -945,7 +939,7 @@ function groupDialog() {
close: function(){
$(this).remove();
},
width: 400,
width: 600,
buttons: {
"Ok": function() {
// Remove any warning messages
@@ -956,12 +950,12 @@ function groupDialog() {
var selectable = $(this).find('input[name="selectable"]');
var ip = $(this).find('input[name="ip"]');
var hostnames = $(this).find('input[name="hostnames"]');
var network = $(this).find('input[name="network"]');
var comments = $(this).find('input[name="comments"]');
var ipPool = $(this).find('textarea[name=ip_pool]').val();
// Check that group attributes are provided before continuing
var ready = 1;
var inputs = new Array(group, ip, hostnames, network);
var inputs = new Array(group, ip, hostnames);
for (var i in inputs) {
if (!inputs[i].val()) {
inputs[i].css('border-color', 'red');
@@ -980,6 +974,10 @@ function groupDialog() {
'Close': function() {$(this).dialog("close");}
});
// A newline at the end of IP pool is needed
ipPool = ipPool.replace(/^\s+|\s+$/g, '');
ipPool += '\n';
// Set default description
if (!comments.val())
comments.val('No description');
@@ -988,12 +986,12 @@ function groupDialog() {
var args = "updategroup;" + group.val() + ";'" + ip.val() + "';'" + hostnames.val() + "';";
if (selectable.attr("checked"))
args += "'description:" + comments.val() + "|network:" + network.val() + "|selectable:yes";
args += "'description:" + comments.val() + "|selectable:yes";
else
args += "'description:" + comments.val() + "|network:" + network.val() + "|selectable:no";
args += "'description:" + comments.val() + "|selectable:no";
// Add image to xCAT
$.ajax( {
$.ajax({
url : 'lib/cmd.php',
dataType : 'json',
data : {
@@ -1005,6 +1003,37 @@ function groupDialog() {
success : updatePanel
});
// Write IP pool file to /var/tmp
$.ajax({
url : 'lib/cmd.php',
dataType : 'json',
data : {
cmd : 'write',
tgt : '/var/tmp/' + group.val() + '.pool',
args : '',
cont : ipPool,
msg : dialogId + ';' + group.val()
},
success : function(data) {
var args = data.msg.split(';');
// Create profile in xCAT
$.ajax({
url : 'lib/cmd.php',
dataType : 'json',
data : {
cmd : 'webrun',
tgt : '',
args : 'mkippool;' + args[1],
msg : args[0]
},
success: updatePanel
});
}
});
}
},
"Cancel": function() {
@@ -1021,10 +1050,9 @@ function groupDialog() {
* @param iSelectable Is group selectable from the service page
* @param iIp Group IP regex
* @param iHostnames Group hostnames regex
* @param iNetwork Group network, e.g. 10.1.2.0/24
* @param iComments Group description
*/
function editGroupDialog(iGroup, iSelectable, iIp, iHostnames, iNetwork, iComments) {
function editGroupDialog(iGroup, iSelectable, iIp, iHostnames, iComments) {
// Create form to add profile
var dialogId = 'createGroup-' + iGroup;
var groupForm = $('<div id="' + dialogId + '" class="form"></div>');
@@ -1037,15 +1065,32 @@ function editGroupDialog(iGroup, iSelectable, iIp, iHostnames, iNetwork, iCommen
var selectable = $('<div><label>Selectable:</label><input type="checkbox" name="selectable" title="Select if you want this group to appear on the self service portal"/></div>');
var ip = $('<div><label>IP:</label><input type="text" name="ip" title="The IP address for the group, usually given as a regular expression, e.g. |ihost(\d+)|10.1.1.($1+0)|"/></div>');
var hostnames = $('<div><label>Hostnames:</label><input type="text" name="hostnames" title="The hostname for the group, usually given as a regular expression, e.g. |(.*)|($1).sourceforge.net|"/></div>');
var network = $('<div><label>Network:</label><input type="text" name="network" title="The groups network and its subnet mask, e.g. 10.1.1.0/24"/></div>');
var comments = $('<div><label>Description:</label><input type="text" name="comments" title="A description of the group"/></div>');
groupForm.append(group, selectable, ip, hostnames, network, comments);
var ipPool = $('<div><label style="vertical-align: top;">IP pool:</label><textarea name="ip_pool" title="A pool of node names, IP addresses, and hostnames that can be chosen from for a newly provisioned virtual machine."/></div>');
groupForm.append(group, selectable, ip, hostnames, comments, ipPool);
// Query IP pool based on group name
$.ajax({
url : 'lib/cmd.php',
dataType : 'json',
data : {
cmd : 'webrun',
tgt : '',
args : 'lsippool;' + iGroup,
msg : dialogId
},
success : function(data) {
// Populate textarea with IP pool entries
$('#' + data.msg).find('textarea[name="ip_pool"]').val(data.rsp[0]);
}
});
// Fill in group attributes
groupForm.find('input[name="group"]').val(iGroup);
groupForm.find('input[name="ip"]').val(iIp);
groupForm.find('input[name="hostnames"]').val(iHostnames);
groupForm.find('input[name="network"]').val(iNetwork);
groupForm.find('input[name="comments"]').val(iComments);
if (iSelectable == "yes")
groupForm.find('input[name="selectable"]').attr('checked', 'checked');
@@ -1078,7 +1123,7 @@ function editGroupDialog(iGroup, iSelectable, iIp, iHostnames, iNetwork, iCommen
close: function(){
$(this).remove();
},
width: 400,
width: 600,
buttons: {
"Ok": function() {
// Remove any warning messages
@@ -1089,12 +1134,12 @@ function editGroupDialog(iGroup, iSelectable, iIp, iHostnames, iNetwork, iCommen
var selectable = $(this).find('input[name="selectable"]');
var ip = $(this).find('input[name="ip"]');
var hostnames = $(this).find('input[name="hostnames"]');
var network = $(this).find('input[name="network"]');
var comments = $(this).find('input[name="comments"]');
var ipPool = $(this).find('textarea[name=ip_pool]').val();
// Check that group attributes are provided before continuing
var ready = 1;
var inputs = new Array(group, ip, hostnames, network);
var inputs = new Array(group, ip, hostnames);
for (var i in inputs) {
if (!inputs[i].val()) {
inputs[i].css('border-color', 'red');
@@ -1113,6 +1158,10 @@ function editGroupDialog(iGroup, iSelectable, iIp, iHostnames, iNetwork, iCommen
'Close': function() {$(this).dialog("close");}
});
// A newline at the end of IP pool is needed
ipPool = ipPool.replace(/^\s+|\s+$/g, '');
ipPool += '\n';
// Set default description
if (!comments.val())
comments.val('No description');
@@ -1121,9 +1170,9 @@ function editGroupDialog(iGroup, iSelectable, iIp, iHostnames, iNetwork, iCommen
var args = "updategroup;" + group.val() + ";'" + ip.val() + "';'" + hostnames.val() + "';";
if (selectable.attr("checked"))
args += "'description:" + comments.val() + "|network:" + network.val() + "|selectable:yes";
args += "'description:" + comments.val() + "|selectable:yes";
else
args += "'description:" + comments.val() + "|network:" + network.val() + "|selectable:no";
args += "'description:" + comments.val() + "|selectable:no";
// Add image to xCAT
$.ajax( {
@@ -1138,6 +1187,37 @@ function editGroupDialog(iGroup, iSelectable, iIp, iHostnames, iNetwork, iCommen
success : updatePanel
});
// Write IP pool file to /var/tmp
$.ajax({
url : 'lib/cmd.php',
dataType : 'json',
data : {
cmd : 'write',
tgt : '/var/tmp/' + group.val() + '.pool',
args : '',
cont : ipPool,
msg : dialogId + ';' + group.val()
},
success : function(data) {
var args = data.msg.split(';');
// Create profile in xCAT
$.ajax({
url : 'lib/cmd.php',
dataType : 'json',
data : {
cmd : 'webrun',
tgt : '',
args : 'mkippool;' + args[1],
msg : args[0]
},
success: updatePanel
});
}
});
}
},
"Cancel": function() {
+34 -17
View File
@@ -33,7 +33,7 @@ zvmPlugin.prototype.loadConfigPage = function(tabId) {
// Create accordion panel for images
var imgSection = $('<div id="zvmConfigImages"></div>');
var imgLnk = $('<h3><a href="#">Images</a></h3>').click(function () {
var imgLnk = $('<h3><a href="#">Templates</a></h3>').click(function () {
// Do not load panel again if it is already loaded
if ($('#zvmConfigImages').find('.dataTables_wrapper').length)
return;
@@ -67,7 +67,7 @@ zvmPlugin.prototype.loadConfigPage = function(tabId) {
*
* @param node Node to clone
*/
zvmPlugin.prototype.serviceClone = function(node) {
zvmPlugin.prototype.serviceClone = function(node) {
var owner = $.cookie('xcat_username');
var group = getUserNodeAttr(node, 'groups');
@@ -95,7 +95,7 @@ zvmPlugin.prototype.loadServiceProvisionPage = function(tabId) {
// Create provision table
var provTable = $('<table id="select-table" style="margin: 10px;"></table');
var provHeader = $('<thead class="ui-widget-header"> <th>zVM</th> <th>Group</th> <th>Image</th></thead>');
var provHeader = $('<thead class="ui-widget-header"> <th>zVM</th> <th>Group</th> <th>Template</th> <th>Image</th></thead>');
var provBody = $('<tbody></tbody>');
var provFooter = $('<tfoot></tfoot>');
provTable.append(provHeader, provBody, provFooter);
@@ -108,16 +108,18 @@ zvmPlugin.prototype.loadServiceProvisionPage = function(tabId) {
// Create row to contain selections
var provRow = $('<tr></tr>');
provBody.append(provRow);
// Create columns for zVM, group, and image
// Create columns for zVM, group, template, and image
var zvmCol = $('<td style="vertical-align: top;"></td>');
provRow.append(zvmCol);
var groupCol = $('<td style="vertical-align: top;"></td>');
provRow.append(groupCol);
var imageCol = $('<td style="vertical-align: top;"></td>');
provRow.append(imageCol);
var tmplCol = $('<td style="vertical-align: top;"></td>');
provRow.append(tmplCol);
var imgCol = $('<td style="vertical-align: top;"></td>');
provRow.append(imgCol);
provRow.children('td').css({
'min-width': '250px'
'min-width': '200px'
});
/**
@@ -130,23 +132,38 @@ zvmPlugin.prototype.loadServiceProvisionPage = function(tabId) {
var hcp = $('#select-table tbody tr:eq(0) td:eq(0) input[name="hcp"]:checked').val();
var group = $('#select-table tbody tr:eq(0) td:eq(1) input[name="group"]:checked').val();
var img = $('#select-table tbody tr:eq(0) td:eq(2) input[name="image"]:checked').val();
var tmpl = $('#select-table tbody tr:eq(0) td:eq(2) input[name="image"]:checked').val();
var img = $('#select-table tbody tr:eq(0) td:eq(3) input[name="master"]:checked').val();
var owner = $.cookie('xcat_username');
if (!hcp || !group || !img) {
if (img && !group) {
// Show warning message
var warn = createWarnBar('You need to select a group');
warn.prependTo($(this).parent());
} else if (!img && (!hcp || !group || !tmpl)) {
// Show warning message
var warn = createWarnBar('You need to select an option for each column');
var warn = createWarnBar('You need to select a zHCP, group, and image');
warn.prependTo($(this).parent());
} else {
// Begin by creating VM
createzVM(tabId, group, hcp, img, owner);
if (img) {
// Begin by clonning VM
// Submit request to clone VM
// webportal clonezlinux [src node] [group] [owner]
var iframe = createIFrame('lib/srv_cmd.php?cmd=webportal&tgt=&args=clonezlinux;' + img + ';' + group + ';' + owner + '&msg=&opts=flush');
iframe.prependTo($('#zvmProvisionTab'));
} else {
// Begin by creating VM
createzVM(tabId, group, hcp, tmpl, owner);
}
}
});
provForm.append(provisionBtn);
// Load zVMs, groups, and images into their respective columns
// Load zVMs, groups, template, and image into their respective columns
loadSrvGroups(groupCol);
loadOSImages(imageCol);
loadOSImages(tmplCol);
loadGoldenImages(imgCol);
// Get zVM host names
if (!$.cookie('zvms')){
@@ -2557,7 +2574,7 @@ zvmPlugin.prototype.loadLogPage = function(node) {
setChkBox.append('Set options');
// Create log options input
var logOpt = $('<li><label>Log options:</label><input type="text" name="logOpt"/></li>');
var logOpt = $('<li><label style="width: 80px; vertical-align: top;">Log options:</label><textarea name="logOpt"></textarea></li>');
logOpt.hide();
optsList.append(logOpt);
@@ -2570,7 +2587,7 @@ zvmPlugin.prototype.loadLogPage = function(node) {
tgtLog.toggle();
});
setChkBox.bind('click', function(event) {
setChkBox.find('input').bind('click', function(event) {
logOpt.toggle();
});
@@ -2637,7 +2654,7 @@ zvmPlugin.prototype.loadLogPage = function(node) {
// If it is set options
if (opt == 'o') {
// Append options
optStr += ';' + $('#' + newTabId + ' input[name=logOpt]').val();
optStr += ';' + $('#' + newTabId + ' textarea[name=logOpt]').val();
}
// Append ; to end of string
+109 -24
View File
@@ -1246,7 +1246,10 @@ function openAddProcDialog(node) {
function openAddDiskDialog(node, hcp) {
// Get list of disk pools
var cookie = $.cookie(hcp + 'diskpools');
var pools = cookie.split(',');
var pools = new Array();
if (cookie) {
pools = cookie.split(',');
}
// Create form to add disk
var addDiskForm = $('<div class="form"></div>');
@@ -1406,7 +1409,10 @@ function openAddDiskDialog(node, hcp) {
function openAddZfcpDialog(node, hcp, zvm) {
// Get list of disk pools
var cookie = $.cookie(hcp + 'zfcppools');
var pools = cookie.split(',');
var pools = new Array();
if (cookie) {
pools = cookie.split(',');
}
// Create form to add disk
var addZfcpForm = $('<div class="form"></div>');
@@ -2011,7 +2017,7 @@ function openAddScsi2SystemDialog(hcp) {
hcp2zvm = getHcpZvmHash();
// Create info bar
var info = createInfoBar('Dynamically add an SCSI disk to a running z/VM system.');
var info = createInfoBar('Dynamically add an SCSI disk to a running z/VM system as an EDEV.');
addS2SForm.append(info);
var system = $('<div><label>z/VM system:</label></div>');
@@ -2024,7 +2030,7 @@ function openAddScsi2SystemDialog(hcp) {
systemSelect.append($('<option value="' + hcp2zvm[hcp] + '">' + hcp2zvm[hcp] + '</option>'));
}
var devNo = $('<div><label>FCP device:</label><input type="text" name="devNo" maxlength="4" title="The SCSI disk device number"/></div>');
var devNo = $('<div><label>Device number:</label><input type="text" name="devNo" maxlength="4" title="The SCSI disk device number"/></div>');
var devPathLabel = $('<label>Device paths:</label>');
var devPathCount = 1;
var pathDiv = $('<div class="devPath" style="margin-left:125px;"></div>');
@@ -2369,7 +2375,11 @@ function openRemoveScsiDialog(hcp) {
*/
function openAddNicDialog(node, hcp) {
// Get network names
var networks = $.cookie(hcp + 'networks').split(',');
var cookie = $.cookie(hcp + 'networks');
var networks = new Array();
if (cookie) {
networks = cookie.split(',');
}
// Create form to add NIC
var addNicForm = $('<div class="form"></div>');
@@ -3426,6 +3436,18 @@ function loadDiskPoolTable(data) {
openAddPageSpoolDialog(hcp);
});
// Add EDEV to system
var addEdevLnk = $('<a>Add EDEV</a>');
addEdevLnk.bind('click', function(event){
openAddScsi2SystemDialog(hcp);
});
// Remove EDEV
var removeEdevLnk = $('<a>Remove EDEV</a>');
removeEdevLnk.bind('click', function(event){
openRemoveScsiDialog(hcp);
});
// Indicate disk is to be shared with various users
var shareLnk = $('<a>Share disk</a>');
shareLnk.bind('click', function(event){
@@ -3435,7 +3457,7 @@ function loadDiskPoolTable(data) {
// Advanced menu
var advancedLnk = '<a>Advanced</a>';
var advancedMenu = createMenu([addEckdLnk, addPageSpoolLnk, shareLnk]);
var advancedMenu = createMenu([addEckdLnk, addPageSpoolLnk, addEdevLnk, removeEdevLnk, shareLnk]);
// Create action bar
var actionBar = $('<div id="zvmDiskResourceActions" class="actionBar"></div>').css("width", "450px");
@@ -3588,28 +3610,12 @@ function loadZfcpPoolTable(data) {
});
}
});
// Add SCSI to system
var addScsiLnk = $('<a>Add SCSI</a>');
addScsiLnk.bind('click', function(event){
openAddScsi2SystemDialog(hcp);
});
// Remove SCSI
var removeScsiLnk = $('<a>Remove SCSI</a>');
removeScsiLnk.bind('click', function(event){
openRemoveScsiDialog(hcp);
});
// Advanced menu
var advancedLnk = '<a>Advanced</a>';
var advancedMenu = createMenu([addScsiLnk, removeScsiLnk]);
// Create action bar
var actionBar = $('<div id="zFcpResourceActions" class="actionBar"></div>').css("width", "450px");
// Create an action menu
var actionsMenu = createMenu([addLnk, removeLnk, refreshLnk, [advancedLnk, advancedMenu]]);
var actionsMenu = createMenu([addLnk, removeLnk, refreshLnk]);
actionsMenu.superfish();
actionsMenu.css('display', 'inline-block');
actionBar.append(actionsMenu);
@@ -5569,6 +5575,9 @@ function loadOSImages(col) {
$(this).children('input:radio').attr('checked', 'checked');
$(this).parents('td').find('div').attr('class', 'ui-state-default');
$(this).attr('class', 'ui-state-active');
$('#select-table tbody tr:eq(0) td:eq(3) input[name="master"]').attr('checked', '');
$('#select-table tbody tr:eq(0) td:eq(3) input[name="master"]').parents('td').find('div').attr('class', 'ui-state-default');
});
radio = $('<input type="radio" name="image" value="' + name + '"/>').css('display', 'none');
imgBlock.append(radio, $('<span style="font-weight: normal;"><b>' + name + '</b>: ' + desc + '</span>'));
@@ -5581,6 +5590,60 @@ function loadOSImages(col) {
}
}
/**
* Load golden images into column
*
* @param col Table column where master copies will be placed
*/
function loadGoldenImages(col) {
// Get group names and description and append to group column
if (!$.cookie('srv_goldenimages')) {
var infoBar = createInfoBar('No selectable master copies available');
col.append(infoBar);
return;
}
var imgNames = $.cookie('srv_goldenimages').split(',');
var imgBlock, radio, args, name, desc;
for (var i in imgNames) {
args = imgNames[i].split(':');
name = args[0];
desc = args[1];
// Create block for each image
imgBlock = $('<div class="ui-state-default"></div>').css({
'border': '1px solid',
'max-width': '200px',
'margin': '5px auto',
'padding': '5px',
'display': 'block',
'vertical-align': 'middle',
'cursor': 'pointer',
'white-space': 'normal'
}).click(function(){
$(this).children('input:radio').attr('checked', 'checked');
$(this).parents('td').find('div').attr('class', 'ui-state-default');
$(this).attr('class', 'ui-state-active');
// Un-select zVM and image
$('#select-table tbody tr:eq(0) td:eq(2) input[name="image"]').attr('checked', '');
$('#select-table tbody tr:eq(0) td:eq(2) input[name="image"]').parents('td').find('div').attr('class', 'ui-state-default');
$('#select-table tbody tr:eq(0) td:eq(0) input[name="hcp"]').attr('checked', '');
$('#select-table tbody tr:eq(0) td:eq(0) input[name="hcp"]').parents('td').find('div').attr('class', 'ui-state-default');
});
radio = $('<input type="radio" name="master" value="' + name + '"/>').css('display', 'none');
imgBlock.append(radio, $('<span style="font-weight: normal;"><b>' + name + '</b>: ' + desc + '</span>'));
imgBlock.children('span').css({
'display': 'block',
'margin': '5px',
'text-align': 'left'
});
col.append(imgBlock);
}
}
/**
* Set a cookie for zVM host names (service page)
*
@@ -5603,6 +5666,28 @@ function setzVMCookies(data) {
}
}
/**
* Set a cookie for master copies (service page)
*
* @param data Data from HTTP request
*/
function setGoldenImagesCookies(data) {
if (data.rsp[0].length) {
var copies = new Array();
var tmp = data.rsp[0].split(",");
for ( var i = 0; i < tmp.length; i++) {
if (tmp[i] != null && tmp[i] != "") {
copies.push(tmp[i]);
}
}
// Set cookie to expire in 60 minutes
var exDate = new Date();
exDate.setTime(exDate.getTime() + (240 * 60 * 1000));
$.cookie('srv_goldenimages', copies, { expires: exDate });
}
}
/**
* Set a cookie for disk pool names of a given node
*
+51 -19
View File
@@ -239,22 +239,38 @@ function loadServiceProvisionPage(tabId) {
title = 'z/VM';
// Get zVM host names
if (!$.cookie('zvms')){
$.ajax( {
url : 'lib/srv_cmd.php',
dataType : 'json',
data : {
cmd : 'webportal',
tgt : '',
args : 'lszvm',
msg : ''
},
$.ajax({
url : 'lib/srv_cmd.php',
dataType : 'json',
async : false,
data : {
cmd : 'webportal',
tgt : '',
args : 'lszvm',
msg : ''
},
success : function(data) {
setzVMCookies(data);
}
});
}
success : function(data) {
setzVMCookies(data);
}
});
// Get master copies for clone
$.ajax({
url : 'lib/srv_cmd.php',
dataType : 'json',
async : false,
data : {
cmd : 'webportal',
tgt : '',
args : 'lsgoldenimages',
msg : ''
},
success : function(data) {
setGoldenImagesCookies(data);
}
});
break;
}
@@ -1077,11 +1093,27 @@ function setUserNodes(data) {
// where column names are: node, os, arch, profile, provmethod, supportedarchs, nodetype, comments, disable
var cols = data.rsp[i].split(',');
var node = cols[0].replace(new RegExp('"', 'g'), '');
var owner = cols[7].replace(new RegExp('"', 'g'), '');
owner = owner.replace('owner:', '');
if (owner == userName) {
usrNodes.push(node);
// Comments can contain the owner and description
var comments = new Array();
if (cols[7].indexOf(';') > -1) {
comments = cols[7].replace(new RegExp('"', 'g'), '').split(';');
} else {
comments.push(cols[7].replace(new RegExp('"', 'g'), ''));
}
// Extract the owner
var owner;
for (var j in comments) {
if (comments[j].indexOf('owner:') > -1) {
owner = comments[j].replace('owner:', '');
if (owner == userName) {
usrNodes.push(node);
}
break;
}
}
} // End of for
+1 -1
View File
@@ -93,7 +93,7 @@ function submit_request($req, $skipVerify, $opts_array){
syslog(LOG_INFO, "Sending request: $cmd $nr");
stream_set_blocking($fp, 0); // Set as non-blocking
fwrite($fp,$req->asXML()); // Send XML to xcatd
set_time_limit(900); // Set 15 minutes timeout (for long running requests)
set_time_limit(3600); // Set 15 minutes timeout (for long running requests)
// The default is 30 seconds which is too short for some requests
// Turn on output buffering
+1 -1
View File
@@ -91,7 +91,7 @@ function submit_request($req, $skipVerify, $opts_array){
syslog(LOG_INFO, "Sending request: $cmd $nr");
stream_set_blocking($fp, 0); // Set as non-blocking
fwrite($fp,$req->asXML()); // Send XML to xcatd
set_time_limit(900); // Set 15 minutes timeout (for long running requests)
set_time_limit(3600); // Set 15 minutes timeout (for long running requests)
// The default is 30 seconds which is too short for some requests
// Turn on output buffering
+61 -1
View File
@@ -70,6 +70,9 @@ sub process_request {
'deleteuser' => \&web_deleteuser,
'mkzprofile' => \&web_mkzprofile,
'rmzprofile' => \&web_rmzprofile,
'mkippool' => \&web_mkippool,
'rmippool' => \&web_rmippool,
'lsippool' => \&web_lsippool,
'updateosimage' => \&web_updateosimage,
'rmosimage' => \&web_rmosimage,
'updategroup' => \&web_updategroup,
@@ -2241,10 +2244,11 @@ sub web_graphinfo {
}
}
@missinfoarray = (@missinfoarray, @unsupportarray);
foreach (@missinfoarray) {
$missretstr = $missretstr . $_ . ':linux:other;';
}
# Combine all information into a string
my $retstr = $pretstr . $bladeretstr . $xretstr . $missretstr;
if ($retstr) {
@@ -2369,6 +2373,7 @@ sub web_mkzprofile() {
`echo "$var=$size" >> /var/opt/xcat/profiles/$profile.conf`;
# Move directory entry into /var/opt/xcat/profiles from /var/tmp
`mkdir -p /var/opt/xcat/profiles`;
`mv /var/tmp/$profile.direct /var/opt/xcat/profiles`;
my $info = "Profile successfully created/updated";
@@ -2394,6 +2399,60 @@ sub web_rmzprofile() {
$callback->( { info => $info } );
}
sub web_mkippool() {
# Create group IP pool
my ( $request, $callback, $sub_req ) = @_;
# Get profile
my $group = $request->{arg}->[1];
# Move directory entry into /var/opt/xcat/ippool from /var/tmp
`mkdir -p /var/opt/xcat/ippool`;
`mv /var/tmp/$group.pool /var/opt/xcat/ippool`;
my $info = "IP pool successfully created/updated";
$callback->( { info => $info } );
}
sub web_rmippool() {
# Delete group IP pool
my ( $request, $callback, $sub_req ) = @_;
# Get profile
my $group = $request->{arg}->[1];
my @groups = split( ',', $group );
# Delete IP pool under /var/opt/xcat/ippool
foreach (@groups) {
`rm -rf /var/opt/xcat/ippool/$_.pool`;
}
my $info = "IP pool successfully deleted";
$callback->( { info => $info } );
}
sub web_lsippool() {
# List IP pool
my ( $request, $callback, $sub_req ) = @_;
# Get profile
my $group = $request->{arg}->[1];
# IP pool contained in /var/opt/xcat/ippool where a file exists per group
my $entries;
if ( !(`test -e /var/opt/xcat/ippool/$group.pool && echo Exists`) ) {
$entries = "No IP pool found!";
} else {
# List IP pool under /var/opt/xcat/ippool
$entries = `cat /var/opt/xcat/ippool/$group.pool`;
}
$callback->( { info => $entries } );
}
sub web_updateosimage() {
# Add OS image to xCAT table
@@ -2464,6 +2523,7 @@ sub web_rmgroup() {
# Delete user from xCAT passwd and policy tables
foreach (@names) {
`chtab -d node=$_ hosts`;
`rm -rf /var/opt/xcat/ippool/$_.pool`;
}
my $info = "Group successfully deleted";
+102 -11
View File
@@ -40,7 +40,8 @@ sub process_request {
'clonezlinux' => \&clonezlinux,
'genhostip' => \&genhostip,
'getmaxvm' => \&getmaxvm,
'getuserprivilege' => \&getuserprivilege
'getuserprivilege' => \&getuserprivilege,
'lsgoldenimages' => \&lsgoldenimages
);
# Check if the request is authorized
@@ -214,12 +215,13 @@ sub provzlinux {
# Create VM
# e.g. webportal provzlinux [group] [hcp] [image]
my ($node, $ip, $base_digit) = gennodename( $callback, $group );
if (!$base_digit) {
println( $callback, "(Error) Failed to generate node name" );
# my ($node, $ip, $base_digit) = gennodename( $callback, $group );
my ($node, $ip, $hostname) = findfreenode( $callback, $group );
if (!$node) {
println( $callback, "Unable to find a free node, IP, and hostname for $group from the IP pool" );
return;
}
my $userid = $node;
# Set node definitions
@@ -231,9 +233,9 @@ sub provzlinux {
$out = `mkdef -t node -o $node userid=$userid hcp=$hcp mgt=zvm groups=$group,all`;
}
println( $callback, "$out" );
# Set nodetype definitions
$out = `chtab node=$node noderes.netboot=zvm nodetype.nodetype=osi nodetype.provmethod=install nodetype.os=$os nodetype.arch=$arch nodetype.profile=$profile nodetype.comments="owner:$owner"`;
$out = `chtab node=$node hosts.ip=$ip hosts.hostnames=$hostname noderes.netboot=zvm nodetype.nodetype=osi nodetype.provmethod=install nodetype.os=$os nodetype.arch=$arch nodetype.profile=$profile nodetype.comments="owner:$owner"`;
# Create user directory entry replacing LXUSR with user ID
# Use /opt/zhcp/conf/default.direct on zHCP as the template
@@ -673,7 +675,13 @@ sub clonezlinux {
# Create VM
# e.g. webportal provzlinux [group] [hcp] [image]
my ($node, $ip, $base_digit) = gennodename( $callback, $group );
# my ($node, $ip, $base_digit) = gennodename( $callback, $group );
my ($node, $ip, $hostname) = findfreenode( $callback, $group );
if (!$node) {
println( $callback, "Unable to find a free node, IP, and hostname for $group from the IP pool" );
return;
}
my $userid = $node;
# Set node definitions
@@ -681,7 +689,7 @@ sub clonezlinux {
println( $callback, "$out" );
# Set nodetype definitions
$out = `chtab node=$node noderes.netboot=zvm nodetype.nodetype=osi nodetype.provmethod=install nodetype.os=$os nodetype.arch=$arch nodetype.profile=$profile nodetype.comments="owner:$owner"`;
$out = `chtab node=$node hosts.ip=$ip hosts.hostnames=$hostname noderes.netboot=zvm nodetype.nodetype=osi nodetype.provmethod=install nodetype.os=$os nodetype.arch=$arch nodetype.profile=$profile nodetype.comments="owner:$owner"`;
# Update hosts table and DNS
sleep(5); # Time needed to update /etc/hosts
@@ -715,8 +723,9 @@ sub genhostip {
my ( $request, $callback, $sub_req ) = @_;
my $group = $request->{arg}->[1];
my ($node, $ip, $base_digit) = gennodename( $callback, $group );
println( $callback, "$node: $ip" );
# my ($node, $ip, $base_digit) = gennodename( $callback, $group );
my ($node, $ip, $hostname) = findfreenode( $callback, $group );
println( $callback, "$node: $ip, $hostname" );
}
sub getmaxvm {
@@ -781,4 +790,86 @@ sub getuserprivilege {
$callback->( { data => "Privilege: $privilege" } );
}
sub lsgoldenimages {
my ( $request, $callback, $sub_req ) = @_;
# Find the golden image that can be cloned by searching nodetype table for nodetype.provmethod=clone
my $clones = "";
my $comments = "";
my $description = "";
my @args;
# Look in 'policy' table
my $tab = xCAT::Table->new( 'nodetype', -create => 1, -autocommit => 0 );
my @results = $tab->getAllAttribsWhere( "provmethod='clone'", 'node', 'comments' );
foreach (@results) {
if ($_->{'node'}) {
$clones .= $_->{'node'} . ": ";
$comments = $_->{'comments'};
@args = split(';', $comments);
foreach (@args) {
if ($_ =~ m/description:/i) {
$description = $_;
$description =~ s/description://g;
$description =~ s/\s*$//; # Trim right
$description =~ s/^\s*//; # Trim left
} else {
$description = "No comments";
}
}
$clones .= $description . ",";
}
}
# Delete last comma
$clones = substr($clones, 0, -1);
$callback->( { data => $clones } );
}
sub findfreenode {
# Generate node name based on given group
my ( $callback, $group ) = @_;
# IP pool contained in /var/opt/xcat/ippool where a file exists per group
if ( !(`test -e /var/opt/xcat/ippool/$group.pool && echo Exists`) ) {
return;
}
# IP pool group format: node, IP, hostname
# It would look similar to:
# ihost10,10.1.136.10,ihost10.endicott.ibm.com
# ihost11,10.1.136.11,ihost11.endicott.ibm.com
# ihost12,10.1.136.12,ihost12.endicott.ibm.com
my $node;
my $ipaddr;
my $hostname;
my $out = `cat /var/opt/xcat/ippool/$group.pool | grep -v "#"`;
my @entries = split( /\n/, $out );
if (@entries < 1) {
return;
}
my $found = 0;
foreach(@entries) {
# Grab the 1st free entry found
($node, $ipaddr, $hostname) = split(/,/, $_);
if ($node && $ipaddr && $hostname) {
# Check against xCAT tables, /etc/hosts, and ping to see if hostname is already used
if (`nodels $node` || `cat /etc/hosts | grep "$ipaddr "` || !(`ping -c 4 $ipaddr` =~ m/100% packet loss/)) {
next;
} else {
$found = 1;
return ($node, $ipaddr, $hostname);
}
}
}
return;
}
1;
+995 -245
View File
File diff suppressed because it is too large Load Diff
+5
View File
@@ -0,0 +1,5 @@
xcat-buildkit (2.9) precise; urgency=low
* Initial release.
-- root <root@ubuntu> Fri, 01 Mar 2013 14:05:43 +0800
+1
View File
@@ -0,0 +1 @@
5
+11
View File
@@ -0,0 +1,11 @@
Source: xcat-buildkit
Section: admin
Priority: extra
Maintainer: xu qing <qxuqxu@cn.ibm.com>
Build-Depends: debhelper (>= 5)
Standards-Version: 3.7.2
Package: xcat-buildkit
Architecture: all
Depends: dpkg-dev, devscripts, debhelper
Description: xCAT-buildkit provides the buildkit tool and sample kit files to build an xCAT kit.
+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.
+7
View File
@@ -0,0 +1,7 @@
opt/xcat/share/xcat/kits/kit_template
opt/xcat/share/xcat/kits/debian_template
opt/xcat/bin
opt/xcat/lib/perl/xCAT
opt/xcat/share/man/man1
opt/xcat/share/doc/man1
opt/xcat/share/doc/packages/xCAT-buildkit
+1
View File
@@ -0,0 +1 @@
LICENSE.html
+7
View File
@@ -0,0 +1,7 @@
share/man/man1/* opt/xcat/share/man/man1/
share/doc/man1/* opt/xcat/share/doc/man1/
share/xcat/kits/kit_template/* opt/xcat/share/xcat/kits/kit_template/
share/xcat/kits/debian_template/* opt/xcat/share/xcat/kits/debian_template/
lib/perl/xCAT/* opt/xcat/lib/perl/xCAT/
bin/* opt/xcat/bin/
LICENSE.html opt/xcat/share/doc/packages/xCAT-buildkit/
+60
View File
@@ -0,0 +1,60 @@
#!/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
export DH_COMPAT=5
build:
pwd
mkdir -p share/man/man1
mkdir -p share/doc/man1
pod2man pods/man1/buildkit.1.pod > share/man/man1/buildkit.1
pod2html pods/man1/buildkit.1.pod > share/doc/man1/buildkit.1.html
clean:
dh_testdir
dh_testroot
dh_clean -d
install:
pwd
dh_testdir
dh_testroot
dh_installdirs
dh_install -X".svn"
chmod 444 debian/xcat-buildkit/opt/xcat/share/man/man1/*
chmod 644 debian/xcat-buildkit/opt/xcat/share/doc/man1/*
find debian/xcat-buildkit/opt/xcat/share/xcat/kits -type d -exec chmod 755 {} \;
find debian/xcat-buildkit/opt/xcat/share/xcat/kits -type f -exec chmod 644 {} \;
find debian/xcat-buildkit/opt/xcat/lib/perl/xCAT -type d -exec chmod 755 {} \;
find debian/xcat-buildkit/opt/xcat/lib/perl/xCAT -type f -exec chmod 644 {} \;
chmod -R 755 debian/xcat-buildkit/opt/xcat/bin/*
find debian/xcat-buildkit/opt/xcat/share/doc/packages/xCAT-buildkit -type f -exec chmod 644 {} \;
dh_link
# Build architecture-independent files here.
binary-indep: build install
dh_installchangelogs
dh_compress
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
# We have nothing to do by default.
# Build architecture-dependent files here.
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
@@ -633,6 +633,20 @@ sub osver
}
}
}
elsif (-f "/etc/debian_version") #possible debian
{
if (open($relfile, "<", "/etc/issue")){
$line = <$relfile>;
if ( $line =~ /debian.*/i){
$os = "debian";
my $relfile1;
open($relfile1, "<", "/etc/debian_version");
$ver = <$relfile1>;
close($relfile1);
}
close($relfile);
}
}
$os = "$os" . "," . "$ver";
return ($os);
}
+12 -8
View File
@@ -21,7 +21,7 @@ B<buildkit> [B<-V> | B<--verbose>] B<cleantar>
B<buildkit> [B<-V> | B<--verbose>] B<cleanall>
B<buildkit> [B<-V> | B<--verbose>] B<addpkgs> I<kit_tarfile> {B<-p> | B<--pkgdir>} I<package_directory>
B<buildkit> [B<-V> | B<--verbose>] B<addpkgs> I<kit_tarfile> {B<-p> | B<--pkgdir>} {B<-k> | B<--kitversion> I<version>} {B<-r> | B<--kitrelease> I<release>} I<package_directory>
B<command> [B<-?> | B<-h> | B<--help> | B<-v> | B<--version>]
@@ -74,10 +74,14 @@ List the repos defined in your buildkit configuration file:
=item 8.
For each reponame listed, build the repository. Note that if you need to build repositories for OS distributions or versions that do not match the current system, you may need to copy your kit template directory to an appropriate server to build that repository, and then copy the results back to your main build server.
For each reponame listed, build the repository. Note that if you need to build repositories for OS distributions, versions, or architectures that do not match the current system, you may need to copy your kit template directory to an appropriate server to build that repository, and then copy the results back to your main build server.
buildkit buildrepo repo_name
or, you can build all of the repos at one time if there are no OS or architecture dependencies for kitcomponent package builds or kitpackage builds:
buildkit buildrepo all
=item 9.
Build the kit tar file:
@@ -123,19 +127,19 @@ Reads the buildkit.conf file from the current directory, and deletes all the pac
=item B<buildtar>
Reads the buildkit.conf file from the current directory, validates that all kit repositories have been built, and builds the Kit tar file <cwd>/build/I<kitname>.tar.bz2.
Reads the buildkit.conf file from the current directory, validates that all kit repositories have been built, and builds the Kit tar file <cwd>/I<kitname>.tar.bz2.
=item B<cleantar>
Reads the buildkit.conf file from the current directory, deletes the Kit tar <cwd>/build/I<kitname>.tar.bz2, and deletes all files in the build work directory <cwd>/build/I<kitname>.
Reads the buildkit.conf file from the current directory, deletes the Kit tar <cwd>/I<kitname>.tar.bz2, and deletes all files in the build work directory <cwd>/build/I<kitname>.
=item B<cleanall>
Equivalent to running B<buildkit cleanrepo all> and B<buildkit cleantar>.
=item B<addpkgs> I<kit_tarfile> {B<-p> | B<--pkgdir>} I<package_directory>
=item B<addpkgs> I<kit_tarfile> {B<-p> | B<--pkgdir>} {B<-k> | B<--kitversion> I<version>} {B<-r> | B<--kitrelease> I<release>} I<package_directory>
Add product package rpms to a previously built kit tar file. This is used for product kits that are built and shipped separately from the product packages.
Add product package rpms to a previously built kit tar file. This is used for incomplete product kits that are built and shipped separately from the product packages, and are identified with a I<kit_tarfile> name of I<kitname>.B<NEED_PRODUCT_PKGS.tar.bz2>. Optionally, change the kit release and version values when building the new kit tarfile. If kitcomponent version and/or release values are defaulted to the kit values, those will also be changed and new kitcomponent rpms will be built. If kit or kitcomponent scripts, plugins, or other files specify name, release, or version substitution strings, these will all be replaced with the new values when built into the new complete kit tarfile I<cwd>/I<new_kitname>.B<tar.bz2>.
=back
@@ -169,7 +173,7 @@ To create the sample kit shipped with the xCAT-buildkit rpm on a RHELS 6.3 serve
vi buildkit.conf
buildkit chkconfig
buildkit listrepo
buildkit buildrepo rhels6.3
buildkit buildrepo all
buildkit buildtar
=item 2.
@@ -199,7 +203,7 @@ To clean up all kit build files, including a previously built kit tar file, run
<cwd>/build/I<kitname>/kit.conf
<cwd>/build/I<kitname>.tar.bz2
<cwd>/I<kitname>.tar.bz2
=head1 SEE ALSO
@@ -0,0 +1,5 @@
<<<INSERT_kitcomponent_basename_HERE>>> (1.0) precise; urgency=low
* Kit component package build.
-- root <root@ubuntu> Fri, 01 Mar 2013 14:05:43 +0800
@@ -0,0 +1 @@
5
@@ -0,0 +1,11 @@
Source: <<<INSERT_kitcomponent_basename_HERE>>>
Section: admin
Priority: extra
Maintainer: xcatkit <root@ubuntu>
Build-Depends: debhelper (>= 5)
Standards-Version: 3.7.2
Package: <<<INSERT_kitcomponent_basename_HERE>>>
Architecture: all
Depends: <<<INSERT_kitcomponent_ospkgdeps_HERE>>>,<<<INSERT_kitcomponent_kitpkgdeps_HERE>>>,<<<INSERT_kitcomponent_kitcompdeps_HERE>>>
Description: <<<INSERT_kitcomponent_desc_HERE>>>
@@ -1,5 +1,5 @@
#!/bin/sh
# postinst script for xcat-genesis
# postinst script for aaa
#
# see: dh_installdeb(1)
@@ -20,13 +20,11 @@ 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
<<<INSERT_kitcomponent_postinstall_script_HERE>>>
if [ -f /tmp/<<<INSERT_kitcomponent_upgrade_flag_HERE>>> ]
<<<INSERT_kitcomponent_postupgrade_script_HERE>>>
rm /tmp/<<<INSERT_kitcomponent_upgrade_flag_HERE>>>
fi
;;
abort-upgrade|abort-remove|abort-deconfigure)
@@ -0,0 +1,41 @@
#!/bin/sh
# postrm script for aaa
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <postrm> `remove'
# * <postrm> `purge'
# * <old-postrm> `upgrade' <new-version>
# * <new-postrm> `failed-upgrade' <old-version>
# * <new-postrm> `abort-install'
# * <new-postrm> `abort-install' <old-version>
# * <new-postrm> `abort-upgrade' <old-version>
# * <disappearer's-postrm> `disappear' <overwriter>
# <overwriter-version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
;;
remove|purge)
<<<INSERT_kitcomponent_postuninstall_script_HERE>>>
;;
*)
echo "postrm 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
@@ -0,0 +1,42 @@
#!/bin/sh
# preinst script for aaa
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <new-preinst> `install'
# * <new-preinst> `install' <old-version>
# * <new-preinst> `upgrade' <old-version>
# * <old-preinst> `abort-upgrade' <new-version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
install)
<<<INSERT_kitcomponent_preinstall_script_HERE>>>
;;
upgrade)
if [ -f /tmp/<<<INSERT_kitcomponent_upgrade_flag_HERE>>> ]
<<<INSERT_kitcomponent_preupgrade_script_HERE>>>
fi
;;
abort-upgrade)
;;
*)
echo "preinst 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
@@ -0,0 +1,46 @@
#!/bin/sh
# prerm script for aaa
#
# 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)
<<<INSERT_kitcomponent_preuninstall_script_HERE>>>
;;
upgrade)
touch /tmp/<<<INSERT_kitcomponent_upgrade_flag_HERE>>>
;;
deconfigure)
;;
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
@@ -0,0 +1,29 @@
#!/usr/bin/make -f
export DH_COMPAT=5
build:
pwd
clean:
dh_testdir
dh_testroot
dh_clean -d
install:
pwd
dh_install
binary-indep: build install
dh_installchangelogs
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,219 @@
# Kit Build File
#
# This file was initially auto-generated by the buildkit CLI command.
# To create a new kit, the user should modify this file accordingly.
# Refer to the buildkit manpage for further details.
#
# kit: This section defines general info for the Kit.
# There must be exactly one kit section in a kit build file.
#
# kit attributes:
# basename (mandatory) Kit base name. e.g., kit-lsf
# description (optional) Kit description.
# version (mandatory) Kit version. e.g., 1.0
# release (optional) Kit release. e.g., 1
# ostype (mandatory) Kit OS type. Must be Linux.
# AIX is currently not supported.
# isinternal (optional) PCM use only.
# Indicate if Kit is for internal use.
# Use 1 for yes, 0 for no. Default: 0
# kitdeployparams (optional) Filename containing a list of kit deployment
# parameters, relative to
# <Kit Build Directory>/other_files
# kitlicense (mandatory) Kit license string to be built into all
# kitcomponent packages
# kittarfilename (optional) Filename.tar.bz2 to be used for the generated
# kit. Default is <basename>-<version>-<ostype>.tar.bz2
kit:
basename=chef
description=Kit for installing chef server, client and workstation
version=1.0
release=1
ostype=Linux
kitlicense=EPL
# kitrepo: This section defines a Kit Package Repository.
# There must be at least one kitrepo section in a kit build file.
# If you want to support multiple OSes, you should create a separate
# repo for each OS. Also, no two repos can be defined with the same
# OS name, major/minor version and arch. For example, you cannot have
# two repos for RHEL 6.2 x86_64 in the same kit.
#
# kitrepo attributes:
# kitrepoid (mandatory) Kit package repository ID.
# Must be unique within this file.
# osbasename (mandatory) OS distro base name. e.g., rhels.
# osmajorversion (mandatory) OS major version. e.g., 6
# osminorversion (optional) OS minor version.
# osarch (mandatory) OS architecture. e.g., x86_64
# compat_osbasenames (optional) Comma-separated list of compatible
# OS distro base names. e.g., centos
kitrepo:
kitrepoid=rhels6_x86_64
osbasename=rhels
osmajorversion=6
#osminorversion=
osarch=x86_64
#compat_osbasenames=
# kitcomponent: This section defines one Kit Component.
# There can be zero or more kitcomponent sections.
# If you want to build a component which supports multiple OSes,
# you should create one kitcomponent section for each OS.
# Also, no two components in a kit can be defined with the same
# base name.
# You can define multiple kit components with the same base name
# only if each kit component using this base name meets these
# requirements:
# - Each kit component must be defined with the same version
# and release number
# - Each kit component must be defined with a unique kitrepoid
#
# kitcomponent attributes:
# basename (mandatory) Kit component base name
# description (optional) Kit component description
# version (optional) Kit component version. If not set, defaults
# to kit version
# release (optional) Kit component release. If not set, defaults
# to kit release. Error if both are not set.
# serverroles (mandatory) Comma-separated list of servers that this
# component can install on. Valid values:
# mgtnode,servicenode,compute,login,storage,utility
# kitrepoid (mandatory) The ID of the kit package repository this
# component belongs to
# kitcompdeps (optional) Comma-separated list of kit component
# dependencies. These kit components can be included in
# this kit or in other kits.
# ospkgdeps (optional) Comma-separated list of OS package dependencies
# These packages must be shipped with the OS distro.
# kitpkgdeps (optional) Comma-separated list of kit package names that
# will be listed as "REQUIRES" when building this kit
# component. Each package must be defined in a separate
# kitpackage section. Each package must be in the same
# kitrepo as this kit component.
# non_native_pkgs (optional)
# Comma-separated list of non-native package
# paths that will be included as files in this kit
# component. All filenames are relative to
# <Kit Build Directory>/source_packages and may contain
# wildcards. If a filename is prefixed by 'EXTERNALPKGS:'
# the file will not be built into the kit tarfile, but
# will need to be added later with a 'buildkit addpkgs'
# command.
# Files will be placed in
# /opt/xcat/kits/<kitbasename>/<kitcomponent_name>
# when the kitcomponent package is deployed to an
# OS image.
# Kit component deployment scripts must be specified
# to manage these files.
# driverpacks (optional) Comma-separated list of driver package filenames
# Each driverpack must be defined in a separate kitpackage
# section.
# exlist (optional) Exclude list file for stateless image, relative
# to <Kit Build Directory>/other_files
# Kit component deployment scripts (optional) Each attribute specifies
# script path relative to <Kit Build Directory>/scripts
# Script attributes:
# preinstall, postinstall, preuninstall, postuninstall,
# preupgrade, postupgrade, postbootscripts,
# genimage_postinstall
kitcomponent:
basename=chef_server_kit
description=For installing chef server
version=1.0
release=1
serverroles=mgtnode
kitrepoid=rhels6_x86_64
kitpkgdeps=chef-server
#postinstall=server.post
postbootscripts=server.post
kitcomponent:
basename=chef_client_kit
description=For installing chef client
version=1.0
release=1
serverroles=compute
kitrepoid=rhels6_x86_64
kitpkgdeps=chef
#postinstall=client.post
postbootscripts=client.post
kitcomponent:
basename=chef_workstation_kit
description=For installing chef workstation
version=1.0
release=1
serverroles=compute
kitrepoid=rhels6_x86_64
kitpkgdeps=chef
#postinstall=workstation.post
postbootscripts=workstation.post
# kitpackage: This section defines one Kit Package, and how to build it.
# There can be zero or more kitpackage sections.
# All filenames should be relative paths to
# <Kit Build Directory>/source_packages
# If you want to build a package which can run on multiple OSes,
# you have two options:
# 1. Build a separate package for each OS you want to support.
# For this option, you need to define one kitpackage section
# per supported OS.
# 2. Build one package that can run on multiple OSes.
# If you are building an RPM package, you are responsible for
# creating an RPM spec file that can run on multiple OSes.
# For this option, you need to define one kitpackage section
# which contains multiple kitrepoid lines.
#
# kitpackage attributes:
# filename (mandatory) Package filename.
# kitrepoid (mandatory) A comma-separated list of kit reponames this package
# belongs to. If multiple repos are defined, the package will
# be built for the first repo only. For the other repos,
# a symlink is created to the package built for the first repo.
# Package build methods (optional)
# Define how to build the packages.
# If you don't specify a build method, the default behavior is
# to assume the package is pre-built under
# <Kit Build Directory>/source_packages
# All files in this section are relative to
# <Kit Build Directory>/source_packages
# There are four methods to build packages.
# 1. Use pre-built RPM package
# The filename may contain wildcards to avoid needing to
# specify an explicit package version-release filename.
# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no')
# Indicates whether the RPM package will be added to the
# the kit tar file now as part of the kit build process,
# or whether the customer will need to separately
# obtain the RPM pacakage and add it to the kit tar file
# using 'buildkit addpkgs'
# rpm_prebuiltdir: If isexternalpkg=no, path to directory
# containing pre-built RPM package
# 2. Build RPM from spec + src dir
# rpm_spec: Path to spec file.
# rpm_srcdir: Path to source directory.
# 3. Build RPM from spec + src tarball
# rpm_spec: Path to spec file.
# rpm_srctarball: Path to source tarball.
# 4. Build RPM from source RPM
# rpm_srpm: Path to source RPM package.
kitpackage:
filename=chef-server-*
kitrepoid=rhels6_x86_64
isexternalpkg=no
rpm_prebuiltdir=rhels6/x86_64
kitpackage:
filename=chef-11*
kitrepoid=rhels6_x86_64
isexternalpkg=no
rpm_prebuiltdir=rhels6/x86_64
@@ -0,0 +1,28 @@
#!/bin/sh
# IBM(c) 2013 EPL license http://www.eclipse.org/legal/epl-v10.html
#-------------------------------------------------------------------------------
#=head1 client.post
#=head2 This command configures the chef client on a xCAT node. It is used
# as a post installation script for chef_client_kit.rpm.
#=cut
#-------------------------------------------------------------------------------
if [ "$NODESETSTATE" = "install" ]; then
#prevent getting called during full install bootup
#because the function will be called in the rpm %post section instead
exit 0
else
if [ -f "/proc/cmdline" ]; then # prevent running it during install into chroot image
#configure the chef client configuration files
/xcatpost/config_chef_client "$@"
fi
fi
exit 0
@@ -0,0 +1,23 @@
#!/bin/sh
# IBM(c) 2013 EPL license http://www.eclipse.org/legal/epl-v10.html
#-------------------------------------------------------------------------------
#=head1 server.post
#=head2 This command configures the chef server on a xCAT server or node.
# It is used as a post install script for chef_server_kit.rpm
#=cut
#-------------------------------------------------------------------------------
if [ "$NODESETSTATE" = "install" ]; then
#prevent getting called during full install bootup
#because the function will be called in the rpm %post section instead
exit 0
else
if [ -f "/proc/cmdline" ]; then # prevent running it during install into chroot image
#Now configure the chef server
/xcatpost/config_chef_server
fi
fi
exit 0
@@ -0,0 +1,28 @@
#!/bin/sh
# IBM(c) 2013 EPL license http://www.eclipse.org/legal/epl-v10.html
#-------------------------------------------------------------------------------
#=head1 workstation.post
#=head2 This command configures the chef workstation on a xCAT node. It is used
# as a post installation script for chef_workstation_kit.rpm.
#=cut
#-------------------------------------------------------------------------------
if [ "$NODESETSTATE" = "install" ]; then
#prevent getting called during full install bootup
#because the function will be called in the rpm %post section instead
exit 0
else
if [ -f "/proc/cmdline" ]; then # prevent running it during install into chroot image
#configure the chef workstation configuration files
/xcatpost/config_chef_workstation "$@"
fi
fi
exit 0
@@ -0,0 +1,306 @@
# Kit Build File
#
# This file was initially auto-generated by the buildkit CLI command.
# To create a new kit, the user should modify this file accordingly.
# Refer to the buildkit manpage for further details.
#
# kit: This section defines general info for the Kit.
# There must be exactly one kit section in a kit build file.
#
# kit attributes:
# basename (mandatory) Kit base name. e.g., kit-lsf
# description (optional) Kit description.
# version (mandatory) Kit version. e.g., 1.0
# ostype (mandatory) Kit OS type. Must be Linux.
# AIX is currently not supported.
# isinternal (optional) PCM use only.
# Indicate if Kit is for internal use.
# Use 1 for yes, 0 for no. Default: 0
# kitdeployparams (optional) Filename containing a list of kit deployment
# parameters, relative to
# <Kit Build Directory>/other_files
kit:
basename=xlc
description=XLC12 for Linux
version=12.1.0.0
ostype=Linux
kitlicense=ILAN
# kitdeployparams=sample/kitdeployparams.lst
# kitrepo: This section defines a Kit Package Repository.
# There must be at least one kitrepo section in a kit build file.
# If you want to support multiple OSes, you should create a separate
# repo for each OS. Also, no two repos can be defined with the same
# OS name, major/minor version and arch. For example, you cannot have
# two repos for RHEL 6.2 ppc64 in the same kit.
#
# kitrepo attributes:
# kitrepoid (mandatory) Kit package repository ID.
# Must be unique within this file.
# osbasename (mandatory) OS distro base name. e.g., rhels.
# osmajorversion (mandatory) OS major version. e.g., 6
# osminorversion (optional) OS minor version.
# osarch (mandatory) OS architecture. e.g., ppc64
# compat_osbasenames (optional) Comma-separated list of compatible
# OS distro base names. e.g., centos
kitrepo:
kitrepoid=rhels6_ppc64
osbasename=rhels
osmajorversion=6
osarch=ppc64
kitrepo:
kitrepoid=sles11_ppc64
osbasename=sles
osmajorversion=11
osarch=ppc64
# kitcomponent: This section defines one Kit Component.
# There can be zero or more kitcomponent sections.
# If you want to build a component which supports multiple OSes,
# you should create one kitcomponent section for each OS.
# Also, no two components in a kit can be defined with the same
# base name.
# You can define multiple kit components with the same base name
# only if each kit component using this base name meets these
# requirements:
# - Each kit component must be defined with the same version
# and release number
# - Each kit component must be defined with a unique kitrepoid
#
# kitcomponent attributes:
# basename (mandatory) Kit component base name
# description (optional) Kit component description
# version (mandatory) Kit component version
# release (mandatory) Kit component release
# serverroles (mandatory) Comma-separated list of servers that this
# component can install on. Valid values:
# mgtnode,servicenode,compute,loginnode,storagenode
# kitrepoid (mandatory) The ID of the kit package repository this
# component belongs to
# kitcompdeps (optional) Comma-separated list of kit component
# dependencies. These kit components can be included in
# this kit or in other kits.
# ospkgdeps (optional) Comma-separated list of OS package dependencies
# These packages must be shipped with the OS distro.
# kitpkgdeps (optional) Comma-separated list of kit package names that
# will be listed as "REQUIRES" when building this kit
# component. Each package must be defined in a separate
# kitpackage section. Each package must be in the same
# kitrepo as this kit component.
# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET!
# Comma-separated list of non-native package
# paths that will be included as files in this kit
# component. All filenames are relative to
# <Kit Build Directory>/source_packages
# Kit component deployment scripts must be specified
# to manage these files.
# driverpacks (optional) Comma-separated list of driver package filenames
# Each driverpack must be defined in a separate kitpackage
# section.
# exlist (optional) Exclude list file for stateless image, relative
# to <Kit Build Directory>/other_files
# Kit component deployment scripts (optional) Each attribute specifies
# script path relative to <Kit Build Directory>/scripts
# Script attributes:
# preinstall, postinstall, preuninstall, postuninstall,
# preupgrade, postupgrade, postbootscripts
kitcomponent:
basename=xlc_compute
description=XLC12 for compute nodes
version=12.1.0.0
release=120323
serverroles=compute
kitrepoid=rhels6_ppc64
ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64)
kitpkgdeps=vac.lic >= 12.1.0.0,vacpp.help.pdf >= 12.1.0.0,vacpp.man >= 12.1.0.0,vacpp.rte >= 12.1.0.0,vacpp.rte.lnk >= 12.1.0.0,vacpp.samples >= 12.1.0.0
exlist=xlc.exlist
genimage_postinstall=xlc_license,rhels_xlc_compute_install
non_native_pkgs=EXTERNALPKGS:vac.lib-12.1.0.0*,EXTERNALPKGS:vac.cmp-12.1.0.0*,EXTERNALPKGS:vacpp.lib-12.1.0.0*,EXTERNALPKGS:vacpp.cmp-12.1.0.0*
kitcomponent:
basename=xlc_loginnode
description=XLC12 for login nodes
version=12.1.0.0
release=120323
serverroles=loginnode
kitrepoid=rhels6_ppc64
ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64)
kitpkgdeps=vac.lic >= 12.1.0.0,vacpp.help.pdf >= 12.1.0.0,vacpp.man >= 12.1.0.0,vacpp.rte >= 12.1.0.0,vacpp.rte.lnk >= 12.1.0.0,vacpp.samples >= 12.1.0.0
exlist=xlc.exlist
genimage_postinstall=xlc_license,rhels_xlc_login_install
non_native_pkgs=EXTERNALPKGS:vac.lib-12.1.0.0*,EXTERNALPKGS:vac.cmp-12.1.0.0*,EXTERNALPKGS:vacpp.lib-12.1.0.0*,EXTERNALPKGS:vacpp.cmp-12.1.0.0*
kitcomponent:
basename=min_xlc_compute
description=Minimal XLC12 packages for compute nodes
version=12.1.0.0
release=120323
serverroles=compute
kitrepoid=rhels6_ppc64
ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64)
kitpkgdeps=vacpp.rte >= 12.1.0.0,vacpp.rte.lnk >= 12.1.0.0
exlist=xlc.exlist
genimage_postinstall=xlc_license,rhels_min_xlc_compute_install
non_native_pkgs=EXTERNALPKGS:vac.lib-12.1.0.0*,EXTERNALPKGS:vac.cmp-12.1.0.0*,EXTERNALPKGS:vacpp.lib-12.1.0.0*,EXTERNALPKGS:vacpp.cmp-12.1.0.0*
kitcomponent:
basename=xlc_compute
description=XLC12 for compute nodes
version=12.1.0.0
release=120323
serverroles=compute
kitrepoid=sles11_ppc64
ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64)
kitpkgdeps=vac.lic >= 12.1.0.0,vacpp.help.pdf >= 12.1.0.0,vacpp.man >= 12.1.0.0,vacpp.rte >= 12.1.0.0,vacpp.rte.lnk >= 12.1.0.0,vacpp.samples >= 12.1.0.0
exlist=xlc.exlist
genimage_postinstall=xlc_license,sles_xlc_compute_install
non_native_pkgs=EXTERNALPKGS:vac.lib-12.1.0.0*,EXTERNALPKGS:vac.cmp-12.1.0.0*,EXTERNALPKGS:vacpp.lib-12.1.0.0*,EXTERNALPKGS:vacpp.cmp-12.1.0.0*
kitcomponent:
basename=xlc_loginnode
description=XLC12 for login nodes
version=12.1.0.0
release=120323
serverroles=loginnode
kitrepoid=sles11_ppc64
ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64)
kitpkgdeps=vacpp.help.pdf >= 12.1.0.0,vacpp.lib >= 12.1.0.0,vacpp.man >= 12.1.0.0,vacpp.rte >= 12.1.0.0,vacpp.rte.lnk >= 12.1.0.0,vacpp.samples >= 12.1.0.0
exlist=xlc.exlist
genimage_postinstall=xlc_license,sles_xlc_login_install
non_native_pkgs=EXTERNALPKGS:vac.lib-12.1.0.0*,EXTERNALPKGS:vac.cmp-12.1.0.0*,EXTERNALPKGS:vacpp.lib-12.1.0.0*,EXTERNALPKGS:vacpp.cmp-12.1.0.0*
kitcomponent:
basename=min_xlc_compute
description=Minimal XLC12 packages for compute nodes
version=12.1.0.0
release=120323
serverroles=compute
kitrepoid=sles11_ppc64
ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64)
kitpkgdeps=vacpp.rte >= 12.1.0.0,vacpp.rte.lnk >= 12.1.0.0
exlist=xlc.exlist
genimage_postinstall=xlc_license,sles_min_xlc_compute_install
non_native_pkgs=EXTERNALPKGS:vac.lib-12.1.0.0*,EXTERNALPKGS:vac.cmp-12.1.0.0*,EXTERNALPKGS:vacpp.lib-12.1.0.0*,EXTERNALPKGS:vacpp.cmp-12.1.0.0*
# kitpackage: This section defines one Kit Package, and how to build it.
# There can be zero or more kitpackage sections.
# All filenames should be relative paths to
# <Kit Build Directory>/source_packages
# If you want to build a package which can run on multiple OSes,
# you have two options:
# 1. Build a separate package for each OS you want to support.
# For this option, you need to define one kitpackage section
# per supported OS.
# 2. Build one package that can run on multiple OSes.
# If you are building an RPM package, you are responsible for
# creating an RPM spec file that can run on multiple OSes.
# For this option, you need to define one kitpackage section
# which contains multiple kitrepoid lines.
#
# kitpackage attributes:
# filename (mandatory) Package filename
# kitrepoid (mandatory) The repo(s) this package belongs to.
# If multiple repos are defined, the package will be built for
# the first repo only. For the other repos, a symlink is created
# to the package built for the first repo.
# Package build methods (optional)
# Define how to build the packages.
# If you don't specify a build method, the default behavior is
# to assume the package is pre-built under
# <Kit Build Directory>/source_packages
# All files in this section are relative to
# <Kit Build Directory>/source_packages
# There are four methods to build packages.
# 1. Use pre-built RPM package
# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no')
# Indicates whether the RPM package will be added to the
# the kit tar file now as part of the kit build process,
# or whether the customer will need to separately
# obtain the RPM pacakage and add it to the kit tar file
# using 'buildkit addpkgs'
# rpm_prebuiltdir: If isexternalpkg=yes, path to directory
# containing pre-built RPM package
# 2. Build RPM from spec + src dir
# rpm_spec: Path to spec file.
# rpm_srcdir: Path to source directory.
# 3. Build RPM from spec + src tarball
# rpm_spec: Path to spec file.
# rpm_srctarball: Path to source tarball.
# 4. Build RPM from source RPM
# rpm_srpm: Path to source RPM package.
kitpackage:
filename=vac.cmp-12.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=vac.lib-12.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=vac.lic-12.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=vacpp.cmp-12.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=vacpp.help.pdf-12.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=vacpp.lib-12.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=vacpp.man-12.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=vacpp.rte-12.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=vacpp.rte.lnk-12.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=vacpp.samples-12.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
@@ -0,0 +1,14 @@
./opt/ibmcmp/msg/*
+./opt/ibmcmp/msg/en_US*
./opt/ibmcmp/vac/*/crt/include*
./opt/ibmcmp/vac/*/include*
./opt/ibmcmp/vac/*/msg/*
+./opt/ibmcmp/vac/*/msg/en_US*
./opt/ibmcmp/vac/*/lap/LI_*
./opt/ibmcmp/vac/*/lap/LA_*
./opt/ibmcmp/vac/*/lap/license/*.txt
./opt/ibmcmp/vacpp/*/include*
./opt/ibmcmp/vacpp/*/msg/*
+./opt/ibmcmp/vacpp/*/msg/en_US*
@@ -0,0 +1,175 @@
package xCAT_plugin::<<<buildkit_WILL_INSERT_kitname_HERE>>>_imageprofile;
use strict;
use warnings;
require xCAT::Utils;
require xCAT::Table;
require xCAT::KitPluginUtils;
# buildkit Processing
# In order to avoid collisions with other plugins, the package
# name for this plugin must contain the full kit name.
# The buildkit buildtar command will copy this file from your plugins
# directory to the the kit build directory, renaming the file with the
# correct kit name. All strings in this file of the form
# <<<buildkit_WILL_INSERT_kitname_HERE>>>
# will be replaced with the full kit name. In order for buildkit to
# correctly edit this file, do not remove these strings.
# Global Variables
# This is the full name of the kit which this plugin belongs
# to. The kit name is used by some code in process_request()
# to determine if the plugin should run. When you are testing
# your plugin the kit name should be set to "TESTMODE" to
# bypass the plugin check in process_request().
our ($PLUGIN_KITNAME);
#$PLUGIN_KITNAME = "TESTMODE";
$PLUGIN_KITNAME = "<<<buildkit_WILL_INSERT_kitname_HERE>>>";
#-------------------------------------------------------
=head1
Image Profile Kit Plugin
This plugin contains commands to run custom actions
during image profile operations.
=cut
#-------------------------------------------------------
#-------------------------------------------------------
=head3 handled_commands
Return list of kit plugin commands handled by this plugin
=cut
#-------------------------------------------------------
sub handled_commands {
return {
kitimagevalidatecomps => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_imageprofile',
kitimageimport => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_imageprofile',
};
}
#-------------------------------------------------------
=head3 process_request
Process the kit plugin command.
=cut
#-------------------------------------------------------
sub process_request {
my $request = shift;
my $callback = shift;
# This kit plugin is passed the name of an image profile.
# We need to determine which kits is used by this
# image profile to decide if this plugin should run or not.
my $imgprofilename = $request->{arg}->[0];
my $kitdata = $request->{kitdata};
if (! defined($kitdata)) {
$kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]);
$request->{kitdata} = $kitdata;
}
if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) {
return;
}
# Name of command and node list
my $command = $request->{command}->[0];
my $args = $request->{arg};
if($command eq 'kitimagevalidatecomps') {
kitimagevalidatecomps($callback, $args);
}
elsif ($command eq 'kitimageimport') {
kitimageimport($callback, $args);
} else {
my $rsp;
$rsp->{data}->[0] = "Command is not supported";
xCAT::MsgUtils->message("E", $rsp, $callback);
}
}
#-------------------------------------------------------
=head3 kitimagevalidatecomps
This command is called to validate new changes to an
image profile's kit component list before the changes
are committed.
=cut
#-------------------------------------------------------
sub kitimagevalidatecomps {
my $callback = shift;
my $args = shift;
my $rsp;
# Parameters
my $imgprofilename = $args->[0];
my $newcomplist = $args->[1];
my @newcomplist = ();
if (defined($newcomplist)) {
@newcomplist = split(/,/, $newcomplist);
}
my $newosdistro = $args->[2];
my $newosdistroupdate = $args->[3];
$rsp->{data}->[0] = "Running kitimagevalidatecomps";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
#-------------------------------------------------------
=head3 kitimageimport
This command is called after changes to an image profile
have been committed.
=cut
#-------------------------------------------------------
sub kitimageimport {
my $callback = shift;
my $args = shift;
my $rsp;
# Parameters
my $imgprofilename = $args->[0];
$rsp->{data}->[0] = "Running kitimageimport";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
@@ -0,0 +1,251 @@
package xCAT_plugin::<<<buildkit_WILL_INSERT_kitname_HERE>>>_nodemgmt;
use strict;
use warnings;
require xCAT::Utils;
require xCAT::Table;
require xCAT::KitPluginUtils;
# buildkit Processing
# In order to avoid collisions with other plugins, the package
# name for this plugin must contain the full kit name.
# The buildkit buildtar command will copy this file from your plugins
# directory to the the kit build directory, renaming the file with the
# correct kit name. All strings in this file of the form
# <<<buildkit_WILL_INSERT_kitname_HERE>>>
# will be replaced with the full kit name. In order for buildkit to
# correctly edit this file, do not remove these strings.
# Global Variables
# This is the full name of the kit which this plugin belongs
# to. The kit name is used by some code in process_request()
# to determine if the plugin should run. When you are testing
# your plugin the kit name should be set to "TESTMODE" to
# bypass the plugin check in process_request().
our ($PLUGIN_KITNAME);
#$PLUGIN_KITNAME = "TESTMODE";
$PLUGIN_KITNAME = "<<<buildkit_WILL_INSERT_kitname_HERE>>>";
#-------------------------------------------------------
=head1
Node Management Kit Plugin
This plugin contains commands to run custom actions
during node management operations.
=cut
#-------------------------------------------------------
#-------------------------------------------------------
=head3 handled_commands
Return list of kit plugin commands handled by this plugin
=cut
#-------------------------------------------------------
sub handled_commands {
return {
kitnodeadd => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_nodemgmt',
kitnoderemove => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_nodemgmt',
kitnodeupdate => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_nodemgmt',
kitnoderefresh => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_nodemgmt',
kitnodefinished => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_nodemgmt',
};
}
#-------------------------------------------------------
=head3 process_request
Process the kit plugin command.
=cut
#-------------------------------------------------------
sub process_request {
my $request = shift;
my $callback = shift;
# Name of command and node list
my $command = $request->{command}->[0];
my $nodes = $request->{node};
# This kit plugin is passed a list of node names.
# We need to determine which kits are used by these
# nodes to decide if this plugin should run or not.
my $kitdata = $request->{kitdata};
if (! defined($kitdata)) {
$kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes);
$request->{kitdata} = $kitdata;
}
if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) {
return;
}
# Get the nodes using this plugin's kit
$nodes = $kitdata->{$PLUGIN_KITNAME};
if($command eq 'kitnodeadd') {
kitnodeadd($callback, $nodes);
}
elsif ($command eq 'kitnoderemove') {
kitnoderemove($callback, $nodes);
}
elsif ($command eq 'kitnodeupdate') {
kitnodeupdate($callback, $nodes);
}
elsif ($command eq 'kitnoderefresh') {
kitnoderefresh($callback, $nodes);
}
elsif ($command eq 'kitnodefinished') {
kitnodefinished($callback);
} else {
my $rsp;
$rsp->{data}->[0] = "Command is not supported";
xCAT::MsgUtils->message("E", $rsp, $callback);
}
}
#-------------------------------------------------------
=head3 kitnodeadd
This command is called when one or more nodes are added
to the cluster.
=cut
#-------------------------------------------------------
sub kitnodeadd {
my $callback = shift;
my $rsp;
# Parameters
my $nodes = shift;
$rsp->{data}->[0] = "Running kitnodeadd";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
#-------------------------------------------------------
=head3 kitnoderemove
This command is called when one or more nodes are
removed from the cluster.
=cut
#-------------------------------------------------------
sub kitnoderemove {
my $callback = shift;
my $rsp;
# Parameters
my $nodes = shift;
$rsp->{data}->[0] = "Running kitnoderemove";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
#-------------------------------------------------------
=head3 kitnodeupdate
This command is called when the configuration of one
or more nodes are updated.
=cut
#-------------------------------------------------------
sub kitnodeupdate {
my $callback = shift;
my $rsp;
# Parameters
my $nodes = shift;
$rsp->{data}->[0] = "Running kitnodeupdate";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
#-------------------------------------------------------
=head3 kitnoderefresh
This command is called when node-related configuration
files are updated.
=cut
#-------------------------------------------------------
sub kitnoderefresh {
my $callback = shift;
my $rsp;
# Parameters
my $nodes = shift;
$rsp->{data}->[0] = "Running kitnoderefresh";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
#-------------------------------------------------------
=head3 kitnodefinished
This command is called at the end of a node management
operation.
=cut
#-------------------------------------------------------
sub kitnodefinished {
my $callback = shift;
my $rsp;
$rsp->{data}->[0] = "Running kitnodefinished";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
@@ -0,0 +1,15 @@
#!/bin/sh
if [[ ! -z "$installroot" ]]; then
if [ -n "`ls $installroot/opt/xcat/kits/xlc/xlc_min_compute-12.1.0.0-120323-rhels-6-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force --root $installroot -Uvh $installroot/opt/xcat/kits/xlc/xlc_min_compute-12.1.0.0-120323-rhels-6-ppc64/*.rpm
fi
else
if [ -n "`ls /opt/xcat/kits/xlc/xlc_min_compute-12.1.0.0-120323-rhels-6-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force -Uvh /opt/xcat/kits/xlc/xlc_min_compute-12.1.0.0-120323-rhels-6-ppc64/*.rpm
fi
fi
exit 0
~
@@ -0,0 +1,15 @@
#!/bin/sh
if [[ ! -z "$installroot" ]]; then
if [ -n "`ls $installroot/opt/xcat/kits/xlc/xlc_compute-12.1.0.0-120323-rhels-6-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force --root $installroot -Uvh $installroot/opt/xcat/kits/xlc/xlc_compute-12.1.0.0-120323-rhels-6-ppc64/*.rpm
fi
else
if [ -n "`ls /opt/xcat/kits/xlc/xlc_compute-12.1.0.0-120323-rhels-6-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force -Uvh /opt/xcat/kits/xlc/xlc_compute-12.1.0.0-120323-rhels-6-ppc64/*.rpm
fi
fi
exit 0
~
@@ -0,0 +1,15 @@
#!/bin/sh
if [[ ! -z "$installroot" ]]; then
if [ -n "`ls $installroot/opt/xcat/kits/xlc/xlc_login-12.1.0.0-120323-rhels-6-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force --root $installroot -Uvh $installroot/opt/xcat/kits/xlc/xlc_login-12.1.0.0-120323-rhels-6-ppc64/*.rpm
fi
else
if [ -n "`ls /opt/xcat/kits/xlc/xlc_login-12.1.0.0-120323-rhels-6-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force -Uvh /opt/xcat/kits/xlc/xlc_login-12.1.0.0-120323-rhels-6-ppc64/*.rpm
fi
fi
exit 0
~
@@ -0,0 +1,15 @@
#!/bin/sh
if [[ ! -z "$installroot" ]]; then
if [ -n "`ls $installroot/opt/xcat/kits/xlc/xlc_min_compute-12.1.0.0-120323-sles-11-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force --root $installroot -Uvh $installroot/opt/xcat/kits/xlc/xlc_min_compute-12.1.0.0-120323-sles-11-ppc64/*.rpm
fi
else
if [ -n "`ls /opt/xcat/kits/xlc/xlc_min_compute-12.1.0.0-120323-sles-11-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force -Uvh /opt/xcat/kits/xlc/xlc_min_compute-12.1.0.0-120323-sles-11-ppc64/*.rpm
fi
fi
exit 0
~
@@ -0,0 +1,15 @@
#!/bin/sh
if [[ ! -z "$installroot" ]]; then
if [ -n "`ls $installroot/opt/xcat/kits/xlc/xlc_compute-12.1.0.0-120323-sles-11-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force --root $installroot -Uvh $installroot/opt/xcat/kits/xlc/xlc_compute-12.1.0.0-120323-sles-11-ppc64/*.rpm
fi
else
if [ -n "`ls /opt/xcat/kits/xlc/xlc_compute-12.1.0.0-120323-sles-11-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force -Uvh /opt/xcat/kits/xlc/xlc_compute-12.1.0.0-120323-sles-11-ppc64/*.rpm
fi
fi
exit 0
~
@@ -0,0 +1,15 @@
#!/bin/sh
if [[ ! -z "$installroot" ]]; then
if [ -n "`ls $installroot/opt/xcat/kits/xlc/xlc_login-12.1.0.0-120323-sles-11-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force --root $installroot -Uvh $installroot/opt/xcat/kits/xlc/xlc_login-12.1.0.0-120323-sles-11-ppc64/*.rpm
fi
else
if [ -n "`ls /opt/xcat/kits/xlc/xlc_login-12.1.0.0-120323-sles-11-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force -Uvh /opt/xcat/kits/xlc/xlc_login-12.1.0.0-120323-sles-11-ppc64/*.rpm
fi
fi
exit 0
~
@@ -0,0 +1,26 @@
#!/bin/sh
#
# Sample script to accept licenses for the IBM vacpp compilers
# For Linux:
# Assumes all compiler software has been installed
OS=`uname`
if [ $OS != "AIX" ]; then
cd $installroot/
vacpp_script=`find opt/ibmcmp/vacpp -name new_install -print`
if [ -n $installroot ]; then
# Being run from a stateful install postscript or stateless postbootscript.
if [ -n "$vacpp_script" ] ; then
echo 1 | chroot $installroot /$vacpp_script
fi
else
# Being run from a stateful install postscript postbootscript.
if [ -n "$vacpp_script" ] ; then
echo 1 | $vacpp_script
fi
fi
fi
@@ -0,0 +1,327 @@
# Kit Build File
#
# This file was initially auto-generated by the buildkit CLI command.
# To create a new kit, the user should modify this file accordingly.
# Refer to the buildkit manpage for further details.
#
# kit: This section defines general info for the Kit.
# There must be exactly one kit section in a kit build file.
#
# kit attributes:
# basename (mandatory) Kit base name. e.g., kit-lsf
# description (optional) Kit description.
# version (mandatory) Kit version. e.g., 1.0
# ostype (mandatory) Kit OS type. Must be Linux.
# AIX is currently not supported.
# isinternal (optional) PCM use only.
# Indicate if Kit is for internal use.
# Use 1 for yes, 0 for no. Default: 0
# kitdeployparams (optional) Filename containing a list of kit deployment
# parameters, relative to
# <Kit Build Directory>/other_files
kit:
basename=xlf
description=XLF14 for Linux
version=14.1.0.0
ostype=Linux
kitlicense=ILAN
# kitdeployparams=sample/kitdeployparams.lst
# kitrepo: This section defines a Kit Package Repository.
# There must be at least one kitrepo section in a kit build file.
# If you want to support multiple OSes, you should create a separate
# repo for each OS. Also, no two repos can be defined with the same
# OS name, major/minor version and arch. For example, you cannot have
# two repos for RHEL 6.2 ppc64 in the same kit.
#
# kitrepo attributes:
# kitrepoid (mandatory) Kit package repository ID.
# Must be unique within this file.
# osbasename (mandatory) OS distro base name. e.g., rhels.
# osmajorversion (mandatory) OS major version. e.g., 6
# osminorversion (optional) OS minor version.
# osarch (mandatory) OS architecture. e.g., ppc64
# compat_osbasenames (optional) Comma-separated list of compatible
# OS distro base names. e.g., centos
kitrepo:
kitrepoid=rhels6_ppc64
osbasename=rhels
osmajorversion=6
osarch=ppc64
kitrepo:
kitrepoid=sles11_ppc64
osbasename=sles
osmajorversion=11
osarch=ppc64
# kitcomponent: This section defines one Kit Component.
# There can be zero or more kitcomponent sections.
# If you want to build a component which supports multiple OSes,
# you should create one kitcomponent section for each OS.
# Also, no two components in a kit can be defined with the same
# base name.
# You can define multiple kit components with the same base name
# only if each kit component using this base name meets these
# requirements:
# - Each kit component must be defined with the same version
# and release number
# - Each kit component must be defined with a unique kitrepoid
#
# kitcomponent attributes:
# basename (mandatory) Kit component base name
# description (optional) Kit component description
# version (mandatory) Kit component version
# release (mandatory) Kit component release
# serverroles (mandatory) Comma-separated list of servers that this
# component can install on. Valid values:
# mgtnode,service,compute,login,storage
# kitrepoid (mandatory) The ID of the kit package repository this
# component belongs to
# kitcompdeps (optional) Comma-separated list of kit component
# dependencies. These kit components can be included in
# this kit or in other kits.
# ospkgdeps (optional) Comma-separated list of OS package dependencies
# These packages must be shipped with the OS distro.
# kitpkgdeps (optional) Comma-separated list of kit package names that
# will be listed as "REQUIRES" when building this kit
# component. Each package must be defined in a separate
# kitpackage section. Each package must be in the same
# kitrepo as this kit component.
# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET!
# Comma-separated list of non-native package
# paths that will be included as files in this kit
# component. All filenames are relative to
# <Kit Build Directory>/source_packages
# Kit component deployment scripts must be specified
# to manage these files.
# driverpacks (optional) Comma-separated list of driver package filenames
# Each driverpack must be defined in a separate kitpackage
# section.
# exlist (optional) Exclude list file for stateless image, relative
# to <Kit Build Directory>/other_files
# Kit component deployment scripts (optional) Each attribute specifies
# script path relative to <Kit Build Directory>/scripts
# Script attributes:
# preinstall, postinstall, preuninstall, postuninstall,
# preupgrade, postupgrade, postbootscripts
kitcomponent:
basename=xlf_compute
description=XLF14 for compute nodes
version=14.1.0.0
release=120323
serverroles=compute
kitrepoid=rhels6_ppc64
ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64),compat-libstdc++-33(ppc-32),compat-libstdc++-33(ppc-64)
kitpkgdeps=xlmass.lib >= 7.1.0.0,xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlsmp.lib >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.0,xlf.help.pdf >= 14.1.0.0,xlf.samples >= 14.1.0.0,xlf.man >= 14.1.0.0,xlf.lic >= 14.1.0.0
exlist=xlf.exlist
genimage_postinstall=xlf_license,rhels_xlf_compute_install
non_native_pkgs=EXTERNALPKGS:xlf.lib-14.1.0.0-*.rpm,EXTERNALPKGS:xlf.cmp-14.1.0.0-*.rpm
kitcomponent:
basename=xlf_login
description=XLF14 for login nodes
version=14.1.0.0
release=120323
serverroles=login
kitrepoid=rhels6_ppc64
ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64),compat-libstdc++-33(ppc-32),compat-libstdc++-33(ppc-64)
kitpkgdeps=xlmass.lib >= 7.1.0.0,xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlsmp.lib >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.0,xlf.help.pdf >= 14.1.0.0,xlf.samples >= 14.1.0.0,xlf.man >= 14.1.0.0,xlf.lic >= 14.1.0.0
exlist=xlf.exlist
genimage_postinstall=xlf_license,rhels_xlf_login_install
non_native_pkgs=EXTERNALPKGS:xlf.lib-14.1.0.0-*.rpm,EXTERNALPKGS:xlf.cmp-14.1.0.0-*.rpm
kitcomponent:
basename=min_xlf_compute
description=Minimal XLF14 packages for compute nodes
version=14.1.0.0
release=120323
serverroles=compute
kitrepoid=rhels6_ppc64
ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64),compat-libstdc++-33(ppc-32),compat-libstdc++-33(ppc-64)
kitpkgdeps=xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.00
exlist=xlf.exlist
genimage_postinstall=xlf_license,rhels_min_xlf_compute_install
non_native_pkgs=EXTERNALPKGS:xlf.lib-14.1.0.0-*.rpm,EXTERNALPKGS:xlf.cmp-14.1.0.0-*.rpm
kitcomponent:
basename=xlf_compute
description=XLF14 for compute nodes
version=14.1.0.0
release=120323
serverroles=compute
kitrepoid=sles11_ppc64
ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64),compat-libstdc++-33(ppc-32),compat-libstdc++-33(ppc-64)
kitpkgdeps=xlmass.lib >= 7.1.0.0,xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlsmp.lib >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.0,xlf.help.pdf >= 14.1.0.0,xlf.samples >= 14.1.0.0,xlf.man >= 14.1.0.0,xlf.lic >= 14.1.0.0
exlist=xlf.exlist
genimage_postinstall=xlf_license,sles_xlf_compute_install
non_native_pkgs=EXTERNALPKGS:xlf.lib-14.1.0.0-*.rpm,EXTERNALPKGS:xlf.cmp-14.1.0.0-*.rpm
kitcomponent:
basename=xlf_login
description=XLF14 for login nodes
version=14.1.0.0
release=120323
serverroles=login
kitrepoid=sles11_ppc64
ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64),compat-libstdc++-33(ppc-32),compat-libstdc++-33(ppc-64)
kitpkgdeps=xlmass.lib >= 7.1.0.0,xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlsmp.lib >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.0,xlf.help.pdf >= 14.1.0.0,xlf.samples >= 14.1.0.0,xlf.man >= 14.1.0.0,xlf.lic >= 14.1.0.0
exlist=xlf.exlist
genimage_postinstall=xlf_license,sles_xlf_login_install
non_native_pkgs=EXTERNALPKGS:xlf.lib-14.1.0.0-*.rpm,EXTERNALPKGS:xlf.cmp-14.1.0.0-*.rpm
kitcomponent:
basename=min_xlf_compute
description=Minimal XLF14 packages for compute nodes
version=14.1.0.0
release=120323
serverroles=compute
kitrepoid=sles11_ppc64
ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64),compat-libstdc++-33(ppc-32),compat-libstdc++-33(ppc-64)
kitpkgdeps=xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.00
exlist=xlf.exlist
genimage_postinstall=xlf_license,sles_min_xlf_compute_install
non_native_pkgs=EXTERNALPKGS:xlf.lib-14.1.0.0-*.rpm,EXTERNALPKGS:xlf.cmp-14.1.0.0-*.rpm
# kitpackage: This section defines one Kit Package, and how to build it.
# There can be zero or more kitpackage sections.
# All filenames should be relative paths to
# <Kit Build Directory>/source_packages
# If you want to build a package which can run on multiple OSes,
# you have two options:
# 1. Build a separate package for each OS you want to support.
# For this option, you need to define one kitpackage section
# per supported OS.
# 2. Build one package that can run on multiple OSes.
# If you are building an RPM package, you are responsible for
# creating an RPM spec file that can run on multiple OSes.
# For this option, you need to define one kitpackage section
# which contains multiple kitrepoid lines.
#
# kitpackage attributes:
# filename (mandatory) Package filename
# kitrepoid (mandatory) The repo(s) this package belongs to.
# If multiple repos are defined, the package will be built for
# the first repo only. For the other repos, a symlink is created
# to the package built for the first repo.
# Package build methods (optional)
# Define how to build the packages.
# If you don't specify a build method, the default behavior is
# to assume the package is pre-built under
# <Kit Build Directory>/source_packages
# All files in this section are relative to
# <Kit Build Directory>/source_packages
# There are four methods to build packages.
# 1. Use pre-built RPM package
# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no')
# Indicates whether the RPM package will be added to the
# the kit tar file now as part of the kit build process,
# or whether the customer will need to separately
# obtain the RPM pacakage and add it to the kit tar file
# using 'buildkit addpkgs'
# rpm_prebuiltdir: If isexternalpkg=yes, path to directory
# containing pre-built RPM package
# 2. Build RPM from spec + src dir
# rpm_spec: Path to spec file.
# rpm_srcdir: Path to source directory.
# 3. Build RPM from spec + src tarball
# rpm_spec: Path to spec file.
# rpm_srctarball: Path to source tarball.
# 4. Build RPM from source RPM
# rpm_srpm: Path to source RPM package.
kitpackage:
filename=xlf.cmp-14.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=xlf.help.pdf-14.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=xlf.lib-14.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=xlf.lic-14.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=xlf.man-14.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=xlf.msg.rte-14.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=xlf.rte-14.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=xlf.rte.lnk-14.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=xlf.samples-14.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=xlmass.lib-7.1.0.0-120322.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=xlsmp.lib-3.1.0.0-120315a.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=xlsmp.msg.rte-3.1.0.0-120315a.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
kitpackage:
filename=xlsmp.rte-3.1.0.0-120315a.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=yes
@@ -0,0 +1,14 @@
./opt/ibmcmp/msg/*
+./opt/ibmcmp/msg/en_US*
./opt/ibmcmp/xlmass/*/include*
./opt/ibmcmp/xlsmp/*/include*
./opt/ibmcmp/xlhelp*
./opt/ibmcmp/xlf/*/include*
./opt/ibmcmp/xlf/*/msg/*
+./opt/ibmcmp/xlf/*/msg/en_US*
./opt/ibmcmp/xlf/*/lap/LA_*
./opt/ibmcmp/xlf/*/lap/LI_*
./opt/ibmcmp/xlf/*/lap/license/*.txt
@@ -0,0 +1,175 @@
package xCAT_plugin::<<<buildkit_WILL_INSERT_kitname_HERE>>>_imageprofile;
use strict;
use warnings;
require xCAT::Utils;
require xCAT::Table;
require xCAT::KitPluginUtils;
# buildkit Processing
# In order to avoid collisions with other plugins, the package
# name for this plugin must contain the full kit name.
# The buildkit buildtar command will copy this file from your plugins
# directory to the the kit build directory, renaming the file with the
# correct kit name. All strings in this file of the form
# <<<buildkit_WILL_INSERT_kitname_HERE>>>
# will be replaced with the full kit name. In order for buildkit to
# correctly edit this file, do not remove these strings.
# Global Variables
# This is the full name of the kit which this plugin belongs
# to. The kit name is used by some code in process_request()
# to determine if the plugin should run. When you are testing
# your plugin the kit name should be set to "TESTMODE" to
# bypass the plugin check in process_request().
our ($PLUGIN_KITNAME);
#$PLUGIN_KITNAME = "TESTMODE";
$PLUGIN_KITNAME = "<<<buildkit_WILL_INSERT_kitname_HERE>>>";
#-------------------------------------------------------
=head1
Image Profile Kit Plugin
This plugin contains commands to run custom actions
during image profile operations.
=cut
#-------------------------------------------------------
#-------------------------------------------------------
=head3 handled_commands
Return list of kit plugin commands handled by this plugin
=cut
#-------------------------------------------------------
sub handled_commands {
return {
kitimagevalidatecomps => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_imageprofile',
kitimageimport => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_imageprofile',
};
}
#-------------------------------------------------------
=head3 process_request
Process the kit plugin command.
=cut
#-------------------------------------------------------
sub process_request {
my $request = shift;
my $callback = shift;
# This kit plugin is passed the name of an image profile.
# We need to determine which kits is used by this
# image profile to decide if this plugin should run or not.
my $imgprofilename = $request->{arg}->[0];
my $kitdata = $request->{kitdata};
if (! defined($kitdata)) {
$kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]);
$request->{kitdata} = $kitdata;
}
if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) {
return;
}
# Name of command and node list
my $command = $request->{command}->[0];
my $args = $request->{arg};
if($command eq 'kitimagevalidatecomps') {
kitimagevalidatecomps($callback, $args);
}
elsif ($command eq 'kitimageimport') {
kitimageimport($callback, $args);
} else {
my $rsp;
$rsp->{data}->[0] = "Command is not supported";
xCAT::MsgUtils->message("E", $rsp, $callback);
}
}
#-------------------------------------------------------
=head3 kitimagevalidatecomps
This command is called to validate new changes to an
image profile's kit component list before the changes
are committed.
=cut
#-------------------------------------------------------
sub kitimagevalidatecomps {
my $callback = shift;
my $args = shift;
my $rsp;
# Parameters
my $imgprofilename = $args->[0];
my $newcomplist = $args->[1];
my @newcomplist = ();
if (defined($newcomplist)) {
@newcomplist = split(/,/, $newcomplist);
}
my $newosdistro = $args->[2];
my $newosdistroupdate = $args->[3];
$rsp->{data}->[0] = "Running kitimagevalidatecomps";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
#-------------------------------------------------------
=head3 kitimageimport
This command is called after changes to an image profile
have been committed.
=cut
#-------------------------------------------------------
sub kitimageimport {
my $callback = shift;
my $args = shift;
my $rsp;
# Parameters
my $imgprofilename = $args->[0];
$rsp->{data}->[0] = "Running kitimageimport";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
@@ -0,0 +1,251 @@
package xCAT_plugin::<<<buildkit_WILL_INSERT_kitname_HERE>>>_nodemgmt;
use strict;
use warnings;
require xCAT::Utils;
require xCAT::Table;
require xCAT::KitPluginUtils;
# buildkit Processing
# In order to avoid collisions with other plugins, the package
# name for this plugin must contain the full kit name.
# The buildkit buildtar command will copy this file from your plugins
# directory to the the kit build directory, renaming the file with the
# correct kit name. All strings in this file of the form
# <<<buildkit_WILL_INSERT_kitname_HERE>>>
# will be replaced with the full kit name. In order for buildkit to
# correctly edit this file, do not remove these strings.
# Global Variables
# This is the full name of the kit which this plugin belongs
# to. The kit name is used by some code in process_request()
# to determine if the plugin should run. When you are testing
# your plugin the kit name should be set to "TESTMODE" to
# bypass the plugin check in process_request().
our ($PLUGIN_KITNAME);
#$PLUGIN_KITNAME = "TESTMODE";
$PLUGIN_KITNAME = "<<<buildkit_WILL_INSERT_kitname_HERE>>>";
#-------------------------------------------------------
=head1
Node Management Kit Plugin
This plugin contains commands to run custom actions
during node management operations.
=cut
#-------------------------------------------------------
#-------------------------------------------------------
=head3 handled_commands
Return list of kit plugin commands handled by this plugin
=cut
#-------------------------------------------------------
sub handled_commands {
return {
kitnodeadd => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_nodemgmt',
kitnoderemove => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_nodemgmt',
kitnodeupdate => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_nodemgmt',
kitnoderefresh => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_nodemgmt',
kitnodefinished => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_nodemgmt',
};
}
#-------------------------------------------------------
=head3 process_request
Process the kit plugin command.
=cut
#-------------------------------------------------------
sub process_request {
my $request = shift;
my $callback = shift;
# Name of command and node list
my $command = $request->{command}->[0];
my $nodes = $request->{node};
# This kit plugin is passed a list of node names.
# We need to determine which kits are used by these
# nodes to decide if this plugin should run or not.
my $kitdata = $request->{kitdata};
if (! defined($kitdata)) {
$kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes);
$request->{kitdata} = $kitdata;
}
if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) {
return;
}
# Get the nodes using this plugin's kit
$nodes = $kitdata->{$PLUGIN_KITNAME};
if($command eq 'kitnodeadd') {
kitnodeadd($callback, $nodes);
}
elsif ($command eq 'kitnoderemove') {
kitnoderemove($callback, $nodes);
}
elsif ($command eq 'kitnodeupdate') {
kitnodeupdate($callback, $nodes);
}
elsif ($command eq 'kitnoderefresh') {
kitnoderefresh($callback, $nodes);
}
elsif ($command eq 'kitnodefinished') {
kitnodefinished($callback);
} else {
my $rsp;
$rsp->{data}->[0] = "Command is not supported";
xCAT::MsgUtils->message("E", $rsp, $callback);
}
}
#-------------------------------------------------------
=head3 kitnodeadd
This command is called when one or more nodes are added
to the cluster.
=cut
#-------------------------------------------------------
sub kitnodeadd {
my $callback = shift;
my $rsp;
# Parameters
my $nodes = shift;
$rsp->{data}->[0] = "Running kitnodeadd";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
#-------------------------------------------------------
=head3 kitnoderemove
This command is called when one or more nodes are
removed from the cluster.
=cut
#-------------------------------------------------------
sub kitnoderemove {
my $callback = shift;
my $rsp;
# Parameters
my $nodes = shift;
$rsp->{data}->[0] = "Running kitnoderemove";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
#-------------------------------------------------------
=head3 kitnodeupdate
This command is called when the configuration of one
or more nodes are updated.
=cut
#-------------------------------------------------------
sub kitnodeupdate {
my $callback = shift;
my $rsp;
# Parameters
my $nodes = shift;
$rsp->{data}->[0] = "Running kitnodeupdate";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
#-------------------------------------------------------
=head3 kitnoderefresh
This command is called when node-related configuration
files are updated.
=cut
#-------------------------------------------------------
sub kitnoderefresh {
my $callback = shift;
my $rsp;
# Parameters
my $nodes = shift;
$rsp->{data}->[0] = "Running kitnoderefresh";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
#-------------------------------------------------------
=head3 kitnodefinished
This command is called at the end of a node management
operation.
=cut
#-------------------------------------------------------
sub kitnodefinished {
my $callback = shift;
my $rsp;
$rsp->{data}->[0] = "Running kitnodefinished";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
@@ -0,0 +1,14 @@
#!/bin/sh
if [[ ! -z "$installroot" ]]; then
if [ -n "`ls $installroot/opt/xcat/kits/xlf/min_xlf_compute-14.1.0.0-120323-rhels-6-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force --root $installroot -Uvh $installroot/opt/xcat/kits/xlf/min_xlf_compute-14.1.0.0-120323-rhels-6-ppc64/*.rpm
fi
else
if [ -n "`ls /opt/xcat/kits/xlf/min_xlf_compute-14.1.0.0-120323-rhels-6-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force -Uvh /opt/xcat/kits/xlf/min_xlf_compute-14.1.0.0-120323-rhels-6-ppc64/*.rpm
fi
fi
exit 0
@@ -0,0 +1,14 @@
#!/bin/sh
if [[ ! -z "$installroot" ]]; then
if [ -n "`ls $installroot/opt/xcat/kits/xlf/xlf_compute-14.1.0.0-120323-rhels-6-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force --root $installroot -Uvh $installroot/opt/xcat/kits/xlf/xlf_compute-14.1.0.0-120323-rhels-6-ppc64/*.rpm
fi
else
if [ -n "`ls /opt/xcat/kits/xlf/xlf_compute-14.1.0.0-120323-rhels-6-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force -Uvh /opt/xcat/kits/xlf/xlf_compute-14.1.0.0-120323-rhels-6-ppc64/*.rpm
fi
fi
exit 0
@@ -0,0 +1,14 @@
#!/bin/sh
if [[ ! -z "$installroot" ]]; then
if [ -n "`ls $installroot/opt/xcat/kits/xlf/xlf_login-14.1.0.0-120323-rhels-6-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force --root $installroot -Uvh $installroot/opt/xcat/kits/xlf/xlf_login-14.1.0.0-120323-rhels-6-ppc64/*.rpm
fi
else
if [ -n "`ls /opt/xcat/kits/xlf/xlf_login-14.1.0.0-120323-rhels-6-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force -Uvh /opt/xcat/kits/xlf/xlf_login-14.1.0.0-120323-rhels-6-ppc64/*.rpm
fi
fi
exit 0
@@ -0,0 +1,14 @@
#!/bin/sh
if [[ ! -z "$installroot" ]]; then
if [ -n "`ls $installroot/opt/xcat/kits/xlf/min_xlf_compute-14.1.0.0-120323-sles-11-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force --root $installroot -Uvh $installroot/opt/xcat/kits/xlf/min_xlf_compute-14.1.0.0-120323-sles-11-ppc64/*.rpm
fi
else
if [ -n "`ls /opt/xcat/kits/xlf/min_xlf_compute-14.1.0.0-120323-sles-11-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force -Uvh /opt/xcat/kits/xlf/min_xlf_compute-14.1.0.0-120323-sles-11-ppc64/*.rpm
fi
fi
exit 0
@@ -0,0 +1,14 @@
#!/bin/sh
if [[ ! -z "$installroot" ]]; then
if [ -n "`ls $installroot/opt/xcat/kits/xlf/xlf_compute-14.1.0.0-120323-sles-11-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force --root $installroot -Uvh $installroot/opt/xcat/kits/xlf/xlf_compute-14.1.0.0-120323-sles-11-ppc64/*.rpm
fi
else
if [ -n "`ls /opt/xcat/kits/xlf/xlf_compute-14.1.0.0-120323-sles-11-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force -Uvh /opt/xcat/kits/xlf/xlf_compute-14.1.0.0-120323-sles-11-ppc64/*.rpm
fi
fi
exit 0
@@ -0,0 +1,14 @@
#!/bin/sh
if [[ ! -z "$installroot" ]]; then
if [ -n "`ls $installroot/opt/xcat/kits/xlf/xlf_login-14.1.0.0-120323-sles-11-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force --root $installroot -Uvh $installroot/opt/xcat/kits/xlf/xlf_login-14.1.0.0-120323-sles-11-ppc64/*.rpm
fi
else
if [ -n "`ls /opt/xcat/kits/xlf/xlf_login-14.1.0.0-120323-sles-11-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force -Uvh /opt/xcat/kits/xlf/xlf_login-14.1.0.0-120323-sles-11-ppc64/*.rpm
fi
fi
exit 0
@@ -0,0 +1,26 @@
#!/bin/sh
#
# Sample script to accept licenses for the IBM xlf compilers
# For Linux:
# Assumes all compiler software has been installed
OS=`uname`
if [ $OS != "AIX" ]; then
cd $installroot/
xlf_script=`find opt/ibmcmp/xlf -name new_install -print`
if [ -n $installroot ]; then
# Being run from a stateful install postscript or stateless postbootscript.
if [ -n "$xlf_script" ] ; then
echo 1 | chroot $installroot /$xlf_script
fi
else
# Being run from a stateful install postscript postbootscript.
if [ -n "$xlf_script" ] ; then
echo 1 | $xlf_script
fi
fi
fi
@@ -0,0 +1,340 @@
# Kit Build File
#
# This file was initially auto-generated by the buildkit CLI command.
# To create a new kit, the user should modify this file accordingly.
# Refer to the buildkit manpage for further details.
#
# kit: This section defines general info for the Kit.
# There must be exactly one kit section in a kit build file.
#
# kit attributes:
# basename (mandatory) Kit base name. e.g., kit-lsf
# description (optional) Kit description.
# version (mandatory) Kit version. e.g., 1.0
# ostype (mandatory) Kit OS type. Must be Linux.
# AIX is currently not supported.
# isinternal (optional) PCM use only.
# Indicate if Kit is for internal use.
# Use 1 for yes, 0 for no. Default: 0
# kitdeployparams (optional) Filename containing a list of kit deployment
# parameters, relative to
# <Kit Build Directory>/other_files
kit:
basename=xlf
description=XLF14 for Linux
version=14.1.0.0
ostype=Linux
kitlicense=ILAN
# kitdeployparams=sample/kitdeployparams.lst
# kitrepo: This section defines a Kit Package Repository.
# There must be at least one kitrepo section in a kit build file.
# If you want to support multiple OSes, you should create a separate
# repo for each OS. Also, no two repos can be defined with the same
# OS name, major/minor version and arch. For example, you cannot have
# two repos for RHEL 6.2 ppc64 in the same kit.
#
# kitrepo attributes:
# kitrepoid (mandatory) Kit package repository ID.
# Must be unique within this file.
# osbasename (mandatory) OS distro base name. e.g., rhels.
# osmajorversion (mandatory) OS major version. e.g., 6
# osminorversion (optional) OS minor version.
# osarch (mandatory) OS architecture. e.g., ppc64
# compat_osbasenames (optional) Comma-separated list of compatible
# OS distro base names. e.g., centos
kitrepo:
kitrepoid=rhels6_ppc64
osbasename=rhels
osmajorversion=6
osarch=ppc64
kitrepo:
kitrepoid=sles11_ppc64
osbasename=sles
osmajorversion=11
osarch=ppc64
# kitcomponent: This section defines one Kit Component.
# There can be zero or more kitcomponent sections.
# If you want to build a component which supports multiple OSes,
# you should create one kitcomponent section for each OS.
# Also, no two components in a kit can be defined with the same
# base name.
# You can define multiple kit components with the same base name
# only if each kit component using this base name meets these
# requirements:
# - Each kit component must be defined with the same version
# and release number
# - Each kit component must be defined with a unique kitrepoid
#
# kitcomponent attributes:
# basename (mandatory) Kit component base name
# description (optional) Kit component description
# version (mandatory) Kit component version
# release (mandatory) Kit component release
# serverroles (mandatory) Comma-separated list of servers that this
# component can install on. Valid values:
# mgtnode,service,compute,login,storage
# kitrepoid (mandatory) The ID of the kit package repository this
# component belongs to
# kitcompdeps (optional) Comma-separated list of kit component
# dependencies. These kit components can be included in
# this kit or in other kits.
# ospkgdeps (optional) Comma-separated list of OS package dependencies
# These packages must be shipped with the OS distro.
# kitpkgdeps (optional) Comma-separated list of kit package names that
# will be listed as "REQUIRES" when building this kit
# component. Each package must be defined in a separate
# kitpackage section. Each package must be in the same
# kitrepo as this kit component.
# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET!
# Comma-separated list of non-native package
# paths that will be included as files in this kit
# component. All filenames are relative to
# <Kit Build Directory>/source_packages
# Kit component deployment scripts must be specified
# to manage these files.
# driverpacks (optional) Comma-separated list of driver package filenames
# Each driverpack must be defined in a separate kitpackage
# section.
# exlist (optional) Exclude list file for stateless image, relative
# to <Kit Build Directory>/other_files
# Kit component deployment scripts (optional) Each attribute specifies
# script path relative to <Kit Build Directory>/scripts
# Script attributes:
# preinstall, postinstall, preuninstall, postuninstall,
# preupgrade, postupgrade, postbootscripts
kitcomponent:
basename=xlf_compute
description=XLF14 for compute nodes
version=14.1.0.0
release=120323
serverroles=compute
kitrepoid=rhels6_ppc64
ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64),compat-libstdc++-33(ppc-32),compat-libstdc++-33(ppc-64)
kitpkgdeps=xlmass.lib >= 7.1.0.0,xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlsmp.lib >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.0,xlf.help.pdf >= 14.1.0.0,xlf.samples >= 14.1.0.0,xlf.man >= 14.1.0.0,xlf.lic >= 14.1.0.0
exlist=xlf.exlist
genimage_postinstall=xlf_license,rhels_xlf_compute_install
non_native_pkgs=EXTERNALPKGS:xlf.lib-14.1.0.0-*.rpm,EXTERNALPKGS:xlf.cmp-14.1.0.0-*.rpm
kitcomponent:
basename=xlf_login
description=XLF14 for login nodes
version=14.1.0.0
release=120323
serverroles=login
kitrepoid=rhels6_ppc64
ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64),compat-libstdc++-33(ppc-32),compat-libstdc++-33(ppc-64)
kitpkgdeps=xlmass.lib >= 7.1.0.0,xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlsmp.lib >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.0,xlf.help.pdf >= 14.1.0.0,xlf.samples >= 14.1.0.0,xlf.man >= 14.1.0.0,xlf.lic >= 14.1.0.0
exlist=xlf.exlist
genimage_postinstall=xlf_license,rhels_xlf_login_install
non_native_pkgs=EXTERNALPKGS:xlf.lib-14.1.0.0-*.rpm,EXTERNALPKGS:xlf.cmp-14.1.0.0-*.rpm
kitcomponent:
basename=min_xlf_compute
description=Minimal XLF14 packages for compute nodes
version=14.1.0.0
release=120323
serverroles=compute
kitrepoid=rhels6_ppc64
ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64),compat-libstdc++-33(ppc-32),compat-libstdc++-33(ppc-64)
kitpkgdeps=xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.00
exlist=xlf.exlist
genimage_postinstall=xlf_license,rhels_min_xlf_compute_install
non_native_pkgs=EXTERNALPKGS:xlf.lib-14.1.0.0-*.rpm,EXTERNALPKGS:xlf.cmp-14.1.0.0-*.rpm
kitcomponent:
basename=xlf_compute
description=XLF14 for compute nodes
version=14.1.0.0
release=120323
serverroles=compute
kitrepoid=sles11_ppc64
ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64),compat-libstdc++-33(ppc-32),compat-libstdc++-33(ppc-64)
kitpkgdeps=xlmass.lib >= 7.1.0.0,xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlsmp.lib >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.0,xlf.help.pdf >= 14.1.0.0,xlf.samples >= 14.1.0.0,xlf.man >= 14.1.0.0,xlf.lic >= 14.1.0.0
exlist=xlf.exlist
genimage_postinstall=xlf_license,sles_xlf_compute_install
non_native_pkgs=EXTERNALPKGS:xlf.lib-14.1.0.0-*.rpm,EXTERNALPKGS:xlf.cmp-14.1.0.0-*.rpm
kitcomponent:
basename=xlf_login
description=XLF14 for login nodes
version=14.1.0.0
release=120323
serverroles=login
kitrepoid=sles11_ppc64
ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64),compat-libstdc++-33(ppc-32),compat-libstdc++-33(ppc-64)
kitpkgdeps=xlmass.lib >= 7.1.0.0,xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlsmp.lib >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.0,xlf.help.pdf >= 14.1.0.0,xlf.samples >= 14.1.0.0,xlf.man >= 14.1.0.0,xlf.lic >= 14.1.0.0
exlist=xlf.exlist
genimage_postinstall=xlf_license,sles_xlf_login_install
non_native_pkgs=EXTERNALPKGS:xlf.lib-14.1.0.0-*.rpm,EXTERNALPKGS:xlf.cmp-14.1.0.0-*.rpm
kitcomponent:
basename=min_xlf_compute
description=Minimal XLF14 packages for compute nodes
version=14.1.0.0
release=120323
serverroles=compute
kitrepoid=sles11_ppc64
ospkgdeps=libstdc++(ppc-32),libstdc++(ppc-64),libstdc++-devel(ppc-32),libstdc++-devel(ppc-64),glibc-devel(ppc-32),glibc-devel(ppc-64),compat-libstdc++-33(ppc-32),compat-libstdc++-33(ppc-64)
kitpkgdeps=xlsmp.msg.rte >= 3.1.0.0,xlsmp.rte >= 3.1.0.0,xlf.msg.rte >= 14.1.0.0,xlf.rte >= 14.1.0.0,xlf.rte.lnk >= 14.1.0.00
exlist=xlf.exlist
genimage_postinstall=xlf_license,sles_min_xlf_compute_install
non_native_pkgs=EXTERNALPKGS:xlf.lib-14.1.0.0-*.rpm,EXTERNALPKGS:xlf.cmp-14.1.0.0-*.rpm
# kitpackage: This section defines one Kit Package, and how to build it.
# There can be zero or more kitpackage sections.
# All filenames should be relative paths to
# <Kit Build Directory>/source_packages
# If you want to build a package which can run on multiple OSes,
# you have two options:
# 1. Build a separate package for each OS you want to support.
# For this option, you need to define one kitpackage section
# per supported OS.
# 2. Build one package that can run on multiple OSes.
# If you are building an RPM package, you are responsible for
# creating an RPM spec file that can run on multiple OSes.
# For this option, you need to define one kitpackage section
# which contains multiple kitrepoid lines.
#
# kitpackage attributes:
# filename (mandatory) Package filename
# kitrepoid (mandatory) The repo(s) this package belongs to.
# If multiple repos are defined, the package will be built for
# the first repo only. For the other repos, a symlink is created
# to the package built for the first repo.
# Package build methods (optional)
# Define how to build the packages.
# If you don't specify a build method, the default behavior is
# to assume the package is pre-built under
# <Kit Build Directory>/source_packages
# All files in this section are relative to
# <Kit Build Directory>/source_packages
# There are four methods to build packages.
# 1. Use pre-built RPM package
# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no')
# Indicates whether the RPM package will be added to the
# the kit tar file now as part of the kit build process,
# or whether the customer will need to separately
# obtain the RPM pacakage and add it to the kit tar file
# using 'buildkit addpkgs'
# rpm_prebuiltdir: If isexternalpkg=no, path to directory
# containing pre-built RPM package
# 2. Build RPM from spec + src dir
# rpm_spec: Path to spec file.
# rpm_srcdir: Path to source directory.
# 3. Build RPM from spec + src tarball
# rpm_spec: Path to spec file.
# rpm_srctarball: Path to source tarball.
# 4. Build RPM from source RPM
# rpm_srpm: Path to source RPM package.
kitpackage:
filename=xlf.cmp-14.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=xlf.help.pdf-14.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=xlf.lib-14.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=xlf.lic-14.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=xlf.man-14.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=xlf.msg.rte-14.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=xlf.rte-14.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=xlf.rte.lnk-14.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=xlf.samples-14.1.0.0-120323.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=xlmass.lib-7.1.0.0-120322.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=xlsmp.lib-3.1.0.0-120315a.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=xlsmp.msg.rte-3.1.0.0-120315a.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=xlsmp.rte-3.1.0.0-120315a.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
@@ -0,0 +1,14 @@
./opt/ibmcmp/msg/*
+./opt/ibmcmp/msg/en_US*
./opt/ibmcmp/xlmass/*/include*
./opt/ibmcmp/xlsmp/*/include*
./opt/ibmcmp/xlhelp*
./opt/ibmcmp/xlf/*/include*
./opt/ibmcmp/xlf/*/msg/*
+./opt/ibmcmp/xlf/*/msg/en_US*
./opt/ibmcmp/xlf/*/lap/LA_*
./opt/ibmcmp/xlf/*/lap/LI_*
./opt/ibmcmp/xlf/*/lap/license/*.txt
@@ -0,0 +1,175 @@
package xCAT_plugin::<<<buildkit_WILL_INSERT_kitname_HERE>>>_imageprofile;
use strict;
use warnings;
require xCAT::Utils;
require xCAT::Table;
require xCAT::KitPluginUtils;
# buildkit Processing
# In order to avoid collisions with other plugins, the package
# name for this plugin must contain the full kit name.
# The buildkit buildtar command will copy this file from your plugins
# directory to the the kit build directory, renaming the file with the
# correct kit name. All strings in this file of the form
# <<<buildkit_WILL_INSERT_kitname_HERE>>>
# will be replaced with the full kit name. In order for buildkit to
# correctly edit this file, do not remove these strings.
# Global Variables
# This is the full name of the kit which this plugin belongs
# to. The kit name is used by some code in process_request()
# to determine if the plugin should run. When you are testing
# your plugin the kit name should be set to "TESTMODE" to
# bypass the plugin check in process_request().
our ($PLUGIN_KITNAME);
#$PLUGIN_KITNAME = "TESTMODE";
$PLUGIN_KITNAME = "<<<buildkit_WILL_INSERT_kitname_HERE>>>";
#-------------------------------------------------------
=head1
Image Profile Kit Plugin
This plugin contains commands to run custom actions
during image profile operations.
=cut
#-------------------------------------------------------
#-------------------------------------------------------
=head3 handled_commands
Return list of kit plugin commands handled by this plugin
=cut
#-------------------------------------------------------
sub handled_commands {
return {
kitimagevalidatecomps => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_imageprofile',
kitimageimport => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_imageprofile',
};
}
#-------------------------------------------------------
=head3 process_request
Process the kit plugin command.
=cut
#-------------------------------------------------------
sub process_request {
my $request = shift;
my $callback = shift;
# This kit plugin is passed the name of an image profile.
# We need to determine which kits is used by this
# image profile to decide if this plugin should run or not.
my $imgprofilename = $request->{arg}->[0];
my $kitdata = $request->{kitdata};
if (! defined($kitdata)) {
$kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]);
$request->{kitdata} = $kitdata;
}
if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) {
return;
}
# Name of command and node list
my $command = $request->{command}->[0];
my $args = $request->{arg};
if($command eq 'kitimagevalidatecomps') {
kitimagevalidatecomps($callback, $args);
}
elsif ($command eq 'kitimageimport') {
kitimageimport($callback, $args);
} else {
my $rsp;
$rsp->{data}->[0] = "Command is not supported";
xCAT::MsgUtils->message("E", $rsp, $callback);
}
}
#-------------------------------------------------------
=head3 kitimagevalidatecomps
This command is called to validate new changes to an
image profile's kit component list before the changes
are committed.
=cut
#-------------------------------------------------------
sub kitimagevalidatecomps {
my $callback = shift;
my $args = shift;
my $rsp;
# Parameters
my $imgprofilename = $args->[0];
my $newcomplist = $args->[1];
my @newcomplist = ();
if (defined($newcomplist)) {
@newcomplist = split(/,/, $newcomplist);
}
my $newosdistro = $args->[2];
my $newosdistroupdate = $args->[3];
$rsp->{data}->[0] = "Running kitimagevalidatecomps";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
#-------------------------------------------------------
=head3 kitimageimport
This command is called after changes to an image profile
have been committed.
=cut
#-------------------------------------------------------
sub kitimageimport {
my $callback = shift;
my $args = shift;
my $rsp;
# Parameters
my $imgprofilename = $args->[0];
$rsp->{data}->[0] = "Running kitimageimport";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
@@ -0,0 +1,251 @@
package xCAT_plugin::<<<buildkit_WILL_INSERT_kitname_HERE>>>_nodemgmt;
use strict;
use warnings;
require xCAT::Utils;
require xCAT::Table;
require xCAT::KitPluginUtils;
# buildkit Processing
# In order to avoid collisions with other plugins, the package
# name for this plugin must contain the full kit name.
# The buildkit buildtar command will copy this file from your plugins
# directory to the the kit build directory, renaming the file with the
# correct kit name. All strings in this file of the form
# <<<buildkit_WILL_INSERT_kitname_HERE>>>
# will be replaced with the full kit name. In order for buildkit to
# correctly edit this file, do not remove these strings.
# Global Variables
# This is the full name of the kit which this plugin belongs
# to. The kit name is used by some code in process_request()
# to determine if the plugin should run. When you are testing
# your plugin the kit name should be set to "TESTMODE" to
# bypass the plugin check in process_request().
our ($PLUGIN_KITNAME);
#$PLUGIN_KITNAME = "TESTMODE";
$PLUGIN_KITNAME = "<<<buildkit_WILL_INSERT_kitname_HERE>>>";
#-------------------------------------------------------
=head1
Node Management Kit Plugin
This plugin contains commands to run custom actions
during node management operations.
=cut
#-------------------------------------------------------
#-------------------------------------------------------
=head3 handled_commands
Return list of kit plugin commands handled by this plugin
=cut
#-------------------------------------------------------
sub handled_commands {
return {
kitnodeadd => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_nodemgmt',
kitnoderemove => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_nodemgmt',
kitnodeupdate => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_nodemgmt',
kitnoderefresh => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_nodemgmt',
kitnodefinished => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_nodemgmt',
};
}
#-------------------------------------------------------
=head3 process_request
Process the kit plugin command.
=cut
#-------------------------------------------------------
sub process_request {
my $request = shift;
my $callback = shift;
# Name of command and node list
my $command = $request->{command}->[0];
my $nodes = $request->{node};
# This kit plugin is passed a list of node names.
# We need to determine which kits are used by these
# nodes to decide if this plugin should run or not.
my $kitdata = $request->{kitdata};
if (! defined($kitdata)) {
$kitdata = xCAT::KitPluginUtils->get_kits_used_by_nodes($nodes);
$request->{kitdata} = $kitdata;
}
if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) {
return;
}
# Get the nodes using this plugin's kit
$nodes = $kitdata->{$PLUGIN_KITNAME};
if($command eq 'kitnodeadd') {
kitnodeadd($callback, $nodes);
}
elsif ($command eq 'kitnoderemove') {
kitnoderemove($callback, $nodes);
}
elsif ($command eq 'kitnodeupdate') {
kitnodeupdate($callback, $nodes);
}
elsif ($command eq 'kitnoderefresh') {
kitnoderefresh($callback, $nodes);
}
elsif ($command eq 'kitnodefinished') {
kitnodefinished($callback);
} else {
my $rsp;
$rsp->{data}->[0] = "Command is not supported";
xCAT::MsgUtils->message("E", $rsp, $callback);
}
}
#-------------------------------------------------------
=head3 kitnodeadd
This command is called when one or more nodes are added
to the cluster.
=cut
#-------------------------------------------------------
sub kitnodeadd {
my $callback = shift;
my $rsp;
# Parameters
my $nodes = shift;
$rsp->{data}->[0] = "Running kitnodeadd";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
#-------------------------------------------------------
=head3 kitnoderemove
This command is called when one or more nodes are
removed from the cluster.
=cut
#-------------------------------------------------------
sub kitnoderemove {
my $callback = shift;
my $rsp;
# Parameters
my $nodes = shift;
$rsp->{data}->[0] = "Running kitnoderemove";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
#-------------------------------------------------------
=head3 kitnodeupdate
This command is called when the configuration of one
or more nodes are updated.
=cut
#-------------------------------------------------------
sub kitnodeupdate {
my $callback = shift;
my $rsp;
# Parameters
my $nodes = shift;
$rsp->{data}->[0] = "Running kitnodeupdate";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
#-------------------------------------------------------
=head3 kitnoderefresh
This command is called when node-related configuration
files are updated.
=cut
#-------------------------------------------------------
sub kitnoderefresh {
my $callback = shift;
my $rsp;
# Parameters
my $nodes = shift;
$rsp->{data}->[0] = "Running kitnoderefresh";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
#-------------------------------------------------------
=head3 kitnodefinished
This command is called at the end of a node management
operation.
=cut
#-------------------------------------------------------
sub kitnodefinished {
my $callback = shift;
my $rsp;
$rsp->{data}->[0] = "Running kitnodefinished";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
@@ -0,0 +1,14 @@
#!/bin/sh
if [[ ! -z "$installroot" ]]; then
if [ -n "`ls $installroot/opt/xcat/kits/xlf/min_xlf_compute-14.1.0.0-120323-rhels-6-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force --root $installroot -Uvh $installroot/opt/xcat/kits/xlf/min_xlf_compute-14.1.0.0-120323-rhels-6-ppc64/*.rpm
fi
else
if [ -n "`ls /opt/xcat/kits/xlf/min_xlf_compute-14.1.0.0-120323-rhels-6-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force -Uvh /opt/xcat/kits/xlf/min_xlf_compute-14.1.0.0-120323-rhels-6-ppc64/*.rpm
fi
fi
exit 0
@@ -0,0 +1,14 @@
#!/bin/sh
if [[ ! -z "$installroot" ]]; then
if [ -n "`ls $installroot/opt/xcat/kits/xlf/xlf_compute-14.1.0.0-120323-rhels-6-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force --root $installroot -Uvh $installroot/opt/xcat/kits/xlf/xlf_compute-14.1.0.0-120323-rhels-6-ppc64/*.rpm
fi
else
if [ -n "`ls /opt/xcat/kits/xlf/xlf_compute-14.1.0.0-120323-rhels-6-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force -Uvh /opt/xcat/kits/xlf/xlf_compute-14.1.0.0-120323-rhels-6-ppc64/*.rpm
fi
fi
exit 0
@@ -0,0 +1,14 @@
#!/bin/sh
if [[ ! -z "$installroot" ]]; then
if [ -n "`ls $installroot/opt/xcat/kits/xlf/xlf_login-14.1.0.0-120323-rhels-6-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force --root $installroot -Uvh $installroot/opt/xcat/kits/xlf/xlf_login-14.1.0.0-120323-rhels-6-ppc64/*.rpm
fi
else
if [ -n "`ls /opt/xcat/kits/xlf/xlf_login-14.1.0.0-120323-rhels-6-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force -Uvh /opt/xcat/kits/xlf/xlf_login-14.1.0.0-120323-rhels-6-ppc64/*.rpm
fi
fi
exit 0
@@ -0,0 +1,14 @@
#!/bin/sh
if [[ ! -z "$installroot" ]]; then
if [ -n "`ls $installroot/opt/xcat/kits/xlf/min_xlf_compute-14.1.0.0-120323-sles-11-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force --root $installroot -Uvh $installroot/opt/xcat/kits/xlf/min_xlf_compute-14.1.0.0-120323-sles-11-ppc64/*.rpm
fi
else
if [ -n "`ls /opt/xcat/kits/xlf/min_xlf_compute-14.1.0.0-120323-sles-11-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force -Uvh /opt/xcat/kits/xlf/min_xlf_compute-14.1.0.0-120323-sles-11-ppc64/*.rpm
fi
fi
exit 0
@@ -0,0 +1,14 @@
#!/bin/sh
if [[ ! -z "$installroot" ]]; then
if [ -n "`ls $installroot/opt/xcat/kits/xlf/xlf_compute-14.1.0.0-120323-sles-11-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force --root $installroot -Uvh $installroot/opt/xcat/kits/xlf/xlf_compute-14.1.0.0-120323-sles-11-ppc64/*.rpm
fi
else
if [ -n "`ls /opt/xcat/kits/xlf/xlf_compute-14.1.0.0-120323-sles-11-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force -Uvh /opt/xcat/kits/xlf/xlf_compute-14.1.0.0-120323-sles-11-ppc64/*.rpm
fi
fi
exit 0
@@ -0,0 +1,14 @@
#!/bin/sh
if [[ ! -z "$installroot" ]]; then
if [ -n "`ls $installroot/opt/xcat/kits/xlf/xlf_login-14.1.0.0-120323-sles-11-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force --root $installroot -Uvh $installroot/opt/xcat/kits/xlf/xlf_login-14.1.0.0-120323-sles-11-ppc64/*.rpm
fi
else
if [ -n "`ls /opt/xcat/kits/xlf/xlf_login-14.1.0.0-120323-sles-11-ppc64/*.rpm 2> /dev/null`" ] ; then
rpm --force -Uvh /opt/xcat/kits/xlf/xlf_login-14.1.0.0-120323-sles-11-ppc64/*.rpm
fi
fi
exit 0
@@ -0,0 +1,26 @@
#!/bin/sh
#
# Sample script to accept licenses for the IBM xlf compilers
# For Linux:
# Assumes all compiler software has been installed
OS=`uname`
if [ $OS != "AIX" ]; then
cd $installroot/
xlf_script=`find opt/ibmcmp/xlf -name new_install -print`
if [ -n $installroot ]; then
# Being run from a stateful install postscript or stateless postbootscript.
if [ -n "$xlf_script" ] ; then
echo 1 | chroot $installroot /$xlf_script
fi
else
# Being run from a stateful install postscript postbootscript.
if [ -n "$xlf_script" ] ; then
echo 1 | $xlf_script
fi
fi
fi
@@ -0,0 +1,294 @@
# Kit Build File
#
# This file was initially auto-generated by the buildkit CLI command.
# To create a new kit, the user should modify this file accordingly.
# Refer to the buildkit manpage for further details.
#
# kit: This section defines general info for the Kit.
# There must be exactly one kit section in a kit build file.
#
# kit attributes:
# basename (mandatory) Kit base name. e.g., kit-lsf
# description (optional) Kit description.
# version (mandatory) Kit version. e.g., 1.0
# ostype (mandatory) Kit OS type. Must be Linux.
# AIX is currently not supported.
# isinternal (optional) PCM use only.
# Indicate if Kit is for internal use.
# Use 1 for yes, 0 for no. Default: 0
# kitdeployparams (optional) Filename containing a list of kit deployment
# parameters, relative to
# <Kit Build Directory>/other_files
kit:
basename=essl
description=essl for Linux
version=5.1.1
ostype=Linux
kitlicense=ILAN
kitdeployparams=essl.env
# kitrepo: This section defines a Kit Package Repository.
# There must be at least one kitrepo section in a kit build file.
# If you want to support multiple OSes, you should create a separate
# repo for each OS. Also, no two repos can be defined with the same
# OS name, major/minor version and arch. For example, you cannot have
# two repos for RHEL 6.2 ppc64 in the same kit.
#
# kitrepo attributes:
# kitrepoid (mandatory) Kit package repository ID.
# Must be unique within this file.
# osbasename (mandatory) OS distro base name. e.g., rhels.
# osmajorversion (mandatory) OS major version. e.g., 6
# osminorversion (optional) OS minor version.
# osarch (mandatory) OS architecture. e.g., ppc64
# compat_osbasenames (optional) Comma-separated list of compatible
# OS distro base names. e.g., centos
kitrepo:
kitrepoid=rhels6_ppc64
osbasename=rhels
osmajorversion=6
osarch=ppc64
kitrepo:
kitrepoid=sles11_ppc64
osbasename=sles
osmajorversion=11
osarch=ppc64
# kitcomponent: This section defines one Kit Component.
# There can be zero or more kitcomponent sections.
# If you want to build a component which supports multiple OSes,
# you should create one kitcomponent section for each OS.
# Also, no two components in a kit can be defined with the same
# base name.
# You can define multiple kit components with the same base name
# only if each kit component using this base name meets these
# requirements:
# - Each kit component must be defined with the same version
# and release number
# - Each kit component must be defined with a unique kitrepoid
#
# kitcomponent attributes:
# basename (mandatory) Kit component base name
# description (optional) Kit component description
# version (mandatory) Kit component version
# release (mandatory) Kit component release
# serverroles (mandatory) Comma-separated list of servers that this
# component can install on. Valid values:
# mgtnode,servicenode,compute,loginnode,storagenode
# kitrepoid (mandatory) The ID of the kit package repository this
# component belongs to
# kitcompdeps (optional) Comma-separated list of kit component
# dependencies. These kit components can be included in
# this kit or in other kits.
# ospkgdeps (optional) Comma-separated list of OS package dependencies
# These packages must be shipped with the OS distro.
# kitpkgdeps (optional) Comma-separated list of kit package names that
# will be listed as "REQUIRES" when building this kit
# component. Each package must be defined in a separate
# kitpackage section. Each package must be in the same
# kitrepo as this kit component.
# non_native_pkgs (optional) TBD -- NOT SUPPORTED YET!
# Comma-separated list of non-native package
# paths that will be included as files in this kit
# component. All filenames are relative to
# <Kit Build Directory>/source_packages
# Kit component deployment scripts must be specified
# to manage these files.
# driverpacks (optional) Comma-separated list of driver package filenames
# Each driverpack must be defined in a separate kitpackage
# section.
# exlist (optional) Exclude list file for stateless image, relative
# to <Kit Build Directory>/other_files
# Kit component deployment scripts (optional) Each attribute specifies
# script path relative to <Kit Build Directory>/scripts
# Script attributes:
# preinstall, postinstall, preuninstall, postuninstall,
# preupgrade, postupgrade, postbootscripts
kitcomponent:
basename=essl_compute
description=essl for compute nodes
version=5.1.1
release=0
serverroles=compute
kitrepoid=rhels6_ppc64
ospkgdeps=bc
kitpkgdeps=essl.3232.rte >= 5.1.1,essl.3264.rte >= 5.1.1,essl.6464.rte >= 5.1.1,essl.bg.rte >= 5.1.1,essl.common >= 5.1.1,essl.license >= 5.1.1,essl.man >= 5.1.1,essl.msg >= 5.1.1,essl.rte >= 5.1.1,essl.rte.common >= 5.1.1
exlist=essl.exlist
kitcomponent:
basename=essl_loginnode
description=essl for login nodes
version=5.1.1
release=0
serverroles=loginnode
kitrepoid=rhels6_ppc64
ospkgdeps=bc
kitpkgdeps=essl.3232.rte >= 5.1.1,essl.3264.rte >= 5.1.1,essl.6464.rte >= 5.1.1,essl.bg.rte >= 5.1.1,essl.common >= 5.1.1,essl.license >= 5.1.1,essl.man >= 5.1.1,essl.msg >= 5.1.1,essl.rte >= 5.1.1,essl.rte.common >= 5.1.1
exlist=essl.exlist
kitcomponent:
basename=min_essl_compute
description=Minimal essl packages for compute nodes
version=5.1.1
release=0
serverroles=compute
kitrepoid=rhels6_ppc64
ospkgdeps=bc
kitpkgdeps=essl.3232.rte >= 5.1.1,essl.3264.rte >= 5.1.1,essl.6464.rte >= 5.1.1,essl.bg.rte >= 5.1.1,essl.common >= 5.1.1,essl.license >= 5.1.1,essl.rte >= 5.1.1,essl.rte.common >= 5.1.1
exlist=essl.exlist
kitcomponent:
basename=essl_compute
description=essl for compute nodes
version=5.1.1
release=0
serverroles=compute
kitrepoid=sles11_ppc64
ospkgdeps=bc
kitpkgdeps=essl.3232.rte >= 5.1.1,essl.3264.rte >= 5.1.1,essl.6464.rte >= 5.1.1,essl.bg.rte >= 5.1.1,essl.common >= 5.1.1,essl.license >= 5.1.1,essl.man >= 5.1.1,essl.msg >= 5.1.1,essl.rte >= 5.1.1,essl.rte.common >= 5.1.1
exlist=essl.exlist
kitcomponent:
basename=essl_loginnode
description=essl for compute nodes
version=5.1.1
release=0
serverroles=loginnode
kitrepoid=sles11_ppc64
ospkgdeps=bc
kitpkgdeps=essl.3232.rte >= 5.1.1,essl.3264.rte >= 5.1.1,essl.6464.rte >= 5.1.1,essl.bg.rte >= 5.1.1,essl.common >= 5.1.1,essl.license >= 5.1.1,essl.man >= 5.1.1,essl.msg >= 5.1.1,essl.rte >= 5.1.1,essl.rte.common >= 5.1.1
exlist=essl.exlist
kitcomponent:
basename=min_essl_compute
description=Minimal essl packages for compute nodes
version=5.1.1
release=0
serverroles=compute
kitrepoid=sles11_ppc64
ospkgdeps=bc
kitpkgdeps=essl.3232.rte >= 5.1.1,essl.3264.rte >= 5.1.1,essl.6464.rte >= 5.1.1,essl.bg.rte >= 5.1.1,essl.common >= 5.1.1,essl.license >= 5.1.1,essl.rte >= 5.1.1,essl.rte.common >= 5.1.1
exlist=essl.exlist
# kitpackage: This section defines one Kit Package, and how to build it.
# There can be zero or more kitpackage sections.
# All filenames should be relative paths to
# <Kit Build Directory>/source_packages
# If you want to build a package which can run on multiple OSes,
# you have two options:
# 1. Build a separate package for each OS you want to support.
# For this option, you need to define one kitpackage section
# per supported OS.
# 2. Build one package that can run on multiple OSes.
# If you are building an RPM package, you are responsible for
# creating an RPM spec file that can run on multiple OSes.
# For this option, you need to define one kitpackage section
# which contains multiple kitrepoid lines.
#
# kitpackage attributes:
# filename (mandatory) Package filename
# kitrepoid (mandatory) The repo(s) this package belongs to.
# If multiple repos are defined, the package will be built for
# the first repo only. For the other repos, a symlink is created
# to the package built for the first repo.
# Package build methods (optional)
# Define how to build the packages.
# If you don't specify a build method, the default behavior is
# to assume the package is pre-built under
# <Kit Build Directory>/source_packages
# All files in this section are relative to
# <Kit Build Directory>/source_packages
# There are four methods to build packages.
# 1. Use pre-built RPM package
# isexternalpkg: 'no'|'0', 'yes'|'1' (default: 'no')
# Indicates whether the RPM package will be added to the
# the kit tar file now as part of the kit build process,
# or whether the customer will need to separately
# obtain the RPM pacakage and add it to the kit tar file
# using 'buildkit addpkgs'
# rpm_prebuiltdir: If isexternalpkg=no, path to directory
# containing pre-built RPM package
# 2. Build RPM from spec + src dir
# rpm_spec: Path to spec file.
# rpm_srcdir: Path to source directory.
# 3. Build RPM from spec + src tarball
# rpm_spec: Path to spec file.
# rpm_srctarball: Path to source tarball.
# 4. Build RPM from source RPM
# rpm_srpm: Path to source RPM package.
kitpackage:
filename=essl.3232.rte-5.1.1-0.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=essl.3264.rte-5.1.1-0.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=essl.6464.rte-5.1.1-0.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=essl.bg.rte-5.1.1-0.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=essl.common-5.1.1-0.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=essl.license-5.1.1-0.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=essl.man-5.1.1-0.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=essl.msg-5.1.1-0.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=essl.rte-5.1.1-0.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
kitpackage:
filename=essl.rte.common-5.1.1-0.ppc64.rpm
kitrepoid=rhels6_ppc64,sles11_ppc64
# Method 1: Use pre-built RPM package
isexternalpkg=no
rpm_prebuiltdir=
@@ -0,0 +1 @@
#ENV:IBM_ESSL_LICENSE_ACCEPT=yes#
@@ -0,0 +1,6 @@
./opt/ibmmath/essl/*/FFTW3/include*
./opt/ibmmath/essl/*/include*
./opt/ibmmath/essl/*/lap/license/*.txt
./opt/ibmmath/essl/*/lap/LI_*
./opt/ibmmath/essl/*/lap/LA_*
@@ -0,0 +1,175 @@
package xCAT_plugin::<<<buildkit_WILL_INSERT_kitname_HERE>>>_imageprofile;
use strict;
use warnings;
require xCAT::Utils;
require xCAT::Table;
require xCAT::KitPluginUtils;
# buildkit Processing
# In order to avoid collisions with other plugins, the package
# name for this plugin must contain the full kit name.
# The buildkit buildtar command will copy this file from your plugins
# directory to the the kit build directory, renaming the file with the
# correct kit name. All strings in this file of the form
# <<<buildkit_WILL_INSERT_kitname_HERE>>>
# will be replaced with the full kit name. In order for buildkit to
# correctly edit this file, do not remove these strings.
# Global Variables
# This is the full name of the kit which this plugin belongs
# to. The kit name is used by some code in process_request()
# to determine if the plugin should run. When you are testing
# your plugin the kit name should be set to "TESTMODE" to
# bypass the plugin check in process_request().
our ($PLUGIN_KITNAME);
#$PLUGIN_KITNAME = "TESTMODE";
$PLUGIN_KITNAME = "<<<buildkit_WILL_INSERT_kitname_HERE>>>";
#-------------------------------------------------------
=head1
Image Profile Kit Plugin
This plugin contains commands to run custom actions
during image profile operations.
=cut
#-------------------------------------------------------
#-------------------------------------------------------
=head3 handled_commands
Return list of kit plugin commands handled by this plugin
=cut
#-------------------------------------------------------
sub handled_commands {
return {
kitimagevalidatecomps => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_imageprofile',
kitimageimport => '<<<buildkit_WILL_INSERT_kitname_HERE>>>_imageprofile',
};
}
#-------------------------------------------------------
=head3 process_request
Process the kit plugin command.
=cut
#-------------------------------------------------------
sub process_request {
my $request = shift;
my $callback = shift;
# This kit plugin is passed the name of an image profile.
# We need to determine which kits is used by this
# image profile to decide if this plugin should run or not.
my $imgprofilename = $request->{arg}->[0];
my $kitdata = $request->{kitdata};
if (! defined($kitdata)) {
$kitdata = xCAT::KitPluginUtils->get_kits_used_by_image_profiles([$imgprofilename]);
$request->{kitdata} = $kitdata;
}
if ($PLUGIN_KITNAME ne "TESTMODE" && ! exists($kitdata->{$PLUGIN_KITNAME})) {
return;
}
# Name of command and node list
my $command = $request->{command}->[0];
my $args = $request->{arg};
if($command eq 'kitimagevalidatecomps') {
kitimagevalidatecomps($callback, $args);
}
elsif ($command eq 'kitimageimport') {
kitimageimport($callback, $args);
} else {
my $rsp;
$rsp->{data}->[0] = "Command is not supported";
xCAT::MsgUtils->message("E", $rsp, $callback);
}
}
#-------------------------------------------------------
=head3 kitimagevalidatecomps
This command is called to validate new changes to an
image profile's kit component list before the changes
are committed.
=cut
#-------------------------------------------------------
sub kitimagevalidatecomps {
my $callback = shift;
my $args = shift;
my $rsp;
# Parameters
my $imgprofilename = $args->[0];
my $newcomplist = $args->[1];
my @newcomplist = ();
if (defined($newcomplist)) {
@newcomplist = split(/,/, $newcomplist);
}
my $newosdistro = $args->[2];
my $newosdistroupdate = $args->[3];
$rsp->{data}->[0] = "Running kitimagevalidatecomps";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}
#-------------------------------------------------------
=head3 kitimageimport
This command is called after changes to an image profile
have been committed.
=cut
#-------------------------------------------------------
sub kitimageimport {
my $callback = shift;
my $args = shift;
my $rsp;
# Parameters
my $imgprofilename = $args->[0];
$rsp->{data}->[0] = "Running kitimageimport";
xCAT::MsgUtils->message("I", $rsp, $callback);
# TODO
# ... ADD YOUR CODE HERE
}

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