wmic csproduct is actually supposed to return the correct ordering, just

some vendors disagreed with MS on encoding.  SMBIOS 2.6 mandates the MS way
In startnet.cmd, assume wmic is accurate instead of 'fixing it'.  This means
DUID changes, but I don't think anyone cares and this paves the way for a
reasonable DUID future.

For autoinst cmd script, it is a problem.  Have windows.pm provide two UUID
based links, one with the correct presentation and a byte-swapped variant

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@11750 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
jbjohnso 2012-03-05 18:33:28 +00:00
parent d6d8739cdf
commit 2d42ffe517
2 changed files with 9 additions and 4 deletions

View File

@ -132,7 +132,13 @@ sub mkwinlinks {
foreach (getips($node)) {
link "$installroot/autoinst/$node.cmd","$installroot/autoinst/$_.cmd";
}
if ($uuid) { link "$installroot/autoinst/$node.cmd","$installroot/autoinst/$uuid.cmd"; }
if ($uuid) {
link "$installroot/autoinst/$node.cmd","$installroot/autoinst/$uuid.cmd";
#sadly, UUID endiannes is contentious to this day, tolerate a likely mangling
#of the UUID
$uuid =~ s/^(..)(..)(..)(..)-(..)(..)-(..)(..)-/$4$3$2$1-$6$5-$8$7/;
link "$installroot/autoinst/$node.cmd","$installroot/autoinst/$uuid.cmd";
}
}
sub winshell {

View File

@ -2,11 +2,10 @@
start /min cmd
echo Initializing, please wait.
FOR /F "tokens=*" %%A IN ('wmic csproduct get uuid /Format:list ^| FIND "="') DO SET %%A
set guid=%uuid:~6,2%%uuid:~4,2%%uuid:~2,2%%uuid:~0,2%-%uuid:~11,2%%uuid:~9,2%-%uuid:~16,2%%uuid:~14,2%%uuid:~18,18%
echo REGEDIT4 >> duiduuid.reg
echo. >> duiduuid.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters] >> duiduuid.reg
echo "Dhcpv6DUID"=hex:00,04,%guid:~0,2%,%guid:~2,2%,%guid:~4,2%,%guid:~6,2%,%guid:~9,2%,%guid:~11,2%,%guid:~14,2%,%guid:~16,2%,%guid:~19,2%,%guid:~21,2%,%guid:~24,2%,%guid:~26,2%,%guid:~28,2%,%guid:~30,2%,%guid:~32,2%,%guid:~34,2% >> duiduuid.reg
echo "Dhcpv6DUID"=hex:00,04,%uuid:~0,2%,%uuid:~2,2%,%uuid:~4,2%,%uuid:~6,2%,%uuid:~9,2%,%uuid:~11,2%,%uuid:~14,2%,%uuid:~16,2%,%uuid:~19,2%,%uuid:~21,2%,%uuid:~24,2%,%uuid:~26,2%,%uuid:~28,2%,%uuid:~30,2%,%uuid:~32,2%,%uuid:~34,2% >> duiduuid.reg
echo. >> duiduuid.reg
regedit /s duiduuid.reg
wpeinit
@ -22,7 +21,7 @@ echo Successfully mounted \\%XCATD%\install, moving on to execute remote script
for /f "delims=: tokens=2" %%c in ('ipconfig ^|find "IPv4 Address. . ."') do set NODEIP=%%c
for /f %%c in ('echo %NODEIP%') do set NODEIP=%%c
if exist i:\autoinst\%NODEIP%.cmd copy i:\autoinst\%NODEIP%.cmd x:\xcat\autoscript.cmd
if exist i:\autoinst\%guid%.cmd copy i:\autoinst\%guid%.cmd x:\xcat\autoscript.cmd
if exist i:\autoinst\%uuid%.cmd copy i:\autoinst\%uuid%.cmd x:\xcat\autoscript.cmd
if not exist x:\xcat\autoscript.cmd echo I could not find my autoinst file
if not exist x:\xcat\autoscript.cmd pause
call x:\xcat\autoscript.cmd