windows-nt/Source/XPSP1/NT/base/cluster/test/clusbvt/clusbvt.cmd
2020-09-26 16:20:57 +08:00

306 lines
14 KiB
Batchfile

@REM ----------------------------------------------------------------------------------
@REM This batch file excercises some basic functionality of a cluster using the
@REM cluscli.exe tool.
@REM
@REM
@REM Author: SriniG
@REM History: 7-3-1996 First batch of tests
@REM ----------------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------------
@REM The following parameters should be set in the cmd shell in which this script is
@REM run. They are:
@REM (1) NAME_OF_CLUSTER
@REM (2) NAME_OF_NODE1
@REM (3) NAME_OF_NODE2
@REM (4) NAME_OF_GROUP
@REM (5) NAME_OF_RESOURCE1
@REM (6) NAME_OF_RESOURCE2
@REM (7) NAME_OF_RESOURCETYPE
@REM ----------------------------------------------------------------------------------
@setlocal
@if "%1"=="/?" goto USAGE
@if "%1"=="-?" goto USAGE
@REM We set the environment by calling the bvtenv.cmd which should be tailored accordingly
@if not exist .\bvtenv.cmd goto USAGE
@call bvtenv.cmd
@REM This is used for rename operations... the original names are restored
@set TEMP_NAME=XYZ123
@REM check if the required env variables are set
@if "%NAME_OF_CLUSTER%"=="" goto USAGE
@if "%NAME_OF_NODE1%"=="" goto USAGE
@if "%NAME_OF_NODE2%"=="" goto USAGE
@if "%NAME_OF_GROUP%"=="" goto USAGE
@if "%NAME_OF_RESOURCE1%"=="" goto USAGE
@if "%NAME_OF_RESOURCE2%"=="" goto USAGE
@REM if "%NAME_OF_RESOURCETYPE%"=="" goto USAGE
@set STATS=1
@REM ----------------------------------------------------------------------------------
@REM Check the status of the two nodes
@REM ----------------------------------------------------------------------------------
cluscli -status -c %NAME_OF_CLUSTER% node %NAME_OF_NODE1%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -status -c %NAME_OF_CLUSTER% node %NAME_OF_NODE2%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM ----------------------------------------------------------------------------------
@REM Pause and resume each node in turn
@REM ----------------------------------------------------------------------------------
cluscli -pause -c %NAME_OF_CLUSTER% node %NAME_OF_NODE1%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -resume -c %NAME_OF_CLUSTER% node %NAME_OF_NODE1%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -pause -c %NAME_OF_CLUSTER% node %NAME_OF_NODE2%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -resume -c %NAME_OF_CLUSTER% node %NAME_OF_NODE2%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM ----------------------------------------------------------------------------------
@REM Create a group, find status, enumerate, online, find status, offline, find status,
@REM rename, get params
@REM ----------------------------------------------------------------------------------
cluscli -create -c %NAME_OF_CLUSTER% group %NAME_OF_GROUP%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -status -c %NAME_OF_CLUSTER% group %NAME_OF_GROUP%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -enum -c %NAME_OF_CLUSTER% group %NAME_OF_GROUP%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -online -c %NAME_OF_CLUSTER% group %NAME_OF_GROUP%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -status -c %NAME_OF_CLUSTER% group %NAME_OF_GROUP%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -offline -c %NAME_OF_CLUSTER% group %NAME_OF_GROUP%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -status -c %NAME_OF_CLUSTER% group %NAME_OF_GROUP%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM Get params for this group
cluscli -params -c %NAME_OF_CLUSTER% group %NAME_OF_GROUP%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM Rename the group to temp and back again
cluscli -rename -c %NAME_OF_CLUSTER% group %NAME_OF_GROUP% %TEMP_NAME%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -rename -c %NAME_OF_CLUSTER% group %TEMP_NAME% %NAME_OF_GROUP%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM ----------------------------------------------------------------------------------
@REM Move the group between the different nodes ... once with no node specified,
@REM twice with the two nodes specified, repeat with the group online
@REM ----------------------------------------------------------------------------------
cluscli -move -c %NAME_OF_CLUSTER% group %NAME_OF_GROUP%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -move -c %NAME_OF_CLUSTER% group %NAME_OF_GROUP% %NAME_OF_NODE1%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -move -c %NAME_OF_CLUSTER% group %NAME_OF_GROUP% %NAME_OF_NODE2%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM Bring the group online and do the same
cluscli -online -c %NAME_OF_CLUSTER% group %NAME_OF_GROUP%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -move -c %NAME_OF_CLUSTER% group %NAME_OF_GROUP%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -move -c %NAME_OF_CLUSTER% group %NAME_OF_GROUP% %NAME_OF_NODE1%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -move -c %NAME_OF_CLUSTER% group %NAME_OF_GROUP% %NAME_OF_NODE2%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM ----------------------------------------------------------------------------------
@REM Obtain the params associated with the resourctype
@REM ----------------------------------------------------------------------------------
cluscli -params -c %NAME_OF_CLUSTER% resourcetype %NAME_OF_RESOURCETYPE%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM ----------------------------------------------------------------------------------
@REM We create a resource %NAME_OF_RESOURCE1%, and do various operations on it.
@REM The resource is deleted at the end of this section.
@REM ----------------------------------------------------------------------------------
cluscli -create -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE1% %NAME_OF_GROUP% %NAME_OF_RESOURCETYPE% -p :CommandLine "/k ECHO %NAME_OF_RESOURCE1%" -p :ImageName cmd.exe -p :CurrentDirectory %HOMEDRIVE%%HOMEPATH%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM get status of the resource
cluscli -status -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE1%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM bring resource online
cluscli -online -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE1%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM bring resource offline
cluscli -offline -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE1%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM enum resource
cluscli -enum -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE1%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM BUG BUG Delete owner and addowner functionality not implemented yet
@goto SKIPowner
@REM addowner and deleteowner
cluscli -addowner -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE1% %NAME_OF_NODE1%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -deleteowner -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE1% %NAME_OF_NODE1%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
:SKIPowner
@REM rename the resource to temp name and back
cluscli -rename -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE1% %TEMP_NAME%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -rename -c %NAME_OF_CLUSTER% resource %TEMP_NAME% %NAME_OF_RESOURCE1%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM get the params associated with the resource
cluscli -params -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE1%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM delete the resource
cluscli -delete -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE1%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM ----------------------------------------------------------------------------------
@REM We create two resources %NAME_OF_RESOURCE1%, %NAME_OF_RESOURCE2%
@REM and do various dependency operations on it.
@REM The resources are deleted at the end of this section.
@REM ----------------------------------------------------------------------------------
cluscli -create -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE1% %NAME_OF_GROUP% %NAME_OF_RESOURCETYPE% -p :CommandLine "/k ECHO %NAME_OF_RESOURCE1%" -p :ImageName cmd.exe -p :CurrentDirectory %HOMEDRIVE%%HOMEPATH%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -create -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE2% %NAME_OF_GROUP% %NAME_OF_RESOURCETYPE% -p :CommandLine "/k ECHO %NAME_OF_RESOURCE2%" -p :ImageName cmd.exe -p :CurrentDirectory %HOMEDRIVE%%HOMEPATH%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM make resource2 depend upon resource1
cluscli -adddepend -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE2% %NAME_OF_RESOURCE1%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM bring resource1 online
cluscli -online -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE1%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM bring resource2 offline
cluscli -offline -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE2%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM bring resource1 offline
cluscli -offline -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE1%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM remove resource2 dependency upon resource1
cluscli -deletedepend -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE2% %NAME_OF_RESOURCE1%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
@REM ----------------------------------------------------------------------------------
@REM We try to rename the cluster to the temp name and back to the original, BUG-BUG:
@REM Need to change after cluster naming issues are resolved
@REM ----------------------------------------------------------------------------------
@REM BUG BUG Not able to restore Cluster name so don't do it...
@goto skipclusname
cluscli -rename -c %NAME_OF_CLUSTER% cluster %TEMP_NAME%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
cluscli -rename -c %TEMP_NAME% cluster %NAME_OF_CLUSTER%
@if errorlevel 1 set /A STATS=%STATS% + 1 & echo ***************** BVT Failure %STATS% *****************
:skipclusname
:cleanup
@echo.
@echo.
@echo Cleaning up ...............................
@echo.
cluscli -delete -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE1%
@if errorlevel 1 echo !!!! WARNING: Could not delete resource %NAME_OF_RESOURCE1% !!!!
cluscli -delete -c %NAME_OF_CLUSTER% resource %NAME_OF_RESOURCE2%
@if errorlevel 1 echo !!!! WARNING: Could not delete resource %NAME_OF_RESOURCE2% !!!!
cluscli -delete -c %NAME_OF_CLUSTER% group %NAME_OF_GROUP%
@if errorlevel 1 echo !!!! WARNING: Could not delete resource %NAME_OF_GROUP% !!!!
@goto EXIT
:USAGE
@echo Usage: %0
@echo The following environment variables should be set in the file bvtenv.cmd
@echo (The file should be placed in the same dir from which clusbvt is run.)
@echo They are:
@echo (1) NAME_OF_CLUSTER
@echo (2) NAME_OF_NODE1
@echo (3) NAME_OF_NODE2
@echo (4) NAME_OF_GROUP
@echo (5) NAME_OF_RESOURCE1
@echo (6) NAME_OF_RESOURCE2
@echo (7) NAME_OF_RESOURCETYPE
@echo The clustername, nodenames and resource type should be valid entities.
@echo The group, resource1 and resource2 should not exist i.e. they get deleted
@echo at the end of the run
@goto END
:EXIT
@set /A STATS=%STATS% - 1
@echo.
@echo.
@echo *******************************************************************************
@echo No. of BVT Tests failed = %STATS%
@echo *******************************************************************************
@echo.
@echo.
:END
@endlocal