<PREREQUISITETESTS>

    <PREREQUISITESET NAME="oracle.opatch.apply-rac">
        <PREREQUISITESETREF NAME="oracle.opatch.apply"/>
        <PREREQUISITESETREF NAME="oracle.opatch.rac"/>
    </PREREQUISITESET>
    
    <PREREQUISITESET NAME="oracle.opatch.rollback-rac">
        <PREREQUISITESETREF NAME="oracle.opatch.rollback"/>
        <PREREQUISITESETREF NAME="oracle.opatch.rac"/>
    </PREREQUISITESET>
    
    <PREREQUISITESET NAME="oracle.opatch.apply">
        <PREREQUISITESETREF NAME="oracle.opatch.common.user_credentials"/>
        <PREREQUISITESETREF NAME="oracle.opatch.common.oracle_home"/>
        <PREREQUISITESETREF NAME="oracle.opatch.common.central_inv"/>
        <PREREQUISITESETREF NAME="oracle.opatch.common.oui"/>
        <PREREQUISITESETREF NAME="oracle.opatch.apply.patch"/>
        <PREREQUISITESETREF NAME="oracle.opatch.common.system"/>
        <PREREQUISITESETREF NAME="oracle.opatch.apply.system"/>
        <PREREQUISITESETREF NAME="oracle.opatch.apply.conflict"/>
        <PREREQUISITESETREF NAME="oracle.opatch.apply.applicable"/>
    </PREREQUISITESET>

    <PREREQUISITESET NAME="oracle.opatch.rollback">
        <PREREQUISITESETREF NAME="oracle.opatch.common.user_credentials"/>
        <PREREQUISITESETREF NAME="oracle.opatch.common.oracle_home"/>
        <PREREQUISITESETREF NAME="oracle.opatch.common.central_inv"/>
        <PREREQUISITESETREF NAME="oracle.opatch.common.oui"/>
        <PREREQUISITESETREF NAME="oracle.opatch.common.system"/>
        <PREREQUISITESETREF NAME="oracle.opatch.rollback.rollbackable"/>
    </PREREQUISITESET>

    <PREREQUISITESET NAME="oracle.opatch.rac">
	<PREREQUISITESETREF NAME="oracle.opatch.rac.crs"/>
        <PREREQUISITESETREF NAME="oracle.opatch.rac.nodes"/>
    </PREREQUISITESET>

    <PREREQUISITESET NAME="oracle.opatch.conflict">
        <PREREQUISITESETREF NAME="oracle.opatch.apply.conflict"/>
    </PREREQUISITESET>

    <PREREQUISITESET NAME="oracle.opatch.common">
        <PREREQUISITESETREF NAME="oracle.opatch.common.user_credentials"/>
        <PREREQUISITESETREF NAME="oracle.opatch.common.oracle_home"/>
        <PREREQUISITESETREF NAME="oracle.opatch.common.central_inv"/>
        <PREREQUISITESETREF NAME="oracle.opatch.common.oui"/>
        <PREREQUISITESETREF NAME="oracle.opatch.common.system"/>
    </PREREQUISITESET>
    
    <PREREQUISITESET NAME="oracle.opatch.common.user_credentials">
        <PREREQUISITEREF NAME="CheckUserAdminPrivilege" SEVERITY="Error"/>
    </PREREQUISITESET>
    <PREREQUISITESET NAME="oracle.opatch.common.oracle_home">
        <PREREQUISITEREF NAME="CheckOracleHome" SEVERITY="Error"/>
        <PREREQUISITEREF NAME="CheckIfOHLockedForPatching" SEVERITY="Error"/>
        <PREREQUISITEREF NAME="CheckJDK" SEVERITY="Warning"/>
    </PREREQUISITESET>
    <PREREQUISITESET NAME="oracle.opatch.common.central_inv">
        <PREREQUISITEREF NAME="CheckOraInstLocation" SEVERITY="Error"/>
        <PREREQUISITEREF NAME="CheckCentralInventoryLocation" SEVERITY="Error"/>
        <PREREQUISITEREF NAME="CheckCentralInventoryForOH" SEVERITY="Error"/>
        <PREREQUISITEREF NAME="CheckCentralInventoryForRWSession" SEVERITY="Error"/>
    </PREREQUISITESET>
    <PREREQUISITESET NAME="oracle.opatch.common.oui">
        <PREREQUISITEREF NAME="CheckOUILocation" SEVERITY="Error"/>
        <PREREQUISITEREF NAME="CheckOUIVersionCompatible" SEVERITY="Error"/>
        <PREREQUISITEREF NAME="CheckRequiredLibs" SEVERITY="Error"/>
    </PREREQUISITESET>
    <PREREQUISITESET NAME="oracle.opatch.common.system">
        <PREREQUISITEREF NAME="CheckSystemCommandAvailable" SEVERITY="Error"/>
        <PREREQUISITEREF NAME="CheckActiveFilesAndExecutables" SEVERITY="Error"/>
        <PREREQUISITEREF NAME="CheckActiveServices" SEVERITY="Error"/>
    </PREREQUISITESET>

    <PREREQUISITESET NAME="oracle.opatch.apply.system">
        <PREREQUISITEREF NAME="CheckSystemSpace" SEVERITY="Error"/>
    </PREREQUISITESET>

    <PREREQUISITESET NAME="oracle.opatch.apply.conflict">
        <PREREQUISITEREF NAME="CheckConflictAgainstOH" SEVERITY="Warning"/>
    </PREREQUISITESET>

    <PREREQUISITESET NAME="oracle.opatch.apply.patch">
        <PREREQUISITEREF NAME="CheckPatchShipHome" SEVERITY="Error"/>
    </PREREQUISITESET>

    <PREREQUISITESET NAME="oracle.opatch.apply.applicable">
        <PREREQUISITEREF NAME="CheckPatchApplicableOnCurrentPlatform" SEVERITY="Error"/>
        <PREREQUISITEREF NAME="CheckApplicable" SEVERITY="Warning"/>
    </PREREQUISITESET>

    <PREREQUISITESET NAME="oracle.opatch.rollback.rollbackable">
        <PREREQUISITEREF NAME="CheckInstalledOneOffs" SEVERITY="Warning"/>
        <PREREQUISITEREF NAME="CheckRollbackable" SEVERITY="Warning"/>
    </PREREQUISITESET>

    <PREREQUISITESET NAME="oracle.opatch.rac.nodes">
        <PREREQUISITEREF NAME="CheckRACNodeList" SEVERITY="Error"/>
        <PREREQUISITEREF NAME="CheckRemoteCommandInvocable" SEVERITY="Error"/>
        <PREREQUISITEREF NAME="CheckRemoteCopyAndRemove" SEVERITY="Error"/>
    </PREREQUISITESET>
    <PREREQUISITESET NAME="oracle.opatch.rac.crs">
        <PREREQUISITEREF NAME="CheckForCRSHomeIfRAC" SEVERITY="Warning"/>
    </PREREQUISITESET>

    <PREREQUISITE NAME="CheckCentralInventoryForOH"
                EXTERNALNAME="Is ORACLE_HOME registered with the Central Inventory?"
                EXTERNALNAMEID="S_CHECK_CI_FOR_OH@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="This is a prerequisite check to test if the given ORACLE_HOME is registered with the Central Inventory."
                TEXTID="S_CHECK_CI_FOR_OH_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckCentralInventoryForOH" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Given ORACLE_HOME is not registered with the Central Inventory."
                TEXTID="S_CHECK_CI_FOR_OH_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Check if the oraInst.loc specified is correct or use OUI AttachHome feature to attach the home to the Central Inventory."
                TEXTID="S_CHECK_CI_FOR_OH_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckCentralInventoryForRWSession"
                EXTERNALNAME="Can a Read-Write session be created for this Central Inventory?"
                EXTERNALNAMEID="S_CHECK_CI_FOR_RW_SESSION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="This is a prerequisite check to test if a read-write session can be created for this Central Inventory."
                TEXTID="S_CHECK_CI_FOR_RW_SESSION_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckCentralInventoryForRWSession" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Read-Write Session could not be created for this Central Inventory."
                TEXTID="S_CHECK_CI_FOR_RW_SESSION_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Check if there are proper permissions for the Central Inventory. Also, check if some other instance has locked the given Central Inventory."
                TEXTID="S_CHECK_CI_FOR_RW_SESSION_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckCentralInventoryLocation"
                EXTERNALNAME="Is Central Inventory location valid?"
                EXTERNALNAMEID="S_CHECK_CI_LOCATION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="This is a prerequisite check to test for sanity of the Central Inventory location."
                TEXTID="S_CHECK_CI_LOCATION_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckCentralInventoryLocation" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Given Central Inventory does not exist or is a file."
                TEXTID="S_CHECK_CI_LOCATION_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Check if the oraInst.loc specified is correct."
                TEXTID="S_CHECK_CI_LOCATION_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckSystemCommandAvailable"
                EXTERNALNAME="Are all system commands available?"
                EXTERNALNAMEID="S_CHECK_CMD_AVAILABLE@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="Check if all the required system commands to perform the patching operation is available or not."
                TEXTID="S_CHECK_CMD_AVAILABLE_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckSystemCommandAvailable" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Some of the required system commands are missing."
                TEXTID="S_CHECK_CMD_AVAILABLE_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Check if the commands are in the environment variable PATH, or specify them in a property file."
                TEXTID="S_CHECK_CMD_AVAILABLE_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckActiveFilesAndExecutables"
                EXTERNALNAME="Are there any files/executables that are in use?"
                EXTERNALNAMEID="S_CHECK_FILES_IN_USE@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="This is a prerequisite check to find if any of the files/executables to be patched are active."
                TEXTID="S_CHECK_FILES_IN_USE_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckActiveFilesAndExecutables" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Some of the files/executables are active."
                TEXTID="S_CHECK_FILES_IN_USE_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Shutdown and stop the active instances."
                TEXTID="S_CHECK_FILES_IN_USE_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckActiveServices"
                EXTERNALNAME="Are there any services that are currently running?"
                EXTERNALNAMEID="S_CHECK_ACTIVE_SERVICES@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="This is a prerequisite check to find if any of the services on the given Oracle Home are active."
                TEXTID="S_CHECK_ACTIVE_SERVICES_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckActiveSERVICES" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Some of the services are active."
                TEXTID="S_CHECK_ACTIVE_SERVICES_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Shutdown and stop the active services."
                TEXTID="S_CHECK_ACTIVE_SERVICES_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckIfOHLockedForPatching"
                EXTERNALNAME="Is the Oracle Home locked?"
                EXTERNALNAMEID="S_CHECK_OH_LOCKED@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="Check if Oracle Home is locked by previous unsuccessful OPatch Session."
                TEXTID="S_CHECK_OH_LOCKED_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckIfOHLockedForPatching" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Oracle Home is Locked by some previous unsuccessful OPatch Session."
                TEXTID="S_CHECK_OH_LOCKED_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Delete the file ORACLE_HOME/.patch_storage/patch_locked if you are sure that Oracle Home is in proper state."
                TEXTID="S_CHECK_OH_LOCKED_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckJDK"
                EXTERNALNAME="Is JDK present in the Oracle Home?"
                EXTERNALNAMEID="S_CHECK_JDK@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Warning">
        <DESCRIPTION TEXT="Check if there is JDK in the given Oracle Home."
                TEXTID="S_CHECK_JDK_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckJDK" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Given Oracle Home does not have JDK installed."
                TEXTID="S_CHECK_JDK_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Please run opatch using -jdk option specifying the JDK location on the system."
                TEXTID="S_CHECK_JDK_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>
	
    <PREREQUISITE NAME="CheckOracleHome"
                EXTERNALNAME="Is Oracle Home valid?"
                EXTERNALNAMEID="S_CHECK_OH@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="Check if the location of the Oracle Home is proper, and has required files and directories with proper permissions."
                TEXTID="S_CHECK_OH_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckOracleHome" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Given Oracle Home location is not correct, some files are missing or do not have required permissions."
                TEXTID="S_CHECK_OH_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Provide proper permissions for the required files or specify the correct location of the Oracle Home."
                TEXTID="S_CHECK_OH_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckOraInstLocation"
                EXTERNALNAME="Is given oraInst.loc file valid?"
                EXTERNALNAMEID="S_CHECK_ORAINST_LOC@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="Check if the given oraInst.loc file is valid and has proper permissions."
                TEXTID="S_CHECK_ORAINST_LOC_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckOraInstLocation" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Given oraInst.loc file is not valid."
                TEXTID="S_CHECK_ORAINST_LOC_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Check if the oraInst.loc specified is correct."
                TEXTID="S_CHECK_ORAINST_LOC_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckOUILocation"
                EXTERNALNAME="Is OUI present?"
                EXTERNALNAMEID="S_CHECK_OUI@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="Check if the given Oracle Home has OUI in it."
                TEXTID="S_CHECK_OUI_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckOUILocation" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Oracle Home does not have OUI."
                TEXTID="S_CHECK_OUI_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Install OUI component into the given Oracle Home."
                TEXTID="S_CHECK_OUI_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckOUIVersionCompatible"
                EXTERNALNAME="Does Oracle Home has required version of OUI?"
                EXTERNALNAMEID="S_CHECK_OUI_VERSION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="Check if the required version of OUI is present in the given Oracle Home."
                TEXTID="S_CHECK_OUI_VERSION_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckOUIVersionCompatible" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="OUI is not compatible."
                TEXTID="S_CHECK_OUI_VERSION_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Install correct version of OUI component into the given Oracle Home."
                TEXTID="S_CHECK_OUI_VERSION_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckRequiredLibs"
                EXTERNALNAME="Are required libraries present?"
                EXTERNALNAMEID="S_CHECK_REQD_LIBS@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="Check if all the required libraries are present in the given Oracle Home."
                TEXTID="S_CHECK_REQD_LIBS_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckRequiredLibs" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Some of the required libraries are not present."
                TEXTID="S_CHECK_REQD_LIBS_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Install the required components or the libraries."
                TEXTID="S_CHECK_REQD_LIBS_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckUserAdminPrivilege"
                EXTERNALNAME="Is the user ADMIN?"
                EXTERNALNAMEID="S_CHECK_USER_ADMIN@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="Check if the user is root."
                TEXTID="S_CHECK_USER_ADMIN_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckUserAdminPrivilege" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="User is root."
                TEXTID="S_CHECK_USER_ADMIN_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="OPatch cannot be invoked as root. Run OPatch as a different user."
                TEXTID="S_CHECK_USER_ADMIN_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckApplicable"
                EXTERNALNAME="Are all actions of the patch Applicable?"
                EXTERNALNAMEID="S_CHECK_APPLICABLE@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Warning">
        <DESCRIPTION TEXT="Check if all actions of the patch are applicable for the given Oracle Home."
                TEXTID="S_CHECK_APPLICABLE_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckApplicable" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Some actions of the patch are not applicable."
                TEXTID="S_CHECK_APPLICABLE_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Install missing components and fix/ignore non-applicable actions. Else contact Oracle support for correct patch."
                TEXTID="S_CHECK_APPLICABLE_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>
	
    <PREREQUISITE NAME="CheckPatchApplicableOnCurrentPlatform"
                EXTERNALNAME="Is patch applicable for current platform?"
                EXTERNALNAMEID="S_CHECK_PLATFORM_COMPATIBLE@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="Check if the patch is applicable for the current platform."
                TEXTID="S_CHECK_PLATFORM_COMPATIBLE_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckPatchApplicableOnCurrentPlatform" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Patch is not applicable for this platform."
                TEXTID="S_CHECK_PLATFORM_COMPATIBLE_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Contact Oracle Support and get the correct patch."
                TEXTID="S_CHECK_PLATFORM_COMPATIBLE_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckPatchShipHome"
                EXTERNALNAME="Is Patch shiphome correct?"
                EXTERNALNAMEID="S_CHECK_PATCH_SH@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="Do sanity checks on the patch shiphome."
                TEXTID="S_CHECK_PATCH_SH_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckPatchShipHome" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Some files are missing in the Patch Shiphome or do not have valid permissions."
                TEXTID="S_CHECK_PATCH_SH_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Check the permissions of all files. Contact Oracle Support and get the correct patch."
                TEXTID="S_CHECK_PATCH_SH_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckSystemSpace"
                EXTERNALNAME="Does the system have enough space?"
                EXTERNALNAMEID="S_CHECK_SYSTEM_SPACE@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="Check if the system have enough space to install the patch."
                TEXTID="S_CHECK_SYSTEM_SPACE_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckSystemSpace" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Required amount of space is not present in the system."
                TEXTID="S_CHECK_SYSTEM_SPACE_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Create some free space and try again."
                TEXTID="S_CHECK_SYSTEM_SPACE_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckRollbackable"
                EXTERNALNAME="Is the patch rollbackable?"
                EXTERNALNAMEID="S_CHECK_ROLLBACKABLE@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Warning">
        <DESCRIPTION TEXT="Check if the patch can be rollbacked completely."
                TEXTID="S_CHECK_ROLLBACKABLE_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckRollbackable" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="There are some actions which cannot be rollbacked."
                TEXTID="S_CHECK_ROLLBACKABLE_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Check the existence and the permission of the files touched by the patch."
                TEXTID="S_CHECK_ROLLBACKABLE_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckRACNodeList"
                EXTERNALNAME="Are all nodes of the RAC setup reachable?"
                EXTERNALNAMEID="S_CHECK_RAC_NODE@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="Check if all the nodes in the RAC setup are valid and reachable."
                TEXTID="S_CHECK_RAC_NODE_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckRACNodeList" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Some of the nodes are not reachable."
                TEXTID="S_CHECK_RAC_NODE_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Check if the nodes of the RAC are up and running. Otherwise use -local option to apply/rollback the patch on each node."
                TEXTID="S_CHECK_RAC_NODE_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckRemoteCommandInvocable"
                EXTERNALNAME="Can commands be invoked on remote machine?"
                EXTERNALNAMEID="S_CHECK_REM_CMD_INVOKE@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="Check if the commands can be invoked on the remote machine."
                TEXTID="S_CHECK_REM_CMD_INVOKE_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckRemoteCommandInvocable" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Command execution on remote machine failed."
                TEXTID="S_CHECK_REM_CMD_INVOKE_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Check the permissions, check if the remote machines are up."
                TEXTID="S_CHECK_REM_CMD_INVOKE_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckRemoteCopyAndRemove"
                EXTERNALNAME="Can a file be copied to and removed from the remote machine?"
                EXTERNALNAMEID="S_CHECK_REM_COPY_REMOVE@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Error">
        <DESCRIPTION TEXT="Check if the a file be copied and removed from remote machine."
                TEXTID="S_CHECK_REM_COPY_REMOVE_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckRemoteCopyAndRemove" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Remote file copy or remote file remove failed."
                TEXTID="S_CHECK_REM_COPY_REMOVE_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Check the permissions."
                TEXTID="S_CHECK_REM_COPY_REMOVE_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckForCRSHomeIfRAC"
                EXTERNALNAME="Is there any CRS Home registered with the Central Inventory?"
                EXTERNALNAMEID="S_CHECK_CRS_IF_RAC@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Warning">
        <DESCRIPTION TEXT="If this is a RAC setup, then check if there is a CRS Home registered with Central Inventory."
                TEXTID="S_CHECK_CRS_IF_RAC_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckForCRSHomeIfRAC" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="There is no CRS Home registered with the given Central Inventory."
                TEXTID="S_CHECK_CRS_IF_RAC_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT="Use -local_node nodename while invoking OPatch."
                TEXTID="S_CHECK_CRS_IF_RAC_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckConflictAgainstOH"
                EXTERNALNAME="Are there any conflicts/supersets among the patches?"
                EXTERNALNAMEID="S_CHECK_CONFLICT_OH@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Warning">
        <DESCRIPTION TEXT="Check if the patches to be applied have any conflicts among themselves and with the patches present in the Oracle Home."
                TEXTID="S_CHECK_CONFLICT_OH_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckConflictAgainstOH" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="There are some conflicts/supersets."
                TEXTID="S_CHECK_CONFLICT_OH_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT= "OPatch will auto-rollback the conflicting and subset patches. Contact Oracle Support for the merged patch."
                TEXTID="S_CHECK_CONFLICT_OH_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

    <PREREQUISITE NAME="CheckInstalledOneOffs"
                EXTERNALNAME="Are all the specified patches installed in the Oracle Home?"
                EXTERNALNAMEID="S_CHECK_INSTALLED_ONEOFFS@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"
                SEVERITY="Warning">
        <DESCRIPTION TEXT="Check if all the specified patch IDs for rollback are present in the given Oracle Home."
                TEXTID="S_CHECK_INSTALLED_ONEOFFS_DESCRIPTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
        <RULESETREF NAME="OPatchChecks" RULE="CheckInstalledOneOffs" FILE=""
                RESULTS_FILE=""/>
        <PROBLEM TEXT="Some of the given patches are not present in the Oracle Home."
                TEXTID="S_CHECK_INSTALLED_ONEOFFS_ERROR@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes">
        </PROBLEM>
        <RECOMMENDATION TEXT= "Please verify the patch IDs provided and give the correct list of patchIDs to rollback. To know what patches are present in the Oracle Home run opatch lsinventory."
                TEXTID="S_CHECK_INSTALLED_ONEOFFS_ACTION@oracle.opatch.opatchprereq.OPatchPrereqRuntimeRes"/>
    </PREREQUISITE>

</PREREQUISITETESTS>

