Compare commits

...

829 Commits

Author SHA1 Message Date
daniceexi 441261bb2f defect 2966: fixed the issue that xcat pid files were put in /tmp/xcat which would be cleaned periodically. now move it to /var/run/xcat
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14499 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-30 09:09:00 +00:00
phamt 80dbeffa85 Fixed bug in getmacs.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14484 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-29 21:20:23 +00:00
daniceexi 39123d48ac defect 3131: fix the msg of dracut version
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14468 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-29 02:56:13 +00:00
phamt b8c42d07ae Fixed bug in add node and allow z/VM hosts to be added.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14462 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-28 16:19:27 +00:00
zhaoertao 7368174669 modifying 'rscan -u' to append the 'groups' attribute rather than overwrite it
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14455 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-28 08:05:01 +00:00
bp-sawyers 3b64245ca6 Added the requires for perl-IO-Stty back in for ppc64
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14450 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-27 22:25:06 +00:00
phamt 8311f248fb Fixed rscan bug where node = parent.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14449 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-27 21:23:04 +00:00
jbjohnso 82b0440a02 Add boot device probing to suse
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14446 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-27 20:17:48 +00:00
jbjohnso e889ef17b1 Fix problem where EFI based installs failed to correctly place boot partition
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14445 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-27 19:25:09 +00:00
jbjohnso a815abaaed Fix a problem in the boot partition in rhel
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14444 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-27 19:25:00 +00:00
jbjohnso ec266f7000 Have RedHat installs reduce risk of overwriting SAN volumes. The strategy:
BIOS drive 80 is chosen if at all possible (don't know EFI way yet)
Failing that, first virtio block device
Failing that, then first block device served by ata_piix4, ahci, megaraid_sas, pmcraid
Failing that, first mptsas or mpt2sas
Failing that, first block device

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14443 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-27 19:24:54 +00:00
jbjohnso 4633498a4b Provide a hook for TLS cert delivery by updates.img.
Note this is of little use in a PXE environment today, as MITM to the initrd or ipxe subverts all of this.
This however is interesting for secure boot environments and remote media boot strap to provide an unbroken trust chain

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14442 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-27 19:24:48 +00:00
phamt 0a521cb31a Added missing option for disk pool in chhypervisor.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14431 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-26 17:55:47 +00:00
phamt 31323d58fa Added zVM specific options to chhypervisor man page.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14430 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-26 17:53:30 +00:00
phamt a1e1afdb9e Added zVM specific options to chhypervisor man page.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14429 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-26 17:09:40 +00:00
phamt b0a21076e9 Fixed webportal bug where dasd list entry only contains 1 device. Renamed chhypervisor --smapi to --smcli.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14428 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-26 16:41:31 +00:00
zhaoertao 4b5a7005b1 add LCD info with 'rvitals <node> all' for Firebird blade
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14417 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-23 11:07:12 +00:00
jbjohnso 3860a56041 Break slpdiscover activity into pieces to increase odds of success of each pass
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14389 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-21 19:58:56 +00:00
jbjohnso 7f5e911c2a Fix slpdiscover error output
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14388 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-21 19:58:50 +00:00
jbjohnso 180ba59b72 Fix problem where mktoolscenter presumes a filename scheme that is not likely to be found in the wild anymore
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14384 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-21 16:50:39 +00:00
jjhua 5e5710ad4e If the timezone includes a space, the chtab command below will not work. fix it
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14382 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-21 08:54:16 +00:00
jbjohnso 79deb0acf5 Fix problem where 'delEntries' failed to invalidate cached data
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14373 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-20 14:51:52 +00:00
jbjohnso 42cb10b6aa Fix problem where a Table object with alternate autocommit setting would not have cache expired by peer activity.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14371 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-20 14:45:41 +00:00
immarvin 4b8ed14152 remove geninitrd, use genimage --onlyinitrd instead
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14368 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-20 07:17:54 +00:00
immarvin 4854e5ca69 remove geninitrd, use genimage --onlyinitrd instead
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14367 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-20 07:15:18 +00:00
immarvin 7f0e7d53ef remove geninitrd, use genimage --onlyinitrd instead
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14366 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-20 07:03:00 +00:00
phamt ac5654aae4 Changed default template to use M-disk space as swap instead of V-disk space.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14362 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-19 14:43:06 +00:00
nott 1a5bb68586 fix hierarchical mksysb creation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14352 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-16 15:43:16 +00:00
phamt d65d73f9e4 Added chhypervisor --smapi option for z/VM.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14342 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-15 19:59:56 +00:00
phamt fa973b8fd1 Fixed action bar sizing
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14339 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-15 16:46:28 +00:00
phamt 2d3d927056 Synched up 2.7 branch with trunk for z/VM.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14338 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-15 16:11:52 +00:00
phamt d82ee6e7f2 Synched up 2.7 branch with trunk for z/VM.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14337 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-15 15:57:05 +00:00
xq2005 e63d9a9967 delete the old dump file before creating the dump file
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14335 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-15 08:51:58 +00:00
xq2005 a0bd8f6a46 support kdump on sles10 on system p
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14333 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-15 06:03:00 +00:00
xq2005 9d55a3b3c1 support kdump for sles10 on blacktip
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14328 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-14 17:03:30 +00:00
nott 34f16337a1 no root password for diskful spot
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14326 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-14 14:41:00 +00:00
immarvin 6521a0df7e corrected #3170 sles10.4: copycds need -n sles10.4 to set the os level
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14313 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-13 06:39:11 +00:00
zhaoertao 9af37d48bb hwctrldispatch only be used for IBM Flex System
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14305 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-12 07:29:56 +00:00
bp-sawyers 7bb0967496 Backport 2 genimage fixes from 2.8: 1) genimage with osimage prints empty values for os, profile, interface 2) genimage prints a blank line between every line of output
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14300 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-09 17:22:20 +00:00
bp-sawyers 3f8c9bced2 changed dhcp require to /usr/sbin/dhcpd so it is correct on sles too
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14299 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-09 16:47:02 +00:00
xq2005 21d1017f86 support kdump on sles10
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14297 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-09 10:13:57 +00:00
zhaoertao 08a7dc5c78 correct site attribute name hdctldispatch to hwctrldispatch
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14294 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-09 06:11:08 +00:00
zhaoertao bf2247a181 rename dfmdispatch to hdctldispatch
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14292 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-09 06:03:24 +00:00
daniceexi 52e71591be Changed to suppot multiple disks for a vm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14291 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-09 05:58:00 +00:00
wanghuaz b3c477dd6f Removed rsct.lapi on AIX for hpc integration
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14289 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-09 05:12:21 +00:00
xq2005 c7cae12392 insserv with -f option to ignore the dependency on sles10.4
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14285 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-09 03:37:12 +00:00
zhaoertao f8c5b0c53b add attribute 'dfmdispatch' for site table to enable or disable the DFM hdwr_ctrl dispatch
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14283 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-09 03:18:02 +00:00
wanghuaz 72cbbc912d Issue trustchk command to ensure /etc/security/privcmds has the correct permissions
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14279 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-08 10:18:19 +00:00
immarvin d2f0431829 remove geninitrd man page
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14278 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-08 09:42:38 +00:00
immarvin d18d235f1d remove geninitrd man page
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14277 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-08 09:42:06 +00:00
immarvin aa1fcd2493 fixed defect #3130 installnic=mac does not work for rh5 ppc64 netboot
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14275 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-08 09:03:26 +00:00
zhaoertao ac28aa7e16 fix bug 3164:"rinv <cec> deconfig" can not print out the deconfig resources
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14269 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-08 02:16:07 +00:00
nott b8b4c75c39 fix NIM if1 parsing and chk_resolv_conf (3162 & 3163)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14267 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-07 18:27:13 +00:00
wanghuaz d31122325b Remove openshmem on AIX
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14261 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-07 06:14:54 +00:00
wanghuaz bc7491ebde pe 1.2.0.0 packages on AIX
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14258 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-06 13:53:52 +00:00
daniceexi 3e3eb858e5 added displaying of host which vm belongs to; added change for rmigrate; fixed issue of cpu configure during mkvm/chvm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14256 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-06 08:52:34 +00:00
jbjohnso 55b09cf8b5 Have IPMI plugin detect whether something is an ITE or not
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14252 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-05 16:20:34 +00:00
jbjohnso 15316700a9 Remove dead code resulting to changing to property api
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14251 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-05 16:20:24 +00:00
jbjohnso be879dd88e Fix glaring mistake in previous commit where 'FAILED' and 'all good' were indistinguishable
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14249 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-05 14:56:54 +00:00
jbjohnso 8c19948f3b Have IPMI more decisively quite should the password be incorrect. Hypothetically a DoS could be aimed at the client, but that's much less likely.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14248 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-05 14:56:46 +00:00
jbjohnso 4106dec47e Instead of randomizing each retry, just randomize the first to get things spread out then do the triangular progression timeout
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14247 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-05 14:56:38 +00:00
jbjohnso 7c7b6330ed Apply another algorithm to avoid sequence number reuse as much as possible
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14246 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-05 14:56:31 +00:00
jbjohnso 72c0326c2e Have IPMI.pm explicitly not expect cmd netfn after receiveng cmd/netfn response
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14245 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-05 14:56:23 +00:00
daniceexi c1bf69de94 fixed the approach to search objects in getrvidparms
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14238 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-05 02:38:45 +00:00
jbjohnso 8935e432a2 Improve reliability of duplicate response detection phase 1, also check netfn and command match
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14227 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-02 13:51:25 +00:00
phamt 95cb15d18e git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14224 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd 2012-11-02 12:08:10 +00:00
zhaoertao d1c2a26b2b update manpage for getmacs -i ethN|enN
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14221 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-02 09:25:07 +00:00
jbjohnso eedb72cac5 Output the FRU number of fru devices when available
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14216 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-02 01:18:40 +00:00
jbjohnso ae81e14bed Actually put out the adapter WWN and MAC addresses with Flex ITE nodes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14215 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-02 01:18:33 +00:00
jbjohnso 1dab5cbb5b Support WWN and Macs of Flex ITE nodes in rinv, haven't *quite* gotten the mezz adapters outputting yet, but they are being retrieved
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14214 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-02 01:18:28 +00:00
jbjohnso a10635241e Change cache versioning strategy, track the oem byte from fru locator records
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14213 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-02 01:18:22 +00:00
jbjohnso fd8ebe93b8 Add sfc driver to genesis
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14206 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-01 20:07:26 +00:00
jbjohnso 45a2783186 Add mstflint for IB servicing
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14201 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-11-01 13:22:54 +00:00
jbjohnso 0b1751059b For IBM servers, report planar revision, fru number, and mac addresses (if a rackmount server)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14179 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-31 15:27:59 +00:00
bp-sawyers 5d5bc70fe8 Update version to 2.7.6
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14178 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-31 15:26:26 +00:00
jbjohnso 083154650c Have slpdiscover ultimately relax password expiry, login failure behavior, password reuse restrictions, minimal change interval to help automation work and
avoid DoS attacks

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14177 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-31 15:22:11 +00:00
jbjohnso 44060947cc In RHEV-M, we currently fail hard in the case where user did not set installnic/primarynic. In this scenario, instead of failing, just let firmware have a chance to fill it in
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14169 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-30 23:39:24 +00:00
jjhua 731a2b9a9d fixed bug #3133. When some node don't exsit, there are some error msgs, and other nodes succeed. handle this case.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14136 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-26 06:26:12 +00:00
bp-sawyers 544cabd915 added --localonly to makedhcp man page and made other improvements
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14130 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-25 20:09:39 +00:00
jbjohnso 9f8c5f7998 It was discovered that the strategy to jump software ids, while effective, had the side effect of invalidating reservations
This means that initial SDR download would usually fail on implementations that consider reservations in such a manner.
Back out the incrementing software id behavior and instead bump retry interval back up to mitigate risk of wraparound
on retries.

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14127 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-25 19:26:46 +00:00
nott 9f20565957 different fix for replication issue
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14113 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-24 18:37:22 +00:00
jbjohnso bf91d7e939 Have base esxi4.1 template exist in the way that xCAT expects
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14090 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-22 20:11:00 +00:00
jbjohnso 3af54f8e00 Fix copyesxiboot to work fine with mod.tgz
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14086 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-22 20:09:00 +00:00
jbjohnso 82a094b753 Have slpdiscover auto-use LLA when circumstances detect no user direction to the contrary and the LLA is viable (same subnet, perl ipv6 support)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14085 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-22 19:47:50 +00:00
bp-sawyers b6e445e1f6 removed the requires for perl-IO-Stty, because it is actually not needed
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14084 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-22 19:47:01 +00:00
jbjohnso fb97c85957 Fix problem where nodeset install on esxi4.x media would fail
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14080 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-22 15:56:15 +00:00
jbjohnso 4d5c361055 Fix problem where esxi 4.x was called 'esx' in platform terms
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14079 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-22 15:45:02 +00:00
jbjohnso f3fce3cbd7 Fix problem where esxi failed to honor '-n' argument in copycds
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14077 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-22 15:21:58 +00:00
jbjohnso f9decc9b87 Fix problem with certain levels of x3755 M3 firmware
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14074 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-22 14:03:24 +00:00
nott c101ca6858 fix exports file entry for nfsv4 replication
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14059 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-19 20:40:41 +00:00
mellor fbd56c732b defect 3127 AIX PE 1.2 HPC Integration
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14038 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-16 22:01:45 +00:00
ligc 602f8beb52 undo the CMM password expire code
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14027 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-16 12:33:01 +00:00
zhaoertao 734b00e875 setting the password expire time to 0, never expired
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14020 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-16 02:59:57 +00:00
phamt 2f2a72e90c Synched up xCAT code to the latest. Added native SCSI/FCP support onto trunk. Replaced tabs with 4 spaces.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14006 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-15 01:50:28 +00:00
nott de82de8d87 fix updatenode AIX diskful hierarchical software copies
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14003 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-12 18:00:01 +00:00
jbjohnso dd87d634e5 Table.pm in a refresh scenario with cache not currently in use, but existing none the less, mark the cache as invalid by setting the timestamp to 1970
Still avoid *rebuilding* the cache, as in the use_cache not set suggests a mass amount of setAttribs and build_cache(1) would be extremely expensive,
just force the next consumer after the set to take the hit

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@14002 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-12 16:32:12 +00:00
jbjohnso a2a76f23c6 Extend ipmi sequence validity through rqaddr
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13986 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-11 21:02:47 +00:00
jbjohnso 2f39a9182c Fix problem where node specific errors in some ipmi scenarios are not associated with a node
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13985 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-11 18:02:49 +00:00
jbjohnso c94740deb4 Change IPMI to use IMM properties interface instead of FMAPI, must faster and simpler and likely to work
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13977 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-10 19:05:22 +00:00
nott 5a7e50c1fe modify rc.dd_boot setup
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13973 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-10 15:15:03 +00:00
jbjohnso dab3cf53b0 Have slpdiscover.pm tolerate more variation in IMM prompt
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13968 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-09 20:46:49 +00:00
ligc 0857cb241a fix for bug 3122: add the usercomment in Schema for linuximage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13963 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-09 06:32:56 +00:00
nott 27085c3af0 fix rmnimimage for hasn env
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13958 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-08 17:03:43 +00:00
zhaoertao 1664ed82d8 fix bug 3120 rflash working with --activate concurrent failing on HMC based P7 server
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13955 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-08 09:54:20 +00:00
nott 6ee370cfbe add more output msgs to software install operations and fix return values
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13947 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-03 20:18:05 +00:00
jbjohnso 4488357171 Address typo in previous ipmi commit
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13942 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-03 19:47:00 +00:00
jbjohnso b99460f24f Enhance rvitas led output with more readable information when possible
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13941 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-03 19:46:53 +00:00
jbjohnso 7d9a0ad0ed Fix problem where sensor numbers could accidentally pull in LED or FRU records
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13937 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-03 18:15:23 +00:00
jbjohnso 3c84558504 Skip nodelist.status changes in event of suspend or wake for now
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13922 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-10-01 18:15:20 +00:00
jjhua f891cc995b fixed bug 3113, remove some error message when clearing the last configuration
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13915 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-29 07:40:50 +00:00
lissav 46c40ab353 fix for defect 3117
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13913 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-28 12:16:53 +00:00
ligc a2656b7645 fix for bug 3111: diskful SN + diskful CN, call make_SN_resource with wrong arguments
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13892 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-26 06:02:34 +00:00
nott ba94317016 fix cp cmd for copying client_data files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13876 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-21 18:35:42 +00:00
nott f8f797bc57 fix issue with nodelist for copying client_data files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13875 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-21 18:32:16 +00:00
linggao 08bfa000a6 fixed a defect for chvm -a
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13873 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-21 16:50:51 +00:00
daniceexi 980c22d787 fix the issue that run command against vms which mixed that bind to host or not
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13872 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-21 07:42:31 +00:00
daniceexi e83a221388 refine the man page
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13870 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-21 02:12:01 +00:00
daniceexi 209b9202b7 change the help for cfgve
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13867 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-21 02:01:06 +00:00
daniceexi 7640137f02 fix the -n and flag order
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13866 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-21 01:55:35 +00:00
daniceexi 11c7894e6f defect 3102: change the flag name for vlan and fix a missmatch issue for copycds
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13863 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-21 01:27:04 +00:00
daniceexi 70cf9e5790 add again with new execute permission
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13862 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-21 01:12:26 +00:00
daniceexi b549c9b8e4 remove to change the permission
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13861 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-21 01:11:44 +00:00
daniceexi e51af68867 fix a typo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13847 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-19 06:51:50 +00:00
wanghuaz 254643a5c7 Fixing bug 3568357: Overwrite the swapnfs tmp file instead of append it.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13845 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-19 06:00:33 +00:00
nott 84b1fb6a79 fix for bug 3568424
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13843 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-18 19:34:06 +00:00
ligc 68d2993a78 fix for bug 3568791: add nfs export options -vers 3:4 for /install/postscripts on SN
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13838 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-18 12:11:29 +00:00
daniceexi 8b4c3c074b several fixes for rhevm support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13833 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-18 08:35:18 +00:00
wanghuaz 086c91877e Fixing bug 3567143 and 3568764, update PE/essl for hpc integration
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13831 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-18 06:55:31 +00:00
ligc 259767a305 fix for bug 3567955: parse the hostname to ip address before indicating more than one xcatmaster for HA SN
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13827 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-17 09:17:04 +00:00
daniceexi c4331e85c6 remove a empty line which cauased an warning during pod2html
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13825 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-17 07:09:33 +00:00
jbjohnso a585170667 Fix mistake with sid increment
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13824 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-16 12:55:49 +00:00
jbjohnso ba244e8841 Several changes to improve IPMI behavior, *particularly* with IPMI 2.0
-Go back to restarting the log in process if rakp2 or rakp4 goes awry, it's too likely for a dropped packet to confuse IPMI 2 devices.
-Fix relog to reset session context to avoid getting distracted by now stale RAKP messages if the IPMI device happened to be slow
-Switch session ids on relog, so that everything can ignore packets from a zombie IPMI session reliably (e.g. relog recovery of a session).
-In parse_ipmi_payload, delete pendingargs in addition to deleting sessions_waiting entry.  The latter should have sufficed, but there persisted an odd
 issue where sometimes the last non-logout packet was erroneously retransmitted as retries at the end.  This change short-circuits
 the timedout function should this occur, generally delaying exit by 100 milliseconds whet it goes wrong.

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13821 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-16 03:57:10 +00:00
jbjohnso 1dac16d2ce In accordance with previous change, always act as if logout completed successfully without checking the result
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13820 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-16 03:57:03 +00:00
jbjohnso 2a241d4e64 When doing close session, if the reply packet is dropped on the network, session may no longer be closeable. Send a close session and hope for the best, do not hold up things waiting
for something that shall never come

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13819 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-16 03:56:55 +00:00
jbjohnso 5b3f372056 Eliminate instances of recursive timedouts really ruining our day in IPMI
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13818 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-16 03:56:48 +00:00
jbjohnso 1dd54b108d Rework IPMI.pm IPMI 2 session negotiation a bit, now we take care to make sure the most recent open rmcp+ request is the one used
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13817 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-16 03:56:42 +00:00
jbjohnso 94511e23c0 Revise ipmi 2 session establishment to be more forgiving of retries during the process
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13816 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-16 03:56:33 +00:00
nott 8947e743a1 add -r option
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13814 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-15 18:38:52 +00:00
nott da0a0d9555 flag to turn off dump retarget
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13813 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-15 18:08:09 +00:00
nott 273bac6e72 manage SN resource defs from MN
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13807 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-14 20:19:18 +00:00
lissav e680150395 add getTablesAllRowAttribs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13806 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-14 17:31:00 +00:00
daniceexi df3f6b7ffb defect 3539473: disable the xcatdebug to be run on aix
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13802 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-14 13:23:11 +00:00
daniceexi d7051e1bde add a new site attribute site.tftpflags which used to specify the tftpd parameters
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13800 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-14 12:29:53 +00:00
daniceexi b44c562e4e fix the defect that force to stop xcatd for each restart
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13795 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-14 03:13:35 +00:00
jbjohnso 4018deb485 Rework IPMI seqlun management to avoid accepting the same data twice as valid instead of retry
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13789 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-13 21:01:43 +00:00
lissav c4e78295ff change name to getTablesNodesAttribs because Bruce is picky
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13786 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-13 18:14:51 +00:00
lissav d37b7dd8f4 add XML getTablesNodeAttribs support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13783 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-13 12:14:16 +00:00
lissav 8f4cb07057 checkin getTablesAllNodeAttribs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13777 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-12 13:55:41 +00:00
daniceexi 4ba6342bc7 fix the issue of clone vm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13774 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-12 08:23:05 +00:00
zhaoertao 451d63d075 fix bug 3558819: rscan cannot identify mm as CMM for firebird
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13772 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-12 08:01:19 +00:00
amy0701 ba23720d6f update testcases
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13767 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-12 06:23:44 +00:00
linggao b733ed7993 modified the description for switch.vlan and switch.interface
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13764 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-11 15:21:04 +00:00
linggao ab8527103f modified the description for switch.vlan and switch.interface
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13763 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-11 14:43:47 +00:00
jbjohnso 2c76dc1011 Back off change to discovery process to care one way or another about 'primary' interface
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13760 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-11 13:41:52 +00:00
lissav d38374d1c2 rename XML routine setNodesAttribs1 to setNodesAttribs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13758 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-11 11:37:01 +00:00
daniceexi fd9e4f96ce update the usage for ls/cfgve, ch/rmhypervisor
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13755 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-11 06:12:17 +00:00
jbjohnso b8f5208ef0 Correct RHEL grub buggy behavior when detected on EFI installs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13752 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-10 20:48:41 +00:00
daniceexi 108d40c7dc refine the man page for cfgve
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13743 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-10 14:42:14 +00:00
daniceexi ccf619ce12 add man page for chhypervisor and rmhyperviso
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13742 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-10 13:56:15 +00:00
daniceexi b390df9313 use chhypervisor to replace
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13741 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-10 13:54:58 +00:00
daniceexi ce8f2e5282 use ch/rmhypervisor to replace the cfghost command. fix the network attaching and cfg host nic issues
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13736 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-10 13:13:25 +00:00
daniceexi ba38665c4e For rhev support: remove the vm.template, but use vm.master to replace
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13735 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-10 13:08:46 +00:00
daniceexi b6629f4e61 defect 3564667: fix the path for SL6 which will use the common path
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13729 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-10 01:48:09 +00:00
nott 2220d60168 fix statelite setup bug - 3564958
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13726 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-07 18:24:33 +00:00
lissav 2165956209 fix defect 3564697
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13722 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-06 15:51:13 +00:00
wanghuaz 32a15b987a Fixing bug 3563735: remove several ksh scripts on Linux management nodes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13718 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-05 08:10:19 +00:00
daniceexi 406346f2a6 fix the missunderstanding for the kernel parameter rhevm_admin_password. Which is used to set the root passwd of host
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13711 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-04 07:46:56 +00:00
amy0701 7317419c92 add diskless installation for sles ppc64
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13709 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-04 02:43:59 +00:00
daniceexi 98f2a6dd5b fix the issue that missed to add the xcatrhevh.cgi to the xcat-ws.conf
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13705 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-03 09:09:30 +00:00
yinle a000d5f80b fix bug 3563351: lsslp -r flag provides error on ST NGP xCAT MN
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13702 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-03 07:38:14 +00:00
xq2005 94e3862219 update the discovery page
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13701 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-03 04:12:01 +00:00
amy0701 19b413af7f modify linux_full_installation for supporting sles11
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13698 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-03 03:10:41 +00:00
amy0701 c418b962ba add some testcases for ngpfird
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13696 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-03 02:34:14 +00:00
xq2005 20140c5c8f the code change for flush output
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13695 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-03 02:30:49 +00:00
phamt 13016f8817 Fixed s390x postscripts to use HTTP server instead of FTP.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13693 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-09-01 13:26:02 +00:00
nott a3476dd281 don't overwrite provmethod - 3557471
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13690 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-31 18:12:44 +00:00
nott a270d82762 fix output from chroot command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13689 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-31 17:46:10 +00:00
daniceexi 63c773dd53 Fix the issue that missing of display id attribute for Blaketip blade that mgt=ipmi
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13684 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-31 09:16:12 +00:00
daniceexi 1254f86a45 code drop for rhev support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13683 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-31 08:22:51 +00:00
daniceexi d8442c35e2 code drop for rhev support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13682 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-31 08:22:16 +00:00
lissav 29e60c243e fix for defect 3546058
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13671 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-30 17:10:24 +00:00
lissav 70c5242f77 add new hpc scripts from perf team
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13668 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-30 15:06:01 +00:00
lissav 71062b78d9 add info
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13664 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-30 14:26:06 +00:00
immarvin 5a10afcb2d update the getaddsensorevent for new sensor events
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13652 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-30 07:17:49 +00:00
yinle 056f824b02 Made performance improvement for demo.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13649 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-30 06:38:14 +00:00
nott 0d46150fcc fix the copying of client_data files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13643 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-29 19:02:31 +00:00
lissav 664a1e0f74 Comments about non-hier support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13639 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-29 16:44:05 +00:00
lissav 405ad47b44 Add support for DSH_ENVIRONMENT
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13638 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-29 16:34:01 +00:00
lissav a4119f52a2 fix getNodesAttribs multiple entry problem
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13632 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-28 19:40:28 +00:00
lissav 9a014e31c3 Client.pm support for XML DB interface defect 3562485
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13630 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-28 17:09:43 +00:00
lissav 88d34addd0 add tabutils XML routines, defect 3562485
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13629 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-28 16:43:30 +00:00
lissav ede6f9a65a change version to 2.7.5
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13628 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-28 16:03:58 +00:00
linggao 901e60d507 multi vlan support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13623 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-27 21:03:29 +00:00
lissav d14d92acf0 had to comment back out the use strict, caused errors even just running -P, will work on on 2.8
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13621 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-27 19:28:28 +00:00
lissav c7dcb9160c uncomment use strict and fix incorrect variable
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13620 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-27 18:26:22 +00:00
lissav b7e4a65913 fix defect 3555748
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13612 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-26 11:16:52 +00:00
lissav 468644eee4 fix defect 3555748
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13611 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-26 11:08:28 +00:00
jbjohnso 207fafea58 Add support for certain IPMI specified events
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13606 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-24 14:17:11 +00:00
jbjohnso 49787e5842 Add missing IPMI sensors
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13605 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-24 14:00:04 +00:00
yinle 1e09d79d7f Add some sleep to avoid http failure. Modify some trace information.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13602 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-24 02:12:53 +00:00
yinle d837e1fea0 Add some sleep to avoid http failure. Modify some comments.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13600 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-24 01:59:12 +00:00
yinle e31e02650d minor fix: remove the restriction of flag -t; modify hmc service type of slp request.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13598 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-24 01:39:39 +00:00
lissav b2c1c84696 add new ping-all script for HPC
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13595 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-23 18:40:17 +00:00
jbjohnso f2744659a7 Pull in 2.8 low level IPMI functionality
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13594 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-23 18:27:27 +00:00
lissav e925929f1a fix defect 3555671
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13586 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-23 13:52:33 +00:00
mellor 8c5ed18ffe 3560316 change initial mount timeouts to match NFS defaults
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13571 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-21 12:57:09 +00:00
yinle fd83987b66 Fix bug 3543531:getAllNodeAttribs take too much time
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13566 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-21 02:59:32 +00:00
ligc a55f3461d5 fix for bug 3559982: chmod 755 for the netboot postinstall files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13564 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-21 01:37:36 +00:00
zhaoertao f5f4e1117d fix bug 3531793: wrong error message in rspconfig cmm initnetwork=*
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13550 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-20 07:24:02 +00:00
lissav 895f3c7673 error found test 2.8
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13548 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-19 10:50:25 +00:00
zhaoertao 9122b91ca2 fix bug 3558853:genimage need tg3 for firebird plus ppc64
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13542 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-17 09:05:03 +00:00
lissav 1ad82ecc82 fix defect 3558575
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13541 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-16 19:08:09 +00:00
nott af69e64ca5 do multiple bundles at once
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13538 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-16 18:30:54 +00:00
nott affe91b7d3 fix check of client name
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13534 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-16 14:14:18 +00:00
nott e7f3c4dcfe add check for persistent /var/adm/ras
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13531 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-16 13:20:11 +00:00
jjhua d9af0e6c67 chmod +x to configiba.1port and configiba.2ports
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13529 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-16 07:56:53 +00:00
jjhua af74d4fa22 fix bug 3558059. For Network controller: Mellanox Technologies MT27500 Family [ConnectX-3], there is not a keyword like InfiniBand, add Mellanox as the keyword; in mellanox ofed 4.0.x, it doesn't up the ib0/ib1 interfaces by default, so I update the configiba scripts.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13527 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-16 07:51:44 +00:00
jjhua 0dc7190796 fix bug 3558059. For Network controller: Mellanox Technologies MT27500 Family [ConnectX-3], there is not a keyword like InfiniBand, add Mellanox as the keyword; in mellanox ofed 4.0.x, it doesn't up the ib0/ib1 interfaces by default, so I update the configiba scripts.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13526 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-16 07:44:09 +00:00
jjhua 759cea4c03 fix bug 3558059. If the os was updated from sles11 sp1 to sless11 sp2, and the mlnx-ofa_kernel-kmp-default could not be installed successfully. enhance the mlnxofed_ib_install scripts
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13522 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-16 06:39:32 +00:00
jjhua 7250b6595a support the mellanox ofed 4.0.x for sles11sp2
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13520 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-16 03:13:09 +00:00
jjhua 65e870c0e8 support the mellanox ofed 4.0.x for sles11sp2
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13518 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-16 03:10:06 +00:00
yinle f94475e615 part of the fix of PMR 29187,066,866
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13517 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-15 13:53:23 +00:00
xq2005 83e88eac4b realtime output for xcat command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13515 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-15 12:52:39 +00:00
wanghuaz acaefeedda fixing bug 3554998: using bash syntax in csh source files
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13510 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-15 08:58:36 +00:00
ligc d3b955caed fix the error with revision 13497: should not use TableUtils.pm, it is only for 2.8
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13509 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-15 06:13:01 +00:00
nott a5b5cc1c8b fix error msgs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13507 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-14 15:11:07 +00:00
yinle 632e27647c minor modify about print information.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13500 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-14 06:50:43 +00:00
yinle 434a530bbb minor fix
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13497 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-13 06:20:15 +00:00
yinle 6378d1ecbb Modify resetnet for demo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13496 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-13 06:06:34 +00:00
yinle 5fd9e8448f Modify resetnet for demo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13495 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-13 06:04:03 +00:00
yinle f528c39823 Add print info for demo; Add prm fix.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13494 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-13 05:56:00 +00:00
yinle 9742daa508 Add print info for demo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13493 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-13 05:48:37 +00:00
yinle 9f6f9c9ba1 minor fix
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13486 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-11 06:40:40 +00:00
yinle 9718f7161e Fix bug 3555911: lsslp -I output format is different from manpage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13485 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-11 06:34:47 +00:00
yinle d7ff87a006 Fix bug 3555910: lsslp -i gives reduntant info which is not specified by -i
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13484 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-11 06:26:25 +00:00
amy0701 4e0224fc07 update testcases for imgexport
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13480 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-10 05:29:02 +00:00
amy0701 c508d0bbbd update testcases for imgimport
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13479 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-10 04:36:51 +00:00
amy0701 d2044c61f2 modify netboot to statelite in testcase lslite
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13474 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-09 09:29:19 +00:00
amy0701 77ff664eb0 update testcase for geninitrd
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13473 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-09 09:26:26 +00:00
amy0701 a2b505be1c update testcase for lslite
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13472 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-09 09:24:48 +00:00
daniceexi 7cd9df23fb defect 3555500, supress the warning when run xcat command in XCATBYPASS mode. It only happens for sles11.sp2
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13471 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-09 08:56:01 +00:00
nott 5bc4867f00 clarify use of -n option
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13455 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-08 18:17:22 +00:00
lissav 5f576615a1 fix xdcp broken 3552171
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13445 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-07 13:23:25 +00:00
jjhua bbcf107b6a correct some grammar errors
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13444 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-07 08:55:27 +00:00
yinle 59a83730a4 Fix PMR 29187,066,866
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13441 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-07 02:54:03 +00:00
xq2005 036533351b change the fadump kernel parameter format
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13436 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-06 08:35:13 +00:00
wanghuaz 477d41591e Skipping comments in pkglist and ospkglist before processing
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13434 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-06 07:09:51 +00:00
amy0701 c027734b2c update testcase for copycds for sles
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13432 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-06 05:09:10 +00:00
amy0701 dd5b8103d7 update testcase for makedhcp support sles
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13430 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-06 04:28:41 +00:00
bp-sawyers 4522feaa4f Fixed bug in 3549482 in 2.7 (still needs to be fixed in trunk by lissa) - added missing attrs to network defspec
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13428 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-05 17:25:01 +00:00
daniceexi 41fbf85cb8 merge 13125 to branch
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13423 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-03 09:20:28 +00:00
daniceexi 1a0f0a90b0 Add the logic that use the mac of cmm to match the cmm which found from slp when switch:port match failed
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13422 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-03 08:51:04 +00:00
daniceexi 41d0e37a84 add the new command slpdiscover
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13419 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-03 08:03:23 +00:00
daniceexi 5f58bb8dc8 Fix some minor bugs and add msg
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13418 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-03 07:59:45 +00:00
xq2005 c45549830f show the output information realtimely
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13417 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-03 02:59:42 +00:00
xq2005 881c1daa47 support fadump on p7 ih
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13414 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-03 01:56:58 +00:00
nott 0bfe50eaa2 check before restart inetd and nfsv4 setup
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13411 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-02 18:27:04 +00:00
lissav 581a5d3757 additional fix for 3552171, xdcp should not be syncing the synclist, if the node is not hierarchical
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13406 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-02 13:35:08 +00:00
bp-sawyers f914f11de9 Have chain end in shell instead of standby
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13404 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-02 12:19:49 +00:00
amy0701 b3b3d3401c update makedns testcase to support sles
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13402 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-02 07:43:50 +00:00
yinle 8509f7af39 Modify the return value of resetnet.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13400 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-02 07:04:18 +00:00
yinle 91ae5f3edd Modify the return value of resetnet.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13399 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-02 06:55:34 +00:00
zhaoertao 50feb83e56 fix bug about 'hwtype' string changing into a string array in hierarchical environment.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13396 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-02 06:47:54 +00:00
ligc 2d49286342 fix for bug 3553437: add be2net driver into the default list, it is needed by blacktip blades work with SLES 11
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13395 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-02 06:09:06 +00:00
ligc ed6dfea685 fix for bug 3553437: add be2net driver into the default list, it is needed by Firebird blades work with SLES 11
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13392 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-02 05:31:31 +00:00
jjhua 70786f3d53 update the rflash manpage to fix bug 3553161
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13391 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-02 03:00:25 +00:00
lissav e475a8b693 remove commented out code so not to confuse
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13387 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-01 12:39:47 +00:00
lissav 7442dd8413 fix for defect 3552171
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13386 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-01 12:30:29 +00:00
lissav 31c60fc35f fix for defect 3552171
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13385 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-01 12:29:40 +00:00
amy0701 230625f4f6 update packimage testcase for genimge osimagename
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13383 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-01 05:35:21 +00:00
amy0701 b021dee141 update packimage testcase for genimge osimagename
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13382 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-08-01 05:33:52 +00:00
bp-sawyers b3bf58c236 Make the e1350 templates work with nodenames like n01, not just n1
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13380 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-31 18:37:25 +00:00
zhaoertao ada63f1faf fix bug 3552543 and 3442549, the FB->getmacs <noderange> cannot work
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13376 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-31 14:08:09 +00:00
lissav 14e605511d fix -f information
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13375 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-31 13:16:26 +00:00
lissav 5bd77c3382 fix -f flag information
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13369 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-30 13:19:48 +00:00
xq2005 c518a61f69 support fadump on stateless netboot on redhat and ppc64
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13368 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-30 08:01:08 +00:00
yinle 7fb96a1b9f Fix the mistake that removing callback from the SLP.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13365 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-29 13:41:23 +00:00
yinle 7c0744d25a Made some performance improvement.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13361 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-27 14:15:52 +00:00
yinle 8e08d966ee Fix a mistake and do some performance improvement.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13359 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-27 14:06:52 +00:00
xq2005 2fdf9dc8c7 change the layout on discover page
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13358 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-27 06:26:11 +00:00
xq2005 5cc6c961e5 show the return information on the page
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13356 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-27 05:12:04 +00:00
nott ece4a78fe4 add /proc setup for hasn env
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13342 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-24 15:14:05 +00:00
xq2005 49d8bf9f15 support upload the vpd and mtms file
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13341 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-24 12:21:11 +00:00
wanghuaz 614b0bc0a9 issue pelinks in PE postinsall script to support multiple PE versions.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13339 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-24 11:57:52 +00:00
zhaoertao 1ab0ea3f0e fix a bug about 'chvm <lpar> lparname=xxx' not work properly
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13337 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-24 06:52:20 +00:00
wanghuaz 8a13ae9151 Added ksh as a dependency of gpfs 3.5.0.3
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13336 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-24 05:38:47 +00:00
yinle f3cc830095 Performance improvement on processing slp ppacket
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13334 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-23 14:59:08 +00:00
xq2005 d6372084a7 modified for darpa demo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13332 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-23 10:28:14 +00:00
xq2005 3d8d27f48b add resetnet process for p7 ih cluster setup
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13330 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-23 10:07:41 +00:00
yinle 78133aa3bb remove callback subroutine in lsslp.pm.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13328 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-23 07:47:50 +00:00
yinle 81dbcb740b remove callback subroutine in SLP.pm.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13326 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-23 07:34:53 +00:00
zhaoertao 7fb346f9ae fix bug 3546270:rspconfig <cec> HMC_passwd=xxx output error message, for hierarchical environment
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13322 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-20 09:38:49 +00:00
jbjohnso 8587a835fd Rework pulling packets off the socket, less delay in moving data to a more stable data structure
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13320 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-19 19:45:23 +00:00
jbjohnso 6a1c104f66 Rework IPMI.pm a tad for better sacalbility
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13319 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-19 19:45:11 +00:00
jbjohnso 7e34083819 Revert "fix bug 3529429 for kdump failed on non-p7 ih plinux"
This reverts commit 9cc15677f3f5ac8d39b5dbade048c83aa8926e47.

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13318 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-19 19:44:52 +00:00
immarvin c454f53c75 download rmcmon resource and scripts with http instead of ftp
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13317 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-19 07:08:53 +00:00
wanghuaz f5c785ba23 add --non-interactive option to zypper to answer zypper install questions automatically.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13315 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-19 06:08:32 +00:00
bp-sawyers bdd737a482 Improved description of syspowerinterval and syspowermaxnodes for ipmi case.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13310 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-17 17:39:58 +00:00
nott 67ac470c5a sync with 2.8
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13306 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-16 18:52:13 +00:00
nott 6adb4327a0 add mntopts to litetree mount command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13305 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-16 17:14:57 +00:00
nott c1863f23e1 add mntopts to the litetree file
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13303 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-16 16:56:14 +00:00
nott 3ab8f9db04 add mntopts to the litetree command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13298 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-13 20:12:46 +00:00
nott 9e72871b81 add mntopts to litetree table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13296 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-13 19:58:59 +00:00
nott d2dc594434 use correct hash for target servicenodes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13294 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-13 17:49:31 +00:00
bp-sawyers 08919eda58 Pkging changes: don't require fping on zvm, clean up zvm's removal of files, remove openslp-xcat require for all platforms
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13287 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-12 17:57:17 +00:00
yinle 1c9a36d74c Fix a mistake the connect function alway use hosts.ip to login ASMI for resetnet.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13283 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-12 08:48:22 +00:00
yinle d6e8424836 Made specific choice about preprocess_nodes for rspconfig resetnet.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13281 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-12 07:51:11 +00:00
phamt af362d39fa Allowed user to edit user entry even if node is unreachable.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13280 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-11 16:12:52 +00:00
lissav 5af109fed3 add setup ODBC support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13277 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-11 12:22:32 +00:00
lissav dd943d36b3 add setup ODBC support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13276 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-11 12:18:33 +00:00
zhaoertao fb20194388 add flag '-i' for getmacs for Firebird blade
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13273 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-11 08:30:06 +00:00
lissav 321db70ad1 fix defect 3510989
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13269 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-10 18:51:30 +00:00
phamt 09938be4d8 Synched z/VM code in 2.7 branch with trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13268 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-10 14:18:38 +00:00
wanghuaz 0a83ee6596 update for genimage testcase
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13262 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-10 06:08:17 +00:00
lissav 0317dd05bf fix defect 3540076
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13254 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-09 13:42:10 +00:00
zhaoertao 1e4d543cf7 fix bug about 'runcmd' subroutine in hierarchy environment
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13250 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-09 02:37:31 +00:00
jjhua f0e3791a45 correct an error of the ==
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13247 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-06 08:58:53 +00:00
xq2005 ae1df250b2 change the discovery step on the discover page
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13244 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-05 07:01:06 +00:00
yinle 901468467d Fix a mistake about rspconfig resetnet
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13241 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-05 06:23:52 +00:00
ligc c67d271b75 fix for bug 3538906: perl-DBD-DB2Lite-1-2.aix7.1.ppc.rpm breaks chkosimage, change perl-DBD-DB2* to perl-DBD-DB2-*
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13239 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-04 04:35:28 +00:00
immarvin af638cb809 add rhels6.3 support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13237 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-04 03:25:55 +00:00
nott e9dd327f23 add check for myxcatpost file name
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13235 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-03 18:09:30 +00:00
jbjohnso fa02a0dd58 Update xCAT 2.7 version
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13231 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-03 13:49:39 +00:00
zhaoertao f897724e5c fix PMR 29163,066,866 ECMWF :chvm broken after xcat 2.7.2 upgrade
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13229 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-03 03:09:08 +00:00
lissav 975d448244 fix defect 3538653
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13226 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-02 12:47:01 +00:00
lissav c6e7fb8ce8 fix defect 3538653
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13225 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-02 12:45:07 +00:00
jjhua 927df81422 fixed bug 3538093, create a temporary uname in the image's rootimg dir before running the postinstall and remove it after postinstall during genimage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13223 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-02 07:25:49 +00:00
jjhua 4d95ec7969 fixed bug 3538093, create a temporary uname in the image's rootimg dir before running the postinstall and remove it after postinstall during genimage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13221 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-02 06:15:33 +00:00
yinle 0ee40f1aa5 synchronize with trunk.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13220 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-01 03:40:06 +00:00
yinle d373e3f456 Add function verbose_message, not sure who wrote it.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13219 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-01 03:25:57 +00:00
yinle a150ad3ee2 Modify rspconfig --resetnet.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13217 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-01 03:16:39 +00:00
yinle 6df7a8ce12 Modify rspconfig --resetnet.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13215 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-07-01 03:04:08 +00:00
bp-sawyers 46d4c8fb45 updated the noderes.tftpserver description to indicate it defaults to networks.tftpserver
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13213 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-29 13:45:55 +00:00
lissav fb045361a5 man page updates
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13210 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-29 10:55:46 +00:00
zhaoertao 206746b6c1 fix bug 3519576:Performance improvement to blade.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13205 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-29 08:45:26 +00:00
ligc 1115edcc77 fix for bug 3536372: download postscripts from the server specified in kernel parameter XCAT=xxx
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13201 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-29 07:58:54 +00:00
zhaoertao b403f7310c enhance 'rinv' for CMM.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13200 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-29 07:30:32 +00:00
zhaoertao acf129beaa Modify 'rvitals' to support SNMP for Firebird blade and CMM.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13198 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-29 06:52:29 +00:00
ligc 24a20072ff fix for bug 3524402: run chkconfig dhcpd on in xcatconfig
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13195 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-29 03:14:32 +00:00
lissav 71add678c3 fix defect 3538653
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13192 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-28 15:50:57 +00:00
ligc 1184212598 fix for bug 3538372: check nfs mount on SN should be more precise
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13189 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-28 11:33:35 +00:00
immarvin 4505e8a91e fix defect ID: 3537687 BOOTIF is not written into yaboot file on sles11.2 for ppc64
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13187 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-28 07:21:51 +00:00
zhaoertao 0a3b830c83 output the 'oper-firmware' state for Firebird blade.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13181 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-27 09:06:34 +00:00
mellor 76cc48da87 defect 3538251 - rollupdate boundary error fix: did not run llmkres if node count less than updateall_nodecount
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13173 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-26 22:06:27 +00:00
jbjohnso 756378c0c3 Correct various mistakes in the RHEL5 driver disk injection code
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13171 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-26 15:49:33 +00:00
zhaoertao e89b79bcac modify getmacs: write lowercase mac address for Firebird blade
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13156 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-25 02:17:48 +00:00
lissav ff4c96376c fix SF defect 3530574
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13151 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-22 14:24:03 +00:00
lissav c7caefc2be fix SF defect 3393889
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13150 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-22 14:14:12 +00:00
linggao de6c531090 fixed a problem that logs to localhosts for syslog-ng
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13148 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-21 20:21:43 +00:00
jbjohnso ec2e1f2e5f Fix problem where nodegrpch would fail to modify tables where 'nodecol' is not 'node'
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13118 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-18 16:34:33 +00:00
yinle c79bcd7061 fix some mistakes about rspconfig
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13114 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-18 05:34:43 +00:00
xq2005 7586f27191 kdump on sles supports mutiple nodes dump at the same time
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13113 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-16 01:43:15 +00:00
xq2005 931e3e2059 create the setup configure file with new format
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13106 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-15 09:40:04 +00:00
zhaoertao aacb5278c7 fix bug 3535388: FB 'snmpcfg=enable' doesn't truly work for the first time
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13104 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-15 09:22:31 +00:00
xq2005 c12c811738 add more input area to create the setup configure file
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13103 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-15 09:14:50 +00:00
xq2005 7d3d5f6e83 add the hardware information to support more hardware type on the graphical layout page
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13087 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-14 09:54:31 +00:00
phamt 61001a5e40 Synched up zVM code with ones in trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13082 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-13 18:38:35 +00:00
phamt e7fb61e2ba Synched up zVM code with ones in trunk
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13081 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-13 18:27:39 +00:00
xq2005 0436357081 add input area which user can configure the password for bpa, fsp
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13077 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-13 09:49:20 +00:00
xq2005 b6369a7638 change the style on discover page
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13075 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-13 09:20:17 +00:00
zhaoertao 1dc4df9e61 fix bug 3534769: NGP->rspconfig passwd can not work
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13073 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-13 06:50:59 +00:00
nott 832571e724 Add -r option to rmdsklsnode
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13064 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-11 18:51:52 +00:00
nott 00b344d8d0 Oops
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13062 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-11 18:31:01 +00:00
nott 1d76faed56 Add -r option to rmdsklsnode
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13060 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-11 18:12:46 +00:00
lissav 88281e0558 Put warning in updatenode -k, not to run to the MN
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13058 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-11 11:26:19 +00:00
wanghuaz 070e8975b2 update rpower timeout for rpower testcase
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13056 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-11 07:26:28 +00:00
nott f17eed25e4 fix xcataixscript bug 3529713
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13051 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-08 18:05:00 +00:00
jbjohnso 2f18ec4f7f Fix problem with clonevm in vmware when target uses the legacy vm.storage syntax
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13049 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-08 13:34:40 +00:00
lissav 5a0b29f758 add fanout interface to man pages for p* command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13047 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-08 11:54:32 +00:00
lissav e4196ab2cb change order of checking for fanout
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13045 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-08 11:46:24 +00:00
lissav ecde4d3f0b support fanout input
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13043 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-08 11:37:15 +00:00
lissav 74166dae00 support fanout input
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13042 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-08 11:32:53 +00:00
jjhua 029623589a in PPCconn.pm , it will match the FSPs' IPs after querying.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13041 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-08 10:01:21 +00:00
zhaoertao e2e71fe5a5 fix bug 3529000: FB need set installnic first
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13032 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-08 02:35:49 +00:00
zhaoertao cd9a117e07 fix a potential when SSH to CMM failed
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13031 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-08 02:33:35 +00:00
zhaoertao f344b40856 fix bug 3532557: rflash <cec> -v provides fsp instance error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13029 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-08 02:03:51 +00:00
jbjohnso 6b2e3bafa8 Fix error with how enum is passed into vsphere api in vsphere support for win2k3 specialization
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13028 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-07 19:47:09 +00:00
nott 89a9713be3 hasn- dont run mkresolvconf script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13025 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-07 19:17:57 +00:00
lissav f84952c674 add -f fanout and XCATPSHFANOUT suupport to allow change of fanout on the command line and with env variable
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13023 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-07 19:01:56 +00:00
jbjohnso d79a8413f2 Fix problem where tabdump -f would fail to correct for relative paths. It really shouldn't be doing this server side at all....
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13021 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-07 18:15:34 +00:00
daniceexi af880698b3 defect 3524563: We encountered issue in LRZ with the last change that keep the udev before the chroot. The problem was IB device which started after chroot does not work. The fix was to kill the udevd after the starting of net device
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13016 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-07 06:11:47 +00:00
wanghuaz b06ae22ded Fixing bug 3532416 and 3532496. Handle them by code instead of document.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13015 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-06 15:35:57 +00:00
jbjohnso 5579e698ee Provide a default value for win2k3 cloning use with clonevm specialize
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13013 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-06 13:40:42 +00:00
zhaoertao d0d9e7562d fix bug 3531961: FB - Genesis password not processed properly
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13012 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-06 10:42:56 +00:00
wanghuaz 167238f43c Comment libbsr by default, and enable it for Power 775.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13009 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-05 08:20:13 +00:00
zhaoertao ce07ccbbcc fix bug 3532065: rflash --bpa_acdl needs result output
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13008 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-05 07:52:08 +00:00
lissav 86acca4d8a fix defect 3531962
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13006 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-04 18:39:41 +00:00
lissav e0c412f1e0 fix defect 3531617
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13004 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-04 11:53:42 +00:00
wanghuaz 264e65ad20 Fixing bug 3531385: arch specific pkglist doesn't exist, using a general one
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13003 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-04 11:41:11 +00:00
wanghuaz 319fc2df0f Added the code to handle xlf/vacpp and upc compiler dependency conflict issue
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13002 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-04 10:14:26 +00:00
wanghuaz 5b91dd6dbe Add upc_license to sample postinstall script as comment, so user can easily uncomment it while configuring upc compiler
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13001 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-04 08:51:20 +00:00
wanghuaz 8d68b26c80 Added upc compiler configuration
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@13000 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-04 07:26:55 +00:00
wanghuaz 63428c2c34 Format comments
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12999 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-04 03:06:40 +00:00
amy0701 50b110f0ec update bundle
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12998 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-04 03:02:17 +00:00
wanghuaz 248de38a9f Added another post script for statefull, stateless and statelite install. Previously IBMhpc.postbootscript and IBMhpc.postscript are only run for statefull install, there is no general HPC script run as postscript for stateless/statelite and postbootscript for statefull. This new IBMhpc.post is supposed to do this. Currently only BSR configuration requires configuration after node installs/boots.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12997 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-04 03:01:02 +00:00
amy0701 c686ea7a85 add rflash_h rflash_v
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12996 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-04 03:00:43 +00:00
wanghuaz 0b918e1761 Make LoadL-scheduler default not be installed. Enable it while installing SN as central manager
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12991 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-01 13:09:22 +00:00
wanghuaz 3b2e1cbb91 Minor changes in gpfs_updates
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12989 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-01 09:14:00 +00:00
wanghuaz df78ea0e51 Updated GPFS postinstall script to install gpfs update rpms.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12988 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-01 08:55:38 +00:00
wanghuaz fea288d4da Updated comment for pe_install-1200 script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12987 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-01 08:46:34 +00:00
wanghuaz 27088833fe Use dd/sha1sum commands to generate checkpoint keys, instead of date/sha1sum command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12984 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-01 06:33:07 +00:00
wanghuaz 74f825bdbb Removed the code to issue essl_install postinstall script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12983 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-01 06:31:07 +00:00
yinle 5728b4defa Add description about lsslp restriction on AIX.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12981 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-01 04:48:24 +00:00
yinle 4837a8831c Remove the part adding multicast route, suggest the user to add and delete it to avoid potential issues.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12979 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-06-01 03:53:16 +00:00
jbjohnso 41c11b4ac5 Have nodeset return a more helpful message when passwd table is missing an entry for esxi when doing esxi operations
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12977 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-31 17:39:47 +00:00
jbjohnso 446d5225d6 Fix blade.pm problem
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12972 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-31 14:12:51 +00:00
zhaoertao 6781104527 fix bugs for 'Deferred firmware update' feature
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12969 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-31 10:31:24 +00:00
zhaoertao fe2c2ae016 fix bug 3530839: rflash for FSP has a syntax error in FSPrflash.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12968 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-31 09:59:34 +00:00
wanghuaz c763c84abf Updated IBMhpc.postbootscript to include latest postscripts for diskfull
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12967 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-31 08:32:59 +00:00
yinle aea1618f0e ix the mistake that lsslp noderange return incomplete information; Fix some type error of verbose information.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12960 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-30 09:00:28 +00:00
yinle 475e6c51df Fix bug 3527493: lsslp return incompete object information
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12958 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-30 08:53:00 +00:00
xq2005 7cc740d191 fix bug 3529429 for kdump failed on non-p7 ih plinux
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12956 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-30 04:47:18 +00:00
jbjohnso 06b056fff6 Fix blade.pm tolerance in a way more targetted at discovery specifically
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12953 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-29 16:07:14 +00:00
jjhua 994846f2b5 move the action setting out of the loop
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12949 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-29 01:59:05 +00:00
jjhua 4de9a682b9 fixed bug 3528842 , improve the performance of rvitals
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12947 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-28 07:48:11 +00:00
lissav 6404d01f22 update version number
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12946 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-25 13:49:26 +00:00
lissav 482febd6e0 fix tabch -h
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12944 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-25 10:42:28 +00:00
yinle 9cc489fbe1 Fix bug 3529398:lsslp -n give inconsistent output
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12941 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-25 08:46:28 +00:00
xq2005 6d4ec668cb copy from 2.8 for supporting kdump on p7 ih by static ip
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12939 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-25 07:17:26 +00:00
wanghuaz bbbd6f0133 Putting loadl in a subdirectory loadl, as gpfs/pe are doing
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12936 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-25 04:20:44 +00:00
wanghuaz eb83262f4f ',' is used to join and split a list string in imgutils.pm, so we cannot use ',' in any place of otherpkg list
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12935 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-25 04:19:17 +00:00
jbjohnso 6bbe69d680 Fix bmcconfig issue with ipv6 networks in table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12933 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-24 20:35:57 +00:00
jbjohnso 1343fe6240 Tweak some messages on slpdiscover
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12932 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-24 20:35:51 +00:00
jbjohnso 6691f1a6a5 Have SLP try node-local scope ipv6. I don't think this is correct, but some targets work better with that destination
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12927 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-24 17:44:59 +00:00
jbjohnso 31af2c1abe Fix problem where nodels could return more data than requested
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12925 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-24 17:14:52 +00:00
nott 3eb9eb7db4 hasn- fix shared_root locking
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12922 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-24 16:52:51 +00:00
jbjohnso 14d8515559 Fix problem where mknb was not satisfied with genesis alone
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12918 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-23 19:20:38 +00:00
nott 566f801972 hasn- fix bad return from doSFScopy
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12914 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-23 18:31:37 +00:00
lissav 8c73c1a3c8 fix defect 3529041
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12912 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-23 18:13:04 +00:00
phamt d35ff774bf Parsed out max-vm from comments
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12910 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-23 14:30:32 +00:00
yinle bf8b2d03e7 Fix bug 3528728:update manpage of lsslp
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12905 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-23 08:24:12 +00:00
xq2005 bff0e289ca copy from 2.8 for kdump on rhel6.2 system x diskless install node
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12894 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-23 06:07:42 +00:00
xq2005 89c9bed215 copy from 2.8 for kdump on rhel6.2
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12885 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-23 03:53:34 +00:00
yinle e01f51e8d5 delete multicast route to fix the losing message issue.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12883 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-23 02:30:46 +00:00
jbjohnso 276f492fd9 Close some filehandles that aren't needed
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12880 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-22 21:11:07 +00:00
phamt 0b08a005db Accept no value for IP or hostname
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12879 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-22 20:25:31 +00:00
nott a973a2c72a hasn- fix hosts, add sync for GPFS and check for spots
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12876 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-22 18:06:31 +00:00
wanghuaz 6c89f08856 Fixing bug 3526601: Don't add duplicated lines into etc/security/limits.conf and also add the settings before '# End of file'
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12874 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-22 14:10:09 +00:00
wanghuaz efc95378d8 Fixing bug 3527741: Add two additional package names in comments. user could uncomment them in case they are necessary
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12873 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-22 13:21:59 +00:00
lissav 16f1ccd713 backout 3528566 , migration issue
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12871 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-22 10:58:07 +00:00
wanghuaz b1bb24b8eb Starting from loadl 5.1.0.3, we can install loadl from otherpkgs with load license exported.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12858 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-22 04:33:52 +00:00
wanghuaz 97c9609793 on system x, pe package names are different on rhel and sles. distinguish them from different package list
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12857 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-22 03:26:23 +00:00
linggao b64c53fb89 restart nw interfaces for netboot and statelite for hardehs postscript
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12851 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-21 20:08:20 +00:00
linggao 07dbe567b1 fix the code to get correct synclist file
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12850 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-21 19:20:41 +00:00
lissav 7f60717bda fix defect 3528566
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12847 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-21 17:38:27 +00:00
jbjohnso fcc2078d54 More cleanly wrap login failures for clicmdns
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12845 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-21 13:59:13 +00:00
yinle 5681fe9fe7 Fix bug 3528509: lsslp -r has no output
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12843 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-21 09:32:49 +00:00
zhaoertao 561bafb554 fix bug 3528520: FB->rspconfig cmm USERID=Passw0rd can't work
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12841 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-21 08:37:36 +00:00
yinle 6b17144d16 Fix bug 3527493:lsslp return incompete object information
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12840 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-21 05:51:37 +00:00
zhaoertao 346a03ba5d merge efix about rspconfig <noderange> textid
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12838 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-21 02:48:29 +00:00
nott bf86ee1a8a hasn- fix provmethod update
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12835 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-20 13:09:45 +00:00
yinle 4efe8bb389 Fix bug 3527493:lsslp return incompete object information
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12834 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-20 09:12:50 +00:00
jbjohnso 684d24db62 Correct typo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12831 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-19 21:54:28 +00:00
jbjohnso b7f6051be2 Fix slpdiscover message to filter out skipped IMMs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12828 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-19 21:35:12 +00:00
jbjohnso f44e74a51f Add subnet mask and gateway setup that was missing previously
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12827 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-19 21:31:48 +00:00
jbjohnso 63edb798e9 Have slpdiscover avoid doing the same IMM multiple times (due to modified SLP retry logic)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12825 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-19 21:13:43 +00:00
nott c7c57c3914 hasn- fix statelite.table and client_data issues
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12823 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-19 20:27:27 +00:00
jbjohnso f6fed410e8 Pull in changes from 2.8 stream
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12822 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-19 14:53:57 +00:00
jbjohnso 7dc173a961 Add a bmcid to allow for out-of-band IMM discovery
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12815 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-18 23:12:43 +00:00
jbjohnso cb995a801a Add setting vlan tag to bmcsetup
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12814 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-18 23:12:37 +00:00
nott 71a904afc7 fixes for mult hasn issues
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12809 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-18 20:58:39 +00:00
jbjohnso 6fa950c8e4 Have blade.pm accept an argument to use correct username and pass, but without key check
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12807 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-18 20:01:01 +00:00
jbjohnso 6145f30b34 Pull in recent esxpm changes from 2.8 stream
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12806 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-18 18:14:09 +00:00
jbjohnso 7aeaa89a46 Correct typo in TZutils that caused very odd messages
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12804 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-18 18:12:39 +00:00
jbjohnso b413e1b33d Add a package to help figure out timezone data across the various syntaxes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12800 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-18 16:26:50 +00:00
jbjohnso 7e0871c456 -Fix race condition where make_slave_controlling_terminal could fail because pty is already closed (surprised this was a race...)
-Fix issue where '-nokeycheck' SSHInteract option was passed into Net::Telnet mistakenly
-Fix problem where Match specification was incorrectly done in SSHInteracte
-Fix problem where rspconfig could hang if the ssh session landed at a prompt
-Fix argument syntax in blade.pm to clicmds

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12797 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-18 15:43:47 +00:00
nott 6546665c29 fix parsing of c_disc_target output
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12795 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-18 14:52:23 +00:00
jbjohnso b45e5f91d1 Pull in SSHInteract from 2.8 stream
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12794 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-18 14:01:39 +00:00
wanghuaz aa1a5f9b35 Fixing bug 3508572. while restarting xcatd on service node, it will try to issue nodeset. for nfs-based statelite, it tries to issue litetree to get a folder and setup NFS exports. The problem is while issuing litetree command, xcatd is not available yet. So we added XCATBYPASS=Y before issuing litetree. After reviewing the context, litetree command is issued only on the CN's service node and the result is also used by the CN's service node only, so adding XCATBYPASS=y should be fine.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12784 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-18 05:48:32 +00:00
yinle 694f5878f8 Modify lsslp man page to support use -T to specify the waiting time.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12781 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-18 03:14:59 +00:00
yinle e4243312d5 Fix bug 3527505: lsslp -V gives no verbose information
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12780 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-18 03:13:30 +00:00
nott 3f7ed4dc69 mult hasn fixes and updates
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12775 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-18 02:09:26 +00:00
jbjohnso 626ed401d6 Put in draft clonevm with specialize for vsphere
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12772 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-17 17:21:17 +00:00
jbjohnso 264668c85f Copy in mboot.c32 from custom path if applicable
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12771 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-17 17:19:48 +00:00
lissav e254505337 fix defect 3526288
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12768 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-17 17:18:05 +00:00
lissav d589de6402 fix for defect 3527641
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12766 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-17 17:04:36 +00:00
jbjohnso 3c0dd360f5 Fix problem where a memory address could inadvertently end up being an argument to sleep by
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12765 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-17 14:03:32 +00:00
wanghuaz ced01fbac9 1. bond-mld is shipped seperately, we should give admin the ability of putting it to different directory and using it. 2. while configuring bond0, only the correctly configured hfx interfaces can be added as bonding slaves. so admin don't need to adjust the interface num
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12762 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-17 11:17:15 +00:00
yinle 201e55a8bc Fix bug 3527194: lsslp -s HMC gives no HMC info
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12758 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-17 08:31:33 +00:00
yinle 40305a94b4 Fix bug 3521680:rspconfig does not work for hmc if hwtype is not set
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12755 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-17 03:32:33 +00:00
yinle 058b8950ab Fix bug 3527194: lsslp -s FRAME -i return no response on Linux ; Add multicast route on AIX
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12754 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-17 01:47:31 +00:00
jbjohnso daec39d3a2 Add a little message on success
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12751 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-16 20:55:43 +00:00
jbjohnso eb1bf16b15 CMM CLI syntax changed, accomodate
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12749 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-16 20:39:12 +00:00
jbjohnso 6720e7900c Have slpdiscover be case insensitive in terms of known mac addresses
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12747 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-16 20:18:27 +00:00
jbjohnso 8066590efc Pull in slpdiscover temporary command for PureFlex support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12746 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-16 20:02:42 +00:00
jbjohnso 8eb33d24d7 Merge blade.pm changes from 2.8 for PureFlex support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12745 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-16 19:54:09 +00:00
jbjohnso 28c28bb9d2 Fix problem where SLP.pm would create too large an SLP packet if there are a number of IPv6 entities on the network
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12743 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-16 17:24:03 +00:00
jbjohnso d799735f35 Fix problem where group membership at startup hounded xCAT commands eternally
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12740 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-16 16:47:57 +00:00
jbjohnso 704ef6932c Have build_cache never consider an older than 5 second cache valid
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12739 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-16 16:42:44 +00:00
jbjohnso 302269ea3f Since use_cache is a bit weird, NodeRange will instead force a build_cache(1) instead
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12737 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-16 15:21:15 +00:00
jbjohnso 22b551750e Have NodeRange make more assurances that it will not be caching data upon explicit request
xcatd explicitly has noderange redo cache if client has a <noderange> element.  This distinguishes it from 'getpostscript' type commands.

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12735 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-16 15:11:39 +00:00
daniceexi 1b14168c84 defect 3525895: roll back the last change. Use the XCATBYPASS to run the commands instead of waiting a while
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12733 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-16 12:25:49 +00:00
daniceexi 91fd0975a5 Add the lease time for dhcpd.conf which can be configured from site table
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12732 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-16 12:25:35 +00:00
zhaoertao a8e56c8263 update Usage for rinv in NGP environment
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12729 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-16 05:59:24 +00:00
zhaoertao c02fa63c57 fix bug 3500317:FB->update the usage & manpage for hw commands
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12728 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-16 05:48:10 +00:00
yinle e359650e27 minor fix
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12727 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-16 03:20:19 +00:00
jbjohnso 413b5ce1f6 Switch xCAT server connection to client back toblocking IO for large segments of code depending on blocking io
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12725 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-15 19:45:01 +00:00
yinle 786c0b9a20 Fix bug 3525761:FB->lsslp -m -z -s CMM missing information in rh6.2
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12723 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-15 13:57:28 +00:00
zhaoertao b10ad91d3c fix bug 3525896: FB rspconfig setting node name with testid= nor working. The modification is not output any information when setting.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12720 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-15 08:49:42 +00:00
ligc fc92c7844a fix for bug 3525943: setuphanfs exports when running mkdsklsnode -b
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12719 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-15 08:45:54 +00:00
yinle 2eb0e018b3 Fix bug 3524622: lsslp return no response on P7 IH
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12700 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-15 07:11:24 +00:00
zhaoertao a395272078 update for perl code of Firmware Deferred update Item
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12673 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-15 03:05:17 +00:00
zhaoertao 077a5e2901 perl code of Deferred Firmware Update item
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12670 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-15 02:36:36 +00:00
daniceexi 1cd1a8388c defect 3524563: keeping the udevd does not hurt anything, so just keep it
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12666 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-14 14:20:36 +00:00
wanghuaz f4e5b2e9e0 libibverbs package names are different between RHELS6 and SLES11, the original PE pkglist are only working for SLES11. So we need to distinguish the difference by adding new pkglists with OS types.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12663 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-14 09:44:47 +00:00
daniceexi 98e9f25aaf defect 3525895: check the status of xcatd before continuing in the xcatconfig
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12662 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-14 09:02:16 +00:00
wanghuaz 79d57e9c49 Fixing bug that basename command required File::Basename pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12660 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-14 08:05:59 +00:00
amy0701 d7a20623d8 reduce sleep time for rpower
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12659 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-14 07:39:19 +00:00
jbjohnso 12910722b5 Correct mistaken variable prefix in optimization work
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12650 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-12 12:02:49 +00:00
jbjohnso f01e654001 Fix problem where nodegroup enumerated groups could last forever, also eliminate calls to retain_cache with (0)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12647 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-12 11:50:36 +00:00
jbjohnso df89dee4c6 When doing getAllNodeAttribs, institute a noderange result cache to avoid many noderange() calls
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12644 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-11 19:33:00 +00:00
jbjohnso c122edd400 More aggressively retain cache
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12643 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-11 18:43:15 +00:00
jbjohnso 2ff852b466 Have monitorctl induce prefetchcache when it's probable in Postage context
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12642 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-11 18:43:08 +00:00
jbjohnso 2ce7244782 Have Postage induce prefetched cache.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12639 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-11 15:31:17 +00:00
jbjohnso eff23d4a3e Have SvrUtils potentiall prefetchcache
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12638 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-11 15:31:09 +00:00
jbjohnso f35700c82e Eliminate needless sql call to get svloglocal
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12635 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-11 14:59:46 +00:00
jbjohnso d3e17f1988 Shave off an unneeded database call
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12633 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-11 14:54:14 +00:00
jbjohnso 710fd4029b Change Postage to induce prefetched cache
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12631 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-11 14:18:09 +00:00
phamt 0d8cf20521 Synched up 2.7 branch with trunk for xCAT-UI and zVM plugin.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12627 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-11 14:10:19 +00:00
jbjohnso 49b144c012 Fix problem where group mapping may get stuck under certain circumstances
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12626 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-11 14:09:36 +00:00
jbjohnso df535ce36d Make sure nodelist never retains a nodelist cache longer than 5 seconds under any condition
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12625 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-11 14:09:29 +00:00
jbjohnso 305559f05b Change option to 'prefetchcache'
Ensure reference counter doesn't go crazy on prefetch

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12624 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-11 14:09:19 +00:00
nott 778ccc9e03 fix epkg parsing in otherpkgs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12622 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-11 12:16:17 +00:00
nott fc0047db9e change return value in prermdsklsnode
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12618 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-11 11:25:14 +00:00
nott f362b67fdb fir rpm name and missing installp_bundle issues
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12616 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-11 11:11:31 +00:00
wanghuaz 8e48144ba3 To configure bond0 working with hf0-7 for HFI DD2.1 and fix a typo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12614 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-11 06:53:12 +00:00
jbjohnso 98ab033cd4 Have Table.pm force flush of more than 5 seconds old, in preparation for more aggresive cache retention
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12612 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-10 20:56:42 +00:00
jbjohnso 47b13acc30 Add 'eagercache' to getNodeAttribs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12611 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-10 20:56:00 +00:00
jbjohnso 775bcb5b9a Try to do more reuse of nodelist objects in db worker
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12609 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-10 20:00:36 +00:00
wanghuaz e2dba9bfb8 Fixing bug 3508572: SvrUtils.pm issues command mkpath, mkpath is included by File::Path, instead of File::Basename. I cannot find any other command that is included by File::Basename, so just replace it with correct one.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12606 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-10 09:26:39 +00:00
immarvin 64075a7d62 fixed bug 3495408 :nodeset offline doc and test
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12604 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-10 08:23:54 +00:00
immarvin 566349a967 fixed bug 3495408 :nodeset offline doc and test
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12603 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-10 08:17:42 +00:00
immarvin c314602e1b fixed bug 3495408 :nodeset offline doc and test
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12602 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-10 08:16:56 +00:00
immarvin 1ea8c0a043 fixed bug 3495408 :nodeset offline doc and test
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12601 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-10 08:16:04 +00:00
immarvin bdc005b7a7 fixed bug 3495408 :nodeset offline doc and test
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12600 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-10 08:14:38 +00:00
ligc 390a5aac46 copy the code from 2.8 to 2.7 to support kdump on SLES
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12594 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-10 06:10:25 +00:00
yinle 3641d4d290 Fix the issue that too many IPs of PRLIST in the package.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12592 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-10 02:52:38 +00:00
nott f34350fd51 add force option
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12587 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-09 15:12:16 +00:00
nott 974fbdbe97 fix merge error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12585 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-09 14:36:43 +00:00
nott 389575a2e6 remove debug msg
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12583 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-09 14:26:39 +00:00
nott c9e5ed1690 don't remove shared resources
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12582 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-09 14:22:55 +00:00
jbjohnso 03c9080081 Have xnba.pm more gracefully recover from error conditions
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12581 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-09 14:13:00 +00:00
zhaoertao 9ccc5d8def NGP update manpage for hw_ctl commands
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12578 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-09 08:56:17 +00:00
jbjohnso 100b7a55d7 Revise getnodetype function to not do N! log entries
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12575 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-08 18:53:27 +00:00
linggao 63d44bec99 fixed the problem in rmc performance monitorng, it will ingore the error nodes instead of quiting
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12571 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-08 17:59:11 +00:00
lissav 4434a60729 fix man page, if no seed given then the seed becomes one of the nodes from the noderange, not necessarily the first
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12568 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-08 16:25:12 +00:00
lissav 09291d399f fix sinv error processing defect 3524781
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12566 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-08 16:21:03 +00:00
nott 5c17e658ce fix resolv_conf bug
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12563 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-08 15:14:15 +00:00
nott c797b691a6 fix resolv_conf info
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12560 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-08 14:18:56 +00:00
zhaoertao 80dcea738a fix bug 3524452: rcons to P7 IH LPAR getting Console not ready error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12559 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-08 04:41:45 +00:00
zhaoertao 2fb15fdecb fix bug 3524452: rcons to P7 IH LPAR getting Console not ready error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12558 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-08 04:40:56 +00:00
jbjohnso e1fc1437cd New command 'tcons' to be like 'wcons' but using tmux instead of x windows
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12556 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-07 18:59:30 +00:00
bp-sawyers 8159dfd0fd Add support for running rcons via sudo on aix
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12554 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-07 18:45:56 +00:00
jjhua 680ef06b3c For DFM lsvm command, the noderange's type should be cec, not fsp
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12552 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-07 14:11:19 +00:00
jjhua 59ae04e6da there may be performance issue in the fix for 3524241, I made the fix again.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12549 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-07 14:06:40 +00:00
yinle 72817fcb81 Add filling-in prlist in the slp request.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12548 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-07 09:42:19 +00:00
yinle 4b4f8fac6b Fix bug 3522940:FB->lsslp no response on aix71D
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12545 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-07 07:49:48 +00:00
zhaoertao 04ba40f28b Wrongly checked in the code about 'firmware deferred update', regress back to the previous revision.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12543 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-07 07:18:09 +00:00
zhaoertao 9b335ce93c fix bug 3519426: FB:rspconfig network=ip,host,gateway,netmask can't work
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12541 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-07 07:02:56 +00:00
yinle 096681629d Fix some mistakes.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12540 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-05 02:07:54 +00:00
jbjohnso 4ca2beecbf Honor addkcmdline parameter in esxi5.x
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12538 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-04 21:05:03 +00:00
jbjohnso 02ee2e25d9 Have ks= in esxi install honor noderes.nfsserver
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12537 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-04 21:04:54 +00:00
jbjohnso a47b354c3e Be content with just a boot.cfg.<whatever>.tmpl file
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12536 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-04 21:04:46 +00:00
jbjohnso f090ea93c7 Have esx.pm put the kernel command line argument on 'b.b00' in tmpl case. It's still not the recommended approarch
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12531 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-04 20:31:36 +00:00
phamt 17f21f23dd Synched up 2.7 branch with trunk for xCAT-UI and zVM plugin.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12529 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-04 15:03:53 +00:00
phamt fe8752991b Synched up 2.7 branch with trunk for xCAT-UI and zVM plugin.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12528 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-04 14:45:17 +00:00
jwsimpson 86d96195bf Defect 3514607 - RPM checks for ifix
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12527 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-04 14:29:20 +00:00
wanghuaz 236888437d To enable PE checkpoint/restart function, PE postinstall script shippted by xCAT should write the checkpoint key to rootimage and so ckpt.sh can read it after boot
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12524 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-04 09:25:13 +00:00
wanghuaz ddf754b1e8 Fixing bug 3523438: ENV variable has issue with full installation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12522 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-04 09:01:47 +00:00
ligc 0e095151f0 fix for bug 3523412: makeconservercf noderange does not work
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12521 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-04 06:28:41 +00:00
daniceexi 0e1efe855e fixed the case that import sshkey failed,but no error message
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12518 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-04 02:18:11 +00:00
yinle 09141b389f Modify the help information about lsslp.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12516 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-04 02:09:03 +00:00
yinle 1d6ba5855d Modify man page of lsslp for new lsslp code.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12515 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-04 02:03:57 +00:00
yinle be3374506d Add support of lsslp -C -T.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12513 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-04 01:43:28 +00:00
jbjohnso 3ab8b8990a Recognize customized ESXi OS images
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12508 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-03 14:21:58 +00:00
yinle 3c416a4004 Add part of lsslp -C -T.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12506 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-03 09:49:48 +00:00
wanghuaz 772c55f8a8 Added pe dependencies pkglist for ppc64.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12504 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-03 09:30:38 +00:00
daniceexi 95eb74c115 handle the case that network setting without output
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12502 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-03 07:22:13 +00:00
yinle a7e4ef2bf1 Fix bug 3522940: FB->lsslp no response on aix71D
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12501 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-03 06:49:07 +00:00
daniceexi deb0391464 Change again for the key work to identify the flex power node
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12499 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-03 06:47:10 +00:00
yinle 9550cef71d Fix some mistakes.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12498 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-03 06:37:59 +00:00
jjhua 07063e64cd For FB, prompt some messages at the beginning of the setting
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12495 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-03 06:26:05 +00:00
wanghuaz e32c79ea02 Generate checkpoint key and store it into the image, ckpt script could ust it after boot
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12494 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-03 06:16:37 +00:00
wanghuaz cdd5887194 Comment BSR configuration since BSR is not supporting x Linux yet. One additional work is to update document to uncomment these configuration if they are working with power linux
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12493 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-03 06:06:39 +00:00
wanghuaz fbb1964488 Add the BSR support for Power Linux nodes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12492 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-03 05:55:44 +00:00
wanghuaz e971db6635 Changed essl/pessl to install from otherpkg and pkglist
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12491 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-03 05:32:09 +00:00
wanghuaz 62149ffeab execute xlf_gen_mpimod script and compile the MPICH2 modules
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12490 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-03 05:29:54 +00:00
jjhua c1ae76f7dc add use xCAT::FSPUtils;
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12489 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-03 05:05:45 +00:00
jjhua e33a93d24a add use xCAT::FSPUtils;
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12485 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-03 04:46:45 +00:00
ligc 18e3c0ef2b fix for bug 3523175: use nfsv3 to mount the statelite directories
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12483 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-03 04:31:05 +00:00
jbjohnso b163fdd290 Have xCAT instances more reliably relay abort commands and cleanly exit on ctrl-c by client
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12480 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 19:57:06 +00:00
linggao 0db0602cd6 doc added for sprcifying --keeprepo for ospkgs postscript
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12478 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 19:14:50 +00:00
jjhua 17de2c7ae5 fixed bug 3522919
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12473 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 13:45:51 +00:00
wanghuaz f083340825 Moved the ckpt script from a seperate directory to pe directory
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12471 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 12:59:17 +00:00
jbjohnso 5795e2a5ea Fix problem where Client could attempt to coalesce data from server that doesn't cleanly cleave an xcat response
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12470 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 12:57:51 +00:00
wanghuaz 44a319233a Added three new rpms that will be shipped on the PE product CD. Also removed mcr.rtc on AIX and PE 1.1.0.0
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12469 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 12:56:04 +00:00
wanghuaz 55a23d07cf Configure bond0 working with hf-x in confighfi postscript
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12466 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 11:22:50 +00:00
wanghuaz 208bd7667a Added top level files for compute.sles11.x86_64
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12461 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 07:50:34 +00:00
wanghuaz d112125042 PE otherpkgs list name has been changed to match different pe rpm names, now changing the upper level pkglist to include correct pe list
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12460 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 07:15:21 +00:00
jjhua 3f98aa66de correct a typo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12458 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 06:43:56 +00:00
jjhua b9ab9c9ab0 use the getIPaddress() in FSPUtils.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12453 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 06:26:43 +00:00
jjhua 80d2041941 use the getIPaddress() in FSPUtils.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12452 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 06:23:43 +00:00
jjhua 8a478034cb use the getIPaddress() in FSPUtils.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12451 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 06:21:58 +00:00
jjhua c2f1d848ff add some comments
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12450 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 06:09:39 +00:00
jjhua aa3250fa44 add more comments to some special cases in preprocess_nodes()
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12447 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 05:50:35 +00:00
wanghuaz c44a1ec540 Updated IBM hpc to use otherpkg list, pkglist and postinstall script to install hpc rpms
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12446 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 05:30:27 +00:00
jjhua 07bfea4df4 modified the comment for getIPaddress and getHcpAttribs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12445 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 05:11:33 +00:00
wanghuaz 5ebe7d4122 Updated GPFS integration to use otherpkg and pkg list to install gpfs rpms
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12444 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 05:10:46 +00:00
wanghuaz ad9443ab47 Update PE integration to use otherpkg and pkg list to install PE rpms in 2.7 branch.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12442 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 05:03:33 +00:00
ligc 58048a474f fix for bug 3522897: not allow chdef -t <object_type> xx=yy to change all objects
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12437 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 02:53:36 +00:00
yinle e48bc39c2b Fix bug 3521914: fsp plugin bug at PPCenergy.pm line 182 with renergy on p7ih
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12436 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-02 02:35:27 +00:00
jbjohnso bf88e7052f Correct problem where xcatd could truncate very large responses
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12430 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-01 20:02:06 +00:00
nott 097c51149c add configdump option
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12428 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-01 19:44:56 +00:00
jbjohnso 9b4a8ccb52 Correct syntax problems in invoking fcntl calls
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12426 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-01 18:28:28 +00:00
jbjohnso 1db4ae7592 Fix problem where a bare newline could cause xcatd to be confused
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12424 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-01 17:52:35 +00:00
nott 7842d3d16d add hasn support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12422 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-01 17:12:13 +00:00
linggao 6d01963146 added --keeprepo flag for ospkgs posctscript
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12418 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-05-01 15:34:01 +00:00
linggao fd6ca4e8d6 Fixed the wrong callback structre that caused defect 3510390
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12416 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-30 19:40:09 +00:00
jbjohnso d7eb796165 Actually include the serial payload in the discovery packet
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12414 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-30 19:27:51 +00:00
jbjohnso adeef7b545 No longer bother trying to do 32-bit only x86 and ppc for genesis image
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12411 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-30 16:24:11 +00:00
jbjohnso 247e71445a Move the new requires more appropriately
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12409 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-30 16:09:12 +00:00
jbjohnso 8b64d60620 Have xCAT require genesis and elilo-xcat
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12408 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-30 16:06:46 +00:00
nott a2fdef3d22 add -k and -u options
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12404 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-30 13:25:40 +00:00
jbjohnso 5b8620cdae Fix discovery to do serial number
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12403 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-30 13:25:19 +00:00
jbjohnso 7e30690442 Correct problem where multiple nics on the same subnet don't quite pan out very well in discovery
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12402 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-30 13:25:12 +00:00
jbjohnso 3b3ce1f894 Pass 2 at correcting xcatd infinite patience with clients
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12397 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-29 00:36:54 +00:00
jbjohnso 57e4d2e508 Rework Client to be more responsive to server code even with the XML coalescing in effect
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12396 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-29 00:36:48 +00:00
jjhua a8db7806d5 remove getIPaddress() from Utils.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12385 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-28 09:16:41 +00:00
jjhua 15b060bf31 performance enhancement for getIPaddress() in FSPxx.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12384 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-28 09:12:29 +00:00
jjhua fed7b1e8ad performance enhancement for getIPaddress() in FIP.pm; some other performace issues will be fixed later.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12383 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-28 09:07:04 +00:00
jjhua d8bb801422 performance enhancement for getIPaddress() in fsp.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12382 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-28 08:59:41 +00:00
jjhua 682d8ec0df performance enhancement for getIPaddress() in blade.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12381 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-28 08:58:20 +00:00
jjhua d3789253c0 performance enhancement for getIPaddress()
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12380 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-28 08:35:40 +00:00
linggao b1c7d3d59d fixed a defect when snmove failed if the source service node is down. defect 3487610
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12378 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-27 18:05:46 +00:00
jwsimpson 3660e5d52d support for shared file system
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12375 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-27 16:02:50 +00:00
jbjohnso 5c1345efb6 Correct typo in xnba plugin
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12373 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-27 14:45:17 +00:00
ligc 795a6ed852 fix for --setuphanfs work with mkdsklsnode -b
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12369 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-27 10:05:49 +00:00
jbjohnso bc8a686c01 Revisit the 'templated' boot config based on refined requirements
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12367 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-26 19:57:02 +00:00
jbjohnso d6e715d8be Support customers wishing to have boot parameters grouped into the same config file as module liste
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12366 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-26 19:56:52 +00:00
bp-sawyers 452806fff5 Added wvid man page
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12363 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-26 19:14:35 +00:00
yinle 6f33b95718 Add retry part to support lsslp -t retrytimes.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12359 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-26 15:33:24 +00:00
jbjohnso 707353d7a4 Fix otherpkgs in the face of robots.txt
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12354 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-26 13:00:25 +00:00
jbjohnso f26491b055 Have wget http ignore robots.txt
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12353 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-26 12:41:08 +00:00
yinle 7f02840237 Fix some mistakes.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12351 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-26 11:47:10 +00:00
yinle 0d1e0e5bd8 Modify lsslp to support invoking SLP.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12349 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-26 10:25:59 +00:00
yinle 0a424f7464 Add SLP.pm to 2.7.2
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12347 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-26 09:00:54 +00:00
jbjohnso a75db50804 Fix typo in previous fix
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12343 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-25 18:25:30 +00:00
bp-sawyers 6e649a1bee Always build the meta rpms and add a buildall=1 option
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12339 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-24 23:12:58 +00:00
bp-sawyers 0cbce7857d Fix xCAT-UI build problem
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12337 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-24 21:02:57 +00:00
jbjohnso 2192a7602d Have Table.pm properly bail out in the event of a bug
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12335 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-24 19:17:43 +00:00
jbjohnso 8957491f43 Table.pm would die unceremoniously when faced with undefined argument, tolerate it
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12333 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-24 18:32:59 +00:00
wanghuaz abc58b4129 Added checkpoint/restart script to setup related environment
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12326 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-24 11:04:23 +00:00
sjing 34958c9a33 the fix for bug 3364300 - only allow root to run xcatbypass mode.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12324 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-24 02:40:18 +00:00
sjing 939d35a0fe the fix for bug 3364300 - not display passwords in xcat commands or logs.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12322 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-24 02:07:03 +00:00
sjing 4b1ffd819e the fix for bug 3364300 - not display passwords in xcat commands or logs.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12320 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-24 02:04:14 +00:00
sjing 15abf7288b the fix for bug 3364300 - not display passwords in xcat commands or logs.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12318 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-24 02:02:06 +00:00
sjing 3e3f0e19b0 the fix for bug 3364300 - not display passwords in xcat commands or logs.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12316 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-24 01:59:41 +00:00
sjing cc606e9a7e the fix for bug 3364300 - not display passwords in xcat commands or logs.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12314 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-24 01:51:35 +00:00
sjing f56a602a71 the fix for bug 3364300 - not display passwords in xcat commands or logs.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12312 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-24 01:48:33 +00:00
sjing 8296ff33c1 the fix for bug 3364300 - not display passwords in xcat commands or logs.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12310 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-24 01:43:22 +00:00
sjing 6f34d48d61 the fix for bug 3364300 - not display passwords in xcat commands or logs.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12308 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-24 01:40:45 +00:00
linggao d28a567b55 drop -t support for genimage, defect 3520753
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12304 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-23 20:46:36 +00:00
lissav 6330c7b0ef fix examples
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12303 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-23 17:41:32 +00:00
jjhua 3541b8b1cc correct the typo, fixed bug 3520431
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12298 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-23 02:57:57 +00:00
lissav 7db647ebaa fix defect 3474497
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12295 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-22 18:56:28 +00:00
lissav 7c6b786a97 get rid of warning for perl -c
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12293 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-22 10:24:43 +00:00
lissav d418f0242b change globals in tabch
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12291 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-22 10:16:42 +00:00
bp-sawyers 5ff7dcad8d Updating 2.7 branch version to 2.7.2
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12289 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-20 13:23:38 +00:00
zhaoertao 8d74c64821 fix bug 3518485 and 3518486, issues about ivm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12285 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-20 03:19:05 +00:00
lissav 9bda95f579 Start of fix for SF3519602
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12280 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-19 18:47:36 +00:00
lissav 5cfc522107 revert perf change
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12279 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-19 15:34:07 +00:00
lissav a60e0144c1 revert Utils.pm no perf changes to getIPaddress
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12277 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-19 15:21:20 +00:00
jwsimpson fdd8fb24fd Defect 3469202 - PMR PMR29062 - update to 2.7 rinv man page for deconfig
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12275 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-19 12:01:18 +00:00
jjhua 8b06f55eb8 performance improvement. collect the CEC/Frames' Children in preprocess_nodes() of PPC.pm, instead of getIPaddress() in Utils.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12272 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-19 10:27:49 +00:00
jjhua 843c7c1d5d performance enhancement. collect the CEC/Frames' Children in preprocess_nodes() of PPC.pm, instead of getIPaddress() in Utils.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12271 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-19 10:24:56 +00:00
zhaoertao 87e4b0c226 fix bug 3511324: rpower got uncorrect output
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12268 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-19 06:55:19 +00:00
zhaoertao df5fafd11d fix bug 3519391: FB:wrong rpower status for 'rvitals bladenode all'
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12266 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-19 06:33:52 +00:00
jjhua fed8cd7685 fix the error of the command mkhwconn frame -s
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12258 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-18 00:51:33 +00:00
jbjohnso 28ffd3d30d Backport change from 2.8 for Client.pm to be more resiliant to SSL negotiation delays
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12257 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-17 21:16:18 +00:00
immarvin a35c04455a fixed defect ID: 3509605 xcatconfig will not setup syslog for xCAT on linux
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12251 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-17 12:52:29 +00:00
jjhua 56d219f881 { } is for required arguments when the user has to choose between several items, one of which is required.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12250 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-17 06:15:41 +00:00
jbjohnso 2121f70ebe Have IPMI not send console data if a basic IPMI health check does not pass.
This means ipmi console backend may spend more time holding a lock when bmcs are unreachable, but it means that the service processor addresses are not pinged all at once

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12243 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-16 00:28:09 +00:00
jbjohnso a1705dc258 Have psh have /dev/null opened as stdin instead of nothing
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12241 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-15 13:12:16 +00:00
jbjohnso 978d0e5876 Fix NetworkUtils.pm to work correctly with IPv6 nets with '/64' in netmask field
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12236 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-14 16:09:22 +00:00
wanghuaz 4a3676c987 Fixing bug 3497120: Not to disable nsddevices by default
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12233 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-13 06:10:32 +00:00
wanghuaz fbd9d250d3 Fixing bug 3512768: minor error in description of postinstall attribute
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12232 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-13 06:02:42 +00:00
zhaoertao 800370a96a delete username HMC from usage page of rspconfig
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12230 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-13 03:09:45 +00:00
linggao a446cc3054 fix defect in ospkgs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12229 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-12 19:28:06 +00:00
linggao 57244d37ef fix defect in ospkgs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12227 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-12 19:25:09 +00:00
lissav 6c70f1ce4e fix incorrect info on timeeout
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12225 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-12 16:01:35 +00:00
ligc 20a8d6583e support updatenode ospkgs for SLES SDK
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12223 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-12 09:29:21 +00:00
jjhua 593f2ee2c9 update the rpower manpage for the -T tooltype
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12220 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-12 08:52:38 +00:00
jjhua 6d78e6aeb7 rpower cec onstandby -T tooltype support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12217 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-12 08:11:00 +00:00
jjhua 3b615c77c2 rpower cec onstandby -T tooltype support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12216 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-12 08:09:50 +00:00
ligc 02673d9bac fix for bug 3496309: print warning message if could not find osimage information for nodes
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12215 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-12 07:57:26 +00:00
immarvin 8112759c2f fixed nfs mount problem and bug:CN fail to acquire eth address during deployment(ID: 3515413)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12207 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-12 03:07:08 +00:00
immarvin 57518648b9 add initialization of environment variable XCATROOT
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12206 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-12 02:58:46 +00:00
jbjohnso e4712c5a5b Have SvrUtils optionally export sendmsg on request
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12199 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-11 14:00:07 +00:00
sjing 9d9d849cc3 not try to give "Error" message when the return code of actual command is non-zero, instead, use the return code of the actual command as the return code of xcatchroot.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12196 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-11 10:35:27 +00:00
zhaoertao 833976f525 use 'USERID' and its password as the account to create link between MN and hdwr_svr for NGP
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12194 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-11 09:20:20 +00:00
sjing 48dc9306ec fixed the issue when -l is specified as '/'
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12193 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-11 05:54:14 +00:00
sjing 9c6cc52d49 check if nim resources exist before copying them to SN.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12191 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-11 04:50:30 +00:00
zhaoertao c5c13da285 fix bug 3513820: no usage for lshwconn/rmhwconn/mkhwconn for NGP
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12189 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-11 02:55:27 +00:00
daniceexi 48a70986b7 fix the issue that rootimg/sys was not umounted by genimage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12185 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-10 17:24:29 +00:00
yinle 1e3916352e Fix bug 3512371: hcp in HMC node definition
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12183 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-10 13:29:48 +00:00
yinle 91150288aa Fix bug 3504211: update xcat from 2.6.11 to 2.7 occur error on sles
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12181 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-10 12:43:28 +00:00
ligc 9f34f9989b fix for bug 3497125: warning message for plain_pkgs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12177 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-10 11:38:18 +00:00
zhaoertao d401f59d7f fix bug 3515394: rspconfig passwd for cmm error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12171 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-10 05:27:21 +00:00
zhaoertao dd953a1d17 fix bug 3513481. There was no command 'getent' in AIX.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12169 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-10 04:52:26 +00:00
jbjohnso 45f6284891 Fix problem where ESXi clone from a non-xCAT template may fail in the face of xCAT mac address management
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12165 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-09 14:05:49 +00:00
yinle 99af6b0de6 Fix bug 3516024: xcatsetup can't define service/storage node over 1 bb
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12163 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-09 08:53:57 +00:00
bp-sawyers 7229fc1501 Improve the hosts table description
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12150 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-06 18:58:57 +00:00
yinle 4e27d62953 Fix bug 3504211: update xcat from 2.6.11 to 2.7 occur error on sles
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12145 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-06 03:29:48 +00:00
yinle 4d4bd8bba5 Fix bug 3504211: update xcat from 2.6.11 to 2.7 occur error on sles
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12144 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-06 03:27:02 +00:00
zhaoertao 50e4c46d4f fix bug 3513522: provide more detailed information for 'conn' command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12140 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-06 02:16:42 +00:00
jbjohnso b03e4f2b33 Fix problem where mknb failed to create a correct discovery configuration on rhel6 uefi environments
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12137 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-05 21:11:54 +00:00
jbjohnso ffa7c5942a Remove extraneous set -x
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12136 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-05 17:07:42 +00:00
sjing 0ab7c79a91 Fixed the bug -f does not work if the Cstate of nim machine is ready.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12133 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-05 14:15:08 +00:00
zhaoertao 755bb7ca8e fix bug 3513160: update manpage for rscan
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12129 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-05 06:05:25 +00:00
yinle 3beebf6ccb Fix bug 3515039: xcatsetup define service node error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12128 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-05 03:21:00 +00:00
linggao 0dfad6d08a fix the error callback in dhcp.pm
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12124 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-04 20:10:16 +00:00
jbjohnso aa42b86b24 Fix nodestat reliability issue
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12119 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-04 17:53:36 +00:00
lissav 7c93367b42 fix tabch -h
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12116 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-04 14:58:05 +00:00
mellor 85a99288d4 defect 3491680 avoid LL error when setting same config values
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12114 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-03 21:54:56 +00:00
lissav 9a0840e5bb fix defect 3514127
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12101 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-02 20:22:20 +00:00
lissav 620d2a4ff7 fix defect 3513526
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12098 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-02 20:07:53 +00:00
daniceexi f442fe034d fix the issue if having entry has dir path in the .pkglist, genimage failed
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12094 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-02 17:39:46 +00:00
jjhua 312c17e2c5 fixed the point 2 of defect 3513208, when run genimage with mlnxofed_ib_install twice for sles11sp1, the genimage will fail. A special case for sles11sp1
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12085 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-01 06:34:56 +00:00
ligc e4d9ae9955 fix for bug 3487614: xcataixpost: add timestamp when running postscripts
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12084 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-01 03:57:47 +00:00
ligc f0951d09f0 fix for bug 3487614: change to /xcatpost/mypostscript and add timestamp when running postscripts
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12081 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-04-01 02:16:18 +00:00
ligc c3f6fde2fc fix for bug 3487614: add timestamp when running postscripts
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12079 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-31 02:58:07 +00:00
jbjohnso 776a6f936d Add a hidden ripmi directive for debug and development support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12076 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-30 18:33:15 +00:00
zhaoertao dabda08b40 modify the fsp-api action for rpower cycle to support rbootseq
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12070 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-30 05:45:42 +00:00
jjhua 807f563d11 add the pciutils and pciutils-libs because we use the lspic in the mlnxofed_ib_install scripts.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12068 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-30 05:12:27 +00:00
wanghuaz 101ac6c3aa revert 12048 since enabling /proc in rootimage will cause xcat-server and other possible packages think they are installed on a running system and try to start their services. This should not be an good solution to handle the previous problem.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12066 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-30 04:05:56 +00:00
linggao 4e5597ce72 minor fix for getNodesetStates in pxe and yaboot
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12064 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-29 22:15:52 +00:00
linggao f42e832599 More efficient when calling getstate for pxe,xnba and yaboot during node deployment or updatenode
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12062 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-29 20:30:12 +00:00
nott cdedc212fe add configdump to nimimage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12058 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-29 19:42:15 +00:00
linggao 29ce8ffd81 fixed the compiling error
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12056 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-29 19:07:28 +00:00
jbjohnso 23a37e993d Have xnba.pm cope with extrnal cals to getstate
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12055 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-29 18:15:31 +00:00
jbjohnso aa0c1698e5 Apply changes from xnba.pm to pxe.pm and yaboot.pm for getstate external calls
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12054 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-29 18:15:17 +00:00
jbjohnso f9715aaebb Change psh to not leave STDIN open. Hopefully this helps ssh not get hung up expecting enters inexplicably
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12050 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-29 13:31:04 +00:00
wanghuaz 4b67f2df5e some hpc packages listed in otherpkg list requires /proc filesystem. Previously those packages are installed from postintall script and the postintall script mounted /proc filesystem for them. Now if use otherpkgs to install HPC packages, we have to mount /proc file system also.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12048 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-29 08:26:15 +00:00
jjhua 4f7ecb3202 fixed the bug 3512662, add the ib rh into the xCAT-server.spec
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12045 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-29 04:49:41 +00:00
ligc 5b31caf7ac fix for bug 3487614: move scripts to /xcatpost/mypostscript* and the requirement from bug 3497125
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12043 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-29 03:14:16 +00:00
wanghuaz 5a924514d2 add minor change to last checkin
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12040 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-29 02:52:37 +00:00
mellor 26c633ad65 defect 3476911 rollupdate check for bad input values
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12038 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-28 19:43:06 +00:00
nott 988ea46a25 add support for dump re-target
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12035 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-28 13:32:42 +00:00
jjhua d66a5fa15b fixed defect 3512263.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12034 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-28 12:36:02 +00:00
mellor 01a79ef71e defect 3504334 rollupdate fix rpower check for x86
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12032 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-28 12:24:51 +00:00
linggao f47240a349 added interactive flag for genimage prompt
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12026 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-27 20:56:51 +00:00
linggao fb9ac6c45c man page update for genimage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12024 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-27 20:23:46 +00:00
linggao 8fc204c7b1 added interactive feature for genimage
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12022 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-27 19:20:36 +00:00
lissav 97f5def116 Add additional LL setup for authentication when running db2sqlsetup -S -o
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12020 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-27 15:16:10 +00:00
zhaoertao a2d14e557e delete the using and implementation of getNodeSpecAttribs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12018 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-27 11:24:58 +00:00
jjhua 3cc2e2ff42 correct the loop number
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12013 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-27 02:43:39 +00:00
jjhua cbc2d07d59 For AIX, remove the original ib configuration; use the loop number instead of 0, 1, 2...
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12012 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-27 02:09:16 +00:00
jjhua 6a4febe201 For AIX, remove the original ib configuration; use the loop number instead of 0, 1, 2...
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12011 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-27 02:09:04 +00:00
jbjohnso 8aef3e9e81 Enhance mktoolscenter
support multiple repositories, more obviously fail on mount error, give usage in the face of unrecognized cli arguments
support mounting from an external nfs source rather than xcat

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12008 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-26 19:48:07 +00:00
jbjohnso 70cb145a71 Have MacMap throttle itself to 64 switches at a time to fend off memory starvation
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12006 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-26 17:36:51 +00:00
wanghuaz 05f96f37a6 add the support to delete all multiple mac addresses from lease file
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11996 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-26 03:50:30 +00:00
jbjohnso 26bf6e2641 Have relay_fds work to try to batch more xml transformations together generically to improve execution time
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11994 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-25 18:11:19 +00:00
jbjohnso a4c4d6b1bb Remove leftover extraneous output from xcatd
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11992 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-25 17:48:57 +00:00
jbjohnso b81df35469 Have Client work to aggregate some XML processing
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11991 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-25 17:48:51 +00:00
jbjohnso 68e575a69d Have xcatd bulk xml transform 'unable to find plugin to handle' message to cut back server load'.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11990 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-25 17:48:44 +00:00
jbjohnso 01a0cec3e7 Avoid redundant calls to the same table to do plugin lookup during plugin_command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11983 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-25 15:15:29 +00:00
jbjohnso dacd2690c4 Rework plugin_comand to use XCATSITEVALS instead of polling site table for select plugins
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11982 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-25 15:15:21 +00:00
jbjohnso 2f1b7d8fb6 Fix problem where Table.pm fails to skip cache for low nodecounts
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11981 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-25 15:15:14 +00:00
bp-sawyers 057b9e72ef Fix bug in buildcore.sh where it would not uppercase the args in some cases
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11979 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-24 13:25:55 +00:00
nott d597130b9b fix for rc.dd_boot script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11975 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-23 19:03:12 +00:00
jbjohnso c18868d850 Fix other typos
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11973 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-23 15:17:08 +00:00
jbjohnso af3ed02824 Fix teh other typo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11972 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-23 15:17:01 +00:00
jbjohnso ee107f1f51 fix typo in doxcat
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11971 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-23 15:16:34 +00:00
lissav 661484b4c1 Do not add otherpkgs for AIX defect 3508761
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11968 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-23 15:05:53 +00:00
jbjohnso 82c5ed555f Update other p* commands to also be sudo friendly
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11965 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-23 12:56:06 +00:00
jbjohnso 7bed33128a Fix psh to update homedirectory in event of sudo
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11964 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-23 12:55:52 +00:00
jbjohnso 0deb64b53a Have rcons check and set $HOME since sudo won't give an accurate looking home directory
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11963 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-23 12:55:42 +00:00
jbjohnso bd4af1093f Have xCAT more aggressively drain the listen queue on the main listening socket.
This change manages to have xCAT successfully field a large amount of incoming connections with a relatively small listen queue.

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11962 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-23 12:55:35 +00:00
jjhua 03ccf3c095 fixed 3499932 and 3499065: remove the original ib configuration; use the loop number instead of 0, 1, 2...
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11961 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-23 09:43:58 +00:00
zhaoertao ddf0b1ae4c for bug 3510200: only don't user HMC
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11958 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-23 09:35:59 +00:00
zhaoertao 1dfaa46360 fix bug 3510200: can use username other than USERID
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11955 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-23 08:42:48 +00:00
ligc 9d9c0e34b9 fix for bug 3487614: Full installation, extract the common code for generating the mypostscript file and make it common across all scripts
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11954 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-23 08:33:05 +00:00
daniceexi 988b15d7f1 defect 3496107: remove the uninstall of OpenIPMI-tools and tftp-server, try to install conserver-xcat instead of conserver
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11950 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-23 01:58:23 +00:00
lissav 4ee0d8586c check for AIX in otherpkgs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11943 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-22 13:49:38 +00:00
ligc cc8a9e645e fix for bug 3509482: use SNs ip addresses known by compute nodes as the replication list
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11941 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-22 08:39:36 +00:00
ligc 690377bc42 fix for bug 3509482: use SNs ip addresses known by compute nodes as the replication list
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11938 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-22 08:32:03 +00:00
jbjohnso 413dd37b21 Fix tftp startup for systems that have explicitly disabled IPv6 in kernel
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11934 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-21 16:01:46 +00:00
daniceexi eab6f3e3fc fixing bug 3490738: for getmacs -F option, mac address now can be with or without colon, uppercase and lowcase is also supported.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11931 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-21 09:55:38 +00:00
daniceexi 658c947ca6 defect 3508456: add env vars XCATROOT and PATH in the /etc/environment for aix so that xcatd can be started successfully from /etc/inittab
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11928 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-21 09:17:39 +00:00
yinle 1a33167500 Fix bug 3504211:update xcat from 2.6.11 to 2.7 occur error on sles
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11926 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-21 07:27:49 +00:00
zhaoertao 590061470b fix bug 3500392: FB->console abnormal if off/on blade
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11923 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-21 07:14:09 +00:00
ligc 0311b2a153 fix for bug 3509543: mknimimage -u nfs_vers=4 to work with multiple installp_bundles
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11918 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-21 02:21:25 +00:00
jbjohnso 97f09d34d4 Have xCATd more robustly give client 5 seconds to receive message
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11914 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-20 18:37:57 +00:00
bp-sawyers 2c89d9d93a Have the xCAT rpms require the more specific version of perl-xCAT (e.g. 2.7.1 instead of 2.7)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11913 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-20 15:50:48 +00:00
linggao a18ae5b90d fix a problem in otherpkgs
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11910 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-20 14:16:23 +00:00
daniceexi 69a57acdd2 Add the script detect_dhcpd for dhcp server detecting
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11908 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-20 08:13:08 +00:00
wanghuaz 1868e85c57 fixing bug 3505826: don't run yum install command if otherpkg list only contains marked removable pkg and no package marked to install. Same change in trunk revision: 11879
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11905 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-20 06:36:34 +00:00
wanghuaz 31ca57bcfe install pe license rpm and accept the licenses by default
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11903 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-20 05:51:12 +00:00
bp-sawyers 9f87a1d437 Update 2.7 branch to version 2.7.1
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11898 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-19 20:04:22 +00:00
daniceexi fa625d5ee3 fixed the issue that xnba,pxe,vsmppex,yaboot failed for service node when no valid nodes in the handled network
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11881 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-16 10:27:16 +00:00
wanghuaz 926c88c43e fixed a problem in power 775 that compute node cannot get its xcatserver ip from dhcp server over hfi, which was introduced by revision 10534.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11880 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-16 10:17:17 +00:00
jbjohnso e7a7110d90 Don't try to sabotage tftp unless sure new tftp can work
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11874 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-15 15:51:17 +00:00
jbjohnso a056b3545c Refine tftp startup handling to cope better with more states (dealing with xinetd reconfiged or not reconfiged, xinetd without tftp slave active and with slave active)
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11873 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-15 15:47:32 +00:00
jbjohnso 06ce5ebcde Change tftp to run standalone instead of xinetd slave to fix various limitations of the xinetd approach
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11871 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-15 15:22:59 +00:00
phamt 8319b93f7d Changed unknown node type label
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11869 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-15 14:14:17 +00:00
phamt 6f381c4c06 Removed trailing comma.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11866 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-15 13:58:10 +00:00
phamt 3999e51990 Removed trailing comma.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11865 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-15 13:52:11 +00:00
phamt d98365a5c1 Fixed select all checkbox in nodes table.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11863 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-15 13:38:33 +00:00
phamt f71fcc1417 Synced web.pm with trunk version.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11861 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-15 12:49:11 +00:00
phamt 037b2f3ebd Fixed bugs on System p provision page.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11857 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-15 05:11:58 +00:00
phamt e6eb66e24b Fixed rcons to reference jquery.min.js. Added IP address and hostname range to z/VM clone and provision page. Updated update page with new links to xCAT repository. Cleaned up code.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11853 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-14 19:23:51 +00:00
phamt e27ed6274b Removed rconsShow.php so it could be updated.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11852 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-14 19:21:55 +00:00
bp-sawyers 3438dcda53 Fix problem of not building nbroot-core rpms
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11849 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-14 19:20:34 +00:00
phamt 903e828ea2 Fixed add node dialogs. Added change password option under Settings. Cleaned up code.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11846 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-14 04:46:08 +00:00
jjhua 4410c8b363 add the rpower with cycle action for NGP
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11843 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-13 14:19:45 +00:00
zhaoertao a6a8f4496e modify the output of 'rpower blade state'
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11840 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-13 14:02:23 +00:00
zhaoertao f61ccd70f3 fix bug 3500392: the DFM link between hdwr_svr and blades need to be reconnected
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11838 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-13 11:42:37 +00:00
daniceexi 30c1692f78 update the output format of rscan
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11837 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-13 11:37:10 +00:00
zhaoertao c18b4d630d modify the output of rpower blade state
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11834 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-13 04:31:58 +00:00
zhaoertao f431dc1800 use 'cec_state' instead of 'bpa_state' for 'rpower blade state'
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11831 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-13 03:05:46 +00:00
jbjohnso 65e98ce27d Offer '-o' to force powerdown on failed suspend attempt, '-r' to force reset
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11830 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-12 21:06:07 +00:00
lissav 70d0d7a9c9 fix defect 3502735
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11823 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-12 17:02:41 +00:00
daniceexi 394a9e21aa fix the issue for xcatdebug:1. aix cannot recognize the signal NUM50,NUM51. 2. the xcatdeug -f does not work after the change that loading plugin when really running of command
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11821 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-12 11:53:12 +00:00
jjhua b0865ca040 rinv manpage update for NGP
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11820 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-12 09:43:52 +00:00
jjhua 9863bd83d8 rspconfig manpage updates for NGP
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11819 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-12 09:41:49 +00:00
zhaoertao c1a4a2b7a6 change the time interval used to retry rcons to more than 30 seconds
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11817 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-12 09:16:44 +00:00
zhaoertao 6c35430c8c fix bug 3496892: need to check the state of lpar strictly
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11814 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-12 07:48:12 +00:00
xq2005 3333e8d7fd ganglia gmetad configure file
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11812 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-12 03:31:22 +00:00
bp-sawyers 5bc8f7bd96 A https://xcat.svn.sourceforge.net/svnroot/xcat/xcat-core/branches/2.7
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@11806 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2012-03-09 14:05:30 +00:00
370 changed files with 57459 additions and 38338 deletions
+1 -1
View File
@@ -1 +1 @@
2.7
2.7.6
+10 -5
View File
@@ -23,6 +23,7 @@
# Otherwise, and snap build is assumed.
# PREGA=1 - means this is a branch that has not been released yet, so during the promote, copy the
# xcat-core tarball to the SF web site instead of the FRS area.
# BUILDALL=1 - build all rpms, whether they changed or not. Should be used for snap builds that are in prep for a release.
# UP=0 or UP=1 - override the default upload behavior
# SVNUP=<filename> - control which rpms get built by specifying a coresvnup file
# FRSYUM=0 - put the yum repo and snap builds in the old project web area instead of the FRS area.
@@ -36,7 +37,7 @@ FRS=/home/frs/project/x/xc/xcat
# Process cmd line variable assignments, assigning each attr=val pair to a variable of same name
for i in $*; do
# upper case the variable name
varstring=`echo "$i"|cut -d '=' -f 1|tr [a-z] [A-Z]`=`echo "$i"|cut -d '=' -f 2`
varstring=`echo "$i"|cut -d '=' -f 1|tr '[a-z]' '[A-Z]'`=`echo "$i"|cut -d '=' -f 2`
export $varstring
done
if [ "$VERBOSE" = "1" -o "$VERBOSE" = "yes" ]; then
@@ -138,6 +139,10 @@ if [ -z "$SVNUP" ]; then
echo "svn up > $SVNUP"
svn up > $SVNUP
fi
SOMETHINGCHANGED=0
if ! $GREP 'At revision' $SVNUP; then
SOMETHINGCHANGED=1
fi
# Process for making most of the rpms
function maker {
@@ -154,7 +159,7 @@ function maker {
}
# If anything has changed, we should always rebuild perl-xCAT
if ! $GREP 'At revision' $SVNUP; then # Use to be: $GREP perl-xCAT $SVNUP; then
if [ $SOMETHINGCHANGED == 1 -o "$BUILDALL" == 1 ]; then # Use to be: $GREP perl-xCAT $SVNUP; then
UPLOAD=1
maker perl-xCAT
fi
@@ -165,7 +170,7 @@ fi
# Build the rest of the noarch rpms
for rpmname in xCAT-client xCAT-server xCAT-IBMhpc xCAT-rmc xCAT-UI xCAT-test; do
if $GREP $rpmname $SVNUP; then
if $GREP $rpmname $SVNUP || [ "$BUILDALL" == 1 ]; then
UPLOAD=1
if [ "$EMBED" = "zvm" -a "$rpmname" != "xCAT-server" -a "$rpmname" != "xCAT-UI" ]; then continue; fi # for embedded envs only need to build server special
maker $rpmname
@@ -178,7 +183,7 @@ for rpmname in xCAT-client xCAT-server xCAT-IBMhpc xCAT-rmc xCAT-UI xCAT-test; d
done
if [ "$OSNAME" != "AIX" -a "$EMBED" != "zvm" ]; then
if $GREP -v nbroot2 $SVNUP|$GREP xCAT-nbroot; then
if grep -v nbroot2 $SVNUP|$GREP xCAT-nbroot || [ "$BUILDALL" == 1 ]; then
UPLOAD=1
ORIGFAILEDRPMS="$FAILEDRPMS"
for arch in x86_64 x86 ppc64; do
@@ -197,7 +202,7 @@ fi
# Build the xCAT and xCATsn rpms for all platforms
for rpmname in xCAT xCATsn; do
if [ "$EMBED" = "zvm" ]; then break; fi
if $GREP -E "^[UAD] +$rpmname/" $SVNUP; 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
+12
View File
@@ -105,6 +105,18 @@ rm -rf $RPM_BUILD_ROOT
# Just package everything that has been copied into RPM_BUILD_ROOT
%{prefix}
%pre
# only need to check on AIX
%ifnos linux
if [ -x /usr/sbin/emgr ]; then # Check for emgr cmd
/usr/sbin/emgr -l 2>&1 | grep -i xCAT # Test for any xcat ifixes - msg and exit if found
if [ $? = 0 ]; then
echo "Error: One or more xCAT emgr ifixes are installed. You must use the /usr/sbin/emgr command to uninstall each xCAT emgr ifix prior to RPM installation."
exit 2
fi
fi
%endif
%post
%ifos linux
if [ "$1" -gt 1 ]; then #Ugrade only, restart daemon and migrate settings
+129 -36
View File
@@ -35,6 +35,9 @@ unless ($inet6support) {
use XML::Simple; #smaller than libxml....
use Fcntl;
use POSIX qw/:errno_h/;
use IO::Select;
$XML::Simple::PREFERRED_PARSER='XML::Parser';
#require Data::Dumper;
my $xcathost='localhost:3001';
@@ -44,6 +47,30 @@ my $EXITCODE; # save the bitmask of all exit codes returned by calls to hand
1;
sub rspclean {
my $response = shift;
my $callback = shift;
my $rsps = XMLin($response,SuppressEmpty=>undef,ForceArray=>1);
foreach my $rsp (@{$rsps->{xcatresponse}}) {
#add ESC back
foreach my $key (keys %$rsp) {
if (ref($rsp->{$key}) eq 'ARRAY') {
foreach my $text (@{$rsp->{$key}}) {
next unless defined $text;
$text =~ s/xxxxESCxxxx/\e/g;
}
}
else {
$rsp->{$key} =~ s/xxxxESCxxxx/\e/g;
}
}
$callback->($rsp);
if ($rsp->{serverdone}) {
return 1;
}
}
return 0;
}
#################################
# submit_request will take an xCAT command and pass it to the xCAT
# server for execution.
@@ -91,13 +118,22 @@ sub submit_request {
unless ($certfile) { $certfile = $homedir."/.xcat/client-cred.pem"; }
unless ($cafile) { $cafile = $homedir."/.xcat/ca.pem"; }
$xCAT::Client::EXITCODE = 0; # clear out exit code before invoking the plugin
$request->{clienttype}->[0] = "cli"; # setup clienttype for auditlog
if (ref($request) eq 'HASH') { # the request is an array, not pure XML
$request->{clienttype}->[0] = "cli"; # setup clienttype for auditlog
}
# If XCATBYPASS is set, invoke the plugin process_request method directly
# without going through the socket connection to the xcatd daemon
if ($ENV{XCATBYPASS}) {
#add current userid to the request
if (!(defined($request->{username}))) {
$request->{username}->[0] = getpwuid($>);
if (ref($request) eq 'HASH') { # the request is an array, not pure XML
if (!(defined($request->{username}))) {
$request->{username}->[0] = getpwuid($>);
}
# only allow root to run
unless ($request->{username}->[0] =~ /root/) {
print ("WARNING: Only allow root to run XCATBYPASS mode, your current user ID is $request->{username}->[0].\n");
return 0;
}
}
# Load plugins from either specified or default dir
require xCAT::Table;
@@ -134,22 +170,41 @@ $request->{clienttype}->[0] = "cli"; # setup clienttype for auditlog
if ($ENV{XCATHOST}) {
$xcathost=$ENV{XCATHOST};
}
my $client;
if (-r $keyfile and -r $certfile and -r $cafile) {
$client = IO::Socket::SSL->new(
my $pclient;
if ($inet6support) {
$pclient = IO::Socket::INET6->new(
PeerAddr => $xcathost,
SSL_key_file => $keyfile,
SSL_cert_file => $certfile,
SSL_ca_file => $cafile,
SSL_use_cert => 1,
Timeout => 15,
);
} else {
$client = IO::Socket::SSL->new(
$pclient = IO::Socket::INET->new(
PeerAddr => $xcathost,
Timeout => 15,
);
}
unless ($pclient) {
print "Unable to open socket connection to xcatd daemon on $xcathost.\n";
print "Verify that the xcatd daemon is running and that your SSL setup is correct.\n";
if ($@ =~ /SSL Timeout/) {
die "Connection failure: SSL Timeout or incorrect certificates in ~/.xcat";
} else {
die "Connection failure: $@"
}
}
my $client;
if (-r $keyfile and -r $certfile and -r $cafile) {
$client = IO::Socket::SSL->start_SSL($pclient,
SSL_key_file => $keyfile,
SSL_cert_file => $certfile,
SSL_ca_file => $cafile,
SSL_use_cert => 1,
Timeout => 0,
);
} else {
$client = IO::Socket::SSL->start_SSL($pclient,
Timeout => 0,
);
}
unless ($client) {
print "Unable to open socket connection to xcatd daemon on $xcathost.\n";
print "Verify that the xcatd daemon is running and that your SSL setup is correct.\n";
@@ -159,7 +214,13 @@ $request->{clienttype}->[0] = "cli"; # setup clienttype for auditlog
die "Connection failure: $@"
}
}
my $msg=XMLout($request,RootName=>'xcatrequest',NoAttr=>1,KeyAttr=>[]);
my $msg;
if (ref($request) eq 'HASH') { # the request is an array, not pure XML
$msg=XMLout($request,RootName=>'xcatrequest',NoAttr=>1,KeyAttr=>[]);
} else { #XML
$msg=$request;
}
if ($ENV{XCATXMLTRACE}) { print $msg; }
if($ENV{XCATXMLWARNING}) {
validateXML($msg);
@@ -169,39 +230,60 @@ $request->{clienttype}->[0] = "cli"; # setup clienttype for auditlog
my $response;
my $rsp;
my $cleanexit=0;
while (<$client>) {
$response .= $_;
if (m/<\/xcatresponse>/) {
my $massresponse="<massresponse>";
my $nextcoalescetime=time()+1;
my $coalescenow=0;
my $flags=fcntl($client,F_GETFL,0);
$flags |= O_NONBLOCK; #select can be a bit.. fickle, make sysread work more easily...
fcntl($client,F_SETFL,$flags);
my $clientsel = new IO::Select;
$clientsel->add($client);
my $line;
my $newdata=0;
while (1) {
my $shouldexit;
if ($newdata and ($coalescenow or time() > $nextcoalescetime)) {
$coalescenow=0;
$newdata=0;
$nextcoalescetime=time()+1;
$massresponse .= "</massresponse>";
$shouldexit = rspclean($massresponse,$callback);
$massresponse="<massresponse>";
}
if ($shouldexit) {
$cleanexit=1;
last;
}
$line = "";
$clientsel->can_read(0.5);
my $readbytes;
do { $readbytes=sysread($client,$line,65535,length($line)); } while ($readbytes);
unless (length($line)) {
if (not defined $readbytes and $! == EAGAIN) { next; }
last;
}
$newdata=1;
$response .= $line;
if ($line =~ m/<\/xcatresponse>\s*\z/) {
if ($line =~ /serverdone/) { $coalescenow=1; } #if serverdone was detected, hint at coalesce code to flush things out now
#this means that coalesce can be triggered by stray words in the output prematurely, but that's harmless
#replace ESC with xxxxESCxxx because XMLin cannot handle it
$response =~ s/\e/xxxxESCxxxx/g;
if ($ENV{XCATXMLTRACE}) { print $response; }
$rsp = XMLin($response,SuppressEmpty=>undef,ForceArray=>1);
$massresponse.=$response;
$response='';
if($ENV{XCATXMLWARNING}) {
validateXML($response);
}
#add ESC back
foreach my $key (keys %$rsp) {
if (ref($rsp->{$key}) eq 'ARRAY') {
foreach my $text (@{$rsp->{$key}}) {
next unless defined $text;
$text =~ s/xxxxESCxxxx/\e/g;
}
}
else {
$rsp->{$key} =~ s/xxxxESCxxxx/\e/g;
}
}
$response='';
$callback->($rsp);
if ($rsp->{serverdone}) {
$cleanexit=1;
last;
}
}
}
if (not $cleanexit and $massresponse ne "<massresponse>") {
$massresponse .= "</massresponse>";
$cleanexit = rspclean($massresponse,$callback);
}
$massresponse="";
unless ($cleanexit) {
print STDERR "ERROR/WARNING: communication with the xCAT server seems to have been ended prematurely\n";
}
@@ -301,6 +383,12 @@ sub plugin_command {
require xCAT::Table;
$Main::resps={};
my $xmlreq;
if (ref($req) ne 'HASH') { # the request XML, get an array
$xmlreq=$req; # save the original XML
$req = XMLin($xmlreq,SuppressEmpty=>undef,ForceArray=>1) ;
}
my @nodes;
if ($req->{node}) {
@nodes = @{$req->{node}};
@@ -891,6 +979,11 @@ sub build_response {
##########################################
sub handle_response {
my $rsp = shift;
if ($ENV{'XCATSHOWXML'}) {
my $xmlrec=XMLout($rsp,RootName=>'xcatresponse',NoAttr=>1,KeyAttr=>[]);
print "$xmlrec\n";
return;
}
#print "in handle_response\n";
# Handle errors
if ($rsp->{errorcode}) {
+4 -4
View File
@@ -2278,11 +2278,11 @@ sub getnodetype
##################################################
# give error msg for the nodes can't get nodetype
##################################################
if ( @failnodes1 ) {
my $nodelist = join(",", @failnodes1);
xCAT::MsgUtils->message('S', "getnodetype:Can't find these nodes' type: $nodelist.\n");
}
}
if ( @failnodes1 ) {
my $nodelist = join(",", @failnodes1);
xCAT::MsgUtils->message('S', "getnodetype:Can't find these nodes' type: $nodelist.\n");
}
}
}
#####################
+53 -22
View File
@@ -777,6 +777,7 @@ sub fork_fanout_dcp
#eval "require RemoteShell::$rsh_extension";
eval "require xCAT::$rsh_extension";
my $remoteshell = "xCAT::$rsh_extension";
# HERE: Build the dcp command based on the arguments
@dcp_command =
$remoteshell->remote_copy_command(\%rcp_config, $remote_copy);
@@ -4073,23 +4074,6 @@ sub parse_and_run_dcp
return;
}
}
if ($options{'File'})
{
# input -F file is copied to tmp file on a service node
if (xCAT::Utils->isServiceNode())
{ # running on service node
$options{'File'} = "/tmp/xcatrf.tmp";
}
my $syncfile = $options{'File'};
if (!-f $options{'File'})
{
my $rsp = ();
$rsp->{data}->[0] = "File:$syncfile does not exist.";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK, 1);
return;
}
}
# invalid to put the -F with the -r flag
if ($options{'File'} && $options{'node-rcp'})
@@ -4207,6 +4191,17 @@ sub parse_and_run_dcp
$synfiledir = $syndir[0];
}
# input -F file is sync'd to site.syncfiledir on the service node
# filename directory already changed
my $syncfile = $options{'File'};
if (!-f $options{'File'})
{
my $rsp = ();
$rsp->{data}->[0] = "File:$syncfile does not exist.";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK, 1);
return;
}
my $rc;
my $syncfile = $options{'File'};
# the parsing of the file will fill in an array of postscripts
@@ -4220,9 +4215,36 @@ sub parse_and_run_dcp
}
else
{ # running on MN
# build the files to sync from the nodes sync file
$rc =
&parse_rsync_input_file_on_MN(\@nodelist, \%options, $syncfile,
$::SYNCSN, $synfiledir);
if ($::SYNCSN ==1) { # syncing a servicenode
# build a temporary syncfile for the node's synclist
# we need to make sure the latest is on the servicenode
# for running of the syncfiles postscript, which only pulls
# from the service node
my $tmpsyncfile="/tmp/xdcpsynclist.$$";
my $syncline = "$syncfile -> $syncfile";
open(FILE, ">$tmpsyncfile")
or die "cannot open file $tmpsyncfile\n";
print FILE " $syncline";
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);
# cleanup
my $cmd = "rm $tmpsyncfile";
my @output = xCAT::Utils->runcmd($cmd, 0);
if ($::RUNCMD_RC != 0)
{
my $rsp = {};
$rsp->{data}->[0] = "Command: $cmd failed.";
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
}
}
}
if ($rc == 1)
{
@@ -4251,9 +4273,13 @@ sub parse_and_run_dcp
}
else
{
$options{'target'} = '';
$options{'source'} = pop @ARGV;
{
# HERE:only one line of input source and target in that line
# such as xdcp -R " /test/* /test"
my $tmparg = pop @ARGV;
my ($src,$tgt) = split " ", $tmparg;
$options{'target'} = $tgt;
$options{'source'} = join $::__DCP_DELIM, $src;
}
}
@@ -4266,6 +4292,7 @@ sub parse_and_run_dcp
else
{
# Get the source and the target
$options{'target'} = pop @ARGV;
$options{'source'} = join $::__DCP_DELIM, @ARGV;
}
@@ -4273,6 +4300,7 @@ sub parse_and_run_dcp
}
# Execute the dcp api
# HERE: Run xdcp
@results = xCAT::DSHCLI->runDcp_api(\%options, 0);
$::FAILED_NODES = $::RUNCMD_RC;
@@ -4453,13 +4481,16 @@ sub rsync_to_image
Globals:
$::SYNCSN indicates we are only syncing the files to the
service nodes xdcp -s flag
Error:
None
Example:
Comments:
We also add the original synclist file for the node to be sync'd
to the service node
=cut
@@ -4820,7 +4851,7 @@ sub run_rsync_postscripts
# now remove .post from the postscript file for the compare
# with the returned file name
my($tp,$post) = split(/.post/,$tmppostfile);
my($tp,$post) = split(/\.post/,$tmppostfile);
$tmppostfile = $tp;
foreach my $line (@rsync_output) {
my($hostname,$ps) = split(/: /, $line);
+246 -63
View File
@@ -30,6 +30,208 @@ require xCAT::Utils;
require xCAT::NodeRange;
#-------------------------------------------------------------------------------
=head3 getHcpAttribs
Description:
Build 2 Hashes from ppc/vpd table
one hash is : CEC/Frame is the Key, FSPs/BPAs are the value.
the other is: fsp/bpa is the key, the side is the value.
Arguments:
$request: this hash will be usded to store the ppc hash and vpd hash
$tabs: the hash store the new tables for ppc and bpd.
Returns:
Globals:
none
Error:
none
Example: xCAT::FSPUtils::getPPCAttribs($request, \%tabs);
=cut
#-------------------------------------------------------------------------------
sub getHcpAttribs
{
my $request = shift;
my $tabs = shift;
my %ppchash ;
my %vpd ;
my @vs = $tabs->{vpd}->getAllNodeAttribs(['node', 'side']);
for my $entry ( @vs ) {
my $tmp_node = $entry->{node};
my $tmp_side = $entry->{side};
if(defined($tmp_node) && defined($tmp_side)) {
$vpd{$tmp_node} = $tmp_side ;
}
}
my @ps = $tabs->{ppc}->getAllNodeAttribs(['node','parent','nodetype']);
for my $entry ( @ps ) {
my $tmp_parent = $entry->{parent};
my $tmp_node = $entry->{node};
my $tmp_type = $entry->{nodetype};
if(defined($tmp_node) && defined($tmp_type) && ($tmp_type =~ /^(fsp|bpa)$/ && $tmp_parent) ) {
push @{$ppchash{$tmp_parent}{children}}, $tmp_node;
#push @{$ppchash{$tmp_parent}}, $tmp_node;
}
#if(exists($ppchash{$tmp_node})) {
# if( defined($tmp_type) ) {
# #push @{$ppchash{$tmp_node}{type}}, $tmp_type;
# } else {
# my %output;
# my $msg = "no type for $tmp_type in the ppc table.";
# $output{errorcode} = 1;
# $output{data} = $msg;
# $request->{callback}->( \%output );
# }
#}
}
$request->{ppc}=\%ppchash ;
$request->{vpd}=\%vpd ;
}
#-------------------------------------------------------------------------------
=head3 getIPaddress
Description:
Used by DFM related functions. When getting the IPs for CECs' FSPs, or
getting the IPs for Frames' BPAs. And the IPs order is A-0,A-1,B-0,B-1.
When getting the IP for one FSP or one BPA, if the $nodetocheck it one IP,
it will return the IP immediately; if not, it will get the IP of the FSP or BPA.
Arguments:
$request: Because getIPaddress() is always used for one node after the process fork. Avoiding to
access the DB for each node in the subprocess, we should collect the attributs before
process fork, and put the attributes in the $request variable. For the getIpaddress().
The $request parameter should include the ppc hash which mapping the CEC->FSPs and
Frames->BPAs, and vpd hash the fsp->side and the bpa->side.
$type: the type of the $nodetocheck
$nodetocheck: Node name, only one node at a time.
$port: if the $nodetocheck is a fsp or bpa, it will be usde.
Returns: ip address(s)
Globals:
none
Error:
none
Example: my $c1 = xCAT::FSPUtils::getIPaddress($request, $type, $nodetocheck);
=cut
#-------------------------------------------------------------------------------
sub getIPaddress
{
# require xCAT::Table;
my $request = shift;
my $type = shift;
my $nodetocheck = shift;
my $port = shift;
if (xCAT::Utils::isIpaddr($nodetocheck)) {
return $nodetocheck;
}
my $side = "[A|B]";
if (!defined($port)) {
$port = "[0|1]";
}
my $ppc = $request->{ppc};
my $vpd = $request->{vpd};
# only need to parse IP addresses for Frame/CEC/BPA/FSP
#my $type = xCAT::DBobjUtils->getnodetype($nodetocheck);
#my $type = $$attrs[4];
if ($type) {
my @children;
my %node_side_pairs = ();
my $children_num = 0;
my $parent;
if ($type eq "bpa" or $type eq "fsp") {
push @children, $nodetocheck;
#my $tmp_s = $vpdtab->getNodeAttribs($nodetocheck, ['side']);
my $tmp_s = $vpd->{$nodetocheck};
if ($tmp_s and $tmp_s =~ /(A|B)-\d/i) {
$side = $1; # get side for the fsp
} else {
return -3;
}
} elsif ($type eq "frame" or $type eq "cec" or ($type =~ /lpar/i)) {
#In DFM
#1. when the node type is frame, its hcp( $nodetocheck ) is frame,
#and it will get the BPAs IPs for the Frame.
#2. when the node type is CEC, its hcp( $nodetocheck ) is CEC,
#and it will get the FSPs IPs for the CEC.
#3. when the node type is lpar, its hcp is the CEC.
#the $nodetocheck is its' hcp. So set $nodetocheck to $parent variable.
#And then get the FSPs IPs for the CEC.
$parent = $nodetocheck;
} else {
return undef;
}
if( @children == 0 ) {
if( exists($ppc->{$parent} ) ) {
#for cec/frame, get the FSPs/BPAs from the hash we built in getHcpAttribs() before.
@children = @{$ppc->{$parent}->{children}};
} else {
return undef;
}
}
foreach my $tmp_n( @children) {
my $tmp_s = $vpd->{$tmp_n};
if ($tmp_s and $tmp_s =~ /^$side-$port$/i) {
$tmp_s =~ s/a/A/;
$tmp_s =~ s/b/B/;
if (xCAT::Utils::isIpaddr($tmp_n)) {
$node_side_pairs{$tmp_s} = $tmp_n;
$children_num++;
} else {
my $tmpip = xCAT::NetworkUtils->getipaddr($tmp_n);
if (!$tmpip) {
#my $hoststab = xCAT::Table->new( 'hosts' );
#my $tmp = $hoststab->getNodeAttribs($tmp_n, ['ip']);
#if ($tmp->{ip}) {
# $tmpip = $tmp->{ip};
#}
}
if ($tmpip) {
$node_side_pairs{$tmp_s} = $tmpip;
$children_num++;
}
} # end of parse IP address for a fsp/bpa
} # end of parse a child's side
} #end of loop for children
if ($children_num == 0) {
return undef; #no children or brothers for this node.
}
my @keys = qw(A-0 A-1 B-0 B-1);
my $out_strings = undef;
foreach my $tmp (@keys) {
if (!$node_side_pairs{$tmp}) {
$node_side_pairs{$tmp} = '';
}
}
$out_strings = $node_side_pairs{"A-0"}.','.$node_side_pairs{"A-1"}.','.$node_side_pairs{"B-0"}.','.$node_side_pairs{"B-1"};
return $out_strings;
} else {
return undef;
}
}
#-------------------------------------------------------------------------------
@@ -56,6 +258,7 @@ require xCAT::NodeRange;
#-------------------------------------------------------------------------------
sub fsp_api_action {
my $request = shift;
my $node_name = shift;
my $attrs = shift;
my $action = shift;
@@ -99,12 +302,10 @@ sub fsp_api_action {
############################
# Get IP address
############################
#$fsp_ip = xCAT::Utils::getNodeIPaddress( $fsp_name, $parameter );
$fsp_ip = xCAT::Utils::getIPaddress( $fsp_name, $parameter );
undef($parameter);
$fsp_ip = getIPaddress($request, $$attrs[4], $fsp_name, $parameter );
undef($parameter);
} else {
#$fsp_ip = xCAT::Utils::getNodeIPaddress( $fsp_name );
$fsp_ip = xCAT::Utils::getIPaddress( $fsp_name );
$fsp_ip = getIPaddress($request, $$attrs[4], $fsp_name );
}
if(!defined($fsp_ip)) {
@@ -123,34 +324,35 @@ sub fsp_api_action {
#print "fsp name: $fsp_name\n";
#print "fsp ip: $fsp_ip\n";
#get the HMC/password from passwd table or ppcdirect table.
#In DFM, only the add_connection action need the userid/password to create the connection
#between hdwr_svr and FSPs or BPAs.
if( $action =~ /^add_connection$/) {
my $tmp_node;
if( $$attrs[4] =~ /^cec$/ || $$attrs[4] =~ /^frame$/ ) {
#for redundant FSPs/BPAs, we only need to get the one node's HMC/passwd
my $children = xCAT::DBobjUtils->getchildren($fsp_name);
if( !defined($children) ) {
$res = "Failed to get the $fsp_name\'s FSPs/BPAs";
return ([$fsp_name, $res, -1]);
}
$tmp_node = $$children[0];
} elsif ($$attrs[4] =~ /^blade$/) {
$tmp_node = $$attrs[5];
} else {
if( $$attrs[4] =~ /^cec$/ || $$attrs[4] =~ /^frame$/ ) {
$tmp_node = $node_name;
} elsif ($$attrs[4] =~ /^blade$/) {
$tmp_node = $$attrs[5];
} else {
$tmp_node = $fsp_name;
}
($user, $password) = xCAT::PPCdb::credentials( $tmp_node, $fsp_bpa_type,'HMC');
if ( !$password) {
$res = "Cannot get password of userid 'HMC'. Please check table 'passwd' or 'ppcdirect'.";
return ([$node_name, $res, -1]);
}
}
my $cred = $request->{$tmp_node}{cred};
($user, $password) = @$cred ;
#($user, $password) = xCAT::PPCdb::credentials( $tmp_node, $fsp_bpa_type,'HMC');
if ( !$password) {
$res = "Cannot get password of userid 'HMC'. Please check table 'passwd' or 'ppcdirect'.";
return ([$node_name, $res, -1]);
}
# The userid for creating connection only is "HMC".
$user = 'HMC';
}
my $cmd;
my $install_dir = xCAT::Utils->getInstallDir();
if( $action =~ /^(code_update|get_compatible_version_from_rpm)$/) {
$cmd = "$fsp_api -a $action -T $tooltype -t $type:$fsp_ip:$id:$node_name:$parameter -d $install_dir/packages_fw/";
} elsif($action =~ /^code_updateD$/) {
$cmd = "$fsp_api -a code_update -D -T $tooltype -t $type:$fsp_ip:$id:$node_name:$parameter -d $install_dir/packages_fw/";
} elsif($action =~ /^add_connection$/) {
$cmd = "$fsp_api -a $action -u $user -p $password -T $tooltype -t $type:$fsp_ip:$id:$node_name:";
} elsif ($action =~ /^set_frame_number$/) {
@@ -172,9 +374,17 @@ sub fsp_api_action {
#print "cmd: $cmd\n";
$SIG{CHLD} = 'DEFAULT';
# secure passwords in verbose mode
my $tmpv = $::VERBOSE;
if($action =~ /^add_connection$/)
{
# password involved
$::VERBOSE = 0;
}
$res = xCAT::Utils->runcmd($cmd, -1);
#$res = "good";
$Rc = $::RUNCMD_RC;
$::VERBOSE = $tmpv;
##################
# output the prompt
@@ -211,8 +421,9 @@ sub fsp_api_action {
#-------------------------------------------------------------------------------
sub fsp_state_action {
my $request = shift;
my $node_name = shift;
my $type_name = shift;
my $attrs = shift;
my $action = shift;
my $tooltype = shift;
my $fsp_api = ($::XCATROOT) ? "$::XCATROOT/sbin/fsp-api" : "/opt/xcat/sbin/fsp-api";
@@ -233,7 +444,7 @@ sub fsp_state_action {
$fsp_name = $node_name;
if($type_name =~ /^fsp$/ || $type_name =~ /^lpar$/ || $type_name =~ /^(cec|blade)$/) {
if( $$attrs[4] =~ /^(fsp|lpar|cec|blade)$/) {
$type = 0;
} else {
$type = 1;
@@ -242,11 +453,10 @@ sub fsp_state_action {
############################
# Get IP address
############################
#$fsp_ip = xCAT::Utils::getNodeIPaddress( $fsp_name );
$fsp_ip = xCAT::Utils::getIPaddress( $fsp_name );
$fsp_ip = getIPaddress($request, $$attrs[4], $fsp_name );
if(!defined($fsp_ip) or ($fsp_ip == -3)) {
$res[0] = ["Failed to get IP address for $fsp_name."];
return ([$node_name, @res, -1]);
$res[0] = "Failed to get IP address for $fsp_name or the related FSPs/BPAs.";
return ([-1, $res[0]]);
}
#print "fsp name: $fsp_name\n";
@@ -265,42 +475,15 @@ sub fsp_state_action {
#################
#$outhash{ $node_name } = $res;
if( @res ) {
$res[0] =~ s/$node_name: //;
$res[0] =~ s/$node_name: //g;
}
return( [$Rc,@res] );
}
sub getTypeOfNode
{
my $class = shift;
my $node = shift;
my $callback = shift;
my $nodetypetab = xCAT::Table->new( 'nodetype');
if (!$nodetypetab) {
my $rsp;
$rsp->{errorcode}->[0] = [1];
$rsp->{data}->[0]= "Failed to open table 'nodetype'";
xCAT::MsgUtils->message('E', $rsp, $callback);
}
my $nodetype_hash = $nodetypetab->getNodeAttribs( $node,[qw(nodetype)]);
my $nodetype = $nodetype_hash->{nodetype};
if ( !$nodetype) {
my $rsp;
$rsp->{errorcode}->[0] = [1];
$rsp->{data}->[0]= "Not found the $node\'s nodetype";
xCAT::MsgUtils->message('E', $rsp, $callback);
return undef;
}
return $nodetype;
}
#-------------------------------------------------------------------------------
=head3 fsp_api_partition_action
=head3 fsp_api_create_partition
Description:
invoke the fsp_api to perform the functions
@@ -316,13 +499,14 @@ sub getTypeOfNode
Error:
none
Example:
my $res = xCAT::FSPUtils::fsp_api_action( $node_name, $d, "add_connection", $tooltype );
my $res = xCAT::FSPUtils::fsp_api_create_partition($request, ... );
Comments:
=cut
#-------------------------------------------------------------------------------
sub fsp_api_create_parttion {
sub fsp_api_create_partition {
my $request = shift;
my $starting_lpar_id = shift;
my $octant_cfg = shift;
my $node_number = shift;
@@ -360,8 +544,7 @@ sub fsp_api_create_parttion {
############################
# Get IP address
############################
#$fsp_ip = xCAT::Utils::getNodeIPaddress( $fsp_name );
$fsp_ip = xCAT::Utils::getIPaddress( $fsp_name );
$fsp_ip = getIPaddress($request, $$attrs[4], $fsp_name );
if(!defined($fsp_ip) or ($fsp_ip == -3)) {
$res = "Failed to get IP address for $fsp_name.";
return ([$fsp_name, $res, -1]);
+7 -2
View File
@@ -97,6 +97,11 @@ sub parse_args {
#print "in parse_args:\n";
#print $command;
#print Dumper(\%opt);
my $nodetype = xCAT::DBobjUtils->getnodetype($$node[0], "ppc");
if( $nodetype =~ /^blade$/) {
$request->{callback}->({data =>[ "After running rebootseq on the nodes successfully, it's required to run <rpower noderange reset> to make the setting be permanent"]});
}
####################################
# Set method to invoke
@@ -136,7 +141,7 @@ sub rbootseq {
return (\@output);
}
# add checking the power state of the cec
my $power_state = xCAT::FSPUtils::fsp_api_action ($node_name, $d, "cec_state", $tooltype);
my $power_state = xCAT::FSPUtils::fsp_api_action ($request, $node_name, $d, "cec_state", $tooltype);
if ( @$power_state[2] != 0 ) {
push @output, [$node_name, @$power_state[1], -1 ];
return (\@output);
@@ -208,7 +213,7 @@ sub rbootseq {
}
my $res = xCAT::FSPUtils::fsp_api_action ($node_name, $d, "set_lpar_bootstring", $tooltype, $parameter);
my $res = xCAT::FSPUtils::fsp_api_action ($request, $node_name, $d, "set_lpar_bootstring", $tooltype, $parameter);
#print "In boot, state\n";
#print Dumper($res);
my $Rc = @$res[2];
+14 -17
View File
@@ -5,6 +5,7 @@ use strict;
use Getopt::Long;
use xCAT::Usage;
use xCAT::Utils;
use xCAT::FSPUtils;
use xCAT::PPCcfg;
#use Data::Dumper;
#use xCAT::PPCcli;
@@ -465,7 +466,7 @@ sub do_query {
while (my ($mtms, $h) = each(%$hash)) {
while (my($name, $d) = each(%$h)) {
my $action = $fspapi_action{$cmd}{query}{@$d[4]};
my $values = xCAT::FSPUtils::fsp_api_action($name, $d, $action);
my $values = xCAT::FSPUtils::fsp_api_action($request, $name, $d, $action);
&do_process_query_res($name, $cmd, \@result, $values);
#my $res = &do_process_query_res($name, $cmd, \@result, $values);
#if (defined($res)) {
@@ -512,7 +513,7 @@ sub do_set {
while (my($name, $d) = each(%$h)) {
my $action = $fspapi_action{$cmd}{set}{@$d[4]};
my $para = &do_set_get_para($name, $cmd, $value);
my $values = xCAT::FSPUtils::fsp_api_action($name, $d, $action, 0, $para);
my $values = xCAT::FSPUtils::fsp_api_action($request, $name, $d, $action, 0, $para);
# print Dumper($values);
&do_process_set_res($name, $cmd, \@result, $values);
#my $res = &do_process_set_res($name, $cmd, \@result, $values);
@@ -594,7 +595,7 @@ sub passwd {
while ( my ($node,$d) = each(%$h) ) {
my $type = @$d[4];
my $fsp_api = ($::XCATROOT) ? "$::XCATROOT/sbin/fsp-api" : "/opt/xcat/sbin/fsp-api";
my $cmd = xCAT::FSPcfg::fsp_api_passwd ($node, $d, $usr, $passwd, $newpasswd);
my $cmd = xCAT::FSPcfg::fsp_api_passwd ($request, $node, $d, $usr, $passwd, $newpasswd);
my $Rc = @$cmd[2];
my $data = @$cmd[1];
my $usr_back = $usr;
@@ -676,7 +677,7 @@ sub frame {
# Get frame number
#################################
#$data = xCAT::PPCcli::lssyscfg( $exp, @$d[4], @$d[2], 'frame_num' );
$data = xCAT::FSPUtils::fsp_api_action( $node, $d, "get_frame_number");
$data = xCAT::FSPUtils::fsp_api_action( $request, $node, $d, "get_frame_number");
$Rc = pop(@$data);
#################################
@@ -707,7 +708,7 @@ sub frame {
return( [[$node,"Cannot find frame num in database", -1]] );
}
#$data = xCAT::PPCcli::chsyscfg( $exp, "bpa", $d, "frame_num=".$ent->{id} );
$data = xCAT::FSPUtils::fsp_api_action( $node, $d, "set_frame_number", 0, $ent->{id});
$data = xCAT::FSPUtils::fsp_api_action( $request, $node, $d, "set_frame_number", 0, $ent->{id});
$Rc = pop(@$data);
#################################
@@ -726,7 +727,7 @@ sub frame {
# Read the frame number from opt
#################################
#$data = xCAT::PPCcli::chsyscfg( $exp, "bpa", $d, "frame_num=$value" );
$data = xCAT::FSPUtils::fsp_api_action( $node, $d, "set_frame_number", 0, $value);
$data = xCAT::FSPUtils::fsp_api_action( $request, $node, $d, "set_frame_number", 0, $value);
$Rc = pop(@$data);
#################################
@@ -774,7 +775,7 @@ sub cec_off_policy {
#################################
# Get platform IPL parameters
#################################
$data = xCAT::FSPUtils::fsp_api_action( $node, $d, "get_phyp_cfg_power_off_policy");
$data = xCAT::FSPUtils::fsp_api_action( $request, $node, $d, "get_phyp_cfg_power_off_policy");
$Rc = pop(@$data);
#################################
@@ -798,7 +799,7 @@ sub cec_off_policy {
} else {
$value = "cec_off_policy_stayon";
}
$data = xCAT::FSPUtils::fsp_api_action( $node, $d, $value);
$data = xCAT::FSPUtils::fsp_api_action( $request, $node, $d, $value);
$Rc = pop(@$data);
#################################
@@ -830,6 +831,7 @@ sub cec_off_policy {
# Invoke fsp_api to change the passwords and store updated passwd in db
##########################################################################
sub fsp_api_passwd {
my $request = shift;
my $node_name = shift;
my $attrs = shift;
my $user = shift;
@@ -862,7 +864,8 @@ sub fsp_api_passwd {
############################
#$fsp_ip = xCAT::Utils::get_hdwr_ip($fsp_name);
#$fsp_ip = xCAT::Utils::getNodeIPaddress($fsp_name);
$fsp_ip = xCAT::Utils::getIPaddress($fsp_name);
#$fsp_ip = xCAT::Utils::getIPaddress($fsp_name);
$fsp_ip = xCAT::FSPUtils::getIPaddress($request, $$attrs[4], $fsp_name );
if(!defined($fsp_ip) or ($fsp_ip == -3)) {
$res = "Failed to get IP address for $fsp_name.";
return ([$node_name, $res, -1]);
@@ -901,14 +904,8 @@ sub fsp_api_passwd {
##########################################################################
sub resetnet {
my $request = shift;
my $hash = shift;
my %nodehash;
foreach ( @{$request->{noderange}}) {
$nodehash{$_} = 1;
}
# go to use lsslp do_resetnet
my $result = xCAT_plugin::lsslp::do_resetnet($request, \%nodehash);
return [$result];
xCAT::PPCcfg::doresetnet($request);
return 0;
}
1;
+46 -18
View File
@@ -92,6 +92,7 @@ sub mkhwconn_parse_args
my $vpdtab = xCAT::Table->new( 'vpd');
my @bpa_ctrled_nodes = ();
my @no_type_nodes = ();
my @error_type_nodes = ();
my @frame_members = ();
###########################################
@@ -159,7 +160,8 @@ sub mkhwconn_parse_args
{
unless ( $nodetype =~ /^(fsp|bpa|frame|cec|hmc|blade)$/)
{
return ( usage("Node type is incorrect. \n"));
push @error_type_nodes, $node;
next;
}
}
@@ -188,9 +190,12 @@ sub mkhwconn_parse_args
if (scalar(@no_type_nodes))
{
my $tmp_nodelist = join ',', @no_type_nodes;
return ( usage("Attribute nodetype.nodetype cannot be found for node(s) $tmp_nodelist"));
return ( usage("Attribute nodetype.nodetype cannot be found for node(s) $tmp_nodelist. Please define first and try again.\n"));
}
if (scalar(@error_type_nodes)) {
my $tmp_nodelist = join ',', @error_type_nodes;
return ( usage("Incorrect nodetype for nodes(s): $tmp_nodelist. Please modify first and try again.\n"));
}
#if (scalar(@bpa_ctrled_nodes))
#{
# my $tmp_nodelist = join ',', @bpa_ctrled_nodes;
@@ -354,24 +359,30 @@ sub lshwconn_parse_args
}
my $nodetype;
my @no_typenodes = ();
my @no_mgt_nodes = ();
my @error_type_nodes = ();
my $typehash = xCAT::DBobjUtils->getnodetype(\@{$request->{node}}, "ppc");
for my $node ( @{$request->{node}})
{
#my $ent = $nodetypetab->getNodeAttribs( $node, [qw(nodetype)]);
my $nodehm = $nodehmtab->getNodeAttribs( $node, [qw(mgt)]);
#if ( ! $ent)
#{
# return( ["Failed to get node type for node $node.\n"]);
#}
my $ttype = $$typehash{$node};
if ( ! $ttype)
if ( ! $nodehm)
{
return( ["Failed to get nodehm.mgt value for node $node.\n"]);
push @no_mgt_nodes, $node;
next;
}
my $ttype = $$typehash{$node};
if ( !$ttype)
{
push @no_typenodes, $node;
next;
}
if ( $ttype ne 'fsp' and $ttype ne 'cec'
and $ttype ne 'bpa' and $ttype ne 'frame' and $ttype ne 'blade')
{
return( ["Node type $ttype is not supported for this command in FSPAPI\n"]);
push @error_type_nodes, $node;
next;
}
if ( ! $nodetype)
{
@@ -385,7 +396,19 @@ sub lshwconn_parse_args
}
}
}
if (scalar(@no_typenodes)) {
my $tmp_nodelist = join ',', @no_typenodes;
return ( ["Attribute nodetype.nodetype cannot be found for node(s): $tmp_nodelist. Please define first and try again.\n"]);
}
if (scalar(@no_mgt_nodes)) {
my $tmp_nodelist = join ',', @no_mgt_nodes;
return( ["Failed to get nodehm.mgt value for node(s) $tmp_nodelist. Please define first and try again.\n"]);
}
if (scalar(@error_type_nodes)) {
my $tmp_nodelist = join ',', @error_type_nodes;
my $link = (scalar(@error_type_nodes) == '1')? 'is':'are';
return( ["Node type of node(s) $tmp_nodelist $link not supported for this command in FSPAPI.\n"]);
}
#$nodetypetab->close();
$nodehmtab->close();
@@ -461,6 +484,7 @@ sub rmhwconn_parse_args
return( ["Failed to open table 'nodehm'.\n"]) if (! $nodehmtab);
my @bpa_ctrled_nodes = ();
my @no_type_nodes = ();
my @no_mgt_nodes = ();
my @frame_members = ();
my $nodetype_hash = xCAT::DBobjUtils->getnodetype($nodes, "ppc");
for my $node ( @$nodes)
@@ -468,7 +492,8 @@ sub rmhwconn_parse_args
my $nodehm = $nodehmtab->getNodeAttribs( $node, [qw(mgt)]);
if ( ! $nodehm)
{
return( ["Failed to get nodehm.mgt value for node $node.\n"]);
push @no_mgt_nodes, $node;
next;
}
my $node_parent = undef;
@@ -505,9 +530,12 @@ sub rmhwconn_parse_args
if (scalar(@no_type_nodes))
{
my $tmp_nodelist = join ',', @no_type_nodes;
return ( usage("Attribute nodetype.nodetype cannot be found for node(s) $tmp_nodelist"));
return ( usage("Attribute nodetype.nodetype cannot be found for node(s) $tmp_nodelist. Please define first and try again.\n"));
}
if (scalar(@no_mgt_nodes)) {
my $tmp_nodelist = join ',', @no_mgt_nodes;
return( ["Failed to get nodehm.mgt value for node(s) $tmp_nodelist. Please define first and try again.\n"]);
}
$ppctab->close();
#$nodetypetab->close();
$vpdtab->close();
@@ -568,7 +596,7 @@ sub mkhwconn
#}
my $res = xCAT::FSPUtils::fsp_api_action( $node_name, $d, "add_connection", $tooltype, $opt->{port} );
my $res = xCAT::FSPUtils::fsp_api_action($request, $node_name, $d, "add_connection", $tooltype, $opt->{port} );
$Rc = @$res[2];
if( @$res[1] ne "") {
push @value, [$node_name, @$res[1], $Rc];
@@ -600,7 +628,7 @@ sub lshwconn
{
my $d = $node_hash->{$node_name};
my $action = "query_connection";
my $res = xCAT::FSPUtils::fsp_api_action ($node_name, $d, $action, $tooltype);
my $res = xCAT::FSPUtils::fsp_api_action ($request, $node_name, $d, $action, $tooltype);
#print "in lshwconn:\n";
#print Dumper($res);
my $Rc = @$res[2];
@@ -669,7 +697,7 @@ sub rmhwconn
my ( undef,undef,undef,undef,$type) = @$d;
my $res = xCAT::FSPUtils::fsp_api_action( $node_name, $d, "rm_connection", $tooltype );
my $res = xCAT::FSPUtils::fsp_api_action($request, $node_name, $d, "rm_connection", $tooltype );
$Rc = @$res[2];
if( @$res[1] ne "") {
push @value, [$node_name, @$res[1], $Rc];
+27 -16
View File
@@ -44,7 +44,11 @@ sub dpush {
# Parse the command line for options and operands
##########################################################################
sub parse_args {
xCAT::PPCrflash::parse_args(@_);
my $req = shift;
$req->{mgt} = __PACKAGE__;
my $opt = xCAT::PPCrflash::parse_args($req);
delete($req->{mgt});
return $opt;
}
##########################################################################
@@ -146,9 +150,9 @@ sub get_lic_filenames {
# return ("", "","", $msg, -1);
# }
} else {
$msg = $msg . "Upgrade $mtms disruptively!";
if($activate ne "disruptive") {
$msg = "Option --activate's value shouldn't be concurrent, and it must be disruptive";
$msg = $msg . "Upgrade $mtms!";
if($activate !~ /^(disruptive|deferred)$/) {
$msg = "Option --activate's value shouldn't be $activate, and it must be disruptive or deferred";
return ("", "","", $msg, -1);
}
}
@@ -248,7 +252,7 @@ sub rflash {
if( !defined($housekeeping) && ($$d[4] =~ /^fsp$/ || $$d[4] =~ /^lpar$/ || $$d[4] =~ /^cec$/)) {
$action = "get_compatible_version_from_rpm";
my $values = xCAT::FSPUtils::fsp_api_action( $name, $d, $action, 0, $request->{opt}->{d} );
my $values = xCAT::FSPUtils::fsp_api_action($request, $name, $d, $action, 0, $request->{opt}->{d} );
my $Rc = @$values[2];
my $v = @$values[1];
if ($Rc != 0) {
@@ -261,11 +265,11 @@ sub rflash {
my $frame = $$d[5];
my $type = xCAT::DBobjUtils->getnodetype($frame);
if ( ( $frame ne $name ) && ( $type eq "frame" ) ){
if ( ( $frame ne $name ) && ( $type eq "frame" ) && $activate !~ /^deferred$/){
my @frame_d = (0, 0, 0, $frame, "frame", 0);
$action = "list_firmware_level";
$values = xCAT::FSPUtils::fsp_api_action( $frame, \@frame_d, $action );
$values = xCAT::FSPUtils::fsp_api_action($request, $frame, \@frame_d, $action );
$Rc = @$values[2];
my $frame_firmware_level = @$values[1];
if ($Rc != 0) {
@@ -300,7 +304,7 @@ sub rflash {
}
if(!defined($housekeeping)) {
my $values = xCAT::FSPUtils::fsp_api_action( $name, $d, "list_firmware_level");
my $values = xCAT::FSPUtils::fsp_api_action($request, $name, $d, "list_firmware_level");
my $Rc = @$values[2];
my $level = @$values[1];
#####################################
@@ -327,14 +331,17 @@ sub rflash {
if($housekeeping =~ /^commit$/) { $action = "code_commit"}
if($housekeeping =~ /^recover$/) { $action = "code_reject"}
if($activate =~ /^disruptive$/) {
if($housekeeping =~ /^bpa_acdl$/) { $action = "acdl"}
if($activate eq "disruptive") {
$action = "code_update";
}
if($activate =~ /^concurrent$/) {
my $res = "\'concurrent\' option not supported in FSPflash.Please use disruptive mode";
} elsif ($activate eq "deferred") {
$action = "code_updateD";
} elsif (defined($activate)){
#if($activate =~ /^concurrent$/) {
my $res = "\'$activate\' option not supported in FSPflash. Please use disruptive or deferred mode";
push @value, [$name, $res, -1];
next;
}
next;
}
my $msg;
if(!defined($housekeeping)) {
@@ -348,8 +355,12 @@ sub rflash {
dpush ( \@value, [$name, $msg]);
}
my $res = xCAT::FSPUtils::fsp_api_action( $name, $d, $action, 0, $request->{opt}->{d} );
push(@value,[$name, @$res[1], @$res[2]]);
my $res = xCAT::FSPUtils::fsp_api_action($request, $name, $d, $action, 0, $request->{opt}->{d} );
if ($action eq "acdl" && @$res[2] eq '0') {
push(@value, [$name, "Success", '0']);
} else {
push(@value,[$name, @$res[1], @$res[2]]);
}
return (\@value);
}
+10 -4
View File
@@ -154,7 +154,7 @@ sub firmware {
@$d[4] = "fsp";
@$d[0] = 0;
}
my $values = xCAT::FSPUtils::fsp_api_action( $name, $d, "list_firmware_level");
my $values = xCAT::FSPUtils::fsp_api_action($request, $name, $d, "list_firmware_level");
my $Rc = @$values[2];
my $data = @$values[1];
#print "values";
@@ -248,7 +248,7 @@ sub deconfig {
# @$d[4] = "fsp";
# @$d[0] = 0;
#}
my $values = xCAT::FSPUtils::fsp_api_action( $name, $d, "get_cec_deconfigured");
my $values = xCAT::FSPUtils::fsp_api_action($request, $name, $d, "get_cec_deconfigured");
my $Rc = @$values[2];
my $data = @$values[1];
#print "values";
@@ -287,15 +287,21 @@ sub deconfig {
my $Location_code;
my $RID;
my $TYPE;
if(ref($node->{GARDRECORD}) ne "ARRAY") {
my $dres;
if (ref($node->{GARDRECORD}) eq "ARRAY") {
$dres = $node->{GARDRECORD};
} elsif (ref($node->{GARDRECORD}) eq "HASH") {
push @$dres, $node->{GARDRECORD};
} else {
push @result,[$name,"NO Deconfigured resources", 0];
return( \@result );
}
push @result,[$name,"Deconfigured resources", 0];
push @result,[$name,"Location_code RID Call_Out_Method Call_Out_Hardware_State TYPE", 0];
push @result,[$name,"$node->{Location_code} $node->{RID}", 0];
foreach my $unit(@{$node->{GARDRECORD}}) {
#foreach my $unit(@{$node->{GARDRECORD}}) {
foreach my $unit(@$dres) {
while (my ($key, $unit3) = each(%$unit) ) {
if($key eq "GARDUNIT") {
+17 -6
View File
@@ -257,7 +257,7 @@ sub getmacs {
#########################################
for ( my $stat = 0; $stat < 3; $stat++ ) {
#my $output = xCAT::PPCcli::lshwres( $exp, @$cmd[$stat], $hcp);
my $output = xCAT::FSPUtils::fsp_api_action($name, $d, $cmd[$stat]);
my $output = xCAT::FSPUtils::fsp_api_action($request, $name, $d, $cmd[$stat]);
my $macs;
my $res = $$output[1];
chomp($res);
@@ -369,14 +369,25 @@ sub getmacs {
# specified
#########################################
if ( defined($filter) ) {
my $matched = 1;
foreach ( keys %$filter ) {
if ( $att{$_} ne $filter->{$_} ) {
$matched = 0;
my $matched = 0;
foreach my $key ( keys %$filter ) {
if ( $key eq "MAC_Address" ) {
my $mac = lc($att{$key});
my $filter_mac = lc($filter->{$key});
$mac =~ s/://g;
$filter_mac =~ s/://g;
if ( grep(/$filter_mac/, $mac) ) {
$matched = 1;
last;
}
} elsif ( grep(/$filter->{$key}/, $att{$key}) ) {
$matched = 1;
last;
}
}
if ( $matched == 1 ) {
if ( $matched ) {
push @$value,"$att{'Type'} $att{'Phys_Port_Loc'} $att{'MAC_Address'} $att{'Adapter'} $att{'Port_Group'} $att{'Phys_Port'} $att{'Logical_Port'} $att{'VLan'} $att{'VSwitch'} $att{'Curr_Conn_Speed'}\n";
}
} else {
+47 -22
View File
@@ -21,22 +21,29 @@ sub parse_args {
##########################################################################
sub enumerate {
my $request = shift;
my $h = shift;
my $mtms = shift;
my $tooltype = shift;
my %outhash = ();
my %cmds = ();
my $type = ();
my $cec_bpa = ();
my $tmp_d;
my $tmp_name;
######################################
# Check for CEC/LPAR/BPAs in list
######################################
while (my ($name,$d) = each(%$h) ) {
$cec_bpa = @$d[3];
$type = @$d[4];
$tmp_d = $d;
$tmp_name = $name;
#$cmds{$type} = ($type=~/^lpar$/) ? "all_lpars_state" : "cec_state";
if( $type=~/^lpar$/ ) {
$cmds{$type} = "all_lpars_state";
} elsif ($type=~/^(fsp|cec)$/) {
} elsif ($type=~/^(fsp|cec|blade)$/) {
$cmds{$type} = "cec_state";
} else {
$cmds{$type} = "bpa_state";
@@ -44,7 +51,8 @@ sub enumerate {
}
foreach my $type ( keys %cmds ) {
my $action = $cmds{$type};
my $values = xCAT::FSPUtils::fsp_state_action ($cec_bpa, $type, $action);;
#my $values = xCAT::FSPUtils::fsp_state_action ($request, $cec_bpa, $type, $action, $tooltype);
my $values = xCAT::FSPUtils::fsp_state_action ($request, $cec_bpa, $tmp_d, $action, $tooltype);
my $Rc = shift(@$values);
##################################
# Return error
@@ -61,7 +69,18 @@ sub enumerate {
##############################
# No lparid for fsp/bpa
##############################
if ( $type =~ /^(fsp|bpa|cec|frame)$/ ) {
if ( $type =~ /^(fsp|bpa|cec|frame|blade)$/ ) {
if ($type eq 'blade') {
if ($state eq 'operating') {
my $res = xCAT::FSPUtils::fsp_api_action($request, $tmp_name,$tmp_d,'state',$tooltype);
if (@$res[2] == 0 and @$res[1] =~ /open-firmware/i) {
$state = @$res[1];
}
}
if ($state =~ /standby|operating/) {
$state = "on";
}
}
$lparid = $type;
}
$outhash{ $lparid } = $state;
@@ -111,7 +130,7 @@ sub powercmd_boot {
next;
}
my $res = xCAT::FSPUtils::fsp_api_action ($node_name, $d, "state");
my $res = xCAT::FSPUtils::fsp_api_action ($request,$node_name, $d, "state");
#print "In boot, state\n";
#print Dumper($res);
my $Rc = @$res[2];
@@ -141,7 +160,7 @@ sub powercmd_boot {
}
$res = xCAT::FSPUtils::fsp_api_action ($node_name, $d, $op);
$res = xCAT::FSPUtils::fsp_api_action ($request,$node_name, $d, $op);
# @output ...
$Rc = @$res[2];
@@ -165,6 +184,7 @@ sub powercmd {
my $request = shift;
my $hash = shift;
my $tooltype = $request->{opt}->{T};
my @result = ();
my @output;
my $action;
@@ -214,8 +234,9 @@ sub powercmd {
if($action =~ /^off$/) { $action = "cec_off"; }
if($action =~ /^resetsp$/) { $action = "reboot_service_processor"; }
if($action =~ /^lowpower$/) { $action = "cec_on_low_power"; }
if($action =~ /^cycle$/) {$action = "cec_reboot";}
if($action !~ /^cec_on_autostart$/ && $action !~ /^cec_off$/ && $action !~ /^cec_on_low_power$/ && $action !~ /^onstandby$/ && $action !~ /^reboot_service_processor$/ && $action !~ /^cec_reboot$/) {
#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$/) {
push @output, [$node_name, "\'$action\' command not supported for $$d[4]", -1 ];
return (\@output);
}
@@ -264,7 +285,7 @@ sub powercmd {
#print Dumper($newd);
my $res = xCAT::FSPUtils::fsp_api_action($newnames, $newd, $action, 0, $request->{'powerinterval'} );
my $res = xCAT::FSPUtils::fsp_api_action($request, $newnames, $newd, $action, $tooltype, $request->{'powerinterval'} );
# print "In boot, state\n";
# print Dumper($res);
my $Rc = @$res[2];
@@ -287,7 +308,17 @@ sub powercmd {
if ((scalar(keys %$hash) == 1) and $Rc) {
push @output, [$node_name, $data, $Rc];
} else {
push @output, [$node_name,"Success", 0];
# check the state of the blade or CEC after cec_reboot in order to let HWS realize the destination CEC had been powerd off #
#my $msg = "success";
if ($action eq 'cec_reboot') {
sleep 0.1;
xCAT::FSPUtils::fsp_state_action ($request, @$d[3], $d, "cec_state");
#my $state_res = xCAT::FSPUtils::fsp_state_action (@$d[3], @$d[4], "cec_state");
#my @state_state = @$state_res[1];
#$msg = @state_state[0];
}
push @output, [$node_name,"Success", 0];
#push @output, [$node_name,$msg, 0];
}
}
return( \@output );
@@ -300,7 +331,7 @@ sub powercmd {
sub power_status {
my $value = shift;
my @states = (
"Operating|operating",
"Operating|operating|on",
"Running|running",
"standby",
"Open Firmware|open-firmware"
@@ -324,6 +355,7 @@ sub state {
my $prefix = shift;
my $convert = shift;
my @output = ();
my $tooltype = $request->{opt}->{T};
#print "------in state--------\n";
@@ -358,7 +390,7 @@ sub state {
######################################
# Build CEC/LPAR information hash
######################################
my $stat = enumerate( $h, $mtms );
my $stat = enumerate($request, $h, $mtms, $tooltype);
my $Rc = shift(@$stat);
my $data = @$stat[0];
#if($Rc != 0) {
@@ -370,7 +402,7 @@ sub state {
# Look up by lparid
##################################
my $type = @$d[4];
my $id = ($type=~/^(fsp|bpa|cec|frame)$/) ? $type : @$d[0];
my $id = ($type=~/^(fsp|bpa|cec|frame|blade)$/) ? $type : @$d[0];
##################################
# Output error
@@ -387,8 +419,8 @@ sub state {
##################################
# Node not found
##################################
if ( !exists( $data->{$id} )) {
my $res = xCAT::FSPUtils::fsp_api_action($name, $d, "state");
if ($type !~ /^blade$/ and !exists( $data->{$id} )) {
my $res = xCAT::FSPUtils::fsp_api_action($request, $name, $d, "state", $tooltype);
my $rc = @$res[2];
my $val = @$res[1];
if( $rc != 0) {
@@ -411,13 +443,6 @@ sub state {
##############################
# Convert state to on/off
##############################
if ($type eq 'blade') {
if ($value =~ /^(power-on-transition|power off|off)$/) {
$value = "off";
} else {
$value = "on";
}
}
if ( defined( $convert )) {
$value = power_status( $value );
}
@@ -483,7 +508,7 @@ sub state1 {
if($$d[4] =~ /^fsp$/ || $$d[4] =~ /^bpa$/) {
$action = "cec_state";
}
my $stat = xCAT::FSPUtils::fsp_api_action ($node_name, $d, $action);
my $stat = xCAT::FSPUtils::fsp_api_action ($request, $node_name, $d, $action);
my $Rc = @$stat[2];
my $data = @$stat[1];
my $type = @$d[4];
+4 -3
View File
@@ -82,6 +82,7 @@ sub getshorthost {
##########################################################################
sub enumerate {
my $request = shift;
my $hash = shift;
my $exp = shift;
my $hwtype = ();
@@ -118,7 +119,7 @@ sub enumerate {
push @values, $data;
next;
}
my $stat = xCAT::FSPUtils::fsp_api_action ($node_name, $d, "query_connection");
my $stat = xCAT::FSPUtils::fsp_api_action ($request, $node_name, $d, "query_connection");
my $Rc = @$stat[2];
my $data = @$stat[1];
@@ -183,7 +184,7 @@ sub enumerate {
#####################################
# Enumerate LPARs
#####################################
$stat = xCAT::FSPUtils::fsp_api_action ($node_name, $d, "get_lpar_info");
$stat = xCAT::FSPUtils::fsp_api_action ($request, $node_name, $d, "get_lpar_info");
$Rc = @$stat[2];
$data = @$stat[1];
@@ -524,7 +525,7 @@ sub rscan {
###################################
# Enumerate all the hardware
###################################
my $values = enumerate( $hash );
my $values = enumerate($request, $hash );
#print "In rscan:\n";
#print Dumper($values);
if ( ref($values) ne 'ARRAY' ) {
+121 -36
View File
@@ -56,39 +56,89 @@ sub enumerate_temp {
}
##########################################################################
# Returns refcode
# Returns refcode ; In DFM, it will get both the LCD value and the Current Power status Value
##########################################################################
sub enumerate_lcds {
my $request= shift;
my $name= shift;
my $d = shift;
my $mtms = @$d[2];
my $Rc = undef;
my $value = undef;
my $nodetype = @$d[4];
my $lpar_id = @$d[0];
my @refcode = ();
my $action;
if($$d[4] =~ /^lpar$/) {
$action = "query_lcds";
#} elsif($$d[4] =~ /^fsp$/) {
# $action = "cec_query_lcds";
} else {
$action = "cec_query_lcds";
}
my $values = xCAT::FSPUtils::fsp_api_action ($name, $d, $action);
my $action = shift;
my $only_lcds = shift;
my $prefix = "Current LCD:";
my $power_status_prefix = "Current Power Status:";
my $Rc;
my @refcode;
my $c = 0;
my $values = xCAT::FSPUtils::fsp_api_action ($request, $name, $d, $action);
$Rc = @$values[2];
my $data = @$values[1];
$data =~ /\|(\w*)/ ;
my $code = $1;
if ( ! $code) {
push @refcode, [$Rc, "blank"];
} else {
push @refcode, [$Rc, $code] ;
}
my $t_n = @$values[0];
if( $Rc != 0 ) {
my @names = split(/,/, $t_n);
my @t_data = split(/\n/, $data);
foreach my $n (@names) {
if( $data =~ /$n/ ) {
chomp $t_data[$c];
#push @refcode,[$n, "$prefix $t_data[$c]", $Rc];
if($t_data[$c] =~ /Error/ ) {
if( $only_lcds == 0) {
push @refcode,[$n, "$power_status_prefix $t_data[$c]", $Rc];
}
push @refcode,[$n, "$prefix $t_data[$c]", $Rc];
} else {
if( $only_lcds == 0) {
# get power status
if( $data =~ /1\|/) {
push @refcode, [$n, "$power_status_prefix on", $Rc] ;
} else {
push @refcode, [$n, "$power_status_prefix off", $Rc];
}
}
# get lcd value
if( $t_data[$c] =~ /1\|(\w[\w\s]*)/) {
push @refcode, [$n, "$prefix $1", $Rc] ;
} else {
push @refcode, [$n, "$prefix blank", $Rc];
}
}
$c++;
} else {
push @refcode, [$n, "$prefix $data", $Rc];
if( $only_lcds == 0) {
push @refcode, [$n, "$power_status_prefix $data", $Rc];
}
}
}
} else {
my @array = split(/\n/, $data);
foreach my $a (@array) {
my @t = split(/:/, $a);
my $name = $t[0];
$data = $t[1];
## it will not parse the power status if only lcds.
# $only_lcds = 0, it will get the power status
# $only_lcds = 0, not get the power status.
if( $only_lcds == 0) {
# get power status
if( $data =~ /1\|/) {
push @refcode, [$name, "$power_status_prefix on", $Rc] ;
} else {
push @refcode, [$name, "$power_status_prefix off", $Rc];
}
}
# get lcd value
if( $data =~ /1\|(\w[\w\s]*)/) {
push @refcode, [$name, "$prefix $1", $Rc] ;
} else {
push @refcode, [$name, "$prefix blank", $Rc];
}
}
}
return \@refcode;
}
@@ -97,6 +147,7 @@ sub enumerate_lcds {
##########################################################################
sub enumerate_rackenv {
my $request= shift;
my $name= shift;
my $d = shift;
#my $mtms = @$d[2];
@@ -106,7 +157,7 @@ sub enumerate_rackenv {
my %outhash = ();
my $action = "get_rack_env";
my $values = xCAT::FSPUtils::fsp_api_action ($name, $d, $action);
my $values = xCAT::FSPUtils::fsp_api_action ($request, $name, $d, $action);
$Rc = @$values[2];
my $data = @$values[1];
if ( $Rc != 0 ) {
@@ -303,7 +354,7 @@ sub rackenv {
}
my $action = "get_rack_env";
my $values = xCAT::FSPUtils::fsp_api_action ($name, $d, $action);
my $values = xCAT::FSPUtils::fsp_api_action ($request, $name, $d, $action);
my $Rc = @$values[2];
my $data = @$values[1];
if ( $Rc != 0 ) {
@@ -335,6 +386,8 @@ sub rackenv {
##########################################################################
# Returns system power status (on or off)
# This subroutine will not be used in DFM
# And the power status will be returned with lcds
##########################################################################
sub power {
return( xCAT::FSPpower::state(@_,"Current Power Status: ",1));
@@ -347,9 +400,48 @@ sub state {
return( xCAT::FSPpower::state(@_,"System State: "));
}
###########################################################################
# Returns system LCD status (LCD1, LCD2)
# Returns system LCD status and the power status
##########################################################################
sub lcds {
my $request = shift;
my $hash = shift;
my $exp = shift;
my $result;
my $newids;
my $newnames;
my $newd;
my $action;
my $type;
my $only_lcds;
if( $request->{method} =~ /^lcds$/ ) {
$only_lcds = 1;
}
while (my ($mtms,$h) = each(%$hash) ) {
while(my ($name, $d) = each(%$h) ){
$newids .="$$d[0],";
$newnames .="$name,";
$newd = $d;
if( defined( $type) && $type ne $$d[4] ) {
push @$result, [$name, "$name\'s type is $$d[4]. Please get the lcds for $type and $$d[4] seperately", -1 ];
return $result;
}
$type = $$d[4];
}
}
if( $type =~ /lpar/ ) {
$action = "query_lcds";
} else {
$action = "cec_query_lcds";
}
$$newd[0] = $newids;
$result = enumerate_lcds($request, $newnames, $newd, $action, $only_lcds);
return $result;
}
sub lcds_orig {
my $request = shift;
my $hash = shift;
my $exp = shift;
@@ -365,12 +457,7 @@ sub lcds {
while (my ($mtms,$h) = each(%$hash) ) {
while(my ($name, $d) = each(%$h) ){
#Support HMC only
#if($hwtype ne 'hmc'){
# push @result, [$name, "$text Not available(NO HMC)", 1];
# next;
#}
$refcodes = enumerate_lcds($name, $d);
$refcodes = enumerate_lcds($request, $name, $d);
$num = 1;
foreach $rcode (@$refcodes){
$Rc = shift(@$rcode);
@@ -383,7 +470,6 @@ sub lcds {
return \@result;
}
##########################################################################
# Returns all vitals
##########################################################################
@@ -392,7 +478,6 @@ sub all {
my @values = (
@{rackenv(@_)},
@{state(@_)},
@{power(@_)},
@{lcds(@_)},
);
+21 -18
View File
@@ -60,7 +60,7 @@ sub chvm_parse_extra_options {
return "no value specified";
}
if ($cmd =~ /^lparname$/) {
if ($value ne '*' && $value !~ /^[a-zA-Z0-9-_]$/) {
if ($value ne '*' && $value !~ /^[a-zA-Z0-9-_]+$/) {
return "'$value' invalid";
}
my $len = rindex $value."\$", "\$";
@@ -644,7 +644,7 @@ sub do_op_extra_cmds {
while (my ($mtms, $h) = each(%$hash)) {
while (my($name, $d) = each(%$h)) {
my $tmp_value = ($param eq '*') ? $name : $param;
my $value = xCAT::FSPUtils::fsp_api_action($name, $d, $action, 0, $tmp_value);
my $value = xCAT::FSPUtils::fsp_api_action($request, $name, $d, $action, 0, $tmp_value);
if (@$value[1] && ((@$value[1] =~ /Error/i) && (@$value[2] ne '0'))) {
return ([[$name, @$value[1], '1']]) ;
} else {
@@ -716,12 +716,13 @@ sub modify_by_prof {
while (my ($cec,$h) = each(%$hash) ) {
while (my ($lpar,$d) = each(%$h) ) {
$td = $d;
@$td[4] = "fsp";
#@$td[4] = "fsp";
$cec_name = @$d[3];
}
$td->[4] = "cec";
#get the current I/O slot information
my $action = "get_io_slot_info";
my $values = xCAT::FSPUtils::fsp_api_action ($cec_name, $td, $action);
my $values = xCAT::FSPUtils::fsp_api_action ($request, $cec_name, $td, $action);
my $Rc = $$values[2];
if ( $Rc != 0 ) {
push @result, [$cec_name, $$values[1], $Rc];
@@ -738,7 +739,7 @@ sub modify_by_prof {
#get all the nodes state in the same cec
$action = "all_lpars_state";
undef($values);
my $values = xCAT::FSPUtils::fsp_state_action ($cec_name, "fsp", $action);
my $values = xCAT::FSPUtils::fsp_state_action ($request, $cec_name, $td, $action);
$Rc = shift(@$values);
if ( $Rc != 0 ) {
push @result, [$cec_name, $$values[0], $Rc];
@@ -770,7 +771,7 @@ sub modify_by_prof {
return ( \@result );
}
my $values = xCAT::FSPUtils::fsp_api_action ($lpar, $d, $action, $tooltype, $drc_index);
my $values = xCAT::FSPUtils::fsp_api_action ($request, $lpar, $d, $action, $tooltype, $drc_index);
#my $Rc = shift(@$values);
my $Rc = pop(@$values);
if ( $Rc != 0 ) {
@@ -787,6 +788,7 @@ sub modify_by_prof {
sub enumerate {
my $request = shift;
my $h = shift;
my $mtms = shift;
my %outhash = ();
@@ -800,9 +802,9 @@ sub enumerate {
@td = @$d;
}
$td[4]="fsp";
$td[4]="cec";
my $action = "get_io_slot_info";
my $values = xCAT::FSPUtils::fsp_api_action ($cec, \@td, $action);
my $values = xCAT::FSPUtils::fsp_api_action ($request, $cec, \@td, $action);
#my $Rc = shift(@$values);
my $Rc = $$values[2];
if ( $Rc != 0 ) {
@@ -818,7 +820,7 @@ sub enumerate {
if( $type =~ /^(fsp|cec)$/ ) {
$action = "query_octant_cfg";
my $values = xCAT::FSPUtils::fsp_api_action ($cec, \@td, $action);
my $values = xCAT::FSPUtils::fsp_api_action ($request, $cec, \@td, $action);
my $Rc = pop(@$values);
if ( $Rc != 0 ) {
return( [$Rc,$$values[1]] );
@@ -841,6 +843,7 @@ sub enumerate {
}
sub get_cec_attr_info {
my $request = shift;
my $name = shift;
my $attr = shift;
my $op = shift;
@@ -850,7 +853,7 @@ sub get_cec_attr_info {
huge_page => "get_huge_page"
);
my $action = $op_hash{$op};
my $values = xCAT::FSPUtils::fsp_api_action($name, $attr, $action);
my $values = xCAT::FSPUtils::fsp_api_action($request, $name, $attr, $action);
if (@$values[1] && ((@$values[1] =~ /Error/i) && @$values[2] ne '0')) {
return ([[$name, @$values[1], '1']]);
}
@@ -985,7 +988,7 @@ sub list {
my $l_string = "\n";
#print Dumper($hash);
while (my ($mtms,$h) = each(%$hash) ) {
my $info = enumerate( $h, $mtms );
my $info = enumerate($request, $h, $mtms );
my $Rc = shift(@$info);
my $data = @$info[0];
@@ -1013,16 +1016,16 @@ sub list {
# get the I/O slot information
if($request->{opt}->{l}) {
if ($type =~ /^(fsp|cec)$/) {
$bsr_infos = get_cec_attr_info($node_name, $d, "bsr");
$bsr_infos = get_cec_attr_info($request, $node_name, $d, "bsr");
if (ref($bsr_infos) eq 'ARRAY') {
return $bsr_infos;
}
$huge_infos = get_cec_attr_info($node_name, $d, "huge_page");
$huge_infos = get_cec_attr_info($request,$node_name, $d, "huge_page");
if (ref($huge_infos) eq 'ARRAY') {
return $huge_infos;
}
}
$lpar_infos = get_cec_attr_info($node_name, $d, "lpar_info");
$lpar_infos = get_cec_attr_info($request, $node_name, $d, "lpar_info");
if (ref($lpar_infos) eq 'ARRAY') {
return $lpar_infos;
}
@@ -1053,7 +1056,7 @@ sub list {
if (defined($lpar_huges{$lparid})) {
$hugepage = $lpar_huges{$lparid};
} else {
$hugepage = get_cec_attr_info($node_name, $d, "huge_page");
$hugepage = get_cec_attr_info($request, $node_name, $d, "huge_page");
if (ref($hugepage) eq 'ARRAY') {
return $hugepage;
}
@@ -1144,7 +1147,7 @@ sub list_orig {
# This is a CEC
####################################
else {
my $values = xCAT::FSPUtils::fsp_api_action( $node_name, $d, "query_octant_cfg");
my $values = xCAT::FSPUtils::fsp_api_action($request, $node_name, $d, "query_octant_cfg");
my $Rc = @$values[2];
my $data = @$values[1];
if ( $Rc != SUCCESS ) {
@@ -1210,7 +1213,7 @@ sub create {
}
}
my $values = xCAT::FSPUtils::fsp_api_action ($cec_name, $d, "query_octant_cfg");
my $values = xCAT::FSPUtils::fsp_api_action ($request, $cec_name, $d, "query_octant_cfg");
my $Rc = shift(@$values);
if ( $Rc != 0 ) {
return( [[$cec_name,$$values[0],$Rc]] );
@@ -1287,7 +1290,7 @@ sub create {
#$values = xCAT::FSPUtils::fsp_api_create_parttion( $starting_lpar_id, $octant_cfg, $node_number, $d, "set_octant_cfg");
$values = xCAT::FSPUtils::fsp_api_action ($cec_name, $d, "set_octant_cfg", 0, $parameters);
$values = xCAT::FSPUtils::fsp_api_action ($request,$cec_name, $d, "set_octant_cfg", 0, $parameters);
my $Rc = $$values[2];
my $data = $$values[1];
if ( $Rc != SUCCESS ) {
+67 -28
View File
@@ -119,43 +119,52 @@ sub myxCATname
# make sure xcatd is running - & db is available
# this routine is called during initial install of xCAT
my $cmd="lsxcatd -d > /dev/null 2>&1";
my $outref = [];
@$outref = `$cmd`;
my $rc = $? >> 8;
if ($rc == 0)
{
if (xCAT::Utils->isMN())
{
my $cmd="lsxcatd -d > /dev/null 2>&1";
my $outref = [];
@$outref = `$cmd`;
my $rc = $? >> 8;
if ($rc == 0)
{
if (xCAT::Utils->isMN())
{
# read the site table, master attrib
my $hostname = xCAT::Utils->get_site_Master();
if (($hostname =~ /\d+\.\d+\.\d+\.\d+/) || ($hostname =~ /:/))
{
$name = xCAT::NetworkUtils->gethostname($hostname);
$name = xCAT::NetworkUtils->gethostname($hostname);
}
else
{
$name = $hostname;
}
}
elsif (xCAT::Utils->isServiceNode())
{
# the myxcatpost_<nodename> file should exist on all nodes!
my $catcmd = "cat /xcatpost/myxcatpost_* | grep '^NODE='";
# - can't use runcmd because this routine is called by runcmd
my $output = `$catcmd`;
if ($::RUNCMD_RC == 0)
}
elsif (xCAT::Utils->isServiceNode())
{
my $filename;
# get any files with the format myxcatpost_*
my $lscmd = qq~/bin/ls /xcatpost/myxcatpost_* 2>/dev/null~;
my $output = `$lscmd`;
my $rc = $? >> 8;
if ($rc == 0)
{
($junk, $name) = split('=', $output);
foreach my $line ( split(/\n/, $output)) {
my ($junk, $hostname) = split('myxcatpost_', $line);
if (xCAT::InstUtils->is_me($hostname)) {
$filename="/xcatpost/myxcatpost_$hostname";
last;
}
}
if ( -e $filename ) {
my $catcmd = qq~/bin/cat $filename | grep '^NODE=' 2>/dev/null~;
my $string = `$catcmd`;
if ($rc == 0) {
($junk, $name) = split('=', $string);
}
}
}
}
}
}
}
if (!$name) {
$name = hostname();
@@ -1007,7 +1016,36 @@ sub dolitesetup
}
}
# need list for just this set of nodes!!!
my $nrange;
my @flist;
my @litef;
if (scalar(@nodel) > 0)
{
$nrange = join(',',@nodel);
}
my @flist = xCAT::Utils->runcmd("/opt/xcat/bin/litefile $nrange", -1);
if (scalar(@flist) > 0) {
foreach my $l (@flist) {
my ($j1, $j2, $file) = split /\s+/, $l;
push (@litef, $file);
}
}
my $foundras;
if (scalar(@litef) > 0) {
foreach my $f (@litef) {
chomp $f;
if (($f eq "/var/adm/ras/") || ($f eq "/var/adm/ras/conslog")) {
$foundras++;
}
}
}
if ($foundras) {
my $rsp;
push @{$rsp->{data}}, "One or more nodes is using a persistent \/var\/adm\/ras\/ directory. \nWhen the nodes boot up you will then have to move the conslog file to a \nlocation outside of the persistent directory. (Leaving the conslog \nfile in a persistent directory can occasionally lead to a deadlock situation.) \nThis can be done by using the xdsh command to run swcons on the \ncluster nodes. \n(Ex. xdsh <noderange> \'\/usr\/sbin\/swcons -p \/tmp\/conslog\') \n";
xCAT::MsgUtils->message("W", $rsp, $callback);
}
unless (open(LITETREE, ">$litetreetable"))
{
@@ -1019,12 +1057,13 @@ sub dolitesetup
my @treelist = xCAT::Utils->runcmd("/opt/xcat/bin/litetree $noderange", -1);
if (scalar(@treelist) > 0) {
foreach my $l (@treelist) {
my ($p, $serv, $dir) = split (/:/, $l);
my ($p, $serv, $dir, $mopts) = split (/:/, $l);
$p =~ s/\s*//g;
$serv =~ s/\s*//g;
$dir =~ s/\s*//g;
$mopts =~ s/\s*//g;
my $serverIP = xCAT::NetworkUtils->getipaddr($serv);
my $entry = "$p|$serverIP|$dir";
my $entry = "$p|$serverIP|$dir|$mopts";
print LITETREE $entry . "\n";
$foundstatelite++;
}
+3 -3
View File
@@ -2594,7 +2594,7 @@ sub lparnetbootexp
# if -o is not used, power node of
####################################
unless ($from_of) {
if (($output =~ /off/i) or ($output =~ /Not Activated/i) ) {
if (($output =~ /^off$/i) or ($output =~ /Not Activated/i) ) {
nc_msg($verbose, "# Power off complete.\n");
} else {
nc_msg($verbose, "# Begin to Power off the node.\n");
@@ -2622,7 +2622,7 @@ sub lparnetbootexp
$query_count = 0;
while (!$done) {
$output = xCAT::LparNetbootExp->run_lssyscfg($subreq, $verbose, $node);
if (($output =~ /off/i) or ($output =~ /Not Activated/)) {
if (($output =~ /^off$/i) or ($output =~ /Not Activated/)) {
nc_msg($verbose, "Power off complete.\n");
$done = 1;
next;
@@ -3180,7 +3180,7 @@ sub lparnetbootexp
# separate the nodename from the query status
##############################################
if ($from_of != 1) {
if (( $output =~ /off/i ) or ($output =~ /Not Activated/i)) {
if (( $output =~ /^off$/i ) or ($output =~ /Not Activated/i)) {
$done = 1;
}
} else {
+20 -1
View File
@@ -1,6 +1,13 @@
#!/usr/bin/perl
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
package xCAT::MacMap;
BEGIN
{
$::XCATROOT = $ENV{'XCATROOT'} ? $ENV{'XCATROOT'} : '/opt/xcat';
}
use lib "$::XCATROOT/lib/perl";
require Exporter;
our @ISA=qw/Exporter/;
our @EXPORT_OK=qw/walkoid/;
@@ -174,11 +181,19 @@ sub rvlan {
#first order of business is to identify the target switches
my $switchtab=xCAT::Table->new('switch',-create=>0);
unless ($switchtab) { return; }
my $switchents = $switchtab->getNodesAttribs($nodes,[qw/switch port/]);
my $switchents = $switchtab->getNodesAttribs($nodes,[qw/switch port interface/]);
my $node;
foreach $node (keys %$switchents) {
my $entry;
foreach $entry (@{$switchents->{$node}}) {
#skip the none primary interface.
# The vlaue of the primary interface could be empty, primary or primary:ethx
if (defined($entry->{interface})) {
if ($entry->{interface} !~ /primary/) {
next;
}
}
$self->{switches}->{$entry->{switch}}->{$entry->{port}} = $node;
}
}
@@ -318,6 +333,7 @@ sub refresh_table {
$self->{switches} = {};
foreach my $entry (@entries) {
if (defined($entry->{switch}) and $entry->{switch} ne "" and defined($entry->{port}) and $entry->{port} ne "") {
if ( !$self->{switches}->{$entry->{switch}}->{$entry->{port}})
{
$self->{switches}->{$entry->{switch}}->{$entry->{port}} = $entry->{node};
@@ -337,6 +353,9 @@ sub refresh_table {
if ($checked_pairs{$entry->{switch}}) {
next;
}
while($children > 64) {
$self->handle_output($inputs);
}
$checked_pairs{$entry->{switch}}=1;
pipe my $child,my $parent;
$child->autoflush(1);
+19
View File
@@ -710,5 +710,24 @@ sub backup_logfile
return $::OK;
}
sub verbose_message
{
shift;
my $req = shift;
my $data = shift;
if (!defined($req->{verbose})) {
return;
}
my ($sec,$min,$hour,$mday,$mon,$yr,$wday,$yday,$dst) = localtime(time);
my $time = sprintf "%04d%02d%02d.%02d:%02d:%02d", $yr+1900,$mon+1,$mday,$hour,$min,$sec;
$data = "$time ($$) ".$data;
if (defined($req->{callback})) {
my %rsp;
$rsp{data} = [$data];
xCAT::MsgUtils->message("I", \%rsp, $req->{callback});
} else {
xCAT::MsgUtils->message("I", $data);
}
}
1;
+6 -1
View File
@@ -365,7 +365,12 @@ sub ishostinsubnet {
$numbits=128;
}
if ($mask) {
$mask=getipaddr($mask,GetNumber=>1);
if ($mask =~ /\//) {
$mask =~ s/^\///;
$mask=Math::BigInt->new("0b".("1"x$mask).("0"x($numbits-$mask)));
} else {
$mask=getipaddr($mask,GetNumber=>1);
}
} else { #CIDR notation supported
if ($subnet =~ /\//) {
($subnet,$mask) = split /\//,$subnet,2;
+16 -10
View File
@@ -35,6 +35,9 @@ my @allnodeset;
my %allnodehash;
my @grplist;
my $didgrouplist;
my $glstamp=0;
my $allnodesetstamp=0;
my $allgrphashstamp=0;
my %allgrphash;
my $retaincache=0;
my $recurselevel=0;
@@ -180,7 +183,9 @@ sub nodesbycriteria {
sub expandatom { #TODO: implement table selection as an atom (nodetype.os==rhels5.3)
my $atom = shift;
if ($recurselevel > 4096) { die "NodeRange seems to be hung on evaluating $atom, recursion limit hit"; }
unless (scalar(@allnodeset)) { #Build a cache of all nodes, some corner cases will perform worse, but by and large it will do better. We could do tests to see where the breaking points are, and predict how many atoms we have to evaluate to mitigate, for now, implement the strategy that keeps performance from going completely off the rails
unless (scalar(@allnodeset) and (($allnodesetstamp+5) > time())) { #Build a cache of all nodes, some corner cases will perform worse, but by and large it will do better. We could do tests to see where the breaking points are, and predict how many atoms we have to evaluate to mitigate, for now, implement the strategy that keeps performance from going completely off the rails
$allnodesetstamp=time();
$nodelist->_set_use_cache(1);
@allnodeset = $nodelist->getAllAttribs('node','groups');
%allnodehash = map { $_->{node} => 1 } @allnodeset;
}
@@ -206,8 +211,9 @@ sub expandatom { #TODO: implement table selection as an atom (nodetype.os==rhels
unless ($grptab) {
$grptab = xCAT::Table->new('nodegroup');
}
if ($grptab and not $didgrouplist and not scalar @grplist) {
if ($grptab and (($glstamp < (time()-5)) or (not $didgrouplist and not scalar @grplist))) {
$didgrouplist = 1;
$glstamp=time();
@grplist = @{$grptab->getAllEntries()};
}
my $isdynamicgrp = 0;
@@ -235,7 +241,9 @@ sub expandatom { #TODO: implement table selection as an atom (nodetype.os==rhels
# The atom is not a dynamic node group, is it a static node group???
if(!$isdynamicgrp)
{
unless (scalar %allgrphash) { #build a group membership cache
unless (scalar %allgrphash and (time() < ($allgrphashstamp+5))) { #build a group membership cache
$allgrphashstamp=time();
%allgrphash=();
my $nlent;
foreach $nlent (@allnodeset) {
my @groups=split(/,/,$nlent->{groups});
@@ -441,7 +449,10 @@ sub retain_cache { #A semi private operation to be used *ONLY* in the interestin
$retaincache=shift;
unless ($retaincache) { #take a call to retain_cache(0) to also mean that any existing
#cache must be zapped
if ($nodelist) { $nodelist->_clear_cache(); }
if ($nodelist) { $nodelist->_build_cache(1); }
$glstamp=0;
$allnodesetstamp=0;
$allgrphashstamp=0;
undef $nodelist;
@allnodeset=();
%allnodehash=();
@@ -473,7 +484,6 @@ sub extnoderange { #An extended noderange function. Needed as the more straight
}
$return->{intersectinggroups}=[sort keys %grouphash];
}
retain_cache(0);
return $return;
}
sub abbreviate_noderange {
@@ -538,7 +548,7 @@ sub noderange {
$nodelist =xCAT::Table->new('nodelist',-create =>1);
$nodelist->_set_use_cache(0); #TODO: a more proper external solution
@cachedcolumns = ('node','groups');
$nodelist->_build_cache(\@cachedcolumns);
$nodelist->_build_cache(\@cachedcolumns,noincrementref=>1);
$nodelist->_set_use_cache(1); #TODO: a more proper external solution
}
my %nodes = ();
@@ -621,10 +631,6 @@ sub noderange {
}
if ($recurselevel) {
$recurselevel--;
} else {
unless ($retaincache) {
retain_cache(0);
}
}
return sort (keys %nodes);
+789 -16
View File
@@ -4,9 +4,14 @@ package xCAT::PPCcfg;
use strict;
use Getopt::Long;
use xCAT::PPCcli qw(SUCCESS EXPECT_ERROR RC_ERROR NR_ERROR);
use xCAT::PPCfsp;
use xCAT::Usage;
use Storable qw(freeze thaw);
use POSIX "WNOHANG";
use xCAT::MsgUtils qw(verbose_message);
use LWP;
use HTTP::Cookies;
##########################################
# Globals
##########################################
@@ -16,8 +21,8 @@ my %rspconfig = (
hostname => \&hostname
);
my %rsp_result;
my $start;
##########################################################################
# Parse the command line for options and operands
##########################################################################
@@ -90,7 +95,7 @@ sub parse_args {
#}
my $nodes = $request->{node};
my $typehash = xCAT::DBobjUtils->getnodetype($nodes, "ppc");
my $typehash = xCAT::DBobjUtils->getnodetype($nodes);
foreach my $nn (@$nodes) {
$request->{hwtype} = $$typehash{$nn};
last if ($request->{hwtype});
@@ -121,7 +126,7 @@ sub parse_args {
Getopt::Long::Configure( "bundling" );
$request->{method} = undef;
if ( !GetOptions( \%opt, qw(V|Verbose resetnet))) {
if ( !GetOptions( \%opt, qw(V|verbose resetnet))) {
return( usage() );
}
####################################
@@ -358,6 +363,7 @@ sub passwd {
while ( my ($cec,$h) = each(%$hash) ) {
while ( my ($node,$d) = each(%$h) ) {
my $type = @$d[4];
xCAT::MsgUtils->verbose_message($request, "rspconfig :modify password of $usr for node:$node.");
my $data = xCAT::PPCcli::chsyspwd( $exp, $usr, $type, $cec, $passwd, $newpasswd );
my $Rc = shift(@$data);
my $usr_back = $usr;
@@ -368,6 +374,7 @@ sub passwd {
# Write the new password to table
##################################
if ( $Rc == SUCCESS ) {
xCAT::MsgUtils->verbose_message($request, "rspconfig :update xCATdb for node:$node,ID:$usr_back.");
xCAT::PPCdb::update_credentials( $node, $type, $usr_back, $newpasswd );
}
}
@@ -437,6 +444,7 @@ sub sshcfg {
# Determine if SSH is enabled
#####################################
if ( !defined( $mode )) {
xCAT::MsgUtils->verbose_message($request, "rspconfig :check sshcfg for user:$logon on node:$server.");
my $result = xCAT::PPCcli::send_cmd( $exp, "cat $auth" );
my $Rc = shift(@$result);
@@ -459,6 +467,7 @@ sub sshcfg {
#####################################
# Enable/disable SSH
#####################################
xCAT::MsgUtils->verbose_message($request, "rspconfig :sshcfg $mode for user:$logon on node:$server.");
my $result = xCAT::PPCcli::mkauthkeys( $exp, $mode, $logon, $sshkey );
my $Rc = shift(@$result);
@@ -502,6 +511,7 @@ sub frame {
#################################
# Get frame number
#################################
xCAT::MsgUtils->verbose_message($request, "rspconfig :get frame_num for node:$node.");
$data = xCAT::PPCcli::lssyscfg( $exp, @$d[4], @$d[2], 'frame_num' );
$Rc = shift(@$data);
@@ -532,6 +542,7 @@ sub frame {
if ( !defined($ent) or !defined($ent->{id}) ) {
return( [[$node,"Cannot find frame num in database",RC_ERROR]] );
}
xCAT::MsgUtils->verbose_message($request, "rspconfig :set frame_num=".$ent->{id}." for node:$node.");
$data = xCAT::PPCcli::chsyscfg( $exp, "bpa", $d, "frame_num=".$ent->{id} );
$Rc = shift(@$data);
@@ -549,6 +560,7 @@ sub frame {
# Set frame number
# Read the frame number from opt
#################################
xCAT::MsgUtils->verbose_message($request, "rspconfig :set frame_num=$value for node:$node.");
$data = xCAT::PPCcli::chsyscfg( $exp, "bpa", $d, "frame_num=$value" );
$Rc = shift(@$data);
@@ -564,6 +576,7 @@ sub frame {
#################################
# Set frame number to database
#################################
xCAT::MsgUtils->verbose_message($request, "rspconfig : set frame_num, update node:$node attr id=$value.");
$tab->setNodeAttribs( $node, { id=>$value } );
}
}
@@ -596,6 +609,7 @@ sub hostname {
#################################
# Get system name
#################################
xCAT::MsgUtils->verbose_message($request, "rspconfig :get system name for node:$node.");
$data = xCAT::PPCcli::lssyscfg( $exp, @$d[4], @$d[2], 'name' );
$Rc = shift(@$data);
@@ -608,6 +622,7 @@ sub hostname {
push @$result, [$node,@$data[0],SUCCESS];
} elsif ( $value eq '*' ) {
xCAT::MsgUtils->verbose_message($request, "rspconfig :set system name:$node for node:$node.");
$data = xCAT::PPCcli::chsyscfg( $exp, @$d[4], $d, "new_name=$node" );
$Rc = shift(@$data);
@@ -620,6 +635,7 @@ sub hostname {
push @$result, [$node,@$data[0],SUCCESS];
} else {
xCAT::MsgUtils->verbose_message($request, "rspconfig :set system name:$value for node:$node.");
$data = xCAT::PPCcli::chsyscfg( $exp, @$d[4], $d, "new_name=$value" );
$Rc = shift(@$data);
@@ -639,22 +655,779 @@ sub hostname {
return( [@$result] );
}
##########################################################################
# Do resetnet
# Do resetnet public entry
##########################################################################
sub resetnet {
my $request = shift;
my $hash = shift;
my %nodehash;
foreach ( @{$request->{noderange}}) {
$nodehash{$_} = 1;
}
# go to use lsslp do_resetnet
my $result = xCAT_plugin::lsslp::do_resetnet($request, \%nodehash);
return [$result];
doresetnet($request);
return 0;
}
##########################################################################
# Reset the network interfraces if necessary
##########################################################################
sub doresetnet {
my $req = shift;
my %iphash;
my $targets;
my $result;
my %grouphash;
my %oihash;
my %machash;
my %vpdhash;
unless ($req) {
send_msg( $req, 1, "request is empty, return" );
return;
}
###########################################
# prepare to reset network
###########################################
xCAT::MsgUtils->verbose_message($req, "rspconfig :do resetnet begin to phase nodes");
my $hoststab = xCAT::Table->new( 'hosts' );
if ( !$hoststab ) {
send_msg( $req, 1, "Error open hosts table" );
return;
} else {
my @hostslist = $hoststab->getAllNodeAttribs(['node','otherinterfaces']);
foreach my $otherentry ( @hostslist) {
$oihash{$otherentry->{node}} = $otherentry->{otherinterfaces};
}
}
my $mactab = xCAT::Table->new( 'mac' );
if ( !$mactab ) {
send_msg( $req, 1, "Error open mac table" );
return;
}else{
my @maclist = $mactab->getAllNodeAttribs(['node','mac']);
foreach my $macentry (@maclist) {
$machash{$macentry->{node}} = $macentry->{mac};
}
}
$mactab = ();
my $vpdtab = xCAT::Table->new( 'vpd' );
if ( !$vpdtab ) {
send_msg( $req, 1, "Error open vpd table" );
return;
} else {
my @vpdlist = $vpdtab->getAllNodeAttribs(['node','mtm','serial','side']);
foreach my $vpdentry (@vpdlist) {
if ($vpdentry->{side} =~ /(\w)\-\w/) {
my $side = $1;
$vpdhash{$vpdentry->{node}} = $vpdentry->{mtm}."*".$vpdentry->{serial}."*".$side;
}
}
}
$vpdtab = ();
unless ( $req->{node} ) {
send_msg( $req, 0, "no node specified" );
return;
}
###########################################
# Process nodes and get network information
###########################################
my $nodetype = $req->{hwtype};
if ( $nodetype =~ /^(cec|frame)$/ ) {
# this brunch is just for the xcat 2.6(or 2.6+) database
foreach my $nn ( @{ $req->{node}} ) {
my $cnodep = xCAT::DBobjUtils->getchildren($nn);
$nodetype = ( $nodetype =~ /^frame$/i ) ? "bpa" : "fsp";
if ($cnodep) {
foreach my $cnode (@$cnodep) {
my $ip = xCAT::Utils::getNodeIPaddress( $cnode );
my $oi = $oihash{$cnode};
if(!defined $ip) {
send_msg($req, "doresetnet: can't get $cnode ip");
next;
}
if(!defined $oi) {
send_msg($req, "doresetnet: can't get $cnode hosts.otherinterfaces");
next;
}
if ( exists($oihash{$cnode}) and $ip eq $oihash{$cnode}) {
send_msg( $req, 0, "$cnode: same ip address, skipping $nn network reset" );
} elsif( ! exists $machash{$cnode}){
send_msg( $req, 0, "$cnode: no mac defined, skipping $nn network reset" );
} else {
$iphash{$cnode}{sip} = $ip;
$iphash{$cnode}{tip} = $oihash{$cnode};
if(exists $grouphash{$vpdhash{$cnode}}) {
$grouphash{$vpdhash{$cnode}} .= ",$cnode";
} else {
$grouphash{$vpdhash{$cnode}} = "$cnode";
}
$targets->{$nodetype}->{$ip}->{'args'} = "0.0.0.0,$cnode";
$targets->{$nodetype}->{$ip}->{'mac'} = $machash{$cnode};
$targets->{$nodetype}->{$ip}->{'name'} = $cnode;
$targets->{$nodetype}->{$ip}->{'ip'} = $ip;
$targets->{$nodetype}->{$ip}->{'type'} = $nodetype;
my %netinfo = xCAT::DBobjUtils->getNetwkInfo( [$ip] );
$targets->{$nodetype}->{$ip}->{'args'} .= ",$netinfo{$ip}{'gateway'},$netinfo{$ip}{'mask'}";
#xCAT::MsgUtils->verbose_message($req, "doresetnet: get node $cnode info $targets->{$nodetype}->{$ip}->{'args'}, ip is $ip");
$targets->{$nodetype}->{$oi}->{'args'} = "0.0.0.0,$cnode";
$targets->{$nodetype}->{$oi}->{'mac'} = $machash{$cnode};
$targets->{$nodetype}->{$oi}->{'name'} = $cnode;
$targets->{$nodetype}->{$oi}->{'ip'} = $oi;
$targets->{$nodetype}->{$oi}->{'type'} = $nodetype;
%netinfo = xCAT::DBobjUtils->getNetwkInfo( [$oi] );
$targets->{$nodetype}->{$oi}->{'args'} .= ",$netinfo{$oi}{'gateway'},$netinfo{$oi}{'mask'}";
#xCAT::MsgUtils->verbose_message($req, "doresetnet: get node $cnode info $targets->{$nodetype}->{$oi}->{'args'}, oi is $oi");
}
}
} else {
send_msg( $req, 1, "Can't get the fsp/bpa nodes for the $nn" );
return;
}
}
# this brunch is just for the xcat 2.5(or 2.5-) databse
} elsif ( $nodetype =~ /^(fsp|bpa)$/ ) {
foreach my $nn ( @{ $req->{node}} ) {
my $ip = xCAT::Utils::getNodeIPaddress( $nn );
if(!defined $ip) {
send_msg($req, "doresetnet: can't get $nn ip");
next;
}
if(!exists $oihash{$nn}) {
send_msg($req, "doresetnet: can't get $nn hosts.otherinterfaces");
next;
}
my $oi = $oihash{$nn};
if( exists($oihash{$nn}) and $ip eq $oihash{$nn}) {
send_msg( $req, 0, "$nn: same ip address, skipping network reset" );
} elsif (!exists $machash{$nn}){
send_msg( $req, 0, "$nn: no mac defined, skipping network reset" );
} else {
$iphash{$nn}{sip} = $ip;
$iphash{$nn}{tip} = $oihash{$nn};
if(exists $grouphash{$vpdhash{$nn}}) {
$grouphash{$vpdhash{$nn}} .= ",$nn";
} else {
$grouphash{$vpdhash{$nn}} = "$nn";
}
$targets->{$nodetype}->{$ip}->{'args'} = "0.0.0.0,$nn";
$targets->{$nodetype}->{$ip}->{'mac'} = $machash{$nn};
$targets->{$nodetype}->{$ip}->{'name'} = $nn;
$targets->{$nodetype}->{$ip}->{'ip'} = $ip;
$targets->{$nodetype}->{$ip}->{'type'} = $nodetype;
my %netinfo = xCAT::DBobjUtils->getNetwkInfo( [$ip] );
$targets->{$nodetype}->{$ip}->{'args'} .= ",$netinfo{$ip}{'gateway'},$netinfo{$ip}{'mask'}";
#xCAT::MsgUtils->verbose_message($req, "doresetnet: get node $nn info $targets->{$nodetype}->{$ip}->{'args'},ip is $ip");
$targets->{$nodetype}->{$oi}->{'args'} = "0.0.0.0,$nn";
$targets->{$nodetype}->{$oi}->{'mac'} = $machash{$nn};
$targets->{$nodetype}->{$oi}->{'name'} = $nn;
$targets->{$nodetype}->{$oi}->{'ip'} = $oi;
$targets->{$nodetype}->{$oi}->{'type'} = $nodetype;
%netinfo = xCAT::DBobjUtils->getNetwkInfo( [$oi] );
$targets->{$nodetype}->{$oi}->{'args'} .= ",$netinfo{$oi}{'gateway'},$netinfo{$oi}{'mask'}";
#xCAT::MsgUtils->verbose_message($req, "doresetnet: get node $nn info $targets->{$nodetype}->{$oi}->{'args'}, oi is $oi");
}
}
} elsif ( !$nodetype ){
send_msg( $req, 0, "no nodetype defined, skipping network reset" );
return;
} else {
send_msg( $req, 0, "$nodetype not supported, skipping network reset" );
return;
}
unless (%grouphash) {
send_msg( $req, 0, "Failed to group the nodes, skipping network reset" );
return;
}
###########################################
# Update target hardware w/discovery info
###########################################
my %rsp_dev = get_rsp_dev( $req, $targets);
######################################################
# Start to reset network. Fork one process per BPA/FSP
######################################################
%oihash = ();
%machash = ();
%vpdhash = ();
$start = Time::HiRes::gettimeofday();
my $children = 0;
$SIG{CHLD} = sub { while (waitpid(-1, WNOHANG) > 0) { $children--; } };
my $fds = new IO::Select;
my $callback = $req->{callback};
my $ij = 0;
foreach my $node ( keys %grouphash) {
my %iphashfornode;
my $gc = $grouphash{$node};
my %rsp_devfornode;
foreach my $tn (split /,/, $gc) {
$iphashfornode{$tn} = $iphash{$tn};
for my $ti (keys %{$iphash{$tn}}){
my $tip = $iphash{$tn}{$ti};
$rsp_devfornode{$tip} = $rsp_dev{$tip};
}
}
xCAT::MsgUtils->verbose_message($req, "========> begin to fork process for node $node");
######################################################
# Begin fork
######################################################
my $pipe;
my $rspdevref = \%rsp_devfornode;
my $grouphashref = $gc;
my $iphashref = \%iphashfornode;
my $result;
my @data = ("RSPCONFIG6sK4ci");
#######################################
# Pipe childs output back to parent
#######################################
my $parent;
my $child;
pipe $parent, $child;
$ij ++;
$ij = int($ij%60);
my $pid = xCAT::Utils->xfork();
if ( !defined($pid) ) {
###################################
# Fork error
###################################
send_msg( $req, 1, "Fork error: $!" );
return undef;
}
elsif ( $pid == 0 ) {
sleep $ij;
###################################
# Child process, clear memory first
###################################
%rsp_dev = ();
%grouphash = ();
%iphash = ();
close( $parent );
$req->{pipe} = $child;
my $msgs;
my $report;
#try and try to avoid the fail that caused by refreshing IP when doing resetnet
my $time = 0;
while (1) {
my $erflag = 0;
$msgs = child_process($grouphashref, $iphashref, $rspdevref, $req, $node );
foreach my $port (keys %$msgs){
unless ($msgs->{$port} =~ /successful/) {
$erflag = 1;
last;
}
}
if ($erflag) {
$report = ();
foreach my $port1 (keys %$msgs){
$report .= $port1.":".$msgs->{$port1}.";";
}
xCAT::MsgUtils->verbose_message($req, "========> try again, $report");
#send_msg( $req, 0, "========> try again, $report");
sleep 3;
$time++;
} else {
last;
}
last if ($time > 10);
}
$report = ();
foreach my $port (keys %$msgs){
$report .= $port.":".$msgs->{$port}.";";
}
send_msg( $req, 0, "Resetnet result for $node is : $report");
####################################
# Pass result array back to parent
####################################
my %data;
$data{errorcode} = 0;
my $out = $req->{pipe};
print $out freeze( [\%data] );
print $out "\nENDOFFREEZE6sK4ci\n";
exit(0);
} else {
###################################
# Parent process
###################################
close( $child );
$pipe = $parent ;
}
if ( $pipe ) {
$fds->add( $pipe );
$children++;
}
}
#############################################
# Process responses from children
#############################################
while ( $children > 0 ) {
child_response( $callback, $fds );
}
while (child_response($callback,$fds)) {}
my $elapsed = Time::HiRes::gettimeofday() - $start;
my $msg = sprintf( "Total rspconfig Time: %.3f sec\n", $elapsed );
xCAT::MsgUtils->verbose_message($req, $msg);
return undef;
}
##########################################################################
# child process
##########################################################################
sub child_process {
my $grouphashref = shift;
my $iphashref = shift;
my $rspdevref = shift;
my $req = shift;
my $node = shift;
my %msginfo;
my @ns = split /,/, $grouphashref;
my @valid_ips;
my @portneedreset;
my @portsuccess;
##########################################################
# ping static ip firstly, if succesufully, skip resetnet
##########################################################
foreach my $fspport (@ns) {
my $ip = ${$iphashref->{$fspport}}{sip};
my $rc = system("ping -q -n -c 1 -w 1 $ip > /dev/null");
if ($rc == 0) {
xCAT::MsgUtils->verbose_message( $req, "ping static $ip successfully");
push @valid_ips, $ip; # static ip should be used first
push @portsuccess, $fspport;
$msginfo{$fspport} = "successful";
} else {
xCAT::MsgUtils->verbose_message( $req, "ping static $ip failed, need to do resetnet for $fspport");
push @portneedreset, $fspport;
}
}
if (scalar (@portneedreset) == 0) {
return \%msginfo;
}
###########################################
# ping temp ip secondary
###########################################
foreach my $fspport (@ns) {
my $ip = ${$iphashref->{$fspport}}{tip};
my $rc = system("ping -q -n -c 1 -w 1 $ip > /dev/null");
if ($rc == 0) {
push @valid_ips, $ip;
xCAT::MsgUtils->verbose_message( $req, "ping temp $ip successfully");
} else {
xCAT::MsgUtils->verbose_message( $req, "ping temp $ip failed");
}
}
if (scalar (@valid_ips) == 0) {
foreach my $fspport (@ns) {
$msginfo{$fspport} = "failed to find valid ip to log on";
}
return \%msginfo;
}
#########################################
# log on, no retry here
#########################################
my @exp;
my $goodip;
my $retry = 2;
foreach my $ip(@valid_ips) {
@exp = xCAT::PPCcfg::connect(${$rspdevref->{$ip}}{username},${$rspdevref->{$ip}}{password}, $ip);
####################################
# Successfully connected
####################################
if ( ref($exp[0]) eq "LWP::UserAgent" ) {
$goodip = $ip;
xCAT::MsgUtils->verbose_message( $req, "log in successfully with $ip");
last;
}
}
my $msg = "login result is :".join(',', @exp);
xCAT::MsgUtils->verbose_message( $req, $msg);
####################################
# do resetnet
####################################
unless ($goodip) {
foreach my $fspport (@ns) {
$msginfo{$fspport} = "failed to log on with $exp[0]";
}
return \%msginfo;
}
my %handled;
my $port;
if (scalar(@portneedreset) == 2 ) { ## do resetnet for the other port first
$port = $portneedreset[0];
my $ip = ${$iphashref->{$port}}{sip};
if ($goodip eq $ip) {
$port = $portneedreset[1];
}
xCAT::MsgUtils->verbose_message( $req, "begin to reset for port $port.. good ip is $goodip, ip is $ip....................................");
my $rc = system("ping -q -n -c 1 -w 1 $ip > /dev/null");
unless ($rc == 0) {
$ip = ${$iphashref->{$port}}{tip};
$handled{network} = $ip.",".${$rspdevref->{$ip}}{args};
my @cmds = ("network=$ip,${$rspdevref->{$ip}}{args}");
my %request = (
ppcretry => 1,
verbose => 0,
ppcmaxp => 64,
ppctimeout => 0,
fsptimeout => 0,
ppcretry => 3,
maxssh => 8,
arg => \@cmds,
method => \%handled,
command => 'rspconfig',
hwtype => ${$rspdevref->{$ip}}{type},
);
xCAT::MsgUtils->verbose_message( $req, "Begin to do reset for $port, nic is $ip");
my $result = xCAT::PPCfsp::handler($ip, \%request, \@exp, 1 );
if ($result) {
my $errcode = ${@$result[0]}{errorcode};
if ( $errcode == 0) {
$msginfo{$port} = "successful";
} else {
my $node = ${@$result[0]}{node};
$msginfo{$port} = @{${@{${@$node[0]}{data}}[0]}{contents}}[0];
}
} else {
$msginfo{$port} = "failed with unknown reason";
}
} else {
$msginfo{$port} = "successful";
}
}
if ($port) {
if ($port eq $portneedreset[0] ) {
$port = $portneedreset[1];
} else {
$port = $portneedreset[0];
}
} else {
$port = $portneedreset[0];
}
xCAT::MsgUtils->verbose_message( $req, "begin to reset for port $port......................................");
my $ip = ${$iphashref->{$port}}{sip};
my $rc = system("ping -q -n -c 1 -w 1 $ip > /dev/null");
unless ($rc == 0) { #should be unless!!!!!!!!!!!!!
$ip = ${$iphashref->{$port}}{tip};
$handled{network} = $ip.",".${$rspdevref->{$ip}}{args};
my @cmds = ("network=$ip,${$rspdevref->{$ip}}{args}");
my %request = (
ppcretry => 1,
verbose => 0,
ppcmaxp => 64,
ppctimeout => 0,
fsptimeout => 0,
ppcretry => 3,
maxssh => 8,
arg => \@cmds,
method => \%handled,
command => 'rspconfig',
hwtype => ${$rspdevref->{$ip}}{type},
);
xCAT::MsgUtils->verbose_message( $req, "Begin to do reset for $port, nic is $ip");
my $result = xCAT::PPCfsp::handler($ip, \%request, \@exp);
if ($result) {
my $errcode = ${@$result[0]}{errorcode};
if ( $errcode == 0) {
$msginfo{$port} = "successful";
} else {
my $node = ${@$result[0]}{node};
$msginfo{$port} = @{${@{${@$node[0]}{data}}[0]}{contents}}[0];
}
} else {
$msginfo{$port} = "failed with unknown reason";
}
} else {
xCAT::PPCfsp::disconnect( \@exp );
$msginfo{$port} = "successful";
}
return \%msginfo;
}
#############################################
# Get rsp devices and their logon info
#############################################
sub get_rsp_dev
{
my $request = shift;
my $targets = shift;
my $mm = $targets->{'mm'} ? $targets->{'mm'} : {};
my $hmc = $targets->{'hmc'} ? $targets->{'hmc'}: {};
my $fsp = $targets->{'fsp'} ? $targets->{'fsp'}: {};
my $bpa = $targets->{'bpa'} ? $targets->{'bpa'}: {};
if (%$mm)
{
my $bladeuser = 'USERID';
my $bladepass = 'PASSW0RD';
#if ( $verbose ) {
# trace( $request, "telneting to management-modules....." );
#}
#############################################
# Check passwd table for userid/password
#############################################
my $passtab = xCAT::Table->new('passwd');
if ( $passtab ) {
#my ($ent) = $passtab->getAttribs({key=>'blade'},'username','password');
my $ent = $passtab->getNodeAttribs('blade', ['username','password']);
if ( defined( $ent )) {
$bladeuser = $ent->{username};
$bladepass = $ent->{password};
}
}
#############################################
# Get userid/password
#############################################
my $mpatab = xCAT::Table->new('mpa');
for my $nd ( keys %$mm ) {
my $user = $bladeuser;
my $pass = $bladepass;
if ( defined( $mpatab )) {
#my ($ent) = $mpatab->getAttribs({mpa=>$_},'username','password');
my $ent = $mpatab->getNodeAttribs($nd, ['username','password']);
if ( defined( $ent->{password} )) { $pass = $ent->{password}; }
if ( defined( $ent->{username} )) { $user = $ent->{username}; }
}
$mm->{$nd}->{username} = $user;
$mm->{$nd}->{password} = $pass;
}
}
if (%$hmc )
{
#############################################
# Get HMC userid/password
#############################################
foreach ( keys %$hmc ) {
( $hmc->{$_}->{username}, $hmc->{$_}->{password}) = xCAT::PPCdb::credentials( $hmc->{$_}->{name}, lc($hmc->{$_}->{'type'}), "hscroot" );
xCAT::MsgUtils->verbose_message( $request, "user/passwd for $_ is $hmc->{$_}->{username} $hmc->{$_}->{password}");
}
}
if ( %$fsp)
{
#############################################
# Get FSP userid/password
#############################################
foreach ( keys %$fsp ) {
( $fsp->{$_}->{username}, $fsp->{$_}->{password}) = xCAT::PPCdb::credentials( $fsp->{$_}->{name}, lc($fsp->{$_}->{'type'}), "admin");
xCAT::MsgUtils->verbose_message( $request, "user/passwd for $_ is $fsp->{$_}->{username} $fsp->{$_}->{password}");
}
}
if ( %$bpa)
{
#############################################
# Get BPA userid/password
#############################################
foreach ( keys %$bpa ) {
( $bpa->{$_}->{username}, $bpa->{$_}->{password}) = xCAT::PPCdb::credentials( $bpa->{$_}->{name}, lc($bpa->{$_}->{'type'}), "admin");
xCAT::MsgUtils->verbose_message( $request, "user/passwd for $_ is $bpa->{$_}->{username} $bpa->{$_}->{password}");
}
}
return (%$mm,%$hmc,%$fsp,%$bpa);
}
##########################################################################
# Invokes the callback with the specified message
##########################################################################
sub send_msg {
my $request = shift;
my $ecode = shift;
my %output;
#################################################
# Called from child process - send to parent
#################################################
if ( exists( $request->{pipe} )) {
my $out = $request->{pipe};
$output{errorcode} = $ecode;
$output{data} = \@_;
print $out freeze( [\%output] );
print $out "\nENDOFFREEZE6sK4ci\n";
}
#################################################
# Called from parent - invoke callback directly
#################################################
elsif ( exists( $request->{callback} )) {
my $callback = $request->{callback};
$output{errorcode} = $ecode;
$output{data} = \@_;
$callback->( \%output );
}
}
##########################################################################
# Collect output from the child processes
##########################################################################
sub child_response {
my $callback = shift;
my $fds = shift;
my @ready_fds = $fds->can_read(1);
foreach my $rfh (@ready_fds) {
my $data = <$rfh>;
#################################
# Read from child process
#################################
if ( defined( $data )) {
while ($data !~ /ENDOFFREEZE6sK4ci/) {
$data .= <$rfh>;
}
my $responses = thaw($data);
#############################
# rspconfig results
#############################
if ( @$responses[0] =~ /^RSPCONFIG6sK4ci$/ ) {
#shift @$responses;
#my $ip = @$responses[0];
#my @rsp1 = (@$responses[1]);
#$rsp_result{$ip} = \@rsp1;
#$ip = @$responses[2];
#if ($ip) {
# my @rsp2 = (@$responses[3]);
# $rsp_result{$ip} = \@rsp2;
#}
next;
}
#############################
# Message or verbose trace
#############################
foreach ( @$responses ) {
$callback->( $_ );
}
next;
}
#################################
# Done - close handle
#################################
$fds->remove($rfh);
close($rfh);
}
}
##########################################################################
# Logon through remote FSP HTTP-interface
##########################################################################
sub connect {
my $username = shift;
my $passwd = shift;
my $server = shift;
my $verbose = shift;
my $lwp_log;
##################################
# Use timeout
##################################
my $timeout = 10;
##################################
# Redirect STDERR to variable
##################################
if ( $verbose ) {
close STDERR;
if ( !open( STDERR, '>', \$lwp_log )) {
return( "Unable to redirect STDERR: $!" );
}
}
$IO::Socket::SSL::VERSION = undef;
eval { require Net::SSL };
##################################
# Turn on tracing
##################################
if ( $verbose ) {
LWP::Debug::level( '+' );
}
##################################
# Create cookie
##################################
my $cookie = HTTP::Cookies->new();
$cookie->set_cookie( 0,'asm_session','0','cgi-bin','','443',0,0,3600,0 );
##################################
# Create UserAgent
##################################
my $ua = LWP::UserAgent->new();
##################################
# Set options
##################################
my $url = "https://$server/cgi-bin/cgi?form=2";
$ua->cookie_jar( $cookie );
$ua->timeout( $timeout );
##################################
# Submit logon
##################################
my $res = $ua->post( $url,
[ user => $username,
password => $passwd,
lang => "0",
submit => "Log in" ]
);
##################################
# Logon failed
##################################
if ( !$res->is_success() ) {
return( $lwp_log.$res->status_line );
}
##################################
# To minimize number of GET/POSTs,
# if we successfully logon, we should
# get back a valid cookie:
# Set-Cookie: asm_session=3038839768778613290
#
##################################
if ( $res->as_string =~ /Set-Cookie: asm_session=(\d+)/ ) {
##############################
# Successful logon....
# Return:
# UserAgent
# Server hostname
# UserId
# Redirected STDERR/STDOUT
##############################
return( $ua,
$server,
$username,
\$lwp_log );
}
##############################
# Logon error
##############################
$res = $ua->get( $url );
##############################
# Check for specific failures
# $res->status_line is like "200 OK"
# $res->content is like <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" .....Too many users......</html>
# $res->base is like https://41.17.4.2/cgi-bin/cgi?form=2
##############################
my $err;
if ( $res->content =~ /Too many users/i ) {
$err = "Too many users";
}elsif ( $res->content =~ /Invalid user ID or password/i ) {
$err = "Invalid user ID or password";
}else{
$err = "Logon failure with unknown reason";
}
return ($lwp_log.$err);
}
1;
+31 -9
View File
@@ -6,6 +6,7 @@ use Getopt::Long;
use xCAT::PPCcli qw(SUCCESS EXPECT_ERROR RC_ERROR NR_ERROR);
use xCAT::Usage;
use xCAT::DBobjUtils;
use xCAT::FSPUtils;
##############################################
# Globals
@@ -90,13 +91,14 @@ sub mkhwconn_parse_args
my @frame_members = ();
if ( $ppctab)
{
my $typehash = xCAT::DBobjUtils->getnodetype($nodes, "ppc");
for my $node ( @$nodes)
{
my $node_parent = undef;
my $nodetype = undef;
#my $nodetype_hash = $nodetypetab->getNodeAttribs( $node,[qw(nodetype)]);
my $node_parent_hash = $ppctab->getNodeAttribs( $node,[qw(parent)]);
$nodetype = $$typehash{$node};
#$nodetype = $nodetype_hash->{nodetype};
$nodetype = xCAT::DBobjUtils->getnodetype($node);
$node_parent = $node_parent_hash->{parent};
if ( !$nodetype )
{
@@ -159,7 +161,7 @@ sub mkhwconn_parse_args
if (scalar(@no_type_nodes))
{
my $tmp_nodelist = join ',', @no_type_nodes;
return ( usage("Attribute nodetype.nodetype cannot be found for node(s) $tmp_nodelist"));
return ( usage("Attribute nodetype.nodetype cannot be found for node(s) $tmp_nodelist. Please define first and try again."));
}
if (scalar(@bpa_ctrled_nodes))
@@ -285,6 +287,9 @@ sub lshwconn_parse_args
}
my $nodetype;
my @no_type_nodes = ();
my @no_mgt_nodes = ();
my @error_type_nodes = ();
for my $node ( @{$request->{node}})
{
#my $ent = $nodetypetab->getNodeAttribs( $node, [qw(nodetype)]);
@@ -292,11 +297,13 @@ sub lshwconn_parse_args
my $nodehm = $nodehmtab->getNodeAttribs( $node, [qw(mgt)]);
if ( ! $ttype)
{
return( ["Failed to get node type for node $node.\n"]);
push @no_type_nodes, $node;
next;
}
if ( ! $nodehm)
{
return( ["Failed to get nodehm.mgt value for node $node.\n"]);
push @no_mgt_nodes, $node;
next;
}
elsif ( $nodehm->{mgt} ne 'hmc')
{
@@ -306,7 +313,8 @@ sub lshwconn_parse_args
and $ttype ne 'fsp' and $ttype ne 'cec'
and $ttype ne 'bpa' and $ttype ne 'frame')
{
return( ["Node type $ttype is not supported for this command.\n"]);
push @error_type_nodes, $node;
next;
}
if ( ! $nodetype)
{
@@ -320,7 +328,19 @@ sub lshwconn_parse_args
}
}
}
if (scalar(@no_type_nodes)) {
my $tmp_nodelist = join ',', @no_type_nodes;
return( ["Failed to get node type for node(s) $tmp_nodelist. Please define first and try again\n"]);
}
if (scalar(@no_mgt_nodes)) {
my $tmp_nodelist = join ',', @no_mgt_nodes;
return( ["Failed to get nodehm.mgt value for node(s) $tmp_nodelist. Please define first and try again.\n"]);
}
if (scalar(@error_type_nodes)) {
my $tmp_nodelist = join ',', @error_type_nodes;
my $link = (scalar(@error_type_nodes) == '1')? 'is':'are';
return( ["Node type of node(s) $tmp_nodelist $link not supported for this command.\n"]);
}
$request->{nodetype} = $nodetype;
$request->{method} = 'lshwconn';
@@ -379,6 +399,7 @@ sub rmhwconn_parse_args
my $newtype = xCAT::DBobjUtils::getnodetype($node);
unless ($newtype) {
push @no_type_nodes, $node;
next;
}
if ($newtype =~ /^(fsp|bpa)$/ )
@@ -422,7 +443,7 @@ sub rmhwconn_parse_args
if (scalar(@no_type_nodes))
{
my $tmp_nodelist = join ',', @no_type_nodes;
return ( usage("Attribute nodetype.nodetype cannot be found for node(s) $tmp_nodelist"));
return ( usage("Attribute nodetype.nodetype cannot be found for node(s) $tmp_nodelist. Please define first and try again.\n"));
}
if (scalar(@bpa_ctrled_nodes))
@@ -619,7 +640,8 @@ sub lshwconn
#my $node_ip_hash = $hosttab->getNodeAttribs( $node_name,[qw(ip)]);
#$node_ip = $node_ip_hash->{ip};
#$node_ip = xCAT::Utils::getNodeIPaddress( $node_name );
$node_ip = xCAT::Utils::getIPaddress( $node_name );
my $d = $node_hash->{$node_name};
$node_ip = xCAT::FSPUtils::getIPaddress($request, $$d[4], $node_name );
}
if (!$node_ip || ($node_ip == -3))
{
+378 -5
View File
@@ -4,7 +4,7 @@ package xCAT::PPCdb;
use strict;
use xCAT::Table;
use xCAT::GlobalDef;
use xCAT_plugin::lsslp;
###########################################
# Factory defaults
@@ -279,7 +279,7 @@ sub update_ppc {
if ( $ttype eq 'cec' )
{
my $hostname = xCAT_plugin::lsslp::gethost_from_url_or_old($tname, "FSP", $tmtm, $tsn, "", "", $tid, "","");
my $hostname = get_host($tname, "FSP", $tmtm, $tsn, "", "", $tid, "","");
if ($hostname ne $tname)
{
$hostname =~ /\-(\w)$/;
@@ -295,7 +295,7 @@ sub update_ppc {
}
} elsif ( $ttype eq 'frame' )
{
my $hostname = xCAT_plugin::lsslp::gethost_from_url_or_old($tname, "BPA", $tmtm, $tsn, "", "", $tid, "","");
my $hostname = get_host($tname, "BPA", $tmtm, $tsn, "", "", $tid, "","");
if ($hostname ne $tname)
{
$hostname =~ /\-(\w)$/;
@@ -799,7 +799,14 @@ sub credentials {
if ( $user_specified)
{ # need regx
#($ent) = $tab->getAttribs( {hcp=>$server,username=>$user},qw(password));
($ent) = $tab->getNodeSpecAttribs( $server, {username=>$user},qw(password));
#($ent) = $tab->getNodeSpecAttribs( $server, {username=>$user},qw(password));
my @output = $tab->getNodeAttribs($server, qw(username password));
foreach my $tmp_entry (@output) {
if ($tmp_entry->{username} =~ /^$user$/) {
$ent = $tmp_entry;
last;
}
}
}
else
{
@@ -817,7 +824,14 @@ sub credentials {
if ( $user_specified)
{ # need regx
#($ent) = $tab->getAllAttribs( {hcp=>$defaultgrp{$hwtype},username=>$user},qw(password));
($ent) = $tab->getNodeSpecAttribs( $defaultgrp{$hwtype}, {username=>$user},qw(password));
#($ent) = $tab->getNodeSpecAttribs( $defaultgrp{$hwtype}, {username=>$user},qw(password));
my @output = $tab->getNodeAttribs( $defaultgrp{$hwtype}, qw(username password));
foreach my $tmp_entry (@output) {
if ($tmp_entry->{username} =~ /^$user$/) {
$ent = $tmp_entry;
last;
}
}
}
else
{
@@ -909,7 +923,366 @@ sub update_credentials
return undef;
}
#############################################################################
# used for FSP/BPA redundancy database migration
# if return something, it means it will use the old data name
# or new data name
# if return undef, it means the ip is not invalid and won't make any definition
#############################################################################
sub get_host {
my $nodename = shift;
my $type = shift;
my $mtm = shift;
my $sn = shift;
my $side = shift;
my $ip = shift;
my $cage_number = shift;
my $parmtm = shift;
my $parsn = shift;
my $pname = shift;
my $flagref = shift;
#######################################
# Extract IP from URL
#######################################
if ($ip)
{
my $nets = xCAT::Utils::my_nets();
my $avip = getip_from_iplist( $ip, $nets);
#if ( !defined( $ip )) {
# return undef;
#}
}
# get the information of existed nodes to do the migration
read_from_table() unless (%::OLD_DATA_CACHE);
foreach my $oldnode ( keys %::OLD_DATA_CACHE )
{
my $tmpmtm = @{$::OLD_DATA_CACHE{$oldnode}}[0];
my $tmpsn = @{$::OLD_DATA_CACHE{$oldnode}}[1];
my $tmpside = @{$::OLD_DATA_CACHE{$oldnode}}[2];
my $tmpip = @{$::OLD_DATA_CACHE{$oldnode}}[3];
my $tmpid = @{$::OLD_DATA_CACHE{$oldnode}}[4];
my $tmpparent = @{$::OLD_DATA_CACHE{$oldnode}}[5];
my $tmptype = uc(@{$::OLD_DATA_CACHE{$oldnode}}[6]);
my $unmatched = @{$::OLD_DATA_CACHE{$oldnode}}[7];
# used to match fsp defined by xcatsetup
# should return fast to save time
if (($type eq "BPA" or $type eq "FSP") and ($tmptype eq $type) and $pname and $side) {
if ($pname eq $tmpparent and $side eq $tmpside) {
$$flagref = 1;
return $oldnode;
}
}
# match the existed nodes including old data and user defined data
if (($type eq "BPA" or $type eq "FSP") and ($tmptype eq $type)) {
unless ($tmpmtm) {
next;
}
if ( $tmpmtm eq $mtm and $tmpsn eq $sn) {
my $ifip = xCAT::Utils->isIpaddr($oldnode);
if ( $ifip ) {# which means that the node is defined by the new lsslp
if ( $tmpside eq $side ) {# match! which means that node is the same as the new one
if ( $ip eq $tmpip ) { #which means that the ip is not changed
# maybe we should check if the ip is invalid and send a warning
$$flagref = 1;
return $ip;
} else { #which means that the ip is changed
my $vip = check_ip($ip);
if ( !$vip ) { #which means the ip is changed and valid
# maybe we should check if the old ip is invalid and send a warning
# even so we should keep the definition as before
# because this case, we can't put check_ip in the end
$$flagref = 1;
return $oldnode;
} else {
return $ip;
}
}
}
}
else { # name is not a ip
$side =~ /(\w)\-(\w)/;
my $slot = $1;
if ( $tmpside and $tmpside !~ /\-/ ) {# side is like A or B
if ( $slot eq $tmpside ) {
if ( $oldnode =~ /^Server\-/) {#judge if need to change node's name
if ( $ip eq $tmpip ) {
if ( $oldnode =~ /\-(A|B)$/) {
@{$::OLD_DATA_CACHE{$oldnode}}[7] = 0;
$$flagref = 1;
return $oldnode;
} else {
@{$::OLD_DATA_CACHE{$oldnode}}[7] = 0;
#change node name, need to record the node here
$::UPDATE_CACHE{$mtm.'-'.$sn} = $oldnode;
$$flagref = 1;
return $oldnode.'-'.$slot;
}
} else {# not find a matched definition, but need to use the old node name
if ($unmatched){
$$flagref = 1;
return $oldnode;
}
}
} elsif ( $tmpside =~ /\-/ ) {# end of if ( $oldnode =~ /^Server\-/)
if ( $ip eq $tmpip ) {
@{$::OLD_DATA_CACHE{$oldnode}}[7] = 0;
$$flagref = 1;
return $oldnode;
} else{
if ($unmatched){
$$flagref = 1;
return $oldnode;
}
}
}
}
} elsif ( $tmpside =~ /\-/ ){
if ( $side eq $tmpside ) {
$$flagref = 1;
return $oldnode;
}
} elsif ( !$tmpside ) {
if ( $oldnode =~ /^Server\-/) {#judge if need to change node's name
if ( $oldnode !~ /\-(A|B)$/ ) {
delete $::OLD_DATA_CACHE{$oldnode};
$$flagref = 1;
return $oldnode."-".$slot;
}
}
# if mtms could match but side not defined, we will trate
# it as the result by rscan. And alway use its name.
delete $::OLD_DATA_CACHE{$oldnode};
$$flagref = 1;
return $oldnode;
}
}
}# end of if ($tmpmtm eq $mtm and $tmpsn eq $sn)
}
if ( ($type eq "FRAME" or $type eq "CEC") and ($type eq $tmptype)){
if ( !$tmpmtm and !$tmpid) {
next;
}
# user may define cec only with parent /id /type
# we should match this situation
if ( ($type eq "CEC") and $parmtm and $parsn and $cage_number ) {
my $tpparmtm = @{$::OLD_DATA_CACHE{$tmpparent}}[0];
my $tpparsn = @{$::OLD_DATA_CACHE{$tmpparent}}[1];
if ( ($tpparmtm eq $parmtm) and ($tpparsn eq $parsn) and ($cage_number eq $tmpid) and ($type eq $tmptype) ) {
$$flagref = 1;
return $oldnode;
}
}
# user may define cec/frame only with mtms
# but what we consider here is just the data in xCAT 2.6
if ($tmpmtm eq $mtm and $tmpsn eq $sn and $tmptype eq $type) {
if ( $oldnode =~ /^Server\-/) {#judge if need to change node's name
if ( $oldnode =~ /(\-A)$/) {
$nodename = s/(\-A)$//;
# should send a warning here
$$flagref = 1;
return $nodename;
}
else {
$$flagref = 1;
return $oldnode;
}
} else {
$$flagref = 1;
return $oldnode;
}
}
} # end of foreach my $oldnode ( keys %::OLD_DATA_CACHE ), not match
}
# not matched, use the new name
my $ifip = xCAT::Utils->isIpaddr($nodename);
unless ($ifip) {
return $nodename;
}else {
my $vip = check_ip($nodename);
if ( $vip ) {#which means the ip is a valid one
return $nodename;
} else {
return undef;
}
}
}
##########################################################################
# Get correct IP from ip list in SLP Attr
##########################################################################
sub getip_from_iplist
{
my $iplist = shift;
my $nets = shift;
my $inc = shift;
my @ips = split /,/, $iplist;
my @ips2 = split /,/, $inc;
if ( $inc)
{
for my $net (keys %$nets)
{
my $flag = 1;
for my $einc (@ips2) {
if ( $nets->{$net} eq $einc) {
$flag = 0;
}
}
delete $nets->{$net} if ($flag) ;
}
}
for my $ip (@ips)
{
next if ( $ip =~ /:/); #skip IPV6 addresses
for my $net ( keys %$nets)
{
my ($n,$m) = split /\//,$net;
if ( xCAT::Utils::isInSameSubnet( $n, $ip, $m, 1) and
xCAT::Utils::isPingable( $ip))
{
return $ip;
}
}
}
return undef;
}
sub read_from_table {
my %idhash;
my %typehash;
my %iphash;
my %vpdhash;
if ( !defined(%::OLD_DATA_CACHE))
{
# find out all the existed nodes' ipaddresses
my $hoststab = xCAT::Table->new('hosts');
if ( $hoststab ) {
my @ipentries = $hoststab->getAllNodeAttribs( ['node','ip'] );
for my $ipentry ( @ipentries ) {
$iphash{$ipentry->{node}} = $ipentry->{ip};
}
} else {
return 1;
}
#find out all the existed nodes' type
my $nodetypetab = xCAT::Table->new('nodetype');
if ( $nodetypetab ) {
my @typeentries = $nodetypetab->getAllNodeAttribs( ['node','nodetype'] );
for my $typeentry ( @typeentries) {
$typehash{$typeentry->{node}} = $typeentry->{nodetype};
}
} else {
return 2;
}
# find out all the existed nodes' mtms and side
my $vpdtab = xCAT::Table->new( 'vpd' );
if ( $vpdtab ) {
my @vpdentries = $vpdtab->getAllNodeAttribs(['node','mtm','serial','side']);
for my $entry ( @vpdentries ) {
@{$vpdhash{$entry->{node}}}[0] = $entry->{mtm};
@{$vpdhash{$entry->{node}}}[1] = $entry->{serial};
@{$vpdhash{$entry->{node}}}[2] = $entry->{side};
}
} else {
return 3;
}
# find out all the existed nodes' attributes
my $ppctab = xCAT::Table->new('ppc');
if ( $ppctab ) {
my @identries = $ppctab->getAllNodeAttribs( ['node','id','parent','nodetype'] );
for my $entry ( @identries ) {
next if ($entry->{nodetype} =~ /lpar/);
@{$::OLD_DATA_CACHE{$entry->{node}}}[0] = @{$vpdhash{$entry->{node}}}[0];#mtm
@{$::OLD_DATA_CACHE{$entry->{node}}}[1] = @{$vpdhash{$entry->{node}}}[1];#sn
@{$::OLD_DATA_CACHE{$entry->{node}}}[2] = @{$vpdhash{$entry->{node}}}[2];#side
# find node ip address, check node name first, then check hosts table
my $ifip = xCAT::Utils->isIpaddr($entry->{node});
if ( $ifip )
{
@{$::OLD_DATA_CACHE{$entry->{node}}}[3] = $entry->{node};#ip
} else
{
if ( exists ($iphash{$entry->{node}}) ) {
@{$::OLD_DATA_CACHE{$entry->{node}}}[3] = $iphash{$entry->{node}};#ip
}
else {
@{$::OLD_DATA_CACHE{$entry->{node}}}[3] = "";#ip
}
}
@{$::OLD_DATA_CACHE{$entry->{node}}}[4] = $entry->{id};#id
@{$::OLD_DATA_CACHE{$entry->{node}}}[5] = $entry->{parent};#parent
if ( exists $entry->{nodetype}) {
@{$::OLD_DATA_CACHE{$entry->{node}}}[6] = $entry->{nodetype};#nodetype
} else {
if ( exists ($typehash{$entry->{node}}) ) {
@{$::OLD_DATA_CACHE{$entry->{node}}}[6] = $typehash{$entry->{node}};
} else {
@{$::OLD_DATA_CACHE{$entry->{node}}}[6] = "";
}
}
@{$::OLD_DATA_CACHE{$entry->{node}}}[7] = 1;
}
} else
{
return 4;
}
}
return 0;
}
##########################################################################
# Makesure the ip in SLP URL is valid
# return 1 if valid, 0 if invalid
##########################################################################
sub check_ip {
my $myip = shift;
my $firstoctet = $myip;
my @invalidiplist = (
"192.168.2.144",
"192.168.2.145",
"192.168.2.146",
"192.168.2.147",
"192.168.2.148",
"192.168.2.149",
"192.168.3.144",
"192.168.3.145",
"192.168.3.146",
"192.168.3.147",
"192.168.3.148",
"192.168.3.149",
"169.254.",
"127.0.0.0",
"127",
0,
);
$firstoctet =~ s/^(\d+)\..*/$1/;
if ($firstoctet >= 224 and $firstoctet <= 239)
{
return 0;
}
foreach (@invalidiplist)
{
if ( $myip =~ /^($_)/ )
{
return 0;
}
}
return 1;
}
1;
+13 -3
View File
@@ -7,6 +7,7 @@ use Getopt::Long;
use xCAT::Usage;
use xCAT::NodeRange;
use xCAT::DBobjUtils;
use xCAT::FSPUtils;
%::QUERY_ATTRS = (
'savingstatus' => 1,
@@ -179,8 +180,8 @@ sub parse_args {
my $nodetyperef = xCAT::DBobjUtils->getnodetype($nodes, "ppc");
my $i = 0;
foreach my $node (@{$nodes}) {
if (@$nodetyperef[$i] ne 'fsp' &&
@$nodetyperef[$i] ne 'cec') {
if ($$nodetyperef{$node} ne 'fsp' &&
$$nodetyperef{$node} ne 'cec') {
push @notfspnodes, $node;
}
$i++;
@@ -251,7 +252,7 @@ sub renergy {
return ([[$node, "Failed to get the FSPs for the cec $hcphost.", -1]]);
}
#my $hcp_ip = xCAT::Utils::getNodeIPaddress($hcphost);
my $hcp_ip = xCAT::Utils::getIPaddress($hcphost);
my $hcp_ip = xCAT::FSPUtils::getIPaddress($request, $hw_type, $hcphost);
if (!defined($hcp_ip) or ($hcp_ip == -3)) {
return ([[$node, "Failed to get IP address for $hcphost.", -1]]);
}
@@ -270,9 +271,13 @@ sub renergy {
return ([[$node, "Cannot get user:password for the node. Please check table 'ppchcp' or 'ppcdirect'.", -1]]);
}
# secure passwd in verbose mode
my $tmpv = $verbose;
$verbose = 0;
if ($verbose) {
push @return_msg, [$node, "Attributes of $node:\n User=$user\n Password=$password\n CEC=$cec_name\n nodetype=$hw_type\n inithcp=$hcphost\n hcps=@hcps_ip\n hcptype=$hcp_type", 0];
}
$verbose = $tmpv;
my $master = xCAT::Utils->get_site_Master();
my $masterip = xCAT::NetworkUtils->getipaddr($master);
@@ -333,7 +338,12 @@ sub renergy {
# Call the xCAT_cim_client to query or set the energy capabilities
$cmd .= " 2>&1";
# secure passwd in verbose mode
my $tmpv = $::VERBOSE;
$::VERBOSE = 0;
my @result = xCAT::Utils->runcmd("$cmd", -1);
$::VERBOSE = $tmpv;
foreach my $line (@result) {
chomp($line);
+22 -9
View File
@@ -10,8 +10,9 @@ use xCAT::PPCcli qw(SUCCESS EXPECT_ERROR RC_ERROR NR_ERROR);
use xCAT::Usage;
use Socket;
use xCAT::PPCdb;
use xCAT::MsgUtils qw(verbose_message);
use xCAT::Utils;
use xCAT::NetworkUtils;
##########################################
# Globals
##########################################
@@ -50,6 +51,7 @@ sub handler {
my $server = shift;
my $request = shift;
my $exp = shift;
my $flag = shift;
#####################################
# Convert command to correct format
@@ -74,7 +76,9 @@ sub handler {
#####################################
# Disconnect from FSP
#####################################
xCAT::PPCfsp::disconnect( $exp );
unless ($flag) {
xCAT::PPCfsp::disconnect( $exp );
}
return( \@outhash );
}
@@ -368,7 +372,10 @@ sub process_cmd {
# Return error
##################################
if ( !$res->is_success() ) {
return( [RC_ERROR,$res->status_line] );
my @tmpres = (RC_ERROR, $res->status_line);
my @rs;
push @rs, \@tmpres;
return(\@rs );
}
##################################
# Build hash of expanded menus
@@ -384,11 +391,15 @@ sub process_cmd {
##############################
my $form = $menu{$cmds{$command}{$_}[0]};
if ( !defined( $form )) {
return( [RC_ERROR,"Cannot find '$cmds{$command}{$_}[0]' menu"] );
my @tmpres = (RC_ERROR, "Cannot find '$cmds{$command}{$_}[0]' menu");
my @rs;
push @rs, \@tmpres;
return(\@rs );
}
##################################
# Run command
##################################
xCAT::MsgUtils->verbose_message($request, "$command :$_ for node:$server.");
my $res = $cmds{$command}{$_}[1]($exp, $request, $form, \%menu);
push @$res, $_;
push @result, $res;
@@ -1776,7 +1787,7 @@ sub get_netcfg
# Return error
##################################
if ( !defined( $$form )) {
return( [RC_ERROR,"'Network Configuration' form not found"] );
return( [RC_ERROR,"'Network Configuration' form not found at parse"] );
}
##################################
@@ -1796,14 +1807,15 @@ sub get_netcfg
$res = $ua->request( $data);
$$form = HTML::Form->parse( $res->content, $res->base );
if ( !defined( $$form )) {
return( [RC_ERROR,"'Network Configuration' form not found"] );
return( [RC_ERROR,"'Network Configuration' form not found at submit"] );
}
} elsif ( $$form->find_input('submit', 'submit', 1) ) {
my $data = $$form->click('submit');
sleep 5;
$res = $ua->request( $data);
$$form = HTML::Form->parse( $res->content, $res->base );
if ( !defined( $$form )) {
return( [RC_ERROR,"'Network Configuration' form not found' form not found"] );
return( [RC_ERROR,"'Network Configuration' form not found at submit2"] );
}
if ( $$form->find_input('ip', 'radio', 1))
{
@@ -1819,7 +1831,7 @@ sub get_netcfg
$res = $ua->request( $data);
$$form = HTML::Form->parse( $res->content, $res->base );
if ( !defined( $$form )) {
return( [RC_ERROR,"'Network Configuration' form not found"] );
return( [RC_ERROR,"'Network Configuration' form not found at submit3"] );
}
}
}
@@ -1980,6 +1992,7 @@ sub set_netcfg
}
#Click "Continue" button
sleep 2;
my $data = $form->click('save');
my $res = $ua->request( $data);
if (!$res->is_success())
+16 -5
View File
@@ -560,14 +560,25 @@ sub getmacs {
# specified
#########################################
if ( defined($filter) ) {
my $matched = 1;
foreach ( keys %$filter ) {
if ( $att{$_} ne $filter->{$_} ) {
$matched = 0;
my $matched = 0;
foreach my $key ( keys %$filter ) {
if ( $key eq "MAC_Address" ) {
my $mac = lc($att{$key});
my $filter_mac = lc($filter->{$key});
$mac =~ s/://g;
$filter_mac =~ s/://g;
if ( grep(/$filter_mac/, $mac) ) {
$matched = 1;
last;
}
} elsif ( grep(/$filter->{$key}/, $att{$key}) ) {
$matched = 1;
last;
}
}
if ( $matched == 1 ) {
if ( $matched ) {
push @$value,"$att{'Type'} $att{'Phys_Port_Loc'} $att{'MAC_Address'} $att{'Adapter'} $att{'Port_Group'} $att{'Phys_Port'} $att{'Logical_Port'} $att{'VLan'} $att{'VSwitch'} $att{'Curr_Conn_Speed'}";
}
} else {
+20 -2
View File
@@ -16,7 +16,7 @@ sub parse_args {
my $command = $request->{command};
my $args = $request->{arg};
my %opt = ();
my @rpower = qw(on onstandby off softoff stat state reset boot of sms rackstandby exit_rackstandby lowpower resetsp);
my @rpower = qw(on onstandby off softoff stat state reset boot of sms rackstandby exit_rackstandby lowpower resetsp cycle);
#############################################
# Responds with usage statement
@@ -40,7 +40,7 @@ sub parse_args {
$Getopt::Long::ignorecase = 0;
Getopt::Long::Configure( "bundling" );
if ( !GetOptions( \%opt, qw(V|Verbose m:s@ t=s r=s nodeps) )) {
if ( !GetOptions( \%opt, qw(V|Verbose m:s@ t=s T=s r=s nodeps) )) {
return( usage() );
}
####################################
@@ -83,6 +83,24 @@ sub parse_args {
return(usage());
}
}
if( ! exists $opt{T} )
{
$opt{T} = "lpar"; #defaut value is lpar.
}
if( $opt{T} eq "lpar") {
$opt{T} = 0;
} elsif($opt{T} eq "fnm") {
$opt{T} = 1;
if ( $request->{op} !~ /^(onstandby|state|stat)$/) {
return(usage("The tooltype fnm only could be used with onstandby/state/stat action."));
}
} else {
return( usage('Wrong value of -T option. The value can be lpar or fnm. The defaut value is lpar.'));
}
return( \%opt );
}
+26 -10
View File
@@ -94,7 +94,7 @@ sub parse_args {
$Getopt::Long::ignorecase = 0;
Getopt::Long::Configure( "bundling" );
if ( !GetOptions( \%opt, qw(h|help v|version V|verbose p=s d=s activate=s commit recover) )) {
if ( !GetOptions( \%opt, qw(h|help v|version V|verbose p=s d=s activate=s commit recover bpa_acdl) )) {
return( usage() );
}
@@ -102,7 +102,10 @@ sub parse_args {
# Option -v for version
####################################
if ( exists( $opt{v} )) {
return( \$::VERSION );
if (!defined($::VERSION)) {
return ([xCAT::Usage->getVersion($cmd)]);
}
return( [$::VERSION] );
}
if ( exists( $opt{h}) || $opt{help}) {
@@ -112,6 +115,11 @@ sub parse_args {
#################################
#Option --activate not valid with --commit or --recover
#################################
if (exists($opt{bpa_acdl}) && (exists($opt{activate}) || exists($opt{commit}) ||
exists($opt{recover}) || exists($opt{p}) || exists($opt{d}))) {
return ( usage("Option --bpa_acdl not valid with other options "));
}
if( exists( $opt{activate} ) && (exists( $opt{commit}) || exists( $opt{recover}))) {
return( usage("Option --activate not valid with --commit or --recover ") );
}
@@ -149,10 +157,15 @@ sub parse_args {
#--activate's value only can be concurrent and disruptive
################################
if(exists($opt{activate})) {
if( ($opt{activate} ne "concurrent") && ($opt{activate} ne "disruptive")) {
return (usage("--activate's value can only be concurrent or disruptive"));
}
if (defined($request->{mgt}) && ($request->{mgt} =~ /xCAT::FSP/i)) {
if (($opt{activate} ne "deferred") && ($opt{activate} ne "disruptive")) {
return (usage("--activate's value can only be deferred or disruptive"));
}
} else {
if( ($opt{activate} ne "concurrent") && ($opt{activate} ne "disruptive")) {
return (usage("--activate's value can only be disruptive or concurrent"));
}
}
if(!exists( $opt{d} )) {
$opt{d} = "/tmp";
}
@@ -181,6 +194,9 @@ sub parse_args {
} elsif( defined( $opt{ recover }) ) {
print "recover flag\n";
$housekeeping = "recover";
} elsif (defined( $opt{ bpa_acdl})) {
print "bpa_acdl flag\n";
$housekeeping = "bpa_acdl";
} else {
print "no housekeeping - update mode\n";
$housekeeping = undef;
@@ -198,7 +214,7 @@ sub parse_args {
####################
#suport for "rflash", copy the rpm and xml packages from user-spcefied-directory to /install/packages_fw
#####################
if ( (!exists($opt{commit})) && (!exists($opt{ recover }))) {
if ( (!exists($opt{commit})) && (!exists($opt{ recover })) && (!exists($opt{bpa_acdl}))) {
if( preprocess_for_rflash($request, \%opt) == -1) {
return( usage() );
}
@@ -526,9 +542,9 @@ sub get_lic_filenames {
# return ("", "","", $msg, -1);
# }
} else {
$msg = $msg . "Upgrade $mtms disruptively!";
if($activate ne "disruptive") {
$msg = "Option --activate's value shouldn't be concurrent, and it must be disruptive";
$msg = $msg . "Upgrade $mtms!";
if($activate !~ /^(disruptive|concurrent)$/) {
$msg = "Option --activate's value shouldn't be $activate, and it must be disruptive or concurrent";
return ("", "","", $msg, -1);
}
}
-3
View File
@@ -152,8 +152,6 @@ sub remote_copy_command
my @src_file =
@{$$config{'destDir_srcFile'}{$dest_dir}{'same_dest_name'}};
#Remove a file from the list if it does not exist
#@src_file = map { $_ if -e $_; } @src_file;
my $src_file_list = join ' ', @src_file;
if ($src_file_list)
{
@@ -164,7 +162,6 @@ sub remote_copy_command
%{$$config{'destDir_srcFile'}{$dest_dir}{'diff_dest_name'}};
foreach my $src_file_diff_dest (keys %diff_dest_hash)
{
next if !-e $src_file_diff_dest;
my $diff_basename = $diff_dest_hash{$src_file_diff_dest};
print RSCYCCMDFILE
"$exec_path $sync_opt $src_file_diff_dest $dest_user_host:$dest_dir/$diff_basename\n";
+5 -26
View File
@@ -59,7 +59,7 @@ sub usage
my $usagemsg3 =
" -p <template path> [-o output file ] [-t <template count>]\n";
my $usagemsg4 = " [-r remove templates] [-s <seednode>]\n";
my $usagemsg5 = " [-e exactmatch] [-i ignore]\n";
my $usagemsg5 = " [-e exactmatch] [-i ignore] [-V verbose]\n";
my $usagemsg6 = " {-c <command> | -f <command file>}";
my $usagemsg .= $usagemsg1 .= $usagemsg1a .= $usagemsg3 .= $usagemsg4 .=
$usagemsg5 .= $usagemsg6;
@@ -475,18 +475,6 @@ sub parse_and_run_sinv
},
\&$cmdoutput
);
if ($? > 0)
{
my $rsp = {};
my $i = 0;
foreach my $line (@cmdresult)
{
$rsp->{data}->[$i] = $line;
$i++;
}
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
# write the results to the tempfile after running through xdshcoll
$rc = &storeresults($callback);
@@ -517,18 +505,6 @@ sub parse_and_run_sinv
\&$cmdoutput
);
if ($? > 0)
{
my $rsp = {};
my $i = 0;
foreach my $line (@cmdresult)
{
$rsp->{data}->[$i] = $line;
$i++;
}
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
# write the results to the tempfile after running through xdshcoll
$rc = &storeresults($callback);
@@ -1166,6 +1142,7 @@ sub writereport
my $rsp = {};
$ignorefirsttemplate =~ tr/a-z/A-Z/; # convert to upper
my $firstpass = 0;
my @allnodearray=();
foreach my $template (sort keys %nodehash)
{
@@ -1193,6 +1170,7 @@ sub writereport
{
my @shortnodename = split(/\./, $node);
push @nodearray, $shortnodename[0]; # add to process list
push @allnodearray, $shortnodename[0]; # add to total list
$nodelist .= $shortnodename[0]; # add to print list
$nodelist .= ',';
}
@@ -1250,7 +1228,8 @@ sub writereport
my @shortnodename;
chomp $dshnodename;
$dshnodename =~ s/\s*//g; # remove blanks
foreach my $nodename (@nodearray)
#foreach my $nodename (@nodearray)
foreach my $nodename (@allnodearray)
{
@shortdshnodename = split(/\./, $dshnodename);
@shortnodename = split(/\./, $nodename);
+663
View File
@@ -0,0 +1,663 @@
package xCAT::SLP;
use Carp;
use IO::Select;
use strict;
use xCAT::Utils;
my $ip6support = eval {
require IO::Socket::INET6;
require Socket6;
1;
};
use Socket;
unless ($ip6support) {
require IO::Socket::INET;
}
#TODO: somehow get at system headers to get the value, put in linux's for now
use constant IPV6_MULTICAST_IF => 17;
use constant IP_MULTICAST_IF => 32;
use constant REQ_INTERVAL => 1;
my %xid_to_srvtype_map;
my $xid;
my $gprlist;
my %searchmacs;
my %ip4neigh;
my %ip6neigh;
sub getmulticasthash {
my $hash=0;
my @nums = unpack("C*",shift);
foreach my $num (@nums) {
$hash *= 33;
$hash += $num;
$hash &= 0xffff;
}
$hash &= 0x3ff;
$hash |= 0x1000;
return sprintf("%04x",$hash);
}
sub dodiscover {
my %args = @_;
my $rspcount = 0;
my $rspcount1 = 0;
my $sendcount = 1;
$xid = int(rand(16384))+1;
unless ($args{'socket'}) {
if ($ip6support) {
$args{'socket'} = IO::Socket::INET6->new(Proto => 'udp');
} else {
$args{'socket'} = IO::Socket::INET->new(Proto => 'udp');
}
#make an extra effort to request biggest receive buffer OS is willing to give us
if (-r "/proc/sys/net/core/rmem_max") { # we can detect the maximum allowed socket, read it.
my $sysctl;
open ($sysctl,"<","/proc/sys/net/core/rmem_max");
my $maxrcvbuf=<$sysctl>;
my $rcvbuf = $args{'socket'}->sockopt(SO_RCVBUF);
if ($maxrcvbuf > $rcvbuf) {
$args{'socket'}->sockopt(SO_RCVBUF,$maxrcvbuf/2);
}
}
}
unless ($args{SrvTypes}) { croak "SrvTypes argument is required for xCAT::SLP::Dodiscover"; }
unless (xCAT::Utils->isAIX()) { # AIX bug, can't set socket with SO_BROADCAST, otherwise multicast can't work.
setsockopt($args{'socket'},SOL_SOCKET,SO_BROADCAST,1); #allow for broadcasts to be sent, we know what we are doing
}
my @srvtypes;
if (ref $args{SrvTypes}) {
@srvtypes = @{$args{SrvTypes}};
} else {
@srvtypes = split /,/,$args{SrvTypes};
}
my $interfaces = get_interfaces(%args);
if ($args{Ip}) {
foreach my $nic (keys %$interfaces) {
if (${${$interfaces->{$nic}}{ipv4addrs}}[0] =~ /(\d+\.\d+\.\d+\.\d+)/) {
unless ($args{Ip} =~ $1) {
delete $interfaces->{$nic};
}
}
}
}
# for print information
my @printip;
foreach my $iface (keys %{$interfaces}) {
foreach my $sip (@{$interfaces->{$iface}->{ipv4addrs}}) {
my $ip = $sip;
$ip =~ s/\/(.*)//;
push @printip, $ip;
}
}
my $printinfo = join(",", @printip);
send_message($args{reqcallback}, 0, "Sending SLP request on interfaces: $printinfo ...") if ($args{reqcallback});
foreach my $srvtype (@srvtypes) {
send_service_request_single(%args,ifacemap=>$interfaces,SrvType=>$srvtype);
}
my %rethash;
unless ($args{NoWait}) { #in nowait, caller owns the responsibility..
#by default, report all respondants within 3 seconds:
my $waitforsocket = IO::Select->new();
$waitforsocket->add($args{'socket'});
my $retrytime = ($args{Retry}>0)?$args{Retry}+1:3;
my $retryinterval = ($args{Retry}>0)?$args{Retry}:REQ_INTERVAL;
my $waittime = ($args{Time}>0)?$args{Time}:20;
my @peerarray;
my @pkgarray;
my $startinterval = time();
my $interval;
my $deadline=time()+$waittime;
my( $port,$flow,$ip6n,$ip4n,$scope);
my $slppacket;
my $peername;
while ($deadline > time()) {
########################################
# receive untill there is none
########################################
while ($waitforsocket->can_read(0)) {
my $peer = $args{'socket'}->recv($slppacket,1400,0);
push @peerarray, $peer;
push @pkgarray, $slppacket;
}
#######################################
# process the packets
#######################################
for(my $j = 0; $j< scalar(@peerarray); $j++) {
my $pkg = $peerarray[$j];
my $slpkg = $pkgarray[$j];
if ($ip6support) {
( $port,$flow,$ip6n,$scope) = Socket6::unpack_sockaddr_in6_all($pkg);
$peername = Socket6::inet_ntop(Socket6::AF_INET6(),$ip6n);
} else {
($port,$ip4n) = sockaddr_in($pkg);
$peername = inet_ntoa($ip4n);
}
if ($rethash{$peername}) {
next; #got a dupe, discard
}
my $result = process_slp_packet(packet=>$slpkg,sockaddr=>$pkg,'socket'=>$args{'socket'});
if ($result) {
if ($peername =~ /\./) { #ipv4
$peername =~ s/::ffff://;
}
$result->{peername} = $peername;
if ($gprlist) {
$gprlist .= ','.$peername if(length($gprlist) < 1250);
} else {
$gprlist = $peername;
}
$result->{scopeid} = $scope;
$result->{sockaddr} = $pkg;
my $hashkey;
if ($peername =~ /fe80/) {
$peername .= '%'.$scope;
}
$rspcount++;
$rspcount1++;
$rethash{$peername} = $result;
if ($args{Callback}) {
$args{Callback}->($result);
}
}
}
#############################
# check if need to return
#############################
@peerarray = ();
@pkgarray = ();
$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});
last;
}
}
if ($sendcount > $retrytime and $rspcount1 == 0) {
send_message($args{reqcallback}, 0, "Received $rspcount1 responses.") if ($args{reqcallback});
last;
}
#########################
# send request again
#########################
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});
foreach my $srvtype (@srvtypes) {
send_service_request_single(%args,ifacemap=>$interfaces,SrvType=>$srvtype);
}
$rspcount1 = 0;
}
}
} #end nowait
foreach my $entry (keys %rethash) {
handle_new_slp_entity($rethash{$entry})
}
if (xCAT::Utils->isAIX()) {
foreach my $iface (keys %{$interfaces}) {
foreach my $sip (@{$interfaces->{$iface}->{ipv4addrs}}) {
my $ip = $sip;
$ip =~ s/\/(.*)//;
my $maskbits = $1;
my $runcmd = `route delete 239.255.255.253 $ip`;
}
}
}
return (\%searchmacs, $sendcount, $rspcount);
}
sub process_slp_packet {
my %args = @_;
my $sockaddy = $args{sockaddr};
my $socket = $args{'socket'};
my $packet = $args{packet};
my $parsedpacket = removeslpheader($packet);
if ($parsedpacket->{FunctionId} == 2) {#Service Reply
parse_service_reply($parsedpacket->{payload},$parsedpacket);
unless (ref $parsedpacket->{service_urls} and scalar @{$parsedpacket->{service_urls}}) { return undef; }
#send_attribute_request('socket'=>$socket,url=>$parsedpacket->{service_urls}->[0],sockaddr=>$sockaddy);
if ($parsedpacket->{attributes}) { #service reply had ext
return $parsedpacket; #don't bother sending attrrequest, already got it in first packet
}
my $srvtype = $xid_to_srvtype_map{$parsedpacket->{Xid}};
my $packet = generate_attribute_request(%args,SrvType=>$srvtype);
$socket->send($packet,0,$sockaddy);
return undef;
} elsif ($parsedpacket->{FunctionId} == 7) { #attribute reply
$parsedpacket->{SrvType} = $xid_to_srvtype_map{$parsedpacket->{Xid}};
$parsedpacket->{attributes} = parse_attribute_reply($parsedpacket->{payload});
#delete $parsedpacket->{payload};
return $parsedpacket;
} else {
return undef;
}
}
sub parse_attribute_reply {
my $contents = shift;
my @payload = unpack("C*",$contents);
if ($payload[0] != 0 or $payload[1] != 0) {
return {};
}
splice (@payload,0,2);
return parse_attribute_list(\@payload);
}
sub parse_attribute_list {
my $payload = shift;
my $attrlength = ($payload->[0]<<8)+$payload->[1];
splice(@$payload,0,2);
my @attributes = splice(@$payload,0,$attrlength);
my $attrstring = pack("C*",@attributes);
my %attribs;
#now we have a string...
my $lastattrstring;
while ($attrstring) {
if ($lastattrstring eq $attrstring) { #infinite loop
$attribs{unparsed_attribdata}=$attrstring;
last;
}
$lastattrstring=$attrstring;
if ($attrstring =~ /^\(/) {
$attrstring =~ s/([^)]*\)),?//;
my $attrib = $1;
$attrib =~ s/^\(//;
$attrib =~ s/\),?$//;
$attrib =~ s/=(.*)$//;
$attribs{$attrib}=[];
my $valstring = $1;
if (defined $valstring) {
foreach(split /,/,$valstring) {
push @{$attribs{$attrib}},$_;
}
}
} else {
$attrstring =~ s/([^,]*),?//;
$attribs{$1}=[];
}
}
return \%attribs;
}
sub generate_attribute_request {
my %args = @_;
my $srvtype = $args{SrvType};
my $scope = "DEFAULT";
if ($args{Scopes}) { $scope = $args{Scopes}; }
my $packet = pack("C*",0,0); #no prlist
my $service = $srvtype;
$service =~ s!://.*!!;
my $length = length($service);
$packet .= pack("C*",($length>>8),($length&0xff));
$length = length($scope);
$packet .= $service.pack("C*",($length>>8),($length&0xff)).$scope;
$packet .= pack("C*",0,0,0,0);
my $header = genslpheader($packet,FunctionId=>6);
$xid_to_srvtype_map{$xid++}=$srvtype;
return $header.$packet;
# $args{'socket'}->send($header.$packet,0,$args{sockaddry});
}
sub parse_service_reply {
my $packet = shift;
my $parsedpacket = shift;
my @reply = unpack("C*",$packet);
if ($reply[0] != 0 or $reply[1] != 0) {
return ();
}
if ($parsedpacket->{extoffset}) {
my @extdata = splice(@reply,$parsedpacket->{extoffset}-$parsedpacket->{currentoffset});
$parsedpacket->{currentoffset} = $parsedpacket->{extoffset};
parse_extension(\@extdata,$parsedpacket);
}
my $numurls = ($reply[2]<<8)+$reply[3];
splice (@reply,0,4);
while ($numurls--) {
push @{$parsedpacket->{service_urls}},extract_next_url(\@reply);
}
return;
}
sub parse_extension {
my $extdata = shift;
my $parsedpacket = shift;
my $extid = ($extdata->[0]<<8)+$extdata->[1];
my $nextext = (($extdata->[2])<<16)+(($extdata->[3])<<8)+$extdata->[4];
if ($nextext) {
my @nextext = splice(@$extdata,$nextext-$parsedpacket->{currentoffset});
$parsedpacket->{currentoffset} = $nextext;
parse_extension(\@nextext,$parsedpacket);
}
splice(@$extdata,0,5);
if ($extid == 2) {
#this is defined in RFC 3059, attribute list extension
#employed by AMM for one...
my $urllen = ((shift @$extdata)<<8)+(shift @$extdata);
splice @$extdata,0,$urllen; #throw this out for now..
$parsedpacket->{attributes} = parse_attribute_list($extdata);
}
}
sub extract_next_url { #section 4.3 url entries
my $payload = shift;
splice (@$payload,0,3); # discard reserved and lifetime which we will not bother using
my $urllength = ((shift @$payload)<<8)+(shift @$payload);
my @url = splice(@$payload,0,$urllength);
my $authblocks = shift @$payload;
unless ($authblocks == 0) {
$payload = []; #TODO: skip/use auth blocks if needed to get at more URLs
}
return pack("C*",@url);
}
sub send_service_request_single {
my %args = @_;
my $packet = generate_service_request(%args);
my $interfaces = $args{ifacemap}; #get_interfaces(%args);
my $socket = $args{'socket'};
my @v6addrs;
my $v6addr;
if ($ip6support) {
my $hash=getmulticasthash($args{SrvType});
my $target = "ff02::1:$hash";
my ($fam, $type, $proto, $name);
($fam, $type, $proto, $v6addr, $name) =
Socket6::getaddrinfo($target,"svrloc",Socket6::AF_INET6(),SOCK_DGRAM,0);
push @v6addrs,$v6addr;
($fam, $type, $proto, $v6addr, $name) =
Socket6::getaddrinfo("ff01::1:$hash","svrloc",Socket6::AF_INET6(),SOCK_DGRAM,0);
push @v6addrs,$v6addr;
}
my $ipv4mcastaddr = inet_aton("239.255.255.253"); #per rfc 2608
my $ipv4sockaddr = sockaddr_in(427,$ipv4mcastaddr);
foreach my $iface (keys %{$interfaces}) {
if ($ip6support) {
setsockopt($socket,Socket6::IPPROTO_IPV6(),IPV6_MULTICAST_IF,pack("I",$interfaces->{$iface}->{scopeidx}));
foreach $v6addr (@v6addrs) {
$socket->send($packet,0,$v6addr);
}
}
foreach my $sip (@{$interfaces->{$iface}->{ipv4addrs}}) {
my $ip = $sip;
$ip =~ s/\/(.*)//;
my $maskbits = $1;
if (xCAT::Utils->isAIX()) {
my $runcmd = `route add 239.255.255.253 $ip`;
}
my $ipn = inet_aton($ip); #we are ipv4 only, this is ok
my $ipnum=unpack("N",$ipn);
$ipnum= $ipnum | (2**(32-$maskbits))-1;
my $bcastn = pack("N",$ipnum);
my $bcastaddr = sockaddr_in(427,$bcastn);
setsockopt($socket,0,IP_MULTICAST_IF,$ipn);
$socket->send($packet,0,$ipv4sockaddr);
$socket->send($packet,0,$bcastaddr);
}
}
}
sub get_interfaces {
#TODO: AIX tolerance, no subprocess, include/exclude interface(s)
my %ifacemap;
my $payingattention=0;
my $interface;
my $keepcurrentiface;
# AIX part
if (xCAT::Utils->isAIX()) {
$ip6support = 0;
my $result = `ifconfig -a`;
my @nics = $result =~ /(\w+\d+)\: flags=/g;
my @adapter = split /\w+\d+:\s+flags=/, $result;
for (my $i=0; $i<scalar(@adapter); $i++) {
$_ = $adapter[$i+1];
if ( !($_ =~ /LOOPBACK/ ) and
$_ =~ /UP(,|>)/ and
$_ =~ /BROADCAST/ ) {
my @ip = split /\n/;
for my$entry ( @ip ) {
if ( $entry =~ /broadcast\s+/ and $entry =~ /^\s*inet\s+(\d+\.\d+\.\d+\.\d+)/) {
my $tmpip = $1;
if($entry =~ /netmask\s+(0x\w+)/) {
my $mask = hex($1);
my $co = 31;
my $count = 0;
while ($co+1) {
if((($mask&(2**$co))>>$co) == 1) {
$count++;
}
$co--;
}
$tmpip = $tmpip.'/'.$count;
}
push @{$ifacemap{$nics[$i]}->{ipv4addrs}},$tmpip;
if( $nics[$i]=~ /\w+(\d+)/){
$ifacemap{$nics[$i]}->{scopeidx} = $1+2;
}
}
}
}
}
} else {
my @ipoutput = `ip addr`;
foreach my $line (@ipoutput) {
if ($line =~ /^\d/) { # new interface, new context..
if ($interface and not $keepcurrentiface) {
#don't bother reporting unusable nics
delete $ifacemap{$interface};
}
$keepcurrentiface=0;
unless ($line =~ /MULTICAST/) { #don't care if it isn't multicast capable
$payingattention=0;
next;
}
$payingattention=1;
$line =~ /^([^:]*): ([^:]*):/;
$interface=$2;
$ifacemap{$interface}->{scopeidx}=$1;
}
unless ($payingattention) { next; } #don't think about lines unless in context of paying attention.
if ($line =~ /inet/) {
$keepcurrentiface=1;
}
if ($line =~ /\s+inet\s+(\S+)\s/) { #got an ipv4 address, store it
push @{$ifacemap{$interface}->{ipv4addrs}},$1;
}
}
}
return \%ifacemap;
}
# discovery is "service request", rfc 2608
# 0 1 2 3
# 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
# | Service Location header (function = SrvRqst = 1) |
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
# | length of <PRList> | <PRList> String \
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
# | length of <service-type> | <service-type> String \
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
# | length of <scope-list> | <scope-list> String \
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
# | length of predicate string | Service Request <predicate> \
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
# | length of <SLP SPI> string | <SLP SPI> String \
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
sub generate_service_request {
my %args = @_;
my $srvtype = $args{SrvType};
my $scope = "DEFAULT";
if ($args{Scopes}) { $scope = $args{Scopes}; }
my $prlist = $gprlist;
my $prlength = length($prlist);
my $packet = pack("C*",($prlength>>8),($prlength&0xff));
$packet .= $prlist;
my $length = length($srvtype);
$packet .= pack("C*",($length>>8),($length&0xff));
$packet .= $srvtype;
$length = length($scope);
$packet .= pack("C*",($length>>8),($length&0xff));
$packet .= $scope;
#no ldap predicates, and no auth, so zeroes..
$packet .= pack("C*",0,0,0,0);
$packet .= pack("C*",0,2,0,0,0,0,0,0,0,0);
my $extoffset = length($srvtype)+length($scope)+length($prlist)+10;
my $header = genslpheader($packet,Multicast=>1,FunctionId=>1,ExtOffset=>$extoffset);
$xid_to_srvtype_map{$xid++}=$srvtype;
return $packet = $header.$packet;
}
# SLP header from RFC 2608
# 0 1 2 3
# 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
# | Version | Function-ID | Length |
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
# | Length, contd.|O|F|R| reserved |Next Ext Offset|
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
# | Next Extension Offset, contd.| XID |
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
# | Language Tag Length | Language Tag \
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
sub removeslpheader {
my $packet = shift;
my %parsedheader;
my @payload = unpack("C*",$packet);
$parsedheader{Version} = shift @payload;
$parsedheader{FunctionId} = shift @payload;
splice(@payload,0,3); #remove length
splice(@payload,0,2); #TODO: parse flags
my $nextoffset = ((shift @payload)<<16)+((shift @payload)<<8)+(shift @payload);
$parsedheader{Xid} = ((shift @payload)<<8)+(shift @payload);
my $langlen = ((shift @payload)<<8)+(shift @payload);
$parsedheader{lang} = pack("C*",splice(@payload,0,$langlen));
$parsedheader{payload} = pack("C*",@payload);
if ($nextoffset != 0) {
#correct offset since header will be removed
$parsedheader{currentoffset} = 14+$langlen;
$parsedheader{extoffset}=$nextoffset;
}
return \%parsedheader;
}
sub genslpheader {
my $packet = shift;
my %args = @_;
my $flaghigh=0;
my $flaglow=0; #this will probably never ever ever change
if ($args{Multicast}) { $flaghigh |= 0x20; }
my $extoffset=0;
if ($args{ExtOffset}) {
$extoffset = $args{ExtOffset}+16;
}
my @extoffset=(($extoffset>>16),(($extoffset>>8)&0xff),($extoffset&0xff));
my $length = length($packet)+16; #our header is 16 bytes due to lang tag invariance
if ($length > 1400) { die "Overflow not supported in xCAT SLP"; }
return pack("C*",2, $args{FunctionId}, ($length >> 16), ($length >> 8)&0xff, $length&0xff, $flaghigh, $flaglow,@extoffset,$xid>>8,$xid&0xff,0,2)."en";
}
unless (caller) {
#time to provide unit testing/example usage
#somewhat fancy invocation with multiple services and callback for
#results on-the-fly
require Data::Dumper;
Data::Dumper->import();
my $srvtypes = ["service:management-hardware.IBM:chassis-management-module","service:management-hardware.IBM:integrated-management-module2","service:management-hardware.IBM:management-module","service:management-hardware.IBM:cec-service-processor"];
xCAT::SLP::dodiscover(SrvTypes=>$srvtypes,Callback=>sub { print Dumper(@_) });
#example 2: simple invocation of a single service type
$srvtypes = "service:management-hardware.IBM:chassis-management-module";
print Dumper(xCAT::SLP::dodiscover(SrvTypes=>$srvtypes));
#TODO: pass-in socket and not wait inside SLP.pm example
}
###########################################
# Parse the slp resulte data
###########################################
sub handle_new_slp_entity {
my $data = shift;
delete $data->{sockaddr}; #won't need it
my $mac = get_mac_for_addr($data->{peername});
unless ($mac) { return; }
$searchmacs{$mac} = $data;
}
###########################################
# Get mac addresses
###########################################
sub get_mac_for_addr {
my $neigh;
my $addr = shift;
if ($addr =~ /:/) {
get_ipv6_neighbors();
return $ip6neigh{$addr};
} else {
get_ipv4_neighbors();
return $ip4neigh{$addr};
}
}
###########################################
# Get ipv4 mac addresses
###########################################
sub get_ipv4_neighbors {
if (xCAT::Utils->isAIX()) {
my @ipdata = `arp -a`;
%ip6neigh=();
for my $entry (@ipdata) {
if ($entry =~ /(\d+\.\d+\.\d+\.\d+)/) {
my $ip = $1;
#if ($entry =~ /at (\w+\:\w+\:\w+\:\w+\:\w+\:\w+)/) {
# $ip4neigh{$ip}=$1;
if ($entry =~ /at (\w+)\:(\w+)\:(\w+)\:(\w+)\:(\w+)\:(\w+)/) {
#$ip4neigh{$ip}=$1.$2.$3.$4.$5.$6;
$ip4neigh{$ip}=sprintf("%02s%02s%02s%02s%02s%02s",$1,$2,$3,$4,$5,$6);
}
}
}
} else {
#TODO: something less 'hacky'
my @ipdata = `ip -4 neigh`;
%ip6neigh=();
foreach (@ipdata) {
if (/^(\S*)\s.*lladdr\s*(\S*)\s/) {
$ip4neigh{$1}=$2;
}
}
}
}
###########################################
# Get ipv6 mac addresses
###########################################
sub get_ipv6_neighbors {
#TODO: something less 'hacky'
my @ipdata = `ip -6 neigh`;
%ip6neigh=();
foreach (@ipdata) {
if (/^(\S*)\s.*lladdr\s*(\S*)\s/) {
$ip6neigh{$1}=$2;
}
}
}
##########################################################################
# Invokes the callback with the specified message
##########################################################################
sub send_message {
my $callback = shift;
my $ecode = shift;
my $msg = shift;
my %output;
$output{errorcode} = $ecode;
$output{data} = $msg;
$callback->( \%output );
}
1;
+118 -23
View File
@@ -124,7 +124,7 @@ kvm_masterdata => {
litetree => {
cols => [qw(priority image directory comments disable)],
cols => [qw(priority image directory mntopts comments disable)],
keys => [qw(priority)],
required => [qw(priority directory)],
table_desc => 'Directory hierarchy to traverse to get the initial contents of node files. The files that are specified in the litefile table are searched for in the directories specified in this table.',
@@ -132,6 +132,7 @@ litetree => {
priority => 'This number controls what order the directories are searched. Directories are searched from smallest priority number to largest.',
image => "The name of the image that will use this directory, as specified in the osimage table. If image is not supplied, the default is 'ALL'. 'ALL' means use it for all images.",
directory => 'The location (hostname:path) of a directory that contains files specified in the litefile table. Variables are allowed. E.g: $noderes.nfsserver://xcatmasternode/install/$node/#CMD=uname-r#/',
mntopts => "A comma-separated list of options to use when mounting the persistent directory. (Ex. 'soft') The default is to do a 'hard' mount.",
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
},
@@ -185,11 +186,12 @@ vmmaster => {
}
},
vm => {
cols => [qw(node host migrationdest storage storagemodel cfgstore memory cpus nics nicmodel bootorder clockoffset virtflags master vncport textconsole powerstate beacon datacenter guestostype othersettings vidmodel vidproto vidpassword comments disable)],
cols => [qw(node mgr host migrationdest storage storagemodel cfgstore memory cpus nics nicmodel bootorder clockoffset virtflags master vncport textconsole powerstate beacon datacenter cluster guestostype othersettings vidmodel vidproto vidpassword comments disable)],
keys => [qw(node)],
table_desc => 'Virtualization parameters',
descriptions => {
'node' => 'The node or static group name',
'mgr' => 'The function manager for the virtual machine',
'host' => 'The system that currently hosts the VM',
'migrationdest' => 'A noderange representing candidate destinations for migration (i.e. similar systems, same SAN, or other criteria that xCAT can use',
'storage' => 'A list of storage files or devices to be used. i.e. /cluster/vm/<nodename> or nfs://<server>/path/to/folder/',
@@ -209,7 +211,8 @@ vm => {
qcow2 is a sparse, copy-on-write capable format implemented at the virtualization layer rather than the filesystem level
clonemethod=[qemu-img|reflink]
qemu-img allows use of qcow2 to generate virtualization layer copy-on-write
reflink uses a generic filesystem facility to clone the files on your behalf, but requires filesystem support such as btrfs ',
reflink uses a generic filesystem facility to clone the files on your behalf, but requires filesystem support such as btrfs
placement_affinity=[migratable|user_migratable|pinned]',
'vncport' => 'Tracks the current VNC display port (currently not meant to be set',
'textconsole' => 'Tracks the Psuedo-TTY that maps to the serial port or console of a VM',
'powerstate' => "This flag is used by xCAT to track the last known power state of the VM.",
@@ -217,19 +220,21 @@ vm => {
'guestostype' => "This allows administrator to specify an identifier for OS to pass through to virtualization stack. Normally this should be ignored as xCAT will translate from nodetype.os rather than requiring this field be used\n",
'beacon' => "This flag is used by xCAT to track the state of the identify LED with respect to the VM.",
'datacenter' => "Optionally specify a datacenter for the VM to exist in (only applicable to VMWare)",
'cluster' => 'Specify to the underlying virtualization infrastructure a cluster membership for the hypervisor.',
'vidproto' => "Request a specific protocol for remote video access be set up. For example, spice in KVM.",
'vidmodel' => "Model of video adapter to provide to guest. For example, qxl in KVM",
'vidpassword' => "Password to use instead of temporary random tokens for VNC and SPICE access",
}
},
hypervisor => {
cols => [qw(node type mgr netmap defaultnet cluster datacenter preferdirect comments disable)],
cols => [qw(node type mgr interface netmap defaultnet cluster datacenter preferdirect comments disable)],
keys => [qw(node)],
table_desc => 'Hypervisor parameters',
descriptions => {
'node' => 'The node or static group name',
'type' => 'The plugin associated with hypervisor specific commands such as revacuate',
mgr => 'The virtualization specific manager of this hypervisor when applicable',
'mgr' => 'The virtualization specific manager of this hypervisor when applicable',
'interface' => 'The defition of interfaces for the hypervisor. The format is [networkname:interfacename:bootprotocol:IP:netmask:gateway] that split with | for each interface',
'netmap' => 'Optional mapping of useful names to relevant physical ports. For example, 10ge=vmnic_16.0&vmnic_16.1,ge=vmnic1 would be requesting two virtual switches to be created, one called 10ge with vmnic_16.0 and vmnic_16.1 bonded, and another simply connected to vmnic1. Use of this allows abstracting guests from network differences amongst hypervisors',
'defaultnet' => 'Optionally specify a default network entity for guests to join to if they do not specify.',
'cluster' => 'Specify to the underlying virtualization infrastructure a cluster membership for the hypervisor.',
@@ -237,6 +242,20 @@ hypervisor => {
'preferdirect' => 'If a mgr is declared for a hypervisor, xCAT will default to using the mgr for all operations. If this is field is set to yes or 1, xCAT will prefer to directly communicate with the hypervisor if possible'
}
},
virtsd => {
cols => [qw(node sdtype stype location host cluster datacenter comments disable)],
keys => [qw(node)],
table_desc => 'The parameters which used to create the Storage Domain',
descriptions => {
'node' => 'The name of the storage domain',
'sdtype' => 'The type of storage domain. Valid values: data, iso, export',
'stype' => 'The type of storge. Valid values: nfs, fcp, iscsi, localfs',
'location' => 'The path of the storage',
'host' => 'For rhev, a hypervisor host needs to be specified to manage the storage domain as SPM (Storage Pool Manager). But the SPM role will be failed over to another host when this host down.',
'cluster' => 'A cluster of hosts',
'datacenter' => 'A collection for all host, vm that will shared the same storages, networks.',
}
},
websrv => {
cols => [qw(node port username password comments disable)],
keys => [qw(node)],
@@ -323,10 +342,10 @@ deps => {
hosts => {
cols => [qw(node ip hostnames otherinterfaces comments disable)],
keys => [qw(node)],
table_desc => 'IP address and hostnames of nodes. This info can be used to populate /etc/hosts or DNS.',
table_desc => 'IP addresses and hostnames of nodes. This info is optional and is only used to populate /etc/hosts and DNS via makehosts and makedns. Using regular expressions in this table can be a quick way to populate /etc/hosts.',
descriptions => {
node => 'The node name or group name.',
ip => 'The IP address of the node.',
ip => 'The IP address of the node. This is only used in makehosts. The rest of xCAT uses system name resolution to resolve node names to IP addresses.',
hostnames => 'Hostname aliases added to /etc/hosts for this node.',
otherinterfaces => 'Other IP addresses to add for this node. Format: -<ext>:<ip>,<intfhostname>:<ip>,...',
comments => 'Any user-written notes.',
@@ -334,13 +353,15 @@ hosts => {
},
},
ipmi => {
cols => [qw(node bmc bmcport username password comments disable )],
cols => [qw(node bmc bmcport taggedvlan bmcid username password comments disable )],
keys => [qw(node)],
table_desc => 'Settings for nodes that are controlled by an on-board BMC via IPMI.',
descriptions => {
node => 'The node name or group name.',
bmc => 'The hostname of the BMC adapater.',
bmcport => 'In systems with selectable shared/dedicated ethernet ports, this parameter can be used to specify the preferred port. 0 means use the shared port, 1 means dedicated, blank is to not assign',
taggedvlan => 'Have bmcsetup place the BMC on the specified vlan tag on a shared netwirk interface. Some network devices may be incompatible with this option',
bmcid => 'Unique identified data used by discovery processes to distinguish known BMCs from unrecognized BMCs',
username => 'The BMC userid. If not specified, the key=ipmi row in the passwd table is used as the default.',
password => 'The BMC password. If not specified, the key=ipmi row in the passwd table is used as the default.',
comments => 'Any user-written notes.',
@@ -421,7 +442,7 @@ mp => {
},
mpa => {
cols => [qw(mpa username password comments disable)],
keys => [qw(mpa username)],
keys => [qw(mpa username)],
nodecol => "mpa",
table_desc => 'Contains info about each Management Module and how to access it.',
descriptions => {
@@ -533,7 +554,7 @@ noderes => {
node => 'The node name or group name.',
servicenode => 'A comma separated list of node names (as known by the management node) that provides most services for this node. The first service node on the list that is accessible will be used. The 2nd node on the list is generally considered to be the backup service node for this node when running commands like snmove.',
netboot => 'The type of network booting to use for this node. Valid values: pxe or xnba for x86* architecture, yaboot for POWER architecture.',
tftpserver => 'The TFTP server for this node (as known by this node).',
tftpserver => 'The TFTP server for this node (as known by this node). If not set, it defaults to networks.tftpserver.',
tftpdir => 'The directory that roots this nodes contents from a tftp and related perspective. Used for NAS offload by using different mountpoints.',
nfsserver => 'The NFS or HTTP server for this node (as known by this node).',
monserver => 'The monitoring aggregation point for this node. The format is "x,y" where x is the ip address as known by the management node and y is the ip address as known by the node.',
@@ -633,7 +654,7 @@ linuximage => {
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.',
postinstall => 'The fully qualified name of the script file that will be run at the end of the packimage command. It is used for diskless image only.',
postinstall => 'The fully qualified name of the script file that will be run at the end of the genimage command. It is used for diskless image only.',
rootimgdir => 'The directory name where the image is stored. It is used for diskless image only.',
kerneldir => 'The directory name where the 3rd-party kernel is stored. It is used for diskless image only.',
nodebootif => 'The network interface the stateless/statelite node will boot over (e.g. eth0)',
@@ -792,6 +813,7 @@ site => {
" specify different NICs for different nodes:\n".
" mn|eth1,eth2;service|bond0.\n\n".
" dhcpsetup: If set to 'n', it will skip the dhcp setup process in the nodeset cmd.\n\n".
" dhcplease: The lease time for the dhcp client. The default value is 43200.\n\n".
" disjointdhcps: If set to '1', the .leases file on a service node only contains\n".
" the nodes it manages. The default value is '0'.\n".
" '0' value means include all the nodes in the subnet.\n\n".
@@ -826,6 +848,9 @@ site => {
" match the path in the installdir attribute.\n\n".
" ipmidispatch: Whether or not to send ipmi hw control operations to the service\n".
" node of the target compute nodes. Default is 'y'.\n\n".
" hwctrldispatch: Whether or not to send hw control operations to the service\n".
" node of the target nodes. Default is 'y'.(At present, this attribute\n".
" only be used for IBM Flex System)\n\n".
" ipmimaxp: The max # of processes for ipmi hw ctrl. The default is 64. Currently,\n".
" this is only used for HP hw control.\n\n".
" ipmiretries: The # of retries to use when communicating with BMCs. Default is 3.\n\n".
@@ -857,22 +882,26 @@ site => {
" the node deployment, node discovery and power operations.\n\n".
" ntpservers: A comma delimited list of NTP servers for the cluster - often the\n".
" xCAT management node.\n\n".
" syspowerinterval: The number of seconds the rpower command to servers will wait\n".
" between performing the action for each server. Currently supported\n".
" for system p CECs and system x IPMI servers. This is used for\n".
" controlling the power on speed in large clusters. Default is 0.\n\n".
" syspowerinterval: For system p CECs, this is the number of seconds the rpower\n".
" command will wait between performing the action for each CEC.\n".
" For system x IPMI servers, this is the number of seconds the\n".
" rpower command will wait between powering on <syspowermaxnodes>\n".
" nodes at a time. This value is used to control the power on speed\n".
" in large clusters. Default is 0.\n\n".
" syspowermaxnodes: The number of servers to power on at one time before waiting\n".
" 'syspowerinterval' seconds to continue on to the next set of\n".
" nodes. Currently only used for IPMI servers and must be set if\n".
" 'syspowerinterval' is set.\n\n".
" nodes. If the noderange given to rpower includes nodes served\n".
" by different service nodes, it will try to spread each set of\n".
" nodes across the service nodes evenly. Currently only used for\n".
" IPMI servers and must be set if 'syspowerinterval' is set.\n\n".
" powerinterval: The number of seconds the rpower command to LPARs will wait between\n".
" performing the action for each LPAR. LPARs of different HCPs\n".
" (HMCs or FSPs) are done in parallel. This is used to limit the\n".
" cluster boot up speed in large clusters. Default is 0. This is\n".
" currently only used for system p hardware.\n\n".
" ppcmaxp: The max # of processes for PPC hw ctrl. If there are more than ppcmaxp hcps,\n".
" this parameter will take effect. It will control the max number of processes \n".
" for PPC hardware control commands. Default is 64.\n\n".
" ppcmaxp: The max # of processes for PPC hw ctrl. If there are more than ppcmaxp\n".
" hcps, this parameter will take effect. It will control the max number of\n".
" processes for PPC hardware control commands. Default is 64.\n\n".
" ppcretry: The max # of PPC hw connection attempts to HMC before failing.\n".
" It only takes effect on the hardware control commands through HMC. \n".
" Default is 3.\n\n".
@@ -908,6 +937,8 @@ site => {
" mgmt node.\n\n".
" timezone: (e.g. America/New_York)\n\n".
" tftpdir: tftp directory path. Default is /tftpboot\n\n".
" tftpflags: The flags that used to start tftpd. Default is \'-v -l -s /tftpboot \n".
" -m /etc/tftpmapfile4xcat.conf\' if tftplfags is not set\n\n".
" useNmapfromMN: When set to yes, nodestat command should obtain the node status\n".
" using nmap (if available) from the management node instead of the\n".
" service node. This will improve the performance in a flat network.\n\n".
@@ -944,8 +975,8 @@ switch => {
node => 'The node name or group name.',
switch => 'The switch hostname.',
port => 'The port number in the switch that this node is connected to. On a simple 1U switch, an administrator can generally enter the number as printed next to the ports, and xCAT will understand switch representation differences. On stacked switches or switches with line cards, administrators should usually use the CLI representation (i.e. 2/0/1 or 5/8). One notable exception is stacked SMC 8848M switches, in which you must add 56 for the proceeding switch, then the port number. For example, port 3 on the second switch in an SMC8848M stack would be 59',
vlan => 'xCAT currently does not make use of this field, however it may do so in the future. For now, it can be used by administrators for their own purposes, but keep in mind some xCAT feature later may try to enforce this if set',
interface => 'The interface name from the node perspective. This is not currently used by xCAT, but administrators may wish to use this for their own purposes',
vlan => 'The ID for the tagged vlan that is created on this port using mkvlan and chvlan commands.',
interface => 'The interface name from the node perspective. For example, eth0. For the primary nic, it can be empty, the word "primary" or "primary:ethx" where ethx is the interface name.',
comments => 'Any user-written notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
},
@@ -966,7 +997,7 @@ vpd => {
},
},
nimimage => {
cols => [qw(imagename nimtype lpp_source spot root dump paging resolv_conf tmp home shared_home res_group nimmethod script bosinst_data installp_bundle mksysb fb_script shared_root otherpkgs image_data comments disable)],
cols => [qw(imagename nimtype lpp_source spot root dump paging resolv_conf tmp home shared_home res_group nimmethod script bosinst_data installp_bundle mksysb fb_script shared_root otherpkgs image_data configdump comments disable)],
keys => [qw(imagename)],
table_desc => 'All the info that specifies a particular AIX operating system image that can be used to deploy AIX nodes.',
descriptions => {
@@ -991,6 +1022,7 @@ nimimage => {
mksysb => 'The name of a NIM mksysb resource.',
shared_root => 'A shared_root resource represents a directory that can be used as a / (root) directory by one or more diskless clients.',
image_data => 'The name of a NIM image_data resource.',
configdump => 'Specifies the type of system dump to be collected. The values are selective, full, and none. The default is selective.',
comments => 'Any user-provided notes.',
disable => "Set to 'yes' or '1' to comment out this row.",
},
@@ -1741,6 +1773,12 @@ my @nodeattrs = (
tabentry => 'mp.id',
access_tabentry => 'mp.node=attr:node',
},
{attr_name => 'id',
only_if => 'mgt=ipmi',
tabentry => 'mp.id',
access_tabentry => 'mp.node=attr:node',
},
#################
# mpa table #
#################
@@ -1781,6 +1819,10 @@ my @nodeattrs = (
######################
# vm table #
######################
{attr_name => 'vmmanager',
tabentry => 'vm.mgr',
access_tabentry => 'vm.node=attr:node',
},
{attr_name => 'vmhost',
tabentry => 'vm.host',
access_tabentry => 'vm.node=attr:node',
@@ -1825,6 +1867,10 @@ my @nodeattrs = (
tabentry => 'vm.virtflags',
access_tabentry => 'vm.node=attr:node',
},
{attr_name => 'vmmaster',
tabentry => 'vm.master',
access_tabentry => 'vm.node=attr:node',
},
{attr_name => 'vmvncport',
tabentry => 'vm.vncport',
access_tabentry => 'vm.node=attr:node',
@@ -1837,6 +1883,29 @@ my @nodeattrs = (
tabentry => 'vm.beacon',
access_tabentry => 'vm.node=attr:node',
},
{attr_name => 'vmcluster',
tabentry => 'vm.cluster',
access_tabentry => 'vm.node=attr:node',
},
######################
# hypervisor table #
######################
{attr_name => 'hosttype',
tabentry => 'hypervisor.type',
access_tabentry => 'hypervisor.node=attr:node',
},
{attr_name => 'hostinterface',
tabentry => 'hypervisor.interface',
access_tabentry => 'hypervisor.node=attr:node',
},
{attr_name => 'hostmanager',
tabentry => 'hypervisor.mgr',
access_tabentry => 'hypervisor.node=attr:node',
},
{attr_name => 'hostcluster',
tabentry => 'hypervisor.cluster',
access_tabentry => 'hypervisor.node=attr:node',
},
######################
# websrv table #
######################
@@ -2092,6 +2161,11 @@ push(@{$defspec{node}->{'attrs'}}, @nodeattrs);
tabentry => 'linuximage.crashkernelsize',
access_tabentry => 'linuximage.imagename=attr:imagename',
},
{attr_name => 'usercomment',
only_if => 'imagetype=linux',
tabentry => 'linuximage.comments',
access_tabentry => 'linuximage.imagename=attr:imagename',
},
####################
# nimimage table#
####################
@@ -2125,6 +2199,11 @@ push(@{$defspec{node}->{'attrs'}}, @nodeattrs);
tabentry => 'nimimage.dump',
access_tabentry => 'nimimage.imagename=attr:imagename',
},
{attr_name => 'configdump',
only_if => 'imagetype=NIM',
tabentry => 'nimimage.configdump',
access_tabentry => 'nimimage.imagename=attr:imagename',
},
{attr_name => 'paging',
only_if => 'imagetype=NIM',
tabentry => 'nimimage.paging',
@@ -2242,10 +2321,26 @@ push(@{$defspec{node}->{'attrs'}}, @nodeattrs);
{attr_name => 'nameservers',
tabentry => 'networks.nameservers',
access_tabentry => 'networks.netname=attr:netname',
},
{attr_name => 'ntpservers',
tabentry => 'networks.ntpservers',
access_tabentry => 'networks.netname=attr:netname',
},
{attr_name => 'logservers',
tabentry => 'networks.logservers',
access_tabentry => 'networks.netname=attr:netname',
},
{attr_name => 'dynamicrange',
tabentry => 'networks.dynamicrange',
access_tabentry => 'networks.netname=attr:netname',
},
{attr_name => 'nodehostname',
tabentry => 'networks.nodehostname',
access_tabentry => 'networks.netname=attr:netname',
},
{attr_name => 'ddnsdomain',
tabentry => 'networks.ddnsdomain',
access_tabentry => 'networks.netname=attr:netname',
},
{attr_name => 'vlanid',
tabentry => 'networks.vlanid',
+125 -54
View File
@@ -57,6 +57,7 @@ if ($^O =~ /^aix/i) {
use lib "$::XCATROOT/lib/perl";
my $cachethreshold=16; #How many nodes in 'getNodesAttribs' before switching to full DB retrieval
#TODO: dynamic tracking/adjustment, the point where cache is cost effective differs based on overall db size
use DBI;
$DBI::dbi_debug=9; # increase the debug output
@@ -203,6 +204,8 @@ sub init_dbworker {
eval { #avoid hang by allowin client to die too
print $currcon "*XCATBUGDETECTED*:$err:*XCATBUGDETECTED*\n";
print $currcon "*XCATBUGDETECTED*76e9b54341\n";
$clientset->remove($currcon);
close($currcon);
};
}
}
@@ -296,7 +299,11 @@ sub handle_dbc_request {
$opentables{$tablename}->{$autocommit} = xCAT::Table->new(@args);
}
if ($opentables{$tablename}->{$autocommit}) {
return 1;
if ($opentables{$tablename}->{$autocommit^1}) {
$opentables{$tablename}->{$autocommit}->{cachepeer}=$opentables{$tablename}->{$autocommit^1};
$opentables{$tablename}->{$autocommit^1}->{cachepeer}=$opentables{$tablename}->{$autocommit};
}
return 1;
} else {
return 0;
}
@@ -309,6 +316,10 @@ sub handle_dbc_request {
unless ($opentables{$tablename}->{$autocommit}) {
return undef;
}
if ($opentables{$tablename}->{$autocommit^1}) {
$opentables{$tablename}->{$autocommit}->{cachepeer}=$opentables{$tablename}->{$autocommit^1};
$opentables{$tablename}->{$autocommit^1}->{cachepeer}=$opentables{$tablename}->{$autocommit};
}
}
}
if ($functionname eq 'getAllAttribs') {
@@ -736,6 +747,10 @@ sub new
return undef;
}
} else { #direct db access mode
if ($opentables{$self->{tabname}}->{$self->{autocommit}}) { #if we are inside the db worker and asked to create a new table that is already open, just return a reference to that table
#generally speaking, this should cause a lot of nodelists to be shared
return $opentables{$self->{tabname}}->{$self->{autocommit}};
}
$self->{dbuser}="";
$self->{dbpass}="";
@@ -2043,6 +2058,7 @@ sub getNodesAttribs {
return dbc_call($self,'getNodesAttribs',@_);
}
my $nodelist = shift;
unless ($nodelist) { $nodelist = []; } #common to be invoked with undef seemingly
my %options=();
my @attribs;
if (ref $_[0]) {
@@ -2051,7 +2067,9 @@ sub getNodesAttribs {
} else {
@attribs = @_;
}
if (scalar($nodelist) > $cachethreshold) {
my @realattribs = @attribs; #store off the requester attribute list, the cached columns may end up being a superset and we shouldn't return more than asked
#it should also be the case that cache will be used if it already is in play even if below cache threshold. This would be desired behavior
if (scalar(@$nodelist) > $cachethreshold) {
$self->{_use_cache} = 0;
$self->{nodelist}->{_use_cache}=0;
if ($self->{tabname} eq 'nodelist') { #a sticky situation
@@ -2072,7 +2090,7 @@ sub getNodesAttribs {
}
my $rethash;
foreach (@$nodelist) {
my @nodeentries=$self->getNodeAttribs($_,\@attribs,%options);
my @nodeentries=$self->getNodeAttribs($_,\@realattribs,%options);
$rethash->{$_} = \@nodeentries; #$self->getNodeAttribs($_,\@attribs);
}
$self->_clear_cache;
@@ -2086,6 +2104,7 @@ sub getNodesAttribs {
sub _refresh_cache { #if cache exists, force a rebuild, leaving reference counts alone
my $self = shift; #dbworker check not currently required
if ($self->{cachepeer}->{_cachestamp}) { $self->{cachepeer}->{_cachestamp}=0; }
if ($self->{_use_cache}) { #only do things if cache is set up
$self->_build_cache(1); #for now, rebuild the whole thing.
#in the future, a faster cache update may be possible
@@ -2098,6 +2117,8 @@ sub _refresh_cache { #if cache exists, force a rebuild, leaving reference counts
# (uses stale nodelist data and misses new nodes, the error)
#1st noderange finishes
#2nd noderange finishes
} else { #even if a cache is not in use *right this second*, we need to mark any cached data that may exist as invalid, do so by suggesting the cache is from 1970
if ($self->{_cachestamp}) { $self->{_cachestamp}=0; }
}
return;
}
@@ -2113,7 +2134,8 @@ sub _clear_cache { #PRIVATE FUNCTION TO EXPIRE CACHED DATA EXPLICITLY
$self->{_cache_ref} -= 1;
return;
} elsif ($self->{_cache_ref} == 1) { #If it is 1, decrement to zero and carry on
$self->{_cache_ref} = 0;
return;
#$self->{_cache_ref} = 0;
}
#it shouldn't have been zero, but whether it was 0 or 1, ensure that the cache is gone
$self->{_use_cache}=0; # Signal slow operation to any in-flight operations that may fail with empty cache
@@ -2130,6 +2152,7 @@ sub _build_cache { #PRIVATE FUNCTION, PLEASE DON'T CALL DIRECTLY
return dbc_call($self,'_build_cache',@_);
}
my $attriblist = shift;
my %copts = @_;
my $refresh = not ref $attriblist; #if attriblist is not a reference, it is a refresh request
if (not ref $attriblist) {
$attriblist = $self->{_cached_attriblist}; #need attriblist to mean something, don't know how this didn't break horribly already
@@ -2137,7 +2160,9 @@ sub _build_cache { #PRIVATE FUNCTION, PLEASE DON'T CALL DIRECTLY
if (not $refresh and $self->{_cache_ref}) { #we have active cache reference, increment counter and return
#TODO: ensure that the cache isn't somehow still ludirously old
$self->{_cache_ref} += 1;
unless ($copts{noincrementref}) {
$self->{_cache_ref} += 1;
}
my $currattr;
my $cachesufficient=1;
foreach $currattr (@$attriblist) { #if any of the requested attributes are not cached, we must rebuild
@@ -2146,6 +2171,9 @@ sub _build_cache { #PRIVATE FUNCTION, PLEASE DON'T CALL DIRECTLY
last;
}
}
if ($self->{_cachestamp} < (time()-5)) { #NEVER use a cache older than 5 seconds
$cachesufficient=0;
}
if ($cachesufficient) { return; }
#cache is insufficient, now we must do the converse of above
#must add any currently cached columns to new list if not requested
@@ -2223,7 +2251,9 @@ $evalcpt->permit('require');
sub getNodeAttribs
{
my $self = shift;
if ($dbworkerpid) {
if ($dbworkerpid) { #TODO: should this be moved outside of the DB worker entirely? I'm thinking so, but I don't dare do so right now...
#the benefit would be the potentially computationally intensive substitution logic would be moved out and less time inside limited
#db worker scope
return dbc_call($self,'getNodeAttribs',@_);
}
my $node = shift;
@@ -2236,7 +2266,33 @@ sub getNodeAttribs
@attribs = @_;
}
my $datum;
my $oldusecache;
my $nloldusecache;
if ($options{prefetchcache}) { #TODO: If this *were* split out of DB worker, this logic would have to move *into* returnany
if ($self->{tabname} eq 'nodelist') { #a sticky situation
my @locattribs=@attribs;
unless (grep(/^node$/,@locattribs)) {
push @locattribs,'node';
}
unless (grep(/^groups$/,@locattribs)) {
push @locattribs,'groups';
}
$self->_build_cache(\@locattribs,noincrementref=>1);
} else {
$self->_build_cache(\@attribs,noincrementref=>1);
$self->{nodelist}->_build_cache(['node','groups'],noincrementref=>1);
}
$oldusecache=$self->{_use_cache};
$nloldusecache=$self->{nodelist}->{_use_cache};
$self->{_use_cache}=1;
$self->{nodelist}->{_use_cache}=1;
}
my @data = $self->getNodeAttribs_nosub_returnany($node, \@attribs,%options);
if ($options{prefetchcache}) {
$self->{_use_cache}=$oldusecache;
$self->{nodelist}->{_use_cache}=$nloldusecache;
#in this case, we just let the cache live, even if it is to be ignored by most invocations
}
#my ($datum, $extra) = $self->getNodeAttribs_nosub($node, \@attribs);
#if ($extra) { return undef; } # return (undef,"Ambiguous query"); }
defined($data[0])
@@ -2340,51 +2396,51 @@ sub getNodeAttribs
#--------------------------------------------------------------------------
sub getNodeSpecAttribs {
my $self = shift;
my $node = shift;
my %options = ();
my @attribs = ();
my @keys = ();
if (ref $_[0] eq 'HASH') {
%options = %{shift()};
@attribs = @_;
foreach my $key (keys %options) {
if (!grep(/^$key$/, @attribs)) {
push @attribs, $key;
}
}
} else {
@attribs = @_;
}
if ((keys (%options)) == 0) {
my $ent = $self->getNodeAttribs($node, \@attribs);
return $ent;
} else {
my $nodekey = "node";
if (defined $xCAT::Schema::tabspec{$self->{tabname}}->{nodecol}) {
$nodekey = $xCAT::Schema::tabspec{$self->{tabname}}->{nodecol};
}
$options{$nodekey} = $node;
my $ent = $self->getAttribs(\%options, \@attribs);
if ($ent) {
return $ent;
}
my ($nodeghash) = $self->{nodelist}->getAttribs({node=>$node}, "groups");
unless(defined($nodeghash) && defined($nodeghash->{groups})) {
return undef;
}
my @nodegroups = split(/,/, $nodeghash->{groups});
foreach my $group (@nodegroups) {
$options{$nodekey} = $group;
my $g_ret = $self->getAttribs(\%options, \@attribs);
if ($g_ret) {
return $g_ret;
}
}
}
return undef;
}
#sub getNodeSpecAttribs {
# my $self = shift;
# my $node = shift;
# my %options = ();
# my @attribs = ();
# my @keys = ();
# if (ref $_[0] eq 'HASH') {
# %options = %{shift()};
# @attribs = @_;
# foreach my $key (keys %options) {
# if (!grep(/^$key$/, @attribs)) {
# push @attribs, $key;
# }
# }
# } else {
# @attribs = @_;
# }
# if ((keys (%options)) == 0) {
# my $ent = $self->getNodeAttribs($node, \@attribs);
# return $ent;
# } else {
# my $nodekey = "node";
# if (defined $xCAT::Schema::tabspec{$self->{tabname}}->{nodecol}) {
# $nodekey = $xCAT::Schema::tabspec{$self->{tabname}}->{nodecol};
# }
# $options{$nodekey} = $node;
# my $ent = $self->getAttribs(\%options, \@attribs);
# if ($ent) {
# return $ent;
# }
# my ($nodeghash) = $self->{nodelist}->getAttribs({node=>$node}, "groups");
# unless(defined($nodeghash) && defined($nodeghash->{groups})) {
# return undef;
# }
# my @nodegroups = split(/,/, $nodeghash->{groups});
# foreach my $group (@nodegroups) {
# $options{$nodekey} = $group;
# my $g_ret = $self->getAttribs(\%options, \@attribs);
# if ($g_ret) {
# return $g_ret;
# }
# }
# }
# return undef;
#}
#--------------------------------------------------------------------------
=head3 getNodeAttribs_nosub
@@ -2897,6 +2953,7 @@ sub getAllNodeAttribs
}
my $attribq = shift;
my $hashretstyle = shift;
my %options=@_;
my $rethash;
my @results = ();
my %donenodes
@@ -2915,10 +2972,12 @@ sub getAllNodeAttribs
$query = $self->{dbh}->prepare($qstring);
$query->execute();
xCAT::NodeRange::retain_cache(1);
unless ($options{prefetchcache}) {
$self->{_use_cache} = 0;
$self->{nodelist}->{_use_cache}=0;
$self->_clear_cache();
$self->{nodelist}->_clear_cache();
}
$self->_build_cache($attribq);
$self->{nodelist}->_build_cache(['node','groups']);
$self->{_use_cache} = 1;
@@ -2928,9 +2987,14 @@ sub getAllNodeAttribs
unless ($data->{$nodekey} =~ /^$/ || !defined($data->{$nodekey}))
{ #ignore records without node attrib, not possible?
my @nodes =
xCAT::NodeRange::noderange($data->{$nodekey})
; #expand node entry, to make groups expand
my @nodes;
unless ($self->{nrcache}->{$data->{$nodekey}} and (($self->{nrcache}->{$data->{$nodekey}}->{tstamp} + 5) > time())) {
my @cnodes = xCAT::NodeRange::noderange($data->{$nodekey});
$self->{nrcache}->{$data->{$nodekey}}->{value} = \@cnodes;
$self->{nrcache}->{$data->{$nodekey}}->{tstamp} = time();
}
@nodes = @{$self->{nrcache}->{$data->{$nodekey}}->{value}}; #expand node entry, to make groups expand
unless (@nodes) { #in the event of an entry not in nodelist, use entry value verbatim
@nodes = ($data->{$nodekey});
}
@@ -3017,6 +3081,9 @@ sub getAllAttribs
my @attribs = @_;
my @results = ();
if ($self->{_use_cache}) {
if ($self->{_cachestamp} < (time()-5)) { #NEVER use a cache older than 5 seconds
$self->_refresh_cache();
}
my @results;
my $cacheline;
CACHELINE: foreach $cacheline (@{$self->{_tablecache}}) {
@@ -3185,6 +3252,7 @@ sub delEntries
$stmt->execute(@stargs);
$stmt->finish;
$self->_refresh_cache(); #cache is invalid, refresh
#notify the interested parties
if ($notif == 1)
{
@@ -3243,6 +3311,9 @@ sub getAttribs
}
my @return;
if ($self->{_use_cache}) {
if ($self->{_cachestamp} < (time()-5)) { #NEVER use a cache older than 5 seconds
$self->_refresh_cache();
}
my @results;
my $cacheline;
if (scalar(keys %keypairs) == 1 and $keypairs{node}) { #99.9% of queries look like this, optimized case
+40 -9
View File
@@ -78,6 +78,8 @@ my %usage = (
rinv <noderange> [deconfig [-x]]
Blade specific:
rinv <noderange> [mtm|serial|mac|bios|diag|mprom|mparom|firm|all]
IBM Flex System Compute Node specific:
rinv <noderange> [firm]
VMware specific:
rinv <noderange>
zVM specific:
@@ -114,7 +116,6 @@ my %usage = (
rspconfig <singlenode> [textid=name]
rspconfig <singlenode> [frame=number]
rspconfig <singlenode> [USERID=passwd]
rspconfig <singlenode> [HMC=passwd]
rspconfig <noderange> [sshcfg=<enable|disable>|
snmpcfg=<enable|disable>|
pd1=<nonred|redwoperf|redwperf>|
@@ -186,7 +187,7 @@ my %usage = (
getmacs <noderange> [-M]
getmacs <noderange> [-V| --verbose] [-f] [-d] [--arp] | [-D [-S server] [-G gateway] [-C client]]
blade specific:
getmacs <noderange> [-V| --verbose] [-d] [--arp]
getmacs <noderange> [-V| --verbose] [-d] [--arp] [-i ethN|enN]
",
"mkvm" =>
"Usage:
@@ -260,9 +261,8 @@ 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][-C counts][-T timeout]
[-t tries][-m][-e cmd][-c [timeinterval[interval,..]]][--vpdtable]
[-M vpd|switchport][--makedhcp][--updatehost][--resetnet]",
lsslp [<noderange>][-V|--verbose][-i ip[,ip..]][-w][-r|-x|-z][-n][-I][-s FRAME|CEC|MM|IVM|RSA|HMC|CMM]
[-t tries][--vpdtable][-C counts][-T timeout]",
"rflash" =>
"Usage:
rflash [ -h|--help|-v|--version]
@@ -270,8 +270,9 @@ my %usage = (
rflash <noderange> -p <rpm_directory> [--activate concurrent | disruptive][-V|--verbose]
rflash <noderange> [--commit | --recover] [-V|--verbose]
PPC (using Direct FSP Management) specific:
rflash <noderange> -p <rpm_directory> --activate disruptive [-d <data_directory>]
rflash <noderange> [--commit | --recover] [-V|--verbose]",
rflash <noderange> -p <rpm_directory> --activate <disruptive|deferred> [-d <data_directory>]
rflash <noderange> [--commit | --recover] [-V|--verbose]
rflash <noderange> [--bpa_acdl]",
"mkhwconn" =>
"Usage:
mkhwconn [-h|--help]
@@ -384,11 +385,36 @@ Options:
"Usage:
Common:
nodeset [-h|--help|-v|--version]
nodeset <noderange> [install|shell|boot|runcmd=bmcsetup|netboot|iscsiboot|osimage=<imagename>|statelite]",
nodeset <noderange> [install|shell|boot|runcmd=bmcsetup|netboot|iscsiboot|osimage=<imagename>|statelite|offline]",
"rmflexnode" =>
"Usage:
rmflexnode [-h|--help|-v|--version]
rmflexnode <noderange>",
"lsve" =>
"Usage:
lsve [-t type] [-m manager] [-o object]
-t: dc - 'Data Center', cl - 'Cluster', sd - 'Storage Domain', nw - 'Network', tpl -'Template'
-m: FQDN (Fully Qualified Domain Name) of the rhev manager
-o: Target object to display",
"cfgve" =>
"Usage:
cfgve -t dc -m manager -o object [-c -k nfs|localfs | -r]
cfgve -t cl -m manager -o object [-c -p cpu type | -r -f]
cfgve -t sd -m manager -o object [-c | -g | -s | -a | -b | -r -f]
-t: sd - 'Storage Domain', nw - 'Network', tpl -'Template'
-m: FQDN (Fully Qualified Domain Name) of the rhev manager
-o: Target object to configure
cfgve -t nw -m manager -o object [-c -d data center -n vlan ID | -a -l cluster| -b | -r]
cfgve -t tpl -m manager -o object [-r]",
"chhypervisor" =>
"Usage:
chhypervisor noderange [-a | -n | -p | -e | -d | -h]",
"rmhypervisor" =>
"Usage:
rmhypervisor noderange [-f | -h]",
"clonevm" =>
"Usage:
clonevm noderange [-t createmaster -f | -b basemaster -d | -h]",
);
my $vers = xCAT::Utils->Version();
my %version = (
@@ -413,7 +439,12 @@ my %version = (
"lsflexnode" => "$vers",
"mkflexnode" => "$vers",
"rmflexnode" => "$vers",
"nodeset" => "$vers"
"nodeset" => "$vers",
"lsve" => "$vers",
"cfgve" => "$vers",
"chhypervisor" => "$vers",
"rmhypervisor" => "$vers",
"clonevm" => "$vers",
);
#--------------------------------------------------------------------------------
+19 -142
View File
@@ -27,6 +27,7 @@ use Symbol;
use Digest::SHA1 qw/sha1/;
use IPC::Open3;
use IO::Select;
use xCAT::GlobalDef;
require xCAT::RemoteShellExp;
use warnings "all";
require xCAT::InstUtils;
@@ -1069,16 +1070,18 @@ sub runcmd
my $errout;
open (PIPE, "$cmd |");
while (<PIPE>) {
push @$outref, $_;
chomp; # get rid of the newline, because the client will add one
if ($::CALLBACK){
$rsp->{data}->[0] = $_;
$::CALLBACK->($rsp);
} else {
xCAT::MsgUtils->message("D", "$_");
}
$output .= $_;
#$output .= $_;
}
# store the return string
push @$outref,$output;
#push @$outref,$output;
}
# now if not streaming process errors
@@ -2878,139 +2881,7 @@ sub getNodeIPaddress
return undef;
}
}
#-------------------------------------------------------------------------------
=head3 getIPaddress - Used by DFM related functions to support service vlan redundancy.
Arguments:
Node name only one at a time
Returns: ip address(s)
Globals:
none
Error:
none
Example: my $c1 = xCAT::Utils::getIPaddress($nodetocheck);
=cut
#-------------------------------------------------------------------------------
sub getIPaddress
{
require xCAT::Table;
my $nodetocheck = shift;
my $port = shift;
if (isIpaddr($nodetocheck)) {
return $nodetocheck;
}
my $side = "[A|B]";
if (!defined($port)) {
$port = "[0|1]";
}
# only need to parse IP addresses for Frame/CEC/BPA/FSP
my $type = xCAT::DBobjUtils->getnodetype($nodetocheck);
if ($type) {
my @children;
my %node_side_pairs = ();
my $children_num = 0;
my $parent;
my $ppctab = xCAT::Table->new( 'ppc' );
my $vpdtab = xCAT::Table->new( 'vpd' );
my $mptab = xCAT::Table->new( 'mp');
if ($type eq "bpa" or $type eq "fsp") {
my $tmp_p = $ppctab->getNodeAttribs($nodetocheck, ['parent']);
if ($tmp_p and $tmp_p->{parent}) {
$parent = $tmp_p->{parent};
} else {
return undef;
}
if ($mptab) {
my $tmp_p_type = $mptab->getNodeAttribs($parent, ['nodetype']);
if ($tmp_p_type && $tmp_p_type->{nodetype} =~ /^(cmm|mp)$/) {
return getNodeIPaddress($nodetocheck);
} else {
my $p_type = xCAT::DBobjUtils->getnodetype($parent);
if ($p_type && $p_type =~ /^(cmm|mp)$/) {
return getNodeIPaddress($nodetocheck);
}
}
}
my $tmp_s = $vpdtab->getNodeAttribs($nodetocheck, ['side']);
if ($tmp_s->{side} and ($tmp_s->{side} =~ /(A|B)-\d/i)) {
$side = $1; # get side for the fsp, in order to get its brothers
} else {
return -3;
}
} elsif ($type eq "frame" or $type eq "cec") {
$parent = $nodetocheck;
} else {
return undef;
}
my @ps = $ppctab->getAllNodeAttribs(['node','parent','nodetype']);
my $tmp_parent;
my $tmp_node;
my $tmp_type;
#search for $nodetocheck's children or brothers
for my $entry ( @ps ) {
$tmp_parent = $entry->{parent};
$tmp_node = $entry->{node};
$tmp_type = $entry->{nodetype};
if ($tmp_parent and ($tmp_parent eq $parent) ) {
if (!defined($tmp_type)) {
$tmp_type = xCAT::DBobjUtils->getnodetype($tmp_node);
}
if ($tmp_type and ($tmp_type eq 'fsp' or $tmp_type eq 'bpa')) {
push @children, $tmp_node;
}
}
}
foreach my $tmp_n( @children) {
my $ent = $vpdtab->getNodeAttribs($tmp_n, ['side']);
if ($ent->{side} and $ent->{side} =~ /^$side-$port$/i) {
my $tmp_s = $ent->{side};
$tmp_s =~ s/a/A/;
$tmp_s =~ s/b/B/;
if (isIpaddr($tmp_n)) {
$node_side_pairs{$tmp_s} = $tmp_n;
$children_num++;
} else {
my $tmpip = xCAT::NetworkUtils->getipaddr($tmp_n);
if (!$tmpip) {
my $hoststab = xCAT::Table->new( 'hosts' );
my $tmp = $hoststab->getNodeAttribs($tmp_n, ['ip']);
if ($tmp->{ip}) {
$tmpip = $tmp->{ip};
}
}
if ($tmpip) {
$node_side_pairs{$tmp_s} = $tmpip;
$children_num++;
}
} # end of parse IP address for a fsp/bpa
} # end of parse a child's side
} #end of loop for children
if ($children_num == 0) {
return undef; #no children or brothers for this node.
}
my @keys = qw(A-0 A-1 B-0 B-1);
my $out_strings = undef;
foreach my $tmp (@keys) {
if (!$node_side_pairs{$tmp}) {
$node_side_pairs{$tmp} = '';
}
}
$out_strings = $node_side_pairs{"A-0"}.','.$node_side_pairs{"A-1"}.','.$node_side_pairs{"B-0"}.','.$node_side_pairs{"B-1"};
return $out_strings;
} else {
return undef;
}
}
#-------------------------------------------------------------------------------
@@ -4027,7 +3898,7 @@ sub isSN
return 0;
}
my @nodes = $servicenodetab->getAllNodeAttribs(['tftpserver']);
my @nodes = $servicenodetab->getAllNodeAttribs(['tftpserver'],undef,prefetchcache=>1);
$servicenodetab->close;
foreach my $nodes (@nodes)
{
@@ -6440,12 +6311,18 @@ sub enablessh
{
# if not a service node we need to check, before enabling
my $sitetab = xCAT::Table->new('site');
my $attr = "sshbetweennodes";
my $ref = $sitetab->getAttribs({key => $attr}, 'value');
if ($ref)
{
my $values = $ref->{value};
my $values;
if (keys %::XCATSITEVALS) {
$values=$::XCATSITEVALS{sshbetweennodes};
} else {
my $sitetab = xCAT::Table->new('site');
my $attr = "sshbetweennodes";
my $ref = $sitetab->getAttribs({key => $attr}, 'value');
if ($ref) {
$values = $ref->{value};
}
}
if ($values) {
my @groups = split(/,/, $values);
if (grep(/^ALLGROUPS$/, @groups))
{
+3
View File
@@ -49,6 +49,9 @@ require Exporter;
"1305067911.467189" => "rhels6.1", #ppc64
"1321546114.510099" => "rhels6.2", #x86_64
"1321546739.676170" => "rhels6.2", #ppc64
"1339641244.734735" => "rhels6.3", #ppc64
"1339640147.274118" => "rhels6.3", #x86_64
"1339638991.532890" => "rhels6.3", #i386
"1285193176.593806" => "rhelhpc6",
"1194015916.783841" => "fedora8",
"1194015385.299901" => "fedora8",
+18 -4
View File
@@ -33,12 +33,16 @@ package xCAT::data::ipmisensorevents;
"07h,07h"=>"Processor,Processor Presence Detected",
"07h,08h"=>"Processor,Processor Disabled",
"07h,09h"=>"Processor,Terminator Presence Detected",
"07h,0Ah"=>"Processor Automatically Throttled (thermal or power throttling)",
"07h,0Bh"=>"Uncorrectable Machine check exception",
"07h,0Ch"=>"Correctable Machine check exception",
"08h,00h"=>"Power Supply,Presence Detected",
"08h,01h"=>"Power Supply,Power Supply Failure Detected",
"08h,02h"=>"Power Supply,Predictive Failure Asserted",
"08h,03h"=>"Power Supply,Power Supply AC lost",
"08h,04h"=>"Power Supply,AC lost or out-of-range",
"08h,05h"=>"Power Supply,AC out-of-range, but present",
"08h,06h"=>"Power Supply,Configuration error", #TODO: event data 3 decode?
"09h,00h"=>"Power Unit,Power Off / Power Down",
"09h,01h"=>"Power Unit,Power Cycle",
"09h,02h"=>"Power Unit,240VA Power Down",
@@ -59,6 +63,7 @@ package xCAT::data::ipmisensorevents;
"0Ch,07h"=>"Memory,Configuration Error",
"0Ch,08h"=>"Memory,Spare",
"0Ch,09h"=>"Memory,Throttled",
"0Ch,0Ah"=>"Memory,Critical Overtemperature",
"0Dh,-"=>"Drive Slot,-",
"0Dh,00h"=>"Drive Bay,Present",
"0Dh,01h"=>"Drive Bay,Fault",
@@ -71,14 +76,15 @@ package xCAT::data::ipmisensorevents;
"0Dh,08h"=>"Drive Bay,Rebuild aborted",
"0Eh,-"=>"POST Memory Resize,-",
"0Fh,00h"=>"System Firmware Progress,POST Error",
"0Fh,01h"=>"System Firmware Progress,System Firmware Hung",
"0Fh,02h"=>"System Firmware Progress,System Firmware Progress",
"0Fh,01h"=>"System Firmware Progress,System Firmware Hung", #TODO event data 2
"0Fh,02h"=>"System Firmware Progress,System Firmware Progress", #TODO event data 2
"10h,00h"=>"Event Logging Disabled,Correctable Memory Error Logging Disabled",
"10h,01h"=>"Event Logging Disabled,Event 'Type' Logging Disabled",
"10h,02h"=>"Event Logging Disabled,Log Area Reset/Cleared",
"10h,03h"=>"Event Logging Disabled,All Event Logging Disabled",
"10h,04h"=>"Event Logging Disabled,SEL Full",
"10h,05h"=>"Event Logging Status,SEL",
"10h,05h"=>"Event Logging Status,SEL Almost Full",
"10h,06h"=>"Event Logging Status,Correctable Machine Check Error Logging Disabled",
"11h,00h"=>"Watchdog 1,BIOS Watchdog Reset",
"11h,01h"=>"Watchdog 1,OS Watchdog Reset",
"11h,02h"=>"Watchdog 1,OS Watchdog Shut Down",
@@ -103,14 +109,19 @@ package xCAT::data::ipmisensorevents;
"13h,07h"=>"Critical Interrupt,Bus Correctable Error",
"13h,08h"=>"Critical Interrupt,Bus Uncorrectable Error",
"13h,09h"=>"Critical Interrupt,Fatal NMI (port 61h, bit 7)",
"13h,0Ah"=>"Critical Interrupt,Bus Fatal Error",
"13h,0Bh"=>"Critical Interrupt,Bus Degraded",
"14h,00h"=>"Button,Power Button pressed",
"14h,01h"=>"Button,Sleep Button pressed",
"14h,02h"=>"Button,Reset Button pressed",
"14h,03h"=>"Button,FRU latch open",
"14h,04h"=>"Button,FRU service request button",
"15h,-"=>"Module / Board,-",
"16h,-"=>"Microcontroller / Coprocessor,-",
"17h,-"=>"Add-in Card,-",
"18h,-"=>"Chassis,-",
"19h,-"=>"Chip Set,-",
"19h,00h"=>"Chip Set,Soft Power Control Failure",
"19h,01h"=>"Chip Set,Thermal Trip",
"1Ah,-"=>"Other FRU,-",
"1Bh,-"=>"Cable / Interconnect,-",
"1Bh,00h"=>"Cable/Interconnect,Connected",
@@ -151,6 +162,7 @@ package xCAT::data::ipmisensorevents;
"21h,06h"=>"Slot / Connector,Slot / Connector Device Removal Request",
"21h,07h"=>"Slot / Connector,Interlock asserted",
"21h,08h"=>"Slot / Connector,Slot is Disabled",
"21h,09h"=>"Slot / Connector,Slot holds spare device",
"22h,00h"=>"System ACPI Power State,S0 / G0 working",
"22h,01h"=>"System ACPI Power State,S1 sleeping with system h/w & processor context maintained",
"22h,02h"=>"System ACPI Power State,S2 sleeping, processor context lost",
@@ -195,6 +207,8 @@ package xCAT::data::ipmisensorevents;
"29h,02h"=>"Battery,battery presense detected",
"2Ah,00h"=>"Session Audit,Session Activated",
"2Ah,01h"=>"Session Audit,Session Deactivated",
"2Ah,02h"=>"Session Audit,Invalid Username or Password",
"2Ah,03h"=>"Session Audit,Account disabled",
"2Bh,00h"=>"Version Change,Hardware Change Occurred",
"2Bh,01h"=>"Version Change,Firmware/Software Change occurred",
"2Bh,02h"=>"Version Change,Hardware Incompatiblitiy",
+326 -326
View File
@@ -2,8 +2,8 @@
#-------------------------------------------------------
=head1
This is a CP utility plugin for z/VM.
This is a CP utility plugin for z/VM.
=cut
@@ -18,604 +18,604 @@ use warnings;
=head3 getUserId
Description : Get the user ID of a given node
Arguments : Node
Returns : UserID
Example : my $userID = xCAT::zvmCPUtils->getUserId($node);
Description : Get the user ID of a given node
Arguments : Node
Returns : UserID
Example : my $userID = xCAT::zvmCPUtils->getUserId($node);
=cut
#-------------------------------------------------------
sub getUserId {
# Get inputs
my ( $class, $node ) = @_;
# Get inputs
my ( $class, $node ) = @_;
# Get user ID using VMCP
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q userid"`;
my @results = split( ' ', $out );
# Get user ID using VMCP
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q userid"`;
my @results = split( ' ', $out );
return ( $results[0] );
return ( $results[0] );
}
#-------------------------------------------------------
=head3 getHost
Description : Get the z/VM host of a given node
Arguments : Node
Returns : z/VM host
Example : my $host = xCAT::zvmCPUtils->getHost($node);
Description : Get the z/VM host of a given node
Arguments : Node
Returns : z/VM host
Example : my $host = xCAT::zvmCPUtils->getHost($node);
=cut
#-------------------------------------------------------
sub getHost {
# Get inputs
my ( $class, $node ) = @_;
# Get inputs
my ( $class, $node ) = @_;
# Get host using VMCP
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q userid"`;
my @results = split( ' ', $out );
my $host = $results[2];
# Get host using VMCP
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q userid"`;
my @results = split( ' ', $out );
my $host = $results[2];
return ($host);
return ($host);
}
#-------------------------------------------------------
=head3 getPrivileges
Description : Get the privilege class of a given node
Arguments : Node
Returns : Privilege class
Example : my $class = xCAT::zvmCPUtils->getPrivileges($node);
Description : Get the privilege class of a given node
Arguments : Node
Returns : Privilege class
Example : my $class = xCAT::zvmCPUtils->getPrivileges($node);
=cut
#-------------------------------------------------------
sub getPrivileges {
# Get inputs
my ( $class, $node ) = @_;
# Get inputs
my ( $class, $node ) = @_;
# Get privilege class
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q priv"`;
my @out = split( '\n', $out );
$out[1] = xCAT::zvmUtils->trimStr( $out[1] );
$out[2] = xCAT::zvmUtils->trimStr( $out[2] );
my $str = " $out[1]\n $out[2]\n";
# Get privilege class
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q priv"`;
my @out = split( '\n', $out );
$out[1] = xCAT::zvmUtils->trimStr( $out[1] );
$out[2] = xCAT::zvmUtils->trimStr( $out[2] );
my $str = " $out[1]\n $out[2]\n";
return ($str);
return ($str);
}
#-------------------------------------------------------
=head3 getMemory
Description : Get the memory of a given node
Arguments : Node
Returns : Memory
Example : my $memory = xCAT::zvmCPUtils->getMemory($node);
Description : Get the memory of a given node
Arguments : Node
Returns : Memory
Example : my $memory = xCAT::zvmCPUtils->getMemory($node);
=cut
#-------------------------------------------------------
sub getMemory {
# Get inputs
my ( $class, $node ) = @_;
# Get inputs
my ( $class, $node ) = @_;
# Get memory
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q virtual storage"`;
my @out = split( '=', $out );
# Get memory
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q virtual storage"`;
my @out = split( '=', $out );
return ( xCAT::zvmUtils->trimStr( $out[1] ) );
return ( xCAT::zvmUtils->trimStr( $out[1] ) );
}
#-------------------------------------------------------
=head3 getCpu
Description : Get the processor(s) of a given node
Arguments : Node
Returns : Processor(s)
Example : my $proc = xCAT::zvmCPUtils->getCpu($node);
Description : Get the processor(s) of a given node
Arguments : Node
Returns : Processor(s)
Example : my $proc = xCAT::zvmCPUtils->getCpu($node);
=cut
#-------------------------------------------------------
sub getCpu {
# Get inputs
my ( $class, $node ) = @_;
# Get inputs
my ( $class, $node ) = @_;
# Get processors
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q virtual cpus"`;
my $str = xCAT::zvmUtils->tabStr($out);
# Get processors
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q virtual cpus"`;
my $str = xCAT::zvmUtils->tabStr($out);
return ($str);
return ($str);
}
#-------------------------------------------------------
=head3 getNic
Description : Get the network interface card (NIC) of a given node
Arguments : Node
Returns : NIC(s)
Example : my $nic = xCAT::zvmCPUtils->getNic($node);
Description : Get the network interface card (NIC) of a given node
Arguments : Node
Returns : NIC(s)
Example : my $nic = xCAT::zvmCPUtils->getNic($node);
=cut
#-------------------------------------------------------
sub getNic {
# Get inputs
my ( $class, $node ) = @_;
# Get inputs
my ( $class, $node ) = @_;
# Get NIC
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q virtual nic"`;
my $str = xCAT::zvmUtils->tabStr($out);
# Get NIC
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q virtual nic"`;
my $str = xCAT::zvmUtils->tabStr($out);
return ($str);
return ($str);
}
#-------------------------------------------------------
=head3 getNetworkNames
Description : Get a list of network names available to a given node
Arguments : Node
Returns : Network names
Example : my $lans = xCAT::zvmCPUtils->getNetworkNames($node);
Description : Get a list of network names available to a given node
Arguments : Node
Returns : Network names
Example : my $lans = xCAT::zvmCPUtils->getNetworkNames($node);
=cut
#-------------------------------------------------------
sub getNetworkNames {
# Get inputs
my ( $class, $node ) = @_;
# Get inputs
my ( $class, $node ) = @_;
# Get network names
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q lan | egrep 'LAN|VSWITCH'"`;
my @lines = split( '\n', $out );
my @parms;
my $names;
foreach (@lines) {
# Trim output
$_ = xCAT::zvmUtils->trimStr($_);
@parms = split( ' ', $_ );
# Get the network name
if ( $parms[0] eq "LAN" ) {
# Determine if this network is a hipersocket
# Only hipersocket guest LANs are supported
if ( $_ =~ m/Type: HIPERS/i ) {
$names .= $parms[0] . ":HIPERS " . $parms[1] . " " . $parms[2] . "\n";
} else {
$names .= $parms[0] . ":QDIO " . $parms[1] . " " . $parms[2] . "\n";
}
} elsif ( $parms[0] eq "VSWITCH" ) {
$names .= $parms[0] . " " . $parms[1] . " " . $parms[2] . "\n";
}
}
# Get network names
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q lan | egrep 'LAN|VSWITCH'"`;
my @lines = split( '\n', $out );
my @parms;
my $names;
foreach (@lines) {
# Trim output
$_ = xCAT::zvmUtils->trimStr($_);
@parms = split( ' ', $_ );
# Get the network name
if ( $parms[0] eq "LAN" ) {
# Determine if this network is a hipersocket
# Only hipersocket guest LANs are supported
if ( $_ =~ m/Type: HIPERS/i ) {
$names .= $parms[0] . ":HIPERS " . $parms[1] . " " . $parms[2] . "\n";
} else {
$names .= $parms[0] . ":QDIO " . $parms[1] . " " . $parms[2] . "\n";
}
} elsif ( $parms[0] eq "VSWITCH" ) {
$names .= $parms[0] . " " . $parms[1] . " " . $parms[2] . "\n";
}
}
return ($names);
return ($names);
}
#-------------------------------------------------------
=head3 getNetworkNamesArray
Description : Get an array of network names available to a given node
Arguments : Node
Returns : Array of networks names
Example : my @networks = xCAT::zvmCPUtils->getNetworkNamesArray($node);
Description : Get an array of network names available to a given node
Arguments : Node
Returns : Array of networks names
Example : my @networks = xCAT::zvmCPUtils->getNetworkNamesArray($node);
=cut
#-------------------------------------------------------
sub getNetworkNamesArray {
# Get inputs
my ( $class, $node ) = @_;
my @networks;
my %netHash;
# Get the networks used by the node
my $out = `ssh $node "vmcp q v nic" | egrep -i "VSWITCH|LAN"`;
my @lines = split( '\n', $out );
# Loop through each line
my $line;
my @words;
my $name;
foreach(@lines) {
# Get network name
# Line should contain: MAC: 02-00-01-00-00-12 VSWITCH: SYSTEM VSW1
$line = xCAT::zvmUtils->trimStr( $_ );
@words = split( ' ', $line );
if (@words) {
$name = xCAT::zvmUtils->trimStr( $words[4] );
# If network is not 'None'
if ($name ne 'None') {
# Save network
$netHash{$name} = 1;
}
}
}
# Push networks into array
foreach $name ( keys %netHash ) {
push(@networks, $name);
}
return @networks;
# Get inputs
my ( $class, $node ) = @_;
my @networks;
my %netHash;
# Get the networks used by the node
my $out = `ssh $node "vmcp q v nic" | egrep -i "VSWITCH|LAN"`;
my @lines = split( '\n', $out );
# Loop through each line
my $line;
my @words;
my $name;
foreach(@lines) {
# Get network name
# Line should contain: MAC: 02-00-01-00-00-12 VSWITCH: SYSTEM VSW1
$line = xCAT::zvmUtils->trimStr( $_ );
@words = split( ' ', $line );
if (@words) {
$name = xCAT::zvmUtils->trimStr( $words[4] );
# If network is not 'None'
if ($name ne 'None') {
# Save network
$netHash{$name} = 1;
}
}
}
# Push networks into array
foreach $name ( keys %netHash ) {
push(@networks, $name);
}
return @networks;
}
#-------------------------------------------------------
=head3 getNetwork
Description : Get the network info for a given node
Arguments : Node
Network name
Returns : Network configuration
Example : my $config = xCAT::zvmCPUtils->getNetwork($node, $netName);
Description : Get the network info for a given node
Arguments : Node
Network name
Returns : Network configuration
Example : my $config = xCAT::zvmCPUtils->getNetwork($node, $netName);
=cut
#-------------------------------------------------------
sub getNetwork {
# Get inputs
my ( $class, $node, $netName ) = @_;
# Get inputs
my ( $class, $node, $netName ) = @_;
# Get network info
my $out;
if ( $netName eq "all" ) {
$out = `ssh -o ConnectTimeout=5 $node "vmcp q lan"`;
} else {
$out = `ssh -o ConnectTimeout=5 $node "vmcp q lan $netName"`;
}
# Get network info
my $out;
if ( $netName eq "all" ) {
$out = `ssh -o ConnectTimeout=5 $node "vmcp q lan"`;
} else {
$out = `ssh -o ConnectTimeout=5 $node "vmcp q lan $netName"`;
}
return ($out);
return ($out);
}
#-------------------------------------------------------
=head3 getDisks
Description : Get the disk(s) of given node
Arguments : Node
Returns : Disk(s)
Example : my $storage = xCAT::zvmCPUtils->getDisks($node);
Description : Get the disk(s) of given node
Arguments : Node
Returns : Disk(s)
Example : my $storage = xCAT::zvmCPUtils->getDisks($node);
=cut
#-------------------------------------------------------
sub getDisks {
# Get inputs
my ( $class, $node ) = @_;
# Get inputs
my ( $class, $node ) = @_;
# Get disks
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q virtual dasd"`;
my $str = xCAT::zvmUtils->tabStr($out);
# Get disks
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q virtual dasd"`;
my $str = xCAT::zvmUtils->tabStr($out);
return ($str);
return ($str);
}
#-------------------------------------------------------
=head3 loadVmcp
Description : Load Linux VMCP module on a given node
Arguments : Node
Returns : Nothing
Example : xCAT::zvmCPUtils->loadVmcp($node);
Description : Load Linux VMCP module on a given node
Arguments : Node
Returns : Nothing
Example : xCAT::zvmCPUtils->loadVmcp($node);
=cut
#-------------------------------------------------------
sub loadVmcp {
# Get inputs
my ( $class, $node ) = @_;
# Get inputs
my ( $class, $node ) = @_;
# Load Linux VMCP module
my $out = `ssh -o ConnectTimeout=5 $node "modprobe vmcp"`;
return;
# Load Linux VMCP module
my $out = `ssh -o ConnectTimeout=5 $node "modprobe vmcp"`;
return;
}
#-------------------------------------------------------
=head3 getVswitchId
Description : Get the VSwitch ID(s) of given node
Arguments : Node
Returns : VSwitch ID(s)
Example : my @vswitch = xCAT::zvmCPUtils->getVswitchId($node);
Description : Get the VSwitch ID(s) of given node
Arguments : Node
Returns : VSwitch ID(s)
Example : my @vswitch = xCAT::zvmCPUtils->getVswitchId($node);
=cut
#-------------------------------------------------------
sub getVswitchId {
# Get inputs
my ( $class, $node ) = @_;
# Get inputs
my ( $class, $node ) = @_;
# Get VSwitch
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q v nic" | grep "VSWITCH"`;
my @lines = split( '\n', $out );
my @parms;
my @vswitch;
foreach (@lines) {
@parms = split( ' ', $_ );
push( @vswitch, $parms[4] );
}
# Get VSwitch
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q v nic" | grep "VSWITCH"`;
my @lines = split( '\n', $out );
my @parms;
my @vswitch;
foreach (@lines) {
@parms = split( ' ', $_ );
push( @vswitch, $parms[4] );
}
return @vswitch;
return @vswitch;
}
#-------------------------------------------------------
=head3 grantVSwitch
Description : Grant VSwitch access for a given userID
Arguments : HCP node
User ID
VSWITCH ID
Returns : Operation results (Done/Failed)
Example : my $out = xCAT::zvmCPUtils->grantVswitch($callback, $hcp, $userId, $vswitchId);
Description : Grant VSwitch access for a given userID
Arguments : HCP node
User ID
VSWITCH ID
Returns : Operation results (Done/Failed)
Example : my $out = xCAT::zvmCPUtils->grantVswitch($callback, $hcp, $userId, $vswitchId);
=cut
#-------------------------------------------------------
sub grantVSwitch {
# Get inputs
my ( $class, $callback, $hcp, $userId, $vswitchId ) = @_;
# Get inputs
my ( $class, $callback, $hcp, $userId, $vswitchId ) = @_;
# Grant VSwitch for specified userID
my $out = `ssh $hcp "vmcp set vswitch $vswitchId grant $userId"`;
$out = xCAT::zvmUtils->trimStr($out);
# Grant VSwitch for specified userID
my $out = `ssh $hcp "vmcp set vswitch $vswitchId grant $userId"`;
$out = xCAT::zvmUtils->trimStr($out);
# If return string contains 'Command complete' - Operation was successful
my $retStr;
if ( $out =~ m/Command complete/i ) {
$retStr = "Done\n";
} else {
$retStr = "Failed\n";
return $retStr;
}
# If return string contains 'Command complete' - Operation was successful
my $retStr;
if ( $out =~ m/Command complete/i ) {
$retStr = "Done\n";
} else {
$retStr = "Failed\n";
return $retStr;
}
return $retStr;
return $retStr;
}
#-------------------------------------------------------
=head3 flashCopy
Description : Flash copy (Class B users only)
Arguments : Node
Source address
Target address
Returns : Operation results (Done/Failed)
Example : my $results = xCAT::zvmCPUtils->flashCopy($node, $srcAddr, $targetAddr);
Description : Flash copy (Class B users only)
Arguments : Node
Source address
Target address
Returns : Operation results (Done/Failed)
Example : my $results = xCAT::zvmCPUtils->flashCopy($node, $srcAddr, $targetAddr);
=cut
#-------------------------------------------------------
sub flashCopy {
# Get inputs
my ( $class, $node, $srcAddr, $tgtAddr ) = @_;
# Get inputs
my ( $class, $node, $srcAddr, $tgtAddr ) = @_;
# Flash copy
my $out = `ssh $node "vmcp flashcopy $srcAddr 0 end to $tgtAddr 0 end synchronous"`;
$out = xCAT::zvmUtils->trimStr($out);
# Flash copy
my $out = `ssh $node "vmcp flashcopy $srcAddr 0 end to $tgtAddr 0 end synchronous"`;
$out = xCAT::zvmUtils->trimStr($out);
# If return string contains 'Command complete' - Operation was successful
my $retStr = "";
if ( $out =~ m/Command complete/i ) {
$retStr = "Done\n";
} else {
$out = xCAT::zvmUtils->tabStr($out);
$retStr = "Failed\n$out";
}
# If return string contains 'Command complete' - Operation was successful
my $retStr = "";
if ( $out =~ m/Command complete/i ) {
$retStr = "Done\n";
} else {
$out = xCAT::zvmUtils->tabStr($out);
$retStr = "Failed\n$out";
}
return $retStr;
return $retStr;
}
#-------------------------------------------------------
=head3 punch2Reader
Description : Write file to z/VM punch and transfer it to reader
Arguments : HCP node
UserID to receive file
Source file
Target file to be created by punch (e.g. sles.parm)
Options, e.g. -t (Convert EBCDIC to ASCII)
Returns : Operation results (Done/Failed)
Example : my $rc = xCAT::zvmCPUtils->punch2Reader($hcp, $userId, $srcFile, $tgtFile, $options);
Description : Write file to z/VM punch and transfer it to reader
Arguments : HCP node
UserID to receive file
Source file
Target file to be created by punch (e.g. sles.parm)
Options, e.g. -t (Convert EBCDIC to ASCII)
Returns : Operation results (Done/Failed)
Example : my $rc = xCAT::zvmCPUtils->punch2Reader($hcp, $userId, $srcFile, $tgtFile, $options);
=cut
#-------------------------------------------------------
sub punch2Reader {
my ( $class, $hcp, $userId, $srcFile, $tgtFile, $options ) = @_;
my ( $class, $hcp, $userId, $srcFile, $tgtFile, $options ) = @_;
# Punch to reader
my $out = `ssh -o ConnectTimeout=5 $hcp "vmur punch $options -u $userId -r $srcFile -N $tgtFile"`;
# Punch to reader
my $out = `ssh -o ConnectTimeout=5 $hcp "vmur punch $options -u $userId -r $srcFile -N $tgtFile"`;
# If punch is successful -- Look for this string
my $searchStr = "created and transferred";
if ( !( $out =~ m/$searchStr/i ) ) {
$out = "Failed\n";
} else {
$out = "Done\n";
}
# If punch is successful -- Look for this string
my $searchStr = "created and transferred";
if ( !( $out =~ m/$searchStr/i ) ) {
$out = "Failed\n";
} else {
$out = "Done\n";
}
return $out;
return $out;
}
#-------------------------------------------------------
=head3 purgeReader
Description : Purge reader (Class D users only)
Arguments : HCP node
UserID to purge reader
Returns : Nothing
Example : my $rc = xCAT::zvmCPUtils->purgeReader($hcp, $userId);
Description : Purge reader (Class D users only)
Arguments : HCP node
UserID to purge reader
Returns : Nothing
Example : my $rc = xCAT::zvmCPUtils->purgeReader($hcp, $userId);
=cut
#-------------------------------------------------------
sub purgeReader {
my ( $class, $hcp, $userId ) = @_;
my ( $class, $hcp, $userId ) = @_;
# Purge reader
my $out = `ssh -o ConnectTimeout=5 $hcp "vmcp purge $userId rdr all"`;
# Purge reader
my $out = `ssh -o ConnectTimeout=5 $hcp "vmcp purge $userId rdr all"`;
return;
return;
}
#-------------------------------------------------------
=head3 sendCPCmd
Description : Send CP command to a given userID (Class C users only)
Arguments : HCP node
UserID to send CP command
Returns : Nothing
Example : xCAT::zvmCPUtils->sendCPCmd($hcp, $userId, $cmd);
Description : Send CP command to a given userID (Class C users only)
Arguments : HCP node
UserID to send CP command
Returns : Nothing
Example : xCAT::zvmCPUtils->sendCPCmd($hcp, $userId, $cmd);
=cut
#-------------------------------------------------------
sub sendCPCmd {
my ( $class, $hcp, $userId, $cmd ) = @_;
my ( $class, $hcp, $userId, $cmd ) = @_;
# Send CP command to given userID
my $out = `ssh $hcp "vmcp send cp $userId $cmd"`;
# Send CP command to given userID
my $out = `ssh $hcp "vmcp send cp $userId $cmd"`;
return;
return;
}
#-------------------------------------------------------
=head3 getNetworkLayer
Description : Get the network layer for a given node
Arguments : Node
Network name
Returns : 2 - Layer 2
3 - Layer 3
-1 - Failed to get network layer
Example : my $layer = xCAT::zvmCPUtils->getNetworkLayer($node);
Description : Get the network layer for a given node
Arguments : Node
Network name
Returns : 2 - Layer 2
3 - Layer 3
-1 - Failed to get network layer
Example : my $layer = xCAT::zvmCPUtils->getNetworkLayer($node);
=cut
#-------------------------------------------------------
sub getNetworkLayer {
my ( $class, $node, $netName ) = @_;
my ( $class, $node, $netName ) = @_;
# Exit if the network name is not given
if ( !$netName ) {
return -1;
}
# Exit if the network name is not given
if ( !$netName ) {
return -1;
}
# Get network type (Layer 2 or 3)
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q lan $netName"`;
if ( !$out ) {
return -1;
}
# Get network type (Layer 2 or 3)
my $out = `ssh -o ConnectTimeout=5 $node "vmcp q lan $netName"`;
if ( !$out ) {
return -1;
}
# Go through each line
my $layer = 3; # Default to layer 3
my @lines = split( '\n', $out );
foreach (@lines) {
# Go through each line
my $layer = 3; # Default to layer 3
my @lines = split( '\n', $out );
foreach (@lines) {
# If the line contains ETHERNET, then it is a layer 2 network
if ( $_ =~ m/ETHERNET/i ) {
$layer = 2;
}
}
# If the line contains ETHERNET, then it is a layer 2 network
if ( $_ =~ m/ETHERNET/i ) {
$layer = 2;
}
}
return $layer;
return $layer;
}
#-------------------------------------------------------
=head3 getNetworkType
Description : Get the network type of a given network
Arguments : HCP node
Name of network
Returns : Network type (VSWITCH/HIPERS/QDIO)
Example : my $netType = xCAT::zvmCPUtils->getNetworkType($hcp, $netName);
Description : Get the network type of a given network
Arguments : HCP node
Name of network
Returns : Network type (VSWITCH/HIPERS/QDIO)
Example : my $netType = xCAT::zvmCPUtils->getNetworkType($hcp, $netName);
=cut
#-------------------------------------------------------
sub getNetworkType {
my ( $class, $hcp, $netName ) = @_;
my ( $class, $hcp, $netName ) = @_;
# Get network details
my $out = `ssh -o ConnectTimeout=5 $hcp "vmcp q lan $netName" | grep "Type"`;
# Get network details
my $out = `ssh -o ConnectTimeout=5 $hcp "vmcp q lan $netName" | grep "Type"`;
# Go through each line and determine network type
my @lines = split( '\n', $out );
my $netType = "";
foreach (@lines) {
# Go through each line and determine network type
my @lines = split( '\n', $out );
my $netType = "";
foreach (@lines) {
# Virtual switch
if ( $_ =~ m/VSWITCH/i ) {
$netType = "VSWITCH";
}
# Virtual switch
if ( $_ =~ m/VSWITCH/i ) {
$netType = "VSWITCH";
}
# HiperSocket guest LAN
elsif ( $_ =~ m/HIPERS/i ) {
$netType = "HIPERS";
}
# HiperSocket guest LAN
elsif ( $_ =~ m/HIPERS/i ) {
$netType = "HIPERS";
}
# QDIO guest LAN
elsif ( $_ =~ m/QDIO/i ) {
$netType = "QDIO";
}
}
# QDIO guest LAN
elsif ( $_ =~ m/QDIO/i ) {
$netType = "QDIO";
}
}
return $netType;
return $netType;
}
#-------------------------------------------------------
=head3 defineCpu
Description : Add processor(s) to given node
Arguments : Node
Returns : Nothing
Example : my $out = xCAT::zvmCPUtils->defineCpu($node, $addr, $type);
Description : Add processor(s) to given node
Arguments : Node
Returns : Nothing
Example : my $out = xCAT::zvmCPUtils->defineCpu($node, $addr, $type);
=cut
#-------------------------------------------------------
sub defineCpu {
# Get inputs
my ( $class, $node, $addr, $type ) = @_;
# Get inputs
my ( $class, $node, $addr, $type ) = @_;
# Define processor(s)
my $out = `ssh -o ConnectTimeout=5 $node "vmcp define cpu $addr type $type"`;
# Define processor(s)
my $out = `ssh -o ConnectTimeout=5 $node "vmcp define cpu $addr type $type"`;
return ($out);
return ($out);
}
+761 -625
View File
File diff suppressed because it is too large Load Diff
+16
View File
@@ -0,0 +1,16 @@
#!/bin/sh
# Sample postscript for HPC software additional configurations
# AIX:
# TBD
#
# Linux: for statefull (full-disk install) and stateless/statelite nodes
# For statefull nodes: run as part of IBMhpc.postbootscript.
# For stateless/statelite nodes: run as postscript, you will need to
# copy this script to /install/postscripts and specify it to nodes'
# postscripts attribute.
#
# BSR configuration on Power 775 cluster. More BSR configuration should
# be done by PE postinstall in genimage or postbootscript in statefull install
#chown root:bsr /dev/bsr*
@@ -8,6 +8,7 @@ ps_dir=/xcatpost
# Run script to set up some basics for all HPC software
$ps_dir/IBMhpc.postscript
$ps_dir/IBMhpc.post
# Run script to install gpfs updates
$ps_dir/gpfs_updates
@@ -15,17 +16,12 @@ $ps_dir/gpfs_updates
# Run script to accept compiler license
$ps_dir/compilers_license
#$ps_dir/upc_license
# Run script to install PE and accept license
$ps_dir/pe_install
# Run script to install ESSL and PESSL rpms
$ps_dir/essl_install
$ps_dir/pe_install-1200
# Run script to accept LoadLeveler license, install product rpms,
# and do some config
$ps_dir/loadl_install
$ps_dir/loadl_install-5103
@@ -74,7 +74,12 @@ fi
#/usr/bin/sed -i 's/SOFTRESIDENTLIMIT=.*/SOFTRESIDENTLIMIT="unlimited"/g' $installroot/etc/sysconfig/ulimit
#max locked memory
echo "* soft memlock unlimited" >> $installroot/etc/security/limits.conf
echo "* hard memlock unlimited" >> $installroot/etc/security/limits.conf
if ! grep "max locked memory" $installroot/etc/security/limits.conf >/dev/null 2>&1 ; then
sed -i "/# End of file/d" $installroot/etc/security/limits.conf
echo "#max locked memory" >> $installroot/etc/security/limits.conf
echo "* soft memlock unlimited" >> $installroot/etc/security/limits.conf
echo "* hard memlock unlimited" >> $installroot/etc/security/limits.conf
echo "# End of file" >> $installroot/etc/security/limits.conf
fi
@@ -20,6 +20,7 @@ numactl
libnuma1
libpython2_6-1_0
xinetd
ksh
gcc-32bit
gcc
@@ -1,5 +1,5 @@
# OS packages that are useful for all IBM HPC products
#INCLUDE:/opt/xcat/share/xcat/netboot/sles/compute.sles11.x86_64.pkglist#
#INCLUDE:/opt/xcat/share/xcat/netboot/sles/compute.sles11.pkglist#
systemtap
kernel-source
@@ -18,6 +18,7 @@ numactl
libnuma1
libpython2_6-1_0
xinetd
ksh
gcc-32bit
gcc
+3 -14
View File
@@ -22,24 +22,17 @@ I:xlsmp.rte
# AIX bundle package list for PE
# POE
I:ppe.poe
I:ppe.pdb
I:ppe.rte
#I:ppe.man
I:ppe.loc.license
# needed on login node
#I:ppe.hpct
#I:ppedev.hpct
# LAPI
I:rsct.lapi
#I:rsct.lapi
#I:rsct.sci
# MetaCluster (checkpoint/restore)
I:mcr.rte
I:mdcr
# AIX bundle file for ESSL and PESSL packages
# ESSL
@@ -53,11 +46,7 @@ I:essl.loc.license
# PESSL
I:pessl.rte.up
I:pessl.rte.smp
I:pessl.rte.rs1
I:pessl.rte.mp
I:pessl.rte.hv
I:pessl.rte.common
I:pessl.rte
I:pessl.msg.en_US
#I:pessl.msg.En_US
@@ -1,4 +1,9 @@
#!/bin/ksh
#!/usr/bin/ksh
#
# example postscript intended to reduce OS jitter
#
trap "chmod 774 /etc/rc.tcpip" INT QUIT TERM EXIT
#NB: WANT TO ADD THIS BACK IN AT SOME POINT - SYSTEM HANG DETECTION DEAMON
@@ -26,7 +31,6 @@ rmitab piobe > /dev/null 2>&1
#qdaemon:23456789:wait:/usr/bin/startsrc -sqdaemon
rmitab qdaemon > /dev/null 2>&1
#do we really need wpar support now?
rcwpars:2:once:/etc/rc.wpars > /dev/console 2>&1 # Corrals autostart
rmitab rcwpars > /dev/null 2>&1
@@ -85,15 +89,19 @@ rmitab ctrmc > /dev/null 2>&1
#dscrset:2:once:/usr/sbin/dscrctl -n -s 30 >/dev/null 2>/dev/console
#to disable sendmail daemon, need to comment the line in /etc/rc.tcpip that begins: start /usr/lib/sendmail
#As of 11/16/10 John L. re-enable sendmail as some subsystems want to use this for PERCS
#Unless someone says we need it, it's back off - 4/18/11 John L.
grep -q "^start /usr/lib/sendmail" /etc/rc.tcpip
if [[ $? -eq 0 ]] then
cat /etc/rc.tcpip | sed 's/^start \/usr\/lib\/sendmail/#start \/usr\/lib\/sendmail/' > /tmp/rc.tcpip.tmpfile.$$
cp -p /etc/rc.tcpip /etc/rc.tcpip.prev
mv /tmp/rc.tcpip.tmpfile.$$ /etc/rc.tcpip
# Leave enabled on login nodes
host `hostname` | grep -qE "l[0-9]+"
if [[ $? -ne 0 ]]
then
grep -q "^start /usr/lib/sendmail" /etc/rc.tcpip
if [[ $? -eq 0 ]] then
cat /etc/rc.tcpip | sed 's/^start \/usr\/lib\/sendmail/#start \/usr\/lib\/sendmail/' > /tmp/rc.tcpip.tmpfile.$$
cp -p /etc/rc.tcpip /etc/rc.tcpip.prev
mv /tmp/rc.tcpip.tmpfile.$$ /etc/rc.tcpip
fi
stopsrc -s sendmail > /dev/null 2>&1
fi
stopsrc -s sendmail > /dev/null 2>&1
#to disable aixmibd daemon, need to comment the line in /etc/rc.tcpip that begins: start /usr/sbin/aixmibd
@@ -123,20 +131,42 @@ if [[ $? -eq 0 ]] then
fi
stopsrc -s snmpmibd > /dev/null 2>&1
#disable the prngd daemon (the random daemon is more efficient)
stopsrc -s prngd
chmod 774 /etc/rc.tcpip
#try to clean up some cron junk - we only touch the crontab file once (and save a backup)
if [[ ! -f /var/spool/cron/crontabs/root.before.clean_jitter ]] then
cp -p /var/spool/cron/crontabs/root /var/spool/cron/crontabs/root.before.clean_jitter
grep -v "bin\/pmcfg" /var/spool/cron/crontabs/root | grep -v "bin\/stcron" | grep -v "bin\/dumpctr" | \
grep -v "ras\/dumpcheck" > /var/spool/cron/crontabs/root.after.clean_jitter
egrep -v "bin\/pmcfg|bin\/stcron|bin\/dumpctr|ras\/dumpcheck|bin\/errclear" /var/spool/cron/crontabs/root > /var/spool/cron/crontabs/root.after.clean_jitter
cp /var/spool/cron/crontabs/root.after.clean_jitter /var/spool/cron/crontabs/root
fi
for i in $(ps -efk | grep "topasrec" | grep -v killproc | grep -v grep | awk ' {print $2} ') ; do
kill $i
done
#for i in $(ps -efk | egrep "\/usr\/sbin\/cron|topasrec" | grep -v grep | awk ' { print $2} ') ; do
# kill $i
#done
#
#nohup /usr/sbin/cron > /dev/null 2>&1 &
CRON="/usr/sbin/cron"
# Find PID for cron process - check for exact pattern match on process name and it's parent PID is 1
CRON_PID=$(ps -ef | grep ${CRON} | grep -v grep | awk '{ if ($NF = "${CRON}" && $3 == "1") { print $2 }}')
if [ -n "${CRON_PID}" ]
then
echo "Killing ${CRON} (${CRON_PID}) to re-read config file(s)"
kill ${CRON_PID}
fi
# Allow time to respawn from inittab
sleep 1
# Print new cron PID
CRON_PID=$(ps -ef | grep ${CRON} | grep -v grep | awk '{ if ($NF = "${CRON}" && $3 == "1") { print $2 }}')
echo "New cron PID is ${CRON_PID}"
ls -l /etc/rc.tcpip
telinit q
@@ -150,6 +180,7 @@ if [[ $? -ne 0 ]] then
echo '* cosched1 18 100 97 10' >> /etc/poe.priority
echo '* cosched2 13 100 99.5 10' >> /etc/poe.priority
echo '* cosched3 13 100 99 3' >> /etc/poe.priority
echo '* cosched4 18 100 97 1' >> /etc/poe.priority
chmod 644 /etc/poe.priority
fi
+8
View File
@@ -0,0 +1,8 @@
#!/bin/ksh
# Cleanly reboots an AIX node
echo "Shutting and rebooting node NOW !!!"
echo "shutdown -Fr" | at now
exit 0
@@ -16,6 +16,22 @@ if [ $OS != "AIX" ]; then
if [ $NODESETSTATE == "install" ] || [ $NODESETSTATE == "boot" ]; then
# Being run from a stateful install postscript
## Workaround for xlf/vacpp and upc compiler dependceies conflict issue.
## Install a low version of xlmass manually
## Uncomment the following lines for UPC compiler use
#INSTALL_DIR='/install'
#COMPILERS_DIR='post/otherpkgs/rhels6.2/ppc64/compilers'
#mkdir -p /tmp/compilers/
#rm -f -R /tmp/compilers/*
#cd /tmp/compilers/
#wget -l inf -nH -N -r --waitretry=10 --random-wait -T 60 -nH --cut-dirs=6 --reject "index.html*" --no-parent http://$SITEMASTER$INSTALL_DIR/$COMPILERS_DIR/ 2> /tmp/wget.log
#if [ -n "`ls xlmass.lib-6.1.0*.rpm 2> /dev/null`" ] ; then
# rpm -ivh --oldpackage xlmass.lib-6.1.0*.rpm
#fi
#cd $installroot/
#rm -f -R /tmp/compilers/
if [ -n "$vacpp_script" ] ; then
echo 1 | $vacpp_script
fi
@@ -27,6 +43,13 @@ if [ $OS != "AIX" ]; then
if [ $NODESETSTATE == "genimage" ]; then
# Being called from <image>.postinstall script
# Assume we are on the same machine
## Worakround for xlf/vacpp and upc compiler dependceies conflict issue.
## Install a low version of xlmass manually
## Uncomment the following lines for UPC compiler use
#cp -p /install/post/otherpkgs/rhels6.2/ppc64/compilers/xlmass.lib-6.1.0*.rpm $installroot/tmp
#chroot $installroot rpm -ivh --oldpackage /tmp/xlmass.lib-6.1.0*.rpm
if [ -n "$vacpp_script" ] ; then
echo 1 | chroot $installroot /$vacpp_script
fi
@@ -1,5 +1,5 @@
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/gpfs/gpfs.otherpkgs.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/compilers/compilers.otherpkgs.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/pe/pe.otherpkgs.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/pe/pe-1200.rhels6.ppc64.otherpkgs.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/essl/essl.otherpkgs.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/loadl/loadl.otherpkgs.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/loadl/loadl-5103.otherpkgs.pkglist#
@@ -1,3 +1,3 @@
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/IBMhpc.rhels6.ppc64.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/pe/pe.rhels6.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/pe/pe-1200.rhels6.ppc64.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/compilers/compilers.rhels6.pkglist#
@@ -47,19 +47,20 @@ installroot=$installroot $hpc/gpfs/gpfs_mmsdrfs
# Run script to accept compiler license
installroot=$installroot NODESETSTATE=genimage $hpc/compilers/compilers_license
#installroot=$installroot NODESETSTATE=genimage $hpc/compilers/upc_license
# Run script to install PE and accept license
installroot=$installroot pedir=$otherpkgs/pe NODESETSTATE=genimage $hpc/pe/pe_install
installroot=$installroot pedir=$otherpkgs/pe NODESETSTATE=genimage $hpc/pe/pe_install-1200
# Run script to install ESSL and PESSL rpms
installroot=$installroot essldir=$otherpkgs/essl NODESETSTATE=genimage $hpc/essl/essl_install
#installroot=$installroot essldir=$otherpkgs/essl NODESETSTATE=genimage $hpc/essl/essl_install
# Run script to accept LoadLeveler license, install product rpms,
# and do some config
installroot=$installroot loadldir=$otherpkgs/loadl NODESETSTATE=genimage $hpc/loadl/loadl_install
installroot=$installroot loadldir=$otherpkgs/loadl NODESETSTATE=genimage $hpc/loadl/loadl_install-5103
# Run script to install RSCT rpms
installroot=$installroot rsctdir=$otherpkgs/rsct NODESETSTATE=genimage $hpc/rsct/rsct_install
@@ -1,2 +1,3 @@
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/gpfs/gpfs.rhels6.x86_64.otherpkgs.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/pe/pe.rhels6.x86_64.otherpkgs.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/gpfs/gpfs.x86_64.otherpkgs.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/pe/pe-1200.rhels6.x86_64.otherpkgs.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/loadl/loadl-5103.otherpkgs.pkglist#
@@ -1,2 +1,2 @@
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/IBMhpc.rhels6.x86_64.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/pe/pe.rhels6.x86_64.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/pe/pe-1200.rhels6.x86_64.pkglist#
@@ -59,7 +59,7 @@ installroot=$installroot pedir=$otherpkgs/pe NODESETSTATE=genimage $hpc/pe/pe_
# Run script to accept LoadLeveler license, install product rpms,
# and do some config
#installroot=$installroot loadldir=$otherpkgs/loadl NODESETSTATE=genimage $hpc/loadl/loadl_install
installroot=$installroot loadldir=$otherpkgs/loadl NODESETSTATE=genimage $hpc/loadl/loadl_install-5103
# Run script to install RSCT rpms. Not available on x86_64
#installroot=$installroot rsctdir=$otherpkgs/rsct NODESETSTATE=genimage $hpc/rsct/rsct_install
@@ -6,7 +6,7 @@
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/gpfs/gpfs.otherpkgs.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/pe/pe.otherpkgs.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/essl/essl.otherpkgs.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/loadl/loadl.otherpkgs.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/loadl/loadl-5103.otherpkgs.pkglist#
# For full-disk (stateful) images, EDIT below to use rsct.otherpkgs
# For diskless, rpms are installed with postinstall script
@@ -4,7 +4,7 @@
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/IBMhpc.sles11.ppc64.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/compilers/compilers.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/essl/essl.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/pe/pe.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/pe/pe-1200.sles11.ppc64.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/rsct/rsct.pkglist#
@@ -55,12 +55,12 @@ installroot=$installroot pedir=$otherpkgs/pe NODESETSTATE=genimage $hpc/pe/pe_
# Run script to install ESSL and PESSL rpms
installroot=$installroot essldir=$otherpkgs/essl NODESETSTATE=genimage $hpc/essl/essl_install
# installroot=$installroot essldir=$otherpkgs/essl NODESETSTATE=genimage $hpc/essl/essl_install
# Run script to accept LoadLeveler license, install product rpms,
# and do some config
installroot=$installroot loadldir=$otherpkgs/loadl NODESETSTATE=genimage $hpc/loadl/loadl_install
installroot=$installroot loadldir=$otherpkgs/loadl NODESETSTATE=genimage $hpc/loadl/loadl_install-5103
# Run script to install RSCT rpms
installroot=$installroot rsctdir=$otherpkgs/rsct NODESETSTATE=genimage $hpc/rsct/rsct_install
@@ -0,0 +1,3 @@
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/IBMhpc.sles11.x86_64.exlist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/gpfs/gpfs.exlist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/pe/pe.exlist#
@@ -0,0 +1,3 @@
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/gpfs/gpfs.x86_64.otherpkgs.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/pe/pe-1200.sles11.x86_64.otherpkgs.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/loadl/loadl-5103.otherpkgs.pkglist#
@@ -0,0 +1,2 @@
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/IBMhpc.sles11.x86_64.pkglist#
#INCLUDE:/opt/xcat/share/xcat/IBMhpc/pe/pe-1200.sles11.x86_64.pkglist#
@@ -0,0 +1,65 @@
#!/bin/sh
# Sample postinstall script for building a diskless SLES11 PPC64 image
# with all IBM HPC products
#
#-- this script is run after all packages from $profile.pkglist are installed
#--
#-- it gets these arguments:
#--
#-- $1 = install root (chroot directory for profile)
#-- $2 = OS version
#-- $3 = architecture
#-- $4 = profile name
#-- $5 = work dir (where genimage is located)
#--
#--
installroot=$1
osver=$2
arch=$3
profile=$4
workdir=$5
otherpkgs=/install/post/otherpkgs/$osver/$arch
################
# This script runs other postinstall scripts from the $hpc directory
# If you have created a custom copy of ANY of these scripts,
# make sure to change the execution path from $hpc/<product> to the location
# you have placed your script in
###############
hpc=/opt/xcat/share/xcat/IBMhpc
custom=/install/custom/netboot/sles
installps=/install/postscripts
# Run default postinstall shipped with xcat
/opt/xcat/share/xcat/netboot/sles/compute.sles11.postinstall $1 $2 $3 $4 $5
# Run general IBMhpc postinstall script
$hpc/IBMhpc.sles.postinstall $1 $2 $3 $4 $5
# Run script to install gpfs updates
installroot=$installroot NODESETSTATE=genimage $hpc/gpfs/gpfs_updates
# Run script to update GPFS mmsdrfs file in the image
installroot=$installroot $hpc/gpfs/gpfs_mmsdrfs
# Run script to accept compiler license. x86_64 is using gcc, comment this line.
#installroot=$installroot NODESETSTATE=genimage $hpc/compilers/compilers_license
# Run script to install PE and accept license
installroot=$installroot pedir=$otherpkgs/pe NODESETSTATE=genimage $hpc/pe/pe_install-1200
# Run script to install ESSL and PESSL rpms. Not available on x86_64.
#installroot=$installroot essldir=$otherpkgs/essl NODESETSTATE=genimage $hpc/essl/essl_install
# Run script to accept LoadLeveler license, install product rpms,
# and do some config
installroot=$installroot loadldir=$otherpkgs/loadl NODESETSTATE=genimage $hpc/loadl/loadl_install-5103
# Run script to install RSCT rpms. Not available on x86_64
#installroot=$installroot rsctdir=$otherpkgs/rsct NODESETSTATE=genimage $hpc/rsct/rsct_install
+9 -5
View File
@@ -11,14 +11,18 @@ I:essl.loc.license
# PESSL
I:pessl.rte.up
I:pessl.rte.smp
I:pessl.rte.rs1
I:pessl.rte.mp
# If you are using PESSL 4.1.0 or beyond, comment pessl.rte.hv out, it's not needed.
I:pessl.rte.hv
I:pessl.rte.common
I:pessl.rte
I:pessl.msg.en_US
# If you are using PESSL 4.1.0 or beyond, comment pessl.rte.hv out, it's not needed.
#I:pessl.rte.hv
# If you are using PESSL 4.2.0 or beyond, comment pessl.rte.smp,pessl.rte.rs1,and pessl.rte.common, they have been built into pessl.rte.up and pessl.rte.mp
#I:pessl.rte.common
#I:pessl.rte.smp
#I:pessl.rte.rs1
#I:pessl.msg.En_US
#I:pessl.man.en_US
I:pessl.loc.license
@@ -1 +1,7 @@
essl/ibm-java2-ppc64-jre
#ENV:IBM_ESSL_LICENSE_ACCEPT=yes#
essl/essl*
#ENV:IBM_PESSL_LICENSE_ACCEPT=yes#
essl/pessl*
@@ -8,62 +8,62 @@
# Assumes all prerequisite software has been installed (e.g. compilers)
OS=`uname`
INSTALL_DIR='/install'
ESSL_DIR=$essldir
if [ -z "$ESSL_DIR" ]; then
# try to default
ESSL_DIR=$INSTALL_DIR/post/otherpkgs/$OSVER/$ARCH/essl
fi
if [ $OS != "AIX" ]; then
if [ $NODESETSTATE == "install" ] || [ $NODESETSTATE == "boot" ]; then
# Being run from a stateful install postscript
# Copy rpms directly from the xCAT management node and install
mkdir -p /tmp/essl
rm -f -R /tmp/essl/*
cd /tmp/essl
download_dir=`echo $ESSL_DIR | cut -d '/' -f3-`
wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=5 ftp://$SITEMASTER/$download_dir/*.rpm 2> /tmp/wget.log
#rpm -Uvh essl.license*.rpm
IBM_ESSL_LICENSE_ACCEPT=yes rpm -Uvh essl*.rpm
#install_essl=`find /opt/ibmmath/essl -name install_essl -print`
#if [ -n "$install_essl" ] ; then
# $install_essl -y -d . -nodocs
#fi
#rpm -Uvh pessl.license*.rpm
IBM_PESSL_LICENSE_ACCEPT=yes rpm -Uvh pessl*.rpm
#install_pessl=`find /opt/ibmmath/pessl -name install_pessl -print`
#if [ -n "$install_pessl" ] ; then
# $install_pessl -y -d . -nodocs
#fi
rm -Rf /tmp/essl
fi
if [ $NODESETSTATE == "genimage" ]; then
# Being called from <image>.postinstall script
# Assume we are on the same machine
tmpdir=tmpessl
mkdir $installroot/$tmpdir
cp -p $ESSL_DIR/* $installroot/$tmpdir
#rpm --root $installroot -Uvh $installroot/$tmpdir/essl.license*.rpm
IBM_ESSL_LICENSE_ACCEPT=yes rpm --root $installroot -Uvh $installroot/$tmpdir/essl*.rpm
cd $installroot
#install_essl=`find opt/ibmmath/essl -name install_essl -print`
#if [ -n "$install_essl" ] ; then
# chroot $installroot /$install_essl -y -nodocs -d /$tmpdir
#fi
#rpm --root $installroot -Uvh $installroot/$tmpdir/pessl.license*.rpm
IBM_PESSL_LICENSE_ACCEPT=yes rpm --root $installroot -Uvh $installroot/$tmpdir/pessl*.rpm
#install_pessl=`find opt/ibmmath/pessl -name install_pessl -print`
#if [ -n "$install_pessl" ] ; then
# chroot $installroot /$install_pessl -y -nodocs -d /$tmpdir
#fi
rm -rf $installroot/$tmpdir
fi
fi
#OS=`uname`
#INSTALL_DIR='/install'
#ESSL_DIR=$essldir
#
#if [ -z "$ESSL_DIR" ]; then
# # try to default
# ESSL_DIR=$INSTALL_DIR/post/otherpkgs/$OSVER/$ARCH/essl
#fi
#
#
#
#if [ $OS != "AIX" ]; then
# if [ $NODESETSTATE == "install" ] || [ $NODESETSTATE == "boot" ]; then
# # Being run from a stateful install postscript
# # Copy rpms directly from the xCAT management node and install
# mkdir -p /tmp/essl
# rm -f -R /tmp/essl/*
# cd /tmp/essl
# download_dir=`echo $ESSL_DIR | cut -d '/' -f3-`
# wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=5 ftp://$SITEMASTER/$download_dir/*.rpm 2> /tmp/wget.log
# #rpm -Uvh essl.license*.rpm
# IBM_ESSL_LICENSE_ACCEPT=yes rpm -Uvh essl*.rpm
# #install_essl=`find /opt/ibmmath/essl -name install_essl -print`
# #if [ -n "$install_essl" ] ; then
# # $install_essl -y -d . -nodocs
# #fi
# #rpm -Uvh pessl.license*.rpm
# IBM_PESSL_LICENSE_ACCEPT=yes rpm -Uvh pessl*.rpm
# #install_pessl=`find /opt/ibmmath/pessl -name install_pessl -print`
# #if [ -n "$install_pessl" ] ; then
# # $install_pessl -y -d . -nodocs
# #fi
# rm -Rf /tmp/essl
# fi
#
# if [ $NODESETSTATE == "genimage" ]; then
# # Being called from <image>.postinstall script
# # Assume we are on the same machine
# tmpdir=tmpessl
# mkdir $installroot/$tmpdir
# cp -p $ESSL_DIR/* $installroot/$tmpdir
# #rpm --root $installroot -Uvh $installroot/$tmpdir/essl.license*.rpm
# IBM_ESSL_LICENSE_ACCEPT=yes rpm --root $installroot -Uvh $installroot/$tmpdir/essl*.rpm
# cd $installroot
# #install_essl=`find opt/ibmmath/essl -name install_essl -print`
# #if [ -n "$install_essl" ] ; then
# # chroot $installroot /$install_essl -y -nodocs -d /$tmpdir
# #fi
# #rpm --root $installroot -Uvh $installroot/$tmpdir/pessl.license*.rpm
# IBM_PESSL_LICENSE_ACCEPT=yes rpm --root $installroot -Uvh $installroot/$tmpdir/pessl*.rpm
# #install_pessl=`find opt/ibmmath/pessl -name install_pessl -print`
# #if [ -n "$install_pessl" ] ; then
# # chroot $installroot /$install_pessl -y -nodocs -d /$tmpdir
# #fi
# rm -rf $installroot/$tmpdir
# fi
#fi
#
#
@@ -2,3 +2,9 @@ gpfs/gpfs.base
gpfs/gpfs.gpl
gpfs/gpfs.gplbin*
gpfs/gpfs.msg.en_US
# List additinal package names in comments to reduce image size
# uncomment them if they are necessary for you
#gpfs/gpfs.gnr
#gpfs/gpfs.docs
@@ -0,0 +1,10 @@
gpfs/gpfs.base
gpfs/gpfs.gpl
gpfs/gpfs.gplbin*
gpfs/gpfs.msg.en_US
# List additinal package names in comments to reduce image size
# uncomment them if they are necessary for you
#gpfs/gpfs.gnr
#gpfs/gpfs.docs
@@ -2,3 +2,8 @@ gpfs/gpfs.base
gpfs/gpfs.gpl
gpfs/gpfs.gplbin*
gpfs/gpfs.msg.en_US
# List additinal package names in comments to reduce image size
# uncomment them if they are necessary for you
#gpfs/gpfs.gnr
#gpfs/gpfs.docs
@@ -0,0 +1,10 @@
gpfs/gpfs.base
gpfs/gpfs.gpl
gpfs/gpfs.gplbin*
gpfs/gpfs.msg.en_US
# List additinal package names in comments to reduce image size
# uncomment them if they are necessary for you
#gpfs/gpfs.gnr
#gpfs/gpfs.docs
+26 -27
View File
@@ -58,7 +58,7 @@ if [ $OS != "AIX" ]; then
# For SLES, assume zypper is available on the system running genimage
zypper -R $installroot ar file:$INSTALL_DIR/$UPDATES_DIR gpfs_updates
# zypper -R $installroot install gpfs.gplbin*
zypper -R $installroot update gpfs*
zypper --non-interactive -R $installroot update gpfs*
zypper -R $installroot rr gpfs_updates
else
# For Redhat, etc., assume yum is available on the system running genimage
@@ -68,27 +68,26 @@ if [ $OS != "AIX" ]; then
fi
fi
# Create an empty nsddevices script for GPFS
# This assumes that the node is NOT an NSD server
if [ $OS == "AIX" ]; then
# Create the script on the node
mkdir -p $installroot/var/mmfs/etc
echo 'return 0' > $installroot/var/mmfs/etc/nsddevices
chmod 744 $installroot/var/mmfs/etc/nsddevices
else # assume Linux
if [ $NODESETSTATE == "genimage" ]; then
# Create the script in the image
mkdir -p $installroot/var/mmfs/etc
echo 'return 0' > $installroot/var/mmfs/etc/nsddevices
chmod 744 $installroot/var/mmfs/etc/nsddevices
else
# Create the script on the node
mkdir -p /var/mmfs/etc
echo 'return 0' > /var/mmfs/etc/nsddevices
chmod 744 /var/mmfs/etc/nsddevices
fi
fi
## Create an empty nsddevices script for GPFS
## This assumes that the node is NOT an NSD server
#if [ $OS == "AIX" ]; then
# # Create the script on the node
# mkdir -p $installroot/var/mmfs/etc
# echo 'return 0' > $installroot/var/mmfs/etc/nsddevices
# chmod 744 $installroot/var/mmfs/etc/nsddevices
#else # assume Linux
# if [ $NODESETSTATE == "genimage" ]; then
# # Create the script in the image
# mkdir -p $installroot/var/mmfs/etc
# echo 'return 0' > $installroot/var/mmfs/etc/nsddevices
# chmod 744 $installroot/var/mmfs/etc/nsddevices
# else
# # Create the script on the node
# mkdir -p /var/mmfs/etc
# echo 'return 0' > /var/mmfs/etc/nsddevices
# chmod 744 /var/mmfs/etc/nsddevices
# fi
#fi
# Add GPFS path to profile
@@ -104,12 +103,12 @@ else # assume Linux
fi
if [ ! -e $gpfsprofile.sh ]; then
echo 'export PATH=$PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.sh
echo 'export PATH=$PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.csh
echo 'setenv PATH $PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.csh
# Turn off LANG support since we did not install other msg catalogs
echo 'export LC_CTYPE=POSIX' $gpfsprofile.sh
echo 'export LC_CTYPE=POSIX' $gpfsprofile.csh
echo 'export LC_ALL=POSIX' $gpfsprofile.sh
echo 'export LC_ALL=POSIX' $gpfsprofile.csh
echo 'export LC_CTYPE=POSIX' > $gpfsprofile.sh
echo 'setenv LC_CTYPE POSIX' > $gpfsprofile.csh
echo 'export LC_ALL=POSIX' > $gpfsprofile.sh
echo 'setenv LC_ALL POSIX' > $gpfsprofile.csh
chmod 744 $gpfsprofile.sh
chmod 744 $gpfsprofile.csh
fi
@@ -0,0 +1,4 @@
#ENV:IBM_LOADL_LICENSE_ACCEPT=yes#
loadl/LoadL-full-license*
#loadl/LoadL-scheduler-full*
loadl/LoadL-resmgr-full*
@@ -101,12 +101,12 @@ else # assume Linux
fi
if [ ! -e $loadlprofile.sh ]; then
echo "export PATH=\$PATH:$linux_loadl_bin" > $loadlprofile.sh
echo "export PATH=\$PATH:$linux_loadl_bin" > $loadlprofile.csh
echo "setenv PATH \$PATH:$linux_loadl_bin" > $loadlprofile.csh
# Turn off LANG support since we did not install other msg catalogs
echo 'export LC_CTYPE=POSIX' $loadlprofile.sh
echo 'export LC_CTYPE=POSIX' $loadlprofile.csh
echo 'export LC_ALL=POSIX' $loadlprofile.sh
echo 'export LC_ALL=POSIX' $loadlprofile.csh
echo 'export LC_CTYPE=POSIX' > $loadlprofile.sh
echo 'setenv LC_CTYPE POSIX' > $loadlprofile.csh
echo 'export LC_ALL=POSIX' > $loadlprofile.sh
echo 'setenv LC_ALL POSIX' > $loadlprofile.csh
chmod 744 $loadlprofile.sh
chmod 744 $loadlprofile.csh
fi
+118
View File
@@ -0,0 +1,118 @@
#!/bin/sh
#
# Sample script to accept license and install LoadLeveler resmgr package
# and perform additional customizations
# For AIX:
# add LL path to profile
# create directories for LL log, spool, etc.
# For Linux:
# Add LL bin directory to PATH in default profile (modify "linux_loadl_bin"
# if using a different LL bin location)
# Create LL log directories (modify "logdir" if not using /var/loadl)
# Change the owner of these directories (modify "loadl_admin" and
# "loadl_group" if not using loadl:loadl)
# If run from genimage, copy in /etc/LoadL.cfg from MN into image
#
OS=`uname`
####
# Linux Note: This script only installs the LoadL_resmgr_full rpm
# To also install the LoadL_scheduler rpm, remove the "-c resmgr"
# option from the line below
# Also, change the bin path below to the correct directory
####
linux_loadl_bin=/opt/ibmll/LoadL/resmgr/full/bin
####
# For AIX, the LoadLeveler lpps are listed in the loadl.bnd bundle file
# By default, it will only install the LoadL.resmgr package
# To install the full LoadLeveler product, edit that bundle file
# and change the bin path below to the correct directory
####
aix_loadl_bin=/usr/lpp/LoadL/resmgr/full/bin
logdir=/var/loadl
loadl_admin=loadl
loadl_group=loadl
if [ $OS != "AIX" ]; then
if [ $NODESETSTATE == "install" ] || [ $NODESETSTATE == "boot" ]; then
groupadd $loadl_group
useradd -g $loadl_group $loadl_admin
fi
fi
# Add LoadLeveler path to profile
if [ "$OS" == "AIX" ]; then
# add to /etc/profile
if ! grep 'LoadL' /etc/profile > /dev/null 2>&1 ; then
echo "export PATH=\$PATH:$aix_loadl_bin" >> /etc/profile
fi
# UNCOMMENT to add to /etc/inittab if not already in image
#if ! grep 'loadl' /etc/inittab ; then
# echo "loadl:2:once:/usr/lpp/LoadL/resmgr/full/bin/llrctl start > /dev/console 2>&1" >> /etc/inittab
#fi
else # assume Linux
loadlprofile=/etc/profile.d/loadl
if [ $NODESETSTATE == "genimage" ]; then
loadlprofile=$installroot$loadlprofile
fi
if [ ! -e $loadlprofile.sh ]; then
echo "export PATH=\$PATH:$linux_loadl_bin" > $loadlprofile.sh
echo "setenv PATH \$PATH:$linux_loadl_bin" > $loadlprofile.csh
# Turn off LANG support since we did not install other msg catalogs
echo 'export LC_CTYPE=POSIX' > $loadlprofile.sh
echo 'setenv LC_CTYPE POSIX' > $loadlprofile.csh
echo 'export LC_ALL=POSIX' > $loadlprofile.sh
echo 'setenv LC_ALL POSIX' > $loadlprofile.csh
chmod 744 $loadlprofile.sh
chmod 744 $loadlprofile.csh
fi
fi
# Create LoadLeveler Directories:
# For stateless nodes, these directories need to be created in the image
# since they will be in memory only, and will be lost on node reboot.
# You may choose to modify this approach and use a more
# persistent location.
# For statelite, make sure the directory is writable;
# this will also be a memory-only copy of the files unless you set
# the directory "persistent" in the statelite table.
if [ $NODESETSTATE != "genimage" ]; then
# running as a postscript in a full-disk install or AIX diskless install
installroot=""
fi
mkdir -p $installroot$logdir/execute
mkdir -p $installroot$logdir/spool
mkdir -p $installroot$logdir/log
mkdir -p $installroot$logdir/sockets
mkdir -p $installroot$logdir/core
chmod 700 $installroot$logdir/spool
chmod 1777 $installroot$logdir/execute
chmod 775 $installroot$logdir/log
chmod 777 $installroot$logdir/sockets
chmod 777 $installroot$logdir/core
# Owner set to 'loadl' userid, change if using a different userid
chown -R $loadl_admin:$loadl_group $installroot$logdir/
# UNCOMMENT to let llcompute.sh/llserver.sh to create /etc/LoadL.cfg
#if [ "$NODESETSTATE" == "genimage" ] && [ -f /etc/LoadL.cfg ] ; then
# cp /etc/LoadL.cfg $installroot/etc/LoadL.cfg
#fi
# UNCOMMENT to Start loadleveler during postscripts
#if [ $NODESETSTATE != "genimage" ]; then
# /usr/lpp/LoadL/resmgr/full/bin/llrctl start
#fi
@@ -55,7 +55,7 @@ installroot=$installroot pedir=$otherpkgs/pe NODESETSTATE=genimage $hpc/pe/pe_
# Run script to install ESSL and PESSL rpms
installroot=$installroot essldir=$otherpkgs/essl NODESETSTATE=genimage $hpc/essl/essl_install
#installroot=$installroot essldir=$otherpkgs/essl NODESETSTATE=genimage $hpc/essl/essl_install
# Run script to accept LoadLeveler license, install product rpms,
@@ -55,7 +55,7 @@ installroot=$installroot pedir=$otherpkgs/pe NODESETSTATE=genimage $hpc/pe/pe_
# Run script to install ESSL and PESSL rpms
installroot=$installroot essldir=$otherpkgs/essl NODESETSTATE=genimage $hpc/essl/essl_install
#installroot=$installroot essldir=$otherpkgs/essl NODESETSTATE=genimage $hpc/essl/essl_install
# Run script to accept LoadLeveler license, install product rpms,
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/ksh
#
# example postscript to tune ml interface for improved stability and performance
#
chdev -l mlt0 -a agg_killtime=-1 2>/dev/null # allow "agg_interval" and "agg_threshold" to default
# The effect of the above is that complete ml route entries last forever, incomplete entries time out
# in 40 seconds, and there are no keepalive probes for complete entries (to reduce OS jitter).
# The following is also recommended to improve balance across hf interfaces (assuming sequential ml
# addressing, at least within each drawer). Note that "agg_hash" must be set PRIOR to the ml interface
# being configured.
chdev -l mlt0 -a agg_hash=2 2>/dev/null
+35
View File
@@ -0,0 +1,35 @@
#! /bin/bash
# Checkpoint/Restart related environment setup
# virtualized pts support
rm -f /dev/ptmx
ln -s /dev/pts/ptmx /dev/ptmx
chmod 666 /dev/ptmx
# unlinked file support
for fs in ext3 ext4 nfs gpfs tmpfs; do
FSROOTS=$(grep " $fs " /proc/mounts | cut -d ' ' -f 2)
if [ "$FSROOTS" ]; then
for rootfs in $FSROOTS; do
if [ -w $rootfs ]; then
CKPTDIR="$rootfs/lost+found"
[ -e $CKPTDIR ] && [ ! -d $CKPTDIR ] && rm -f $CKPTDIR
if [ ! -e $CKPTDIR ]; then
mkdir -p $CKPTDIR
[ "$?" -eq "0" ] && echo "made dir $CKPTDIR"
fi
fi
done
fi
done
# Read checkpoint key from rootfs which generated by xCAT postinstall script
if [ -f /root/.ckpt.key ]; then
cat /root/.ckpt.key > /sys/kernel/checkpoint/checksum_key
else
echo 'ERROR: no checkpoint key found'
fi
@@ -12,6 +12,5 @@ I:ppe.loc.license
#I:ppedev.hpct
# MetaCluster (checkpoint/restore)
I:mcr.rte
I:mdcr
@@ -0,0 +1,9 @@
# AIX bundle package list for PE
# POE
#I:ppe.man
I:ppe.rte
I:ppe.loc.license
# PE HPC toolkit, needed on login node
#I:ppedev.hpct
@@ -1,7 +1,14 @@
pe/src
pe/ibm_openshmem_*
pe/ppe_rte_*
pe/ppe-rte-*
#ENV:IBM_PPE_RTE_LICENSE_ACCEPT=yes#
pe/ppe_rte_license*
#ENV:INUCLIENTS=1#
#ENV:INUBOSTYPE=1#
pe/pperteman*
pe/pperterh6x*
pe/ppertesamples*
# PE HPC toolkit needed on login node
#pe/ppedev_hpct_*
@@ -0,0 +1,4 @@
# The following are for systems running InfiniBand networks
# You should comment out these packages when running with HFI,
libibverbs
libibverbs-32bit
@@ -0,0 +1,19 @@
pe/src
#pe/libbsr
#ENV:IBM_PPE_RTE_LICENSE_ACCEPT=yes#
pe/ppe_rte_license*
pe/pperteman*
pe/pperterh6p*
pe/ppertesamples*
# PE HPC toolkit needed on login node
# ENV:IBM_PPEDEV_LICENSE_ACCEPT=yes#
#pe/ppedev_license*
#pe/ppedev_hpct_*
#pe/ppedev_runtime*
# Checkpoint/restart function support
#pe/user-cr
#pe/lxc
@@ -0,0 +1,4 @@
# The following are for RHEL6 systems running InfiniBand networks
# You should comment out these packages when running with HFI,
libibverbs.ppc
libibverbs.ppc64
@@ -0,0 +1,14 @@
pe/src
#ENV:IBM_PPE_RTE_LICENSE_ACCEPT=yes#
pe/ppe_rte_license*
pe/pperteman*
pe/pperterh6x*
pe/ppertesamples*
# PE HPC toolkit needed on login node
# ENV:IBM_PPEDEV_LICENSE_ACCEPT=yes#
#pe/ppedev_license*
#pe/ppedev_hpct_*
#pe/ppedev_runtime*
@@ -0,0 +1,14 @@
pe/src
#ENV:IBM_PPE_RTE_LICENSE_ACCEPT=yes#
pe/ppe_rte_license*
pe/pperteman*
pe/ppertesles11p*
pe/ppertesamples*
# PE HPC toolkit needed on login node
# ENV:IBM_PPEDEV_LICENSE_ACCEPT=yes#
#pe/ppedev_license*
#pe/ppedev_hpct_*
#pe/ppedev_runtime*
@@ -0,0 +1,4 @@
# The following are for SLES11 systems running InfiniBand networks
# You should comment out these packages when running with HFI,
libibverbs
libibverbs-32bit
@@ -0,0 +1,14 @@
pe/src
#ENV:IBM_PPE_RTE_LICENSE_ACCEPT=yes#
pe/ppe_rte_license*
pe/pperteman*
pe/ppertesles11x*
pe/ppertesamples*
# PE HPC toolkit needed on login node
# ENV:IBM_PPEDEV_LICENSE_ACCEPT=yes#
#pe/ppedev_license*
#pe/ppedev_hpct_*
#pe/ppedev_runtime*
@@ -1,4 +1,3 @@
# The following are for systems running InfiniBand networks
##############
# Temporary for xCAT 2.6:
@@ -6,5 +5,5 @@
# but you will also then need to use the xCAT 2.6 pe_install script
# that does a force install of pe. The current pe packages prereq
# these libibverbs packages.
libibverbs.ppc
libibverbs.ppc64
libibverbs
libibverbs-32bit
+3 -10
View File
@@ -1,20 +1,13 @@
# AIX bundle package list for PE
# POE
I:ppe.poe
I:ppe.pdb
I:ppe.rte
#I:ppe.man
I:ppe.loc.license
# needed on login node
#I:ppe.hpct
#I:ppedev.hpct
# LAPI
I:rsct.lapi
#I:rsct.lapi
#I:rsct.sci
# MetaCluster (checkpoint/restore)
I:mcr.rte
I:mdcr
@@ -1,2 +0,0 @@
pe/src
pe/ibm_openshmem_*
@@ -5,94 +5,32 @@
# For AIX:
# TBD
# For Linux:
# - For full-disk installs:
# - Copy rpms to node
# - Install and accept PE license rpm
# - Install PE rpms
# - For diskless images:
# - Install PE license on MN if not already installed
# - Install PE license rpm into image, but DO NOT ACCEPT
# (java accept program will hang)
# - Copy PE license files from MN into image
# - Install PE rpms
# - Create a smaller PNSD log file in /tmp
# - Configure poe.limits file
# - Generate and store checkpoint key
# - BSR support configuration
OS=`uname`
INSTALL_DIR='/install'
PE_DIR=$pedir
if [ -z "$PE_DIR" ]; then
# try to default
PE_DIR=$INSTALL_DIR/post/otherpkgs/$OSVER/$ARCH/pe
# On AIX, need to correctly configure LAPI kernel extensions on a
# diskless node boot
# (added for PE 1.2 and newer releases)
if [ "$OS" == "AIX" ]; then
if [ "$NODESETSTATE" = "netboot" -o \
"$NODESETSTATE" = "statelite" -o \
"$NODESETSTATE" = "diskless" -o \
"$NODESETSTATE" = "dataless" ]; then
# Unconfigure any existing LAPI kernel extension
if [ -x /etc/methods/ucfgzcmem ] ; then
/etc/methods/ucfgzcmem
fi
# Configure the LAPI kernel extension at the latest level
if [ -x /etc/methods/cfgzcmem ] ; then
/etc/methods/cfgzcmem
fi
fi
fi
if [ $NODESETSTATE != "genimage" ]; then
# running as a postscript in a full-disk install or AIX diskless install
installroot=""
fi
if [ $OS != "AIX" ]; then
if [ $NODESETSTATE == "install" ] || [ $NODESETSTATE == "boot" ]; then
# Being run from a stateful install postscript
# Copy rpms directly from the xCAT management node and install
mkdir -p /tmp/pe
rm -f -R /tmp/pe/*
cd /tmp/pe
# download_dir=`echo $PE_DIR | cut -d '/' -f3-`
# wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=5 http://$SITEMASTER/$PE_DIR/*.rpm 2> /tmp/wget.log
wget -l inf -N -r --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=6 --reject "index.html*" --no-parent http://$SITEMASTER$PE_DIR/ 2> /tmp/wget.log
if [ ! -f /opt/ibmhpc/pe1200/sbin/accept_ppe_license.sh ] ; then
IBM_PPE_RTE_LICENSE_ACCEPT=yes rpm -Uvh ppe_rte_license*.rpm
fi
IBM_PPE_RTE_LICENSE_ACCEPT=yes /opt/ibmhpc/pe1200/sbin/accept_ppe_license.sh
rpm -Uvh --force ppe*.rpm
cd /
rm -Rf /tmp/pe
fi
if [ $NODESETSTATE == "genimage" ]; then
# Being called from <image>.postinstall script
# Assume we are on the same machine
if [[ $OS = sles* ]] || [[ $OS = suse* ]] || [[ -f /etc/SuSE-release ]]; then
# For SLES, assume zypper is available on the system running genimage
if [ ! -d /opt/ibmhpc/pe1200/lap/license ] ; then
# Install and accept PE license on the MN
IBM_PPE_RTE_LICENSE_ACCEPT=yes zypper install $PE_DIR/ppe_rte_license*.rpm
fi
# Install PE license rpm into image, BUT DO NOT ACCEPT
# The java process fails when you try to run in chroot
IBM_PPE_RTE_LICENSE_ACCEPT=no zypper -R $installroot install $PE_DIR/ppe_rte_license*.rpm
# Copy license files from MN into the image
mkdir -p $installroot/opt/ibmhpc/pe1200/lap/license/
cp -pR /opt/ibmhpc/pe1200/lap/license/* $installroot/opt/ibmhpc/pe1200/lap/license
# Install PE product rpms
INUCLIENTS=1 INUBOSTYPE=1 zypper -R $installroot install $PE_DIR/pperte*
else
# For Redhat, etc., assume yum is available on the system running genimage
if [ ! -d /opt/ibmhpc/pe1200/lap/license ] ; then
# Install and accept PE license on the MN
IBM_PPE_RTE_LICENSE_ACCEPT=yes yum -y --nogpgcheck localupdate $PE_DIR/ppe_rte_license*.rpm
#IBM_PE_LICENSE_PROMPT=N yum --nogpgcheck install $PE_DIR/ppe_rte_license*.rpm
fi
# Install PE license rpm into image, BUT DO NOT ACCEPT
# The java process fails when you try to run in chroot
IBM_PPE_RTE_LICENSE_ACCEPT=no yum -y --installroot $installroot --nogpgcheck install $PE_DIR/ppe_rte_license*.rpm
# Copy license files from MN into the image
mkdir -p $installroot/opt/ibmhpc/pe1200/lap/license/
cp -pR /opt/ibmhpc/pe1200/lap/license/* $installroot/opt/ibmhpc/pe1200/lap/license/
#chroot $installroot /opt/ibmhpc/install/sbin/accept_ppe_license.sh
# Install PE product rpms
INUCLIENTS=1 INUBOSTYPE=1 yum -y --installroot $installroot --nogpgcheck install $PE_DIR/ppe_rte* $PE_DIR/pperte*
fi
fi
fi
# Configure the PNSD.cfg to use a smaller log so it doesn't use so much memory
# for a stateless image. Normally, pnsd creates this file if it does not
# exist, but it will not fill it in if it does exist.
@@ -152,3 +90,54 @@ if [ "$OS" == "AIX" ]; then
fi
mount /proc
fi
# Generate mpi modules
if [ "$OS" != "AIX" ]; then
gen_xlf=`grep PE_LATEST_LEVEL $installroot/etc/ppe.cfg | cut -f2 -d ' ' `/mpich2/sbin/xlf_gen_mpimod
if [ -x $installroot/$gen_xlf ] ; then
if [ $NODESETSTATE == "install" ] || [ $NODESETSTATE == "boot" ]; then
$gen_xlf
else
chroot $installroot $gen_xlf
fi
fi
fi
#Generate checkpoint key and store it into the image, ckpt script could ust it after boot.
if [ "$OS" != "AIX" ]; then
#KEY=$(date | sha1sum | awk '{ print $1 }')
KEY=$(dd if=/dev/random count=1 2>/dev/null | sha1sum | awk '{print $1}')
echo $KEY > $installroot/root/.ckpt.key
chmod 400 $installroot/root/.ckpt.key
fi
# Ensure that the /etc/security/privcmds file has a complte set of entries.
if [ "$OS" == "AIX" ]; then
/usr/sbin/trustchk -ry ALL >/dev/null 2>&1
fi
# BSR configuration, uncomment the following lines to enable BSR configuration on Power Linux cluter.
#if [ "$OS" != "AIX" ]; then
# if [ $NODESETSTATE == "install" ] || [ $NODESETSTATE == "boot" ]; then
# groupadd bsr
# mkdir -p /var/lib/bsr
# chown root:bsr /var/lib/bsr
# chmod g+sw /var/lib/bsr
# else
# chroot $installroot groupadd bsr
# chroot $installroot mkdir -p /var/lib/bsr
# chroot $installroot chown root:bsr /var/lib/bsr
# chroot $installroot chmod g+sw /var/lib/bsr
# fi
#fi
# pelinks script support, uncomment the following lines and change to the correct pe version that you intend to use.
#PE_VERSION=1202
#if [ "$OS" != "AIX" ]; then
# if [ $NODESETSTATE == "install" ] || [ $NODESETSTATE == "boot" ]; then
# MP_CONFIG=$PE_VERSION /opt/ibmhpc/pe$PE_VERSION/ppe.poe/bin/pelinks
# else
# export MP_CONFIG=$PE_VERSION;chroot $installroot /opt/ibmhpc/pe$PE_VERSION/ppe.poe/bin/pelinks
# fi
#fi
@@ -0,0 +1,44 @@
Run as root on the EMS.
This test uses xdsh and uses "lpar" for the node group. Use a different node group if desired.
Note xdsh can leave behind processes if you do a <CNTRL-C> in the middle of a command.
To gaurd against results which are messed up by old copies of the ping test, kill
any leftover ping processes.
1) Create the ping_address_file. This is only required if changes have been made since the last
run; e.g., octants deconfigured, ARP entries changed, etc.
"./create_ping_address_file [interface]"
If the "interface" argument is not provided, it defaults to "ml0" as the interface to test.
Remove any nodes you don't want to run the ping test.
2) Copy "ping_address_file" to /tmp on each node:
xdcp lpar -v ping_address_file /tmp
3) Copy "ping_all" to /tmp on each node:
xdcp lpar -v ping_all /tmp
4) Remove any output files from previous runs:
xdsh lpar -v "rm /tmp/ping.all.out 2>/dev/null"
5) Run the ping test:
"./start_ping_all"
Each node in the test will write any ping failures to "/tmp/ping.all.out" (local /tmp on each node).
(No "ping.all.out" file indicates no ping failures.)
6) To determine if we have ping failures:
xdsh lpar -v "ls -l /tmp/ping.all.out 2>/dev/null" | sort -n +5
If a given set of "ping.all.out" files are the same length, it's likely they will have
duplicate ping failures.
@@ -0,0 +1,10 @@
#!/bin/ksh
if [[ -n $1 ]] then
interface=$1
else
interface=ml0
fi
xdsh lpar -v "/usr/sbin/ifconfig $interface | grep inet | cut -d':' -f2 | cut -d' ' -f2 | head -2 " | sort -n | tee ping_address_file
@@ -0,0 +1,4 @@
c250f08c01ap01: 30.8.1.1
c250f08c01ap05: 30.8.1.5
c250f08c01ap09: 30.8.1.9
c250f08c01ap13: 30.8.1.13
+88
View File
@@ -0,0 +1,88 @@
#!/bin/ksh
function do_pings {
#set -x
integer dest_array_index=0
integer total_ping_count=0
integer ping_loop_count=0
integer tmp_fail_int=0
integer total_fails=0
dest_array_index=0
ping_loop_count=ping_loop_count+1
cat $file | grep -v "^#" |
while read input_file_line ; do
switch_dest=$( print $input_file_line | awk ' { print $2 } ' )
netstat -in | grep -q "$switch_dest "
if [[ $? -ne 0 ]] then
dest_hostname=$( print $input_file_line | awk ' { print $1 } ' )
dest_array_index=dest_array_index+1
total_ping_count=total_ping_count+1
#ping -c 2 $switch_dest | grep "100% packet loss"
#echo `hostname` pinging $switch_dest
ping -f -c 10 $switch_dest | grep -q "100% packet loss"
if [[ $? -eq 0 ]] then
total_fails=total_fails+1
#hack for now to try to clear bad ml0 routes
#echo "`hostname -s`:removing $switch_dest from ml route table to attempt route refresh"
/usr/sbin/mltdd_dump -d $switch_dest
#remove following comment to print data back to (typically NFS mounted) common dir
##### To remove write output to NFS output, you can comment the following line
#ping -f -c 10 $switch_dest | grep "100% packet loss"
ping -f -c 10 $switch_dest | grep "100% packet loss" >> /tmp/ping.all.out
dest_failures[$dest_array_index]=${dest_failures[dest_array_index]}+1
tmp_fail_int=${dest_failures[dest_array_index]}
total_fail_rate=$(print "$total_fails/$total_ping_count*100" | bc -l | awk ' { printf(" %4.2f\n", $0 ) } ' )
dest_fail_rate=$(print "$tmp_fail_int/$ping_loop_count*100" | bc -l | awk ' { printf(" %4.2f\n", $0 ) } ')
##### To remove write output to NFS output, you can comment the following line
#print "failure to $dest_hostname $switch_dest total: $total_fail_rate cur: $dest_array_index $dest_fail_rate num_pings: $ping_loop_count"
print "failure to $dest_hostname $switch_dest total: $total_fail_rate cur: $dest_array_index $dest_fail_rate num_pings: $ping_loop_count" >> /tmp/ping.all.out
fi
fi
done
}
#main
unset found_flag
rm /tmp/ping.all.out 2>/dev/null
if [[ -z $1 ]] then
file=ping_address_file
else
file=$1
fi
ifconfig -a | grep 'inet ' | awk ' { print $2 } ' | grep -v 127.0.0.1 |
while read my_address ; do
##print "checking $my_address"
grep -q " ${my_address}$" $file
if [[ $? -eq 0 ]] then
##print "Found my address: $my_address"
integer starting_line=$(grep -n " $my_address$" $file | awk -F ":" ' { print $1 } ' )
integer starting_line_minus_1=$starting_line-1
tail +${starting_line} $file > /tmp/current_ping_address_file
head -${starting_line_minus_1} $file >> /tmp/current_ping_address_file
file=/tmp/current_ping_address_file
do_pings
found_flag=1
break
fi
done
if [[ -z $found_flag ]] then
print "Unable to find my entry in the $file for host: $(hostname -s)"
exit 1
fi
rm /tmp/current_ping_address_file 2>/dev/null
exit 0
+4
View File
@@ -0,0 +1,4 @@
#!/bin/ksh
xdsh lpar -v "cd /tmp; ./ping_all ./ping_address_file"
+17 -1
View File
@@ -23,7 +23,7 @@ BuildArch: noarch
#Requires:
%endif
Requires: perl-xCAT >= %{epoch}:%(cat Version|cut -d. -f 1,2)
Requires: perl-xCAT >= %{epoch}:%(cat Version)
Requires: xCAT-client >= %{epoch}:%(cat Version|cut -d. -f 1,2)
Provides: xCAT-IBMhpc = %{epoch}:%{version}
@@ -45,6 +45,10 @@ mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/IBMhpc/rsct
%ifos linux
cp -a share/xcat/IBMhpc/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/IBMhpc/
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/IBMhpc/ping-all/
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/IBMhpc/ml-tuning
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/IBMhpc/aix-clean-jitter
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/IBMhpc/aix-reboot
chmod -R 755 $RPM_BUILD_ROOT/%{prefix}/share/xcat/IBMhpc/*
%else
cp -hpR share/xcat/IBMhpc/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/IBMhpc/
@@ -66,6 +70,18 @@ rm -rf $RPM_BUILD_ROOT
%changelog
%pre
# only need to check on AIX
%ifnos linux
if [ -x /usr/sbin/emgr ]; then # Check for emgr cmd
/usr/sbin/emgr -l 2>&1 | grep -i xCAT # Test for any xcat ifixes - msg and exit if found
if [ $? = 0 ]; then
echo "Error: One or more xCAT emgr ifixes are installed. You must use the /usr/sbin/emgr command to uninstall each xCAT emgr ifix prior to RPM installation."
exit 2
fi
fi
%endif
%post
%preun

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