@ECHO OFF

Setlocal EnableDelayedExpansion

ECHO Installing HPE Insight Control server migration... 
echo This might take some time please wait...
if not exist "%SystemDrive%\HPIC\logs\LimitedRelease1" mkdir "%SystemDrive%\HPIC\logs\LimitedRelease1"
:set
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a%%b)
set mytime=%mytime: =0%
set OUTPUT=%SystemDrive%\HPIC\logs\LimitedRelease1\ICmigr_output.txt
set LOGFILE=%SystemDrive%\HPIC\logs\LimitedRelease1\ICmigr_%mydate%_%mytime%.log

ECHO [%date% %time%]Installing HPE Insight Control server migration... >>%LOGFILE% 
echo [%date% %time%]This might take some time please wait...           >>%LOGFILE%
echo [%date% %time%]Log file path:%LOGFILE%                             >>%LOGFILE% 
:: Reading SMP installation path
FOR /F "skip=2 tokens=2*" %%A IN ('REG QUERY "HKLM\Software\Wow6432Node\HP\HP Server Migration Pack" /v ExtensionBase') DO set SMPInstallPath=%%B
echo [%date% %time%]%SMPInstallPath%                   >>%LOGFILE%

:: Reading HPSIM installation path
FOR /F "skip=2 tokens=2*" %%A IN ('REG QUERY "HKLM\Software\Hewlett-Packard\Systems Insight Manager\Settings" /v InstallPath') DO set SIMInstallPath=%%B
echo [%date% %time%]HPESIM installation path: %SIMInstallPath%    >>%LOGFILE%
  
:: Creating Backup Folder
echo [%date% %time%]Creating Backup Folder: >>%LOGFILE% 
set ICMigr=Insight Control server migration
rem set BackupInstallPath=%SMPInstallPath%
for /D %%D in ("%SMPInstallPath%") do (
	set BackupInstallPath=%%~dpD
)
if not exist "%BackupInstallPath%LimitedRelease1\%ICmigr%" mkdir "%BackupInstallPath%LimitedRelease1\%ICmigr%" 
set BackupFolder=%BackupInstallPath%LimitedRelease1\%ICmigr%
echo [%date% %time%]Backup Folder Path: %BackupFolder%  >>%LOGFILE% 
mkdir "%BackupFolder%\VBootCD"   >>%LOGFILE% 2>>&1 
mkdir "%BackupFolder%\PBootCD"   >>%LOGFILE%  2>>&1 
mkdir "%BackupFolder%\en"        >>%LOGFILE%  2>>&1 
mkdir "%BackupFolder%\ja"        >>%LOGFILE%  2>>&1 
mkdir "%BackupFolder%\zh"        >>%LOGFILE%  2>>&1 
:PATCH
echo [%date% %time%]Applying Patch.  >>%LOGFILE% 

echo [%date% %time%]Copying  smp.jar\smpui.jar and other files        to "%SMPInstallPath%\lib"  >>%LOGFILE% 
:smp.jar
echo [%date% %time%]Copying  smp.jar                        to "%SMPInstallPath%\lib"  >>%LOGFILE% 
copy /Y "%SMPInstallPath%\lib\smp.jar "                        "%BackupFolder%"        1>nul
copy /Y  %~dp0\File\smp.jar                                    "%SMPInstallPath%\lib"  1>nul
if errorlevel 1 goto rollback 

:smpui.jar
echo [%date% %time%]Copying  smpui.jar                     to "%SMPInstallPath%\lib"  >>%LOGFILE% 
copy /Y "%SMPInstallPath%\lib\smpui.jar "                     "%BackupFolder%"        1>nul
copy /Y %~dp0\File\smpui.jar                                  "%SMPInstallPath%\lib"  1>nul
if errorlevel 1 goto rollback 

echo [%date% %time%]Copying  smpui.jar                     to  "%SMPInstallPath%\lib\smpui"  >>%LOGFILE% 
copy /Y "%SMPInstallPath%\lib\smpui\smpui.jar "                "%BackupFolder%"              1>nul
copy /Y %~dp0\File\smpui.jar                                   "%SMPInstallPath%\lib\smpui"  1>nul
if errorlevel 1 goto rollback 

:cp009582.exe	
echo [%date% %time%]Copying  cp009582.exe	               to   "%SMPInstallPath%\Agents\SMP"   >>%LOGFILE% 
copy /Y "%SMPInstallPath%\Agents\SMP\cp009582.exe "             "%BackupFolder%"  1>nul
copy /Y %~dp0\File\cp009582.exe	                                "%SMPInstallPath%\Agents\SMP"  1>nul
if errorlevel 1 goto rollback 


:hpsmpagent.tar.gz
echo [%date% %time%]Copying  hpsmpagent.tar.gz               to "%SMPInstallPath%\Agents\SMP"  >>%LOGFILE% 
copy /Y "%SMPInstallPath%\Agents\SMP\hpsmpagent.tar.gz "        "%BackupFolder%"  1>nul

copy /Y %~dp0\File\hpsmpagent.tar.gz                            "%SMPInstallPath%\Agents\SMP"  1>nul

if errorlevel 1 goto rollback 

:product.version 
echo [%date% %time%]Copying  product.version                  to "%SMPInstallPath%\bin"   >>%LOGFILE% 
copy /Y "%SMPInstallPath%\bin\product.version "                  "%BackupFolder%"  1>nul

copy /Y %~dp0\File\product.version                               "%SMPInstallPath%\VBootCD\compaq\smpagent\bin"  1>nul
copy /Y %~dp0\File\product.version                               "%SMPInstallPath%\PBootCD\compaq\smpagent\bin"  1>nul
copy /Y %~dp0\File\product.version                               "%SMPInstallPath%\bin" 1>nul
if errorlevel 1 goto rollback 

:supportList.xml
echo [%date% %time%]Copying  supposrtList.xml                   to "%SMPInstallPath%\bin"   >>%LOGFILE% 
copy /Y "%SMPInstallPath%\bin\supportList.xml "                   "%BackupFolder%"  1>nul

copy /Y %~dp0\File\supportList.xml                                "%SMPInstallPath%\bin"  1>nul
copy /Y %~dp0\File\supportList.xml                                "%SMPInstallPath%\VBootCD\smpiso\html"    1>nul
copy /Y %~dp0\File\supportList.xml                                "%SMPInstallPath%\PBootCD\smpiso\html"    1>nul

if errorlevel 1 goto rollback 

:smpapi.jar
echo [%date% %time%]Copying  smpapi.jar                       to "%SMPInstallPath%\clientapi\lib\smp"   >>%LOGFILE% 
copy /Y "%SMPInstallPath%\clientapi\lib\smp\smpapi.jar "         "%BackupFolder%"  1>nul

copy /Y %~dp0\File\smpapi.jar                                    "%SMPInstallPath%\clientapi\lib\smp"  1>nul

if errorlevel 1 goto rollback 
:: robocopy' is an inbuilt command in windows	
:: /E and /S : copy subdirectories, including Empty ones

:hpdstsmpagent.tgz
echo [%date% %time%]Copying  hpdstsmpagent.tgz                to "%SMPInstallPath%\webserver\webapps\smpui"   >>%LOGFILE% 
copy /Y "%SMPInstallPath%\webserver\webapps\smpui\hpdstsmpagent.tgz "        "%BackupFolder%"                 1>nul
copy /Y %~dp0\File\hpdstsmpagent.tgz	                         "%SMPInstallPath%\webserver\webapps\smpui"   1>nul
if errorlevel 1 goto rollback 

:SMPHeader_jsp.class 
echo [%date% %time%]Copying  SMPHeader_jsp.class              to "%SMPInstallPath%\webserver\webapps\smpui\WEB-INF\classes"   >>%LOGFILE% 
copy /Y "%SMPInstallPath%\webserver\webapps\smpui\WEB-INF\classes\SMPHeader_jsp.class "            "%BackupFolder%"          1>nul
copy /Y %~dp0\File\SMPHeader_jsp.class	                         "%SMPInstallPath%\webserver\webapps\smpui\WEB-INF\classes"  1>nul
if errorlevel 1 goto rollback 

:SMPLogs_jsp.class 
echo [%date% %time%]Copying  SMPLogs_jsp.class                to  "%SMPInstallPath%\webserver\webapps\smpui\WEB-INF\classes"  >>%LOGFILE% 
copy /Y "%SMPInstallPath%\webserver\webapps\smpui\WEB-INF\classes\SMPLogs_jsp.class  "            "%BackupFolder%"            1>nul
copy /Y %~dp0\File\SMPHeader_jsp.class	                          "%SMPInstallPath%\webserver\webapps\smpui\WEB-INF\classes"  1>nul
if errorlevel 1 goto rollback 

:SMPRunningJobs_jsp.class 
echo [%date% %time%]Copying  SMPRunningJobs_jsp.class        to "%SMPInstallPath%\webserver\webapps\smpui\WEB-INF\classes"   >>%LOGFILE% 
copy /Y "%SMPInstallPath%\webserver\webapps\smpui\WEB-INF\classes\SMPRunningJobs_jsp.class "            "%BackupFolder%"     1>nul
copy /Y %~dp0\File\SMPRunningJobs_jsp.class	                    "%SMPInstallPath%\webserver\webapps\smpui\WEB-INF\classes"   1>nul
if errorlevel 1 goto rollback 


:messages.properties
echo [%date% %time%]Copying  messages.properties            to "%SMPInstallPath%\jrewindows\lib\deploy"   >>%LOGFILE% 
copy /Y "%SMPInstallPath%\jrewindows\lib\deploy\messages.properties "   "%BackupFolder%"                  1>nul
copy /Y %~dp0\File\messages.properties                         "%SMPInstallPath%\jrewindows\lib\deploy"   1>nul
if errorlevel 1 goto rollback 

:migrationtools.xml
echo [%date% %time%]Copying  migrationtools.xml             to "%SMPInstallPath%\ToolsMenu"     >>%LOGFILE% 
copy /Y "%SMPInstallPath%\ToolsMenu\migrationtools.xml "       "%BackupFolder%"                 1>nul
copy /Y %~dp0\File\migrationtools.xml	                       "%SMPInstallPath%\ToolsMenu"     1>nul
if errorlevel 1 goto rollback 

:migrationtools.xml
echo [%date% %time%]Copying  migrationtools.xml             to "%SIMInstallPath%\config\preload-plugins\76\smp\addfiles"      >>%LOGFILE% 
copy /Y %~dp0\File\migrationtools.xml	                       "%SIMInstallPath%\config\preload-plugins\76\smp\addfiles"      1>nul

:messages.properties
echo [%date% %time%]Copying  messages.properties           to "%SMPInstallPath%\VBootCD\compaq\smpagent\jrelinux\lib\deploy"  >>%LOGFILE% 
copy /Y "%SMPInstallPath%\VBootCD\compaq\smpagent\jrelinux\lib\deploy\messages.properties "           "%BackupFolder%"        1>nul
copy /Y %~dp0\File\messages.properties	                      "%SMPInstallPath%\VBootCD\compaq\smpagent\jrelinux\lib\deploy"  1>nul
if errorlevel 1 goto rollback 

:smp.jar
echo [%date% %time%]Copying  smp.jar	                   to "%SMPInstallPath%\VBootCD\compaq\smpagent\lib"	 >>%LOGFILE% 
copy /Y "%SMPInstallPath%\VBootCD\compaq\smpagent\lib\smp.jar "   "%BackupFolder%"     1>nul
copy /Y %~dp0\File\smp.jar	                                  "%SMPInstallPath%\VBootCD\compaq\smpagent\lib"  1>nul
if errorlevel 1 goto rollback  

:profiles.tzp
echo [%date% %time%]Copying  profiles.tzp	               to "%SMPInstallPath%\bin"	  >>%LOGFILE% 
copy /Y "%SMPInstallPath%\bin\profiles.tzp"                   "%BackupFolder%"        1>nul
copy /Y %~dp0\File\profiles.tzp	                              "%SMPInstallPath%\bin"  1>nul
if errorlevel 1 goto rollback  
 
:_header.htm and splash.htm
echo [%date% %time%]Copying  _header.htm                   to "%SMPInstallPath%\VBootCD\smpiso\html"     >>%LOGFILE% 
copy /Y "%SMPInstallPath%\VBootCD\smpiso\html\_header.htm"    "%BackupFolder%\VBootCD" 1>nul

echo [%date% %time%]Copying  _header.htm                   to "%SMPInstallPath%\PBootCD\smpiso\html"     >>%LOGFILE% 
copy /Y "%SMPInstallPath%\PBootCD\smpiso\html\_header.htm"    "%BackupFolder%\PBootCD"  1>nul

echo [%date% %time%]Copying  splash.htm                    to "%SMPInstallPath%\VBootCD\smpiso\html"    >>%LOGFILE% 
copy /Y "%SMPInstallPath%\VBootCD\smpiso\html\splash.htm"      "%BackupFolder%\VBootCD" 1>nul
echo [%date% %time%]Copying  splash.htm                    to "%SMPInstallPath%\PBootCD\smpiso\html"    >>%LOGFILE% 
copy /Y "%SMPInstallPath%\PBootCD\smpiso\html\splash.htm"     "%BackupFolder%\PBootCD"  1>nul

copy /Y %~dp0\File\VBootCD\_header.htm	                      "%SMPInstallPath%\VBootCD\smpiso\html"  1>nul
copy /Y %~dp0\File\PBootCD\_header.htm                        "%SMPInstallPath%\PBootCD\smpiso\html"  1>nul
copy /Y %~dp0\File\PBootCD\splash.htm	                      "%SMPInstallPath%\PBootCD\smpiso\html"  1>nul
copy /Y %~dp0\File\VBootCD\splash.htm	                      "%SMPInstallPath%\VBootCD\smpiso\html"  1>nul
if errorlevel 1 goto rollback  
 
:isolinux.cfg
echo [%date% %time%]Copying  isolinux.cfg                  to "%SMPInstallPath%\PBootCD\system"     >>%LOGFILE% 
copy /Y "%SMPInstallPath%\PBootCD\system\isolinux.cfg"        "%BackupFolder%\PBootCD"                1>nul
copy /Y %~dp0\File\PBootCD\isolinux.cfg                       "%SMPInstallPath%\PBootCD\system"       1>nul
if errorlevel 1 goto rollback 

:isolinux.cfg
echo [%date% %time%]Copying  isolinux.cfg                  to "%SMPInstallPath%\PBootCD\system"    >>%LOGFILE% 
copy /Y "%SMPInstallPath%\VBootCD\system\isolinux.cfg"       "%BackupFolder%\VBootCD"  1>nul
copy /Y %~dp0\File\VBootCD\isolinux.cfg                      "%SMPInstallPath%\VBootCD\system"        1>nul
if errorlevel 1 goto rollback 

:smp.jar
echo [%date% %time%]Copying  smp.jar                      to "%SMPInstallPath%\PBootCD\compaq\smpagent\lib"      >>%LOGFILE% 
copy /Y "%SMPInstallPath%\PBootCD\compaq\smpagent\lib\smp.jar"  "%BackupFolder%"  1>nul

copy /Y %~dp0\File\smp.jar	                                 "%SMPInstallPath%\PBootCD\compaq\smpagent\lib"    1>nul

echo [%date% %time%]New files coping                      to "%SMPInstallPath%\LinuxDUDs"    >>%LOGFILE% 
robocopy  %~dp0\File\LinuxDUDs\                                               "%SMPInstallPath%\LinuxDUDs"     1>NUL  /s /e

:4.4.21-69.xml 
echo [%date% %time%]Copying  4.4.21-69.xml                to "%SMPInstallPath%\DUDProfile\suse\4.4.21-69.xml"       >>%LOGFILE% 
copy /Y %~dp0\File\4.4.21-69.xml                  			 "%SMPInstallPath%\DUDProfile\suse\4.4.21-69.xml"  1>nul

echo [%date% %time%]Copying  4.4.21-69.xml                to "%SMPInstallPath%\VBootCD\compaq\utils\drivers\suse"   >>%LOGFILE% 
copy /Y %~dp0\File\PBootCD\4.4.21-69.xml                     "%SMPInstallPath%\VBootCD\compaq\utils\drivers\suse"  1>nul

echo [%date% %time%]Copying  4.4.21-69.xml                to "%SMPInstallPath%\PBootCD\compaq\utils\drivers\suse"    >>%LOGFILE% 
copy /Y %~dp0\File\PBootCD\4.4.21-69.xml                     "%SMPInstallPath%\PBootCD\compaq\utils\drivers\suse"  1>nul

:3.10.0-514.e17.x86_64.xml
echo [%date% %time%]Copying 3.10.0-514.el7.x86_64.xml     to "%SMPInstallPath%\PBootCD\compaq\utils\drivers\rhel"    >>%LOGFILE% 
copy /Y %~dp0\File\PBootCD\3.10.0-514.el7.x86_64.xml	     "%SMPInstallPath%\PBootCD\compaq\utils\drivers\rhel"  1>nul

echo [%date% %time%]Copying  3.10.0-514.el7.x86_64.xml    to "%SMPInstallPath%\VBootCD\compaq\utils\drivers\rhel"    >>%LOGFILE% 
copy /Y %~dp0\File\PBootCD\3.10.0-514.el7.x86_64.xml	     "%SMPInstallPath%\VBootCD\compaq\utils\drivers\rhel"  1>nul

echo [%date% %time%]Copying  3.10.0-514.e17.x86_64.xml    to "%SMPInstallPath%\DUDProfile\rhel"                     >>%LOGFILE% 
copy /Y %~dp0\File\3.10.0-514.el7.x86_64.xml                 "%SMPInstallPath%\DUDProfile\rhel"                    1>nul

:2.6.32-696.el6.x86_64.xml
echo [%date% %time%]Copying  2.6.32-696.el6.x86_64.xml    to "%SMPInstallPath%\PBootCD\compaq\utils\drivers\rhel"   >>%LOGFILE% 
copy /Y %~dp0\File\PBootCD\2.6.32-696.el6.x86_64.xml         "%SMPInstallPath%\PBootCD\compaq\utils\drivers\rhel"   1>nul

echo [%date% %time%]Copying  2.6.32-696.el6.x86_64.xml    to "%SMPInstallPath%\VBootCD\compaq\utils\drivers\rhel"   >>%LOGFILE% 
copy /Y %~dp0\File\PBootCD\2.6.32-696.el6.x86_64.xml	     "%SMPInstallPath%\VBootCD\compaq\utils\drivers\rhel"   1>nul

echo [%date% %time%]Copying  2.6.32-696.el6.x86_64.xml    to "%SMPInstallPath%\DUDProfile\rhel"                     >>%LOGFILE% 
copy /Y %~dp0\File\2.6.32-696.el6.x86_64.xml                 "%SMPInstallPath%\DUDProfile\rhel"                     1>nul

:smpbootcd-p-7.6.0.iso	
copy /Y "%SMPInstallPath%\Agents\SMP\smpbootcd-p-7.6.0.iso"              "%BackupFolder%\smpbootcd-p-7.6.0.iso"     1>nul
:smpbootcd-v-7.6.0.iso
copy /Y "%SMPInstallPath%\Agents\SMP\smpbootcd-v-7.6.0.iso"              "%BackupFolder%\smpbootcd-v-7.6.0.iso"     1>nul

rem :smpue-en.zip
rem echo [%date% %time%]Copying  smpue-en.zip                 to "%SMPInstallPath%\webserver\webapps\smpui\helps\en\webhelp"   >>%LOGFILE% 
rem copy /Y "%SMPInstallPath%\webserver\webapps\smpui\helps\en\webhelp\smpue-en.zip"                       "%BackupFolder%"     1>nul
rem copy /Y %~dp0\File\smpue-en.zip                              "%SMPInstallPath%\webserver\webapps\smpui\helps\en\webhelp"   1>nul
rem if errorlevel 1 goto rollback 

echo [%date% %time%]Copying  webhelp\en                      to "%SMPInstallPath%\webserver\webapps\smpui\helps\en\webhelp"   >>%LOGFILE% 
xcopy /Y /R   "%SMPInstallPath%\webserver\webapps\smpui\helps\en\webhelp"                       "%BackupFolder%\en"  /s     1>nul 2>>&1
xcopy /Y /R   %~dp0\File\en\webhelp                          "%SMPInstallPath%\webserver\webapps\smpui\helps\en\webhelp" /s  1>nul 2>>&1
if errorlevel 1 goto rollback 

echo [%date% %time%]Copying  webhelp\ja                      to "%SMPInstallPath%\webserver\webapps\smpui\helps\ja\webhelp"   >>%LOGFILE% 
xcopy /Y /R   "%SMPInstallPath%\webserver\webapps\smpui\helps\ja\webhelp"                       "%BackupFolder%\ja"  /s     1>nul 2>>&1
xcopy /Y /R   %~dp0\File\ja\webhelp                          "%SMPInstallPath%\webserver\webapps\smpui\helps\ja\webhelp" /s  1>nul 2>>&1
if errorlevel 1 goto rollback 

echo [%date% %time%]Copying  webhelp\zh                      to "%SMPInstallPath%\webserver\webapps\smpui\helps\zh\webhelp"   >>%LOGFILE% 
xcopy /Y /R   "%SMPInstallPath%\webserver\webapps\smpui\helps\zh\webhelp"                       "%BackupFolder%\zh"  /s     1>nul 2>>&1
xcopy /Y /R   %~dp0\File\zh\webhelp                          "%SMPInstallPath%\webserver\webapps\smpui\helps\zh\webhelp" /s  1>nul 2>>&1
if errorlevel 1 goto rollback 

echo [%date% %time%]Creating ISO's ,this might take some time please wait...       >>%LOGFILE%
PUSHD  %SMPInstallPath%\bin   >>%LOGFILE% 2>>&1 
DEL  /F /S /Q ..\Agents\SMP\smpbootcd*  >>%LOGFILE% 2>>&1
mkisofs -J -joliet-long -iso-level 3 -r -v -T -o ..\Agents\SMP\smpbootcd-p-7.6.LR1.iso -b system/isolinux.bin -c system/boot.cat -V HPSMPBOOTCD -no-emul-boot -boot-load-size 4 -boot-info-table ../PBootCD   >>%LOGFILE% 2>>&1
mkisofs -J -joliet-long -iso-level 3 -r -v -T -o ..\Agents\SMP\smpbootcd-v-7.6.LR1.iso -b system/isolinux.bin -c system/boot.cat -V HPSMPBOOTCD -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -eltorito-platform 0xEF -eltorito-boot efi/boot/efi.img  -no-emul-boot ../VBootCD  >>%LOGFILE% 2>>&1 
 POPD  >>%LOGFILE% 2>>&1
if errorlevel 1 goto rollback 
echo [%date% %time%]ISOs updated successfully.      >>%LOGFILE% 
	
echo [%date% %time%]All files copied successfully   >>%LOGFILE% 
echo [%date% %time%]Updating Registry to LR:        >>%LOGFILE% 
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\HP\HP Server Migration Pack" /v "LRversion" /t REG_SZ /d 7.6.1 /f  1>nul
echo [%date% %time%]Installation completed successfully.           >>%LOGFILE%
echo Installation completed successfully.
echo.
echo Success>"%OUTPUT%"
exit /B %ERRORLEVEL%
:rollback
echo [%date% %time%]Failed to install, see %LOGFILE% for details.  >>%LOGFILE% 
echo Failed to install, see %LOGFILE% for details.
echo.
echo Fail>"%OUTPUT%"
call %~dp0\rollback.bat
EXIT /B %ERRORLEVEL%
endlocal
