def releaseScannerLock(Framework):
    logger.debug('Finally, Starting Unlock Scanner Node')
    if not LockUtils.releaseScannerLock(Framework):
        Framework.setStepExecutionStatus(WorkflowStepStatus.FAILURE)
    else:
        logger.debug('Unlock Scanner Node finished')
        Framework.setProperty(LockUtils.ScannerNodeUnSetLock, LockUtils.ScannerNodeUnSetLock)
        Framework.setStepExecutionStatus(WorkflowStepStatus.SUCCESS)
    logger.debug('Releasing connection after unlock scan node')
    InventoryUtils.releaseConnection(Framework)
def releaseScannerLock(Framework):
    logger.debug('Finally, Starting Unlock Scanner Node')
    if not LockUtils.releaseScannerLock(Framework):
        Framework.setStepExecutionStatus(WorkflowStepStatus.FAILURE)
    else:
        logger.debug('Unlock Scanner Node finished')
        Framework.setProperty(LockUtils.ScannerNodeUnSetLock,
                              LockUtils.ScannerNodeUnSetLock)
        Framework.setStepExecutionStatus(WorkflowStepStatus.SUCCESS)
    logger.debug('Releasing connection after unlock scan node')
    InventoryUtils.releaseConnection(Framework)
def releaseScannerLock(Framework):
    logger.debug('Starting Unlock Scanner Node step')
    logger.debug("Start checking ud_unique_id...")
    client = Framework.getConnectedClient()
    if client:
        uduid = InventoryUtils.getUduid(
            client,
            InventoryUtils.isStampEnabled(Framework, client.getIpAddress()))
        Framework.setProperty(InventoryUtils.ATTR_UD_UNIQUE_ID, uduid)
    if not LockUtils.releaseScannerLock(Framework):
        Framework.setStepExecutionStatus(WorkflowStepStatus.FAILURE)
    else:
        logger.debug('Unlock Scanner Node step finished')
        Framework.setProperty(LockUtils.ScannerNodeUnSetLock,
                              LockUtils.ScannerNodeUnSetLock)
        Framework.setStepExecutionStatus(WorkflowStepStatus.SUCCESS)
    logger.debug('Releasing connection after unlock scan node')
    InventoryUtils.releaseConnection(Framework)
Exemple #4
0
def releaseResources(Framework):
	logger.debug('Releasing resources')
	# we try to remove lock if lock was acquired and not unlocked yet
	logger.debug('Releasing scanner node lock if not unlocked yet')
	logger.debug('LockUtils.ScannerNodeSetLock in Framework: ', Framework.getProperty(LockUtils.ScannerNodeSetLock))
	logger.debug('LockUtils.ScannerNodeUnSetLock in Framework: ', Framework.getProperty(LockUtils.ScannerNodeUnSetLock))
	if Framework.getProperty(LockUtils.ScannerNodeSetLock) and not Framework.getProperty(LockUtils.ScannerNodeUnSetLock):
		if InventoryUtils.ensureConnection(Framework):
			LockUtils.releaseScannerLock(Framework)
		else:
			logger.debug('Failed to remove lock as failed to connect to host')
	else:
		logger.debug('Not removing lock as lock was not acquired or already unlocked')
	if Framework.getProperty(InventoryUtils.STATE_PROPERTY_CLEAN_UP_STATE_FINALLY):
		logger.debug('Clear up state saved in DB')
		Framework.clearState()
		Framework.setProperty(InventoryUtils.STATE_PROPERTY_CLEAN_UP_STATE_FINALLY, '')
	logger.debug('Releasing shell connection to the remote node if not released yet')
	InventoryUtils.releaseConnection(Framework)
def restoreSWUtilizationConfiguration(Framework):
    InventoryUtils.releaseConnection(Framework)
    # Framework.setConnectedClient(None)
    InventoryUtils.acquireConnection(Framework)

    # try to restore ini files if existed
    BASEDIR = AgentPlatformParameters.getAgentConfigurationPath(Framework)

    pluginIniFile = Framework.getProperty("local_plugin_temp_file")
    discusgeIniFile = Framework.getProperty("local_discusge_temp_file")

    pluginIniFileSuccess = 1
    if pluginIniFile and not InventoryUtils.copyLocalFileToRemote(
            Framework, pluginIniFile, BASEDIR + "plugin.tni", 0):
        pluginIniFileSuccess = 0
        Framework.reportWarning(
            "restore plugin.ini file failed, will use default configuration")

    discusgeIniFileSuccess = 1
    if discusgeIniFile and not InventoryUtils.copyLocalFileToRemote(
            Framework, discusgeIniFile, BASEDIR + "discusge.tni", 0):
        discusgeIniFileSuccess = 0
        Framework.reportWarning(
            "restore discusge.ini file failed, will use default configuration")

    client = Framework.getConnectedClient()
    shell = shellutils.ShellUtils(client, skip_set_session_locale=True)
    if pluginIniFileSuccess:
        renameCMD = AgentPlatformParameters.getRenameCMD(
            Framework, BASEDIR, "plugin.tni", "plugin.ini")
        logger.debug(renameCMD)
        shell.execCmd(renameCMD)
    if discusgeIniFileSuccess:
        renameCMD = AgentPlatformParameters.getRenameCMD(
            Framework, BASEDIR, "discusge.tni", "discusge.ini")
        logger.debug(renameCMD)
        shell.execCmd(renameCMD)

    File(pluginIniFile).delete()
    File(discusgeIniFile).delete()

    Framework.setStepExecutionStatus(WorkflowStepStatus.SUCCESS)
Exemple #6
0
def checkNonNativeAgentInstalled(Framework):

    # Set the nonnative flags
    Framework.setProperty(InventoryUtils.STATE_PROPERTY_IS_MIGRATE, 'false')
    InventoryUtils.resetBaseDir(Framework)
    AgentUtils.setUpgradingNativeAgent(Framework, 'true')

    # Ensure we're disconnected
    InventoryUtils.releaseConnection(Framework)

    Framework.setProperty(AgentUtils.DOWNLOAD_MIGRATE_LOG_FILE,
                          AgentUtils.DOWNLOAD_MIGRATE_LOG_FILE)

    # For now - the usual check
    logger.debug(
        'Going to check whether non-native agent already installed or not')

    warningsList = []
    errorsList = []
    agent = AgentUtils.agentConnect(
        Framework,
        AgentUtils.getUdAgentProtocolForMigration(Framework).getIdAsString(),
        warningsList, errorsList)

    if not agent:
        for errobj in warningsList:
            logger.reportWarningObject(errobj)
        for errobj in errorsList:
            logger.reportErrorObject(errobj)

        Framework.reportError(
            inventoryerrorcodes.INVENTORY_DISCOVERY_ENSURE_CONNECTED_FAILED,
            ['Could not connect to the remote agent'])
        Framework.setStepExecutionStatus(WorkflowStepStatus.FAILURE)
    else:
        logger.debug('Connected to agent!!!!')
        Framework.setProperty(AgentUtils.DOWNLOAD_MIGRATE_LOG_FILE, '')
        InventoryUtils.setConnectedClientIdentifier(Framework, agent)
        agent.close()
        Framework.setStepExecutionStatus(WorkflowStepStatus.SUCCESS)
def restoreSWUtilizationConfiguration(Framework):
	InventoryUtils.releaseConnection(Framework)
	# Framework.setConnectedClient(None)
	InventoryUtils.acquireConnection(Framework)

	# try to restore ini files if existed
	BASEDIR = AgentPlatformParameters.getAgentConfigurationPath(Framework)

	pluginIniFile = Framework.getProperty("local_plugin_temp_file")
	discusgeIniFile = Framework.getProperty("local_discusge_temp_file")

	pluginIniFileSuccess = 1
	if pluginIniFile and not InventoryUtils.copyLocalFileToRemote(Framework, pluginIniFile, BASEDIR + "plugin.tni", 0):
		pluginIniFileSuccess = 0
		Framework.reportWarning("restore plugin.ini file failed, will use default configuration")

	discusgeIniFileSuccess = 1
	if discusgeIniFile and not InventoryUtils.copyLocalFileToRemote(Framework, discusgeIniFile, BASEDIR + "discusge.tni", 0):
		discusgeIniFileSuccess = 0
		Framework.reportWarning("restore discusge.ini file failed, will use default configuration")

	client = Framework.getConnectedClient()
	shell = shellutils.ShellUtils(client, skip_set_session_locale=True)
	if pluginIniFileSuccess:
		renameCMD = AgentPlatformParameters.getRenameCMD(Framework, BASEDIR, "plugin.tni", "plugin.ini")
		logger.debug(renameCMD)
		shell.execCmd(renameCMD)
	if discusgeIniFileSuccess:
		renameCMD = AgentPlatformParameters.getRenameCMD(Framework, BASEDIR, "discusge.tni", "discusge.ini")
		logger.debug(renameCMD)
		shell.execCmd(renameCMD)

	File(pluginIniFile).delete()
	File(discusgeIniFile).delete()

	Framework.setStepExecutionStatus(WorkflowStepStatus.SUCCESS)
def checkNonNativeAgentInstalled(Framework):

    # Set the nonnative flags
    Framework.setProperty(InventoryUtils.STATE_PROPERTY_IS_MIGRATE, 'false')
    InventoryUtils.resetBaseDir(Framework)
    AgentUtils.setUpgradingNativeAgent(Framework, 'true')

    # Ensure we're disconnected
    InventoryUtils.releaseConnection(Framework)

    Framework.setProperty(AgentUtils.DOWNLOAD_MIGRATE_LOG_FILE, AgentUtils.DOWNLOAD_MIGRATE_LOG_FILE)

    # For now - the usual check
    logger.debug('Going to check whether non-native agent already installed or not')

    warningsList = []
    errorsList = []
    agent = AgentUtils.agentConnect(Framework,
        AgentUtils.getUdAgentProtocolForMigration(Framework).getIdAsString(),
        warningsList, errorsList)

    if not agent:
        for errobj in warningsList:
            logger.reportWarningObject(errobj)
        for errobj in errorsList:
            logger.reportErrorObject(errobj)

        Framework.reportError(inventoryerrorcodes.INVENTORY_DISCOVERY_ENSURE_CONNECTED_FAILED,
            ['Could not connect to the remote agent'])
        Framework.setStepExecutionStatus(WorkflowStepStatus.FAILURE)
    else:
        logger.debug('Connected to agent!!!!')
        Framework.setProperty(AgentUtils.DOWNLOAD_MIGRATE_LOG_FILE, '')
        InventoryUtils.setConnectedClientIdentifier(Framework, agent)
        agent.close()
        Framework.setStepExecutionStatus(WorkflowStepStatus.SUCCESS)
Exemple #9
0
def upgradeScanner(Framework):
	scannersConfigFile = Framework.getConfigFile(CollectorsConstants.SCANNERSBYPLATFORM_FILE_NAME)

	platform = Framework.getProperty(InventoryUtils.STATE_PROPERTY_PLATFORM)
	architecture = Framework.getProperty(InventoryUtils.STATE_PROPERTY_ARCHITECTURE)
	logger.debug('Platform:', platform, ', architecture ', architecture)

	scannerPlatformConfig = scannersConfigFile.getPlatformConfiguration(platform, architecture)

	preUpgradeCmds = scannerPlatformConfig.getPreUpgradeCommands()

	client = Framework.getConnectedClient()
	shell = shellutils.ShellUtils(client, skip_set_session_locale=True)

	shouldScannerBeInstalled = 0
	try:
		shouldScannerBeInstalled = shouldInstallScanner(scannerPlatformConfig, Framework, shell)
	except:
		errorMessage = str(sys.exc_info()[1])
		if errorMessage.lower().find('timeout') != -1:
			logger.debug('Failed to check scanner version, scanner may be corrupted')

			# in some cases, getting timeout exception client persists get TimoutException on every next command
			# in order to overwhelm this behaviour disconnect and connect again
			# in this case (if we got timeout excepton) we assume that scanner was corrupted
			# so we will install/reinstall it anyway
			shouldScannerBeInstalled = 1

			InventoryUtils.releaseConnection(Framework)
			InventoryUtils.acquireConnection(Framework)
			client = Framework.getConnectedClient()
			shell = shellutils.ShellUtils(client, skip_set_session_locale=True)

	logger.debug('Executing pre upgrade commands')
	for cmd in preUpgradeCmds:
		commandLine = cmd.getCommand()
		commandLine = InventoryUtils.handleBaseDirPath(Framework, commandLine)
		logger.debug('Running ', commandLine)
		shell.execCmd(commandLine)

	if shouldScannerBeInstalled:
		if not upgradeScannerExecutable(scannerPlatformConfig, Framework, shell):
			return
	else:
		if not ensureScannerExist(scannerPlatformConfig, Framework):
			return

	if not upgradeConfigFile(scannerPlatformConfig, Framework):
		return

	upgradePrePostScript(scannersConfigFile, scannerPlatformConfig, Framework)

	postUpgradeCmds = scannerPlatformConfig.getPostUpgradeCommands()
	logger.debug('Executing post upgrade commands')
	for cmd in postUpgradeCmds:
		commandLine = cmd.getCommand()
		commandLine = InventoryUtils.handleBaseDirPath(Framework, commandLine)
		logger.debug('Running ', commandLine)
		shell.execCmd(commandLine)

	Framework.setStepExecutionStatus(WorkflowStepStatus.SUCCESS)
def downloadLogsIfNeeded(Framework):
    platform = Framework.getProperty(InventoryUtils.STATE_PROPERTY_PLATFORM)
    logger.debug('Checking if to print install/uninstall logs')
    downloadMigrateLog = Framework.getProperty(AgentUtils.DOWNLOAD_MIGRATE_LOG_FILE)
    downloadInstallLog = Framework.getProperty(AgentUtils.DOWNLOAD_INSTALL_LOG_FILE)
    downloadUnInstallLog = Framework.getProperty(AgentUtils.DOWNLOAD_UNINSTALL_LOG_FILE)
    if not downloadMigrateLog and not downloadInstallLog and not downloadUnInstallLog:
        logger.debug('Migrate/Install/UnInstall log should not be downloaded')
        return

    try:
        logger.debug('Releasing old connection')
        InventoryUtils.releaseConnection(Framework)
        logger.debug('Preparing framework for new connection')
        AgentUtils.prepareFrameworkForShellOrAgentConnect(Framework)
    except:
        errorMessage = str(sys.exc_info()[1])
        logger.debugException('Failed to initialize connection for downloading agent log files' + errorMessage)
        return

    if downloadMigrateLog:
        # If need to download migrate log, we need to connect to DDMi agent as well
        Framework.setProperty(InventoryUtils.STATE_PROPERTY_IS_MIGRATE, str('true'))

    if not InventoryUtils.ensureConnection(Framework):
        logger.debug('Failed to connect to the remote machine, no logs available')
    else:
        ip_address = Framework.getTriggerCIData('ip_address')
        localInstallFile = None
        localUnInstallFile = None
        try:
            try:
                agentsConfigFile = Framework.getConfigFile(CollectorsConstants.AGENTSSBYPLATFORM_FILE_NAME)
                BASEDIR = Framework.getProperty(InventoryUtils.STATE_PROPERTY_RESOLVED_BASEDIR)
                architecture = Framework.getProperty(InventoryUtils.STATE_PROPERTY_ARCHITECTURE)
                agentPlatformConfig = agentsConfigFile.getPlatformConfiguration(platform, architecture)
                ip_address_str = str(ip_address)
                if (ip_address_str.find(':') <> -1):
                    ip_address_str = ip_address_str.replace(':','-')

                if downloadMigrateLog:
                    logger.debug('Download the migrate log')
                    installLogFile = agentPlatformConfig.getUpgradeLogFile()
                    localInstallFile = File(AGENTS_LOGS_TEMP_DIR_FILE, ip_address_str + '-' + installLogFile)
                    getLogFileContent(Framework, localInstallFile, str(BASEDIR) + installLogFile)
                if downloadInstallLog:
                    logger.debug('Download the install/update log')
                    if AgentUtils.isUpgradeByUDAgent(Framework):
                        installLogFile = agentPlatformConfig.getUpgradeLogFile()
                    else:
                        installLogFile = agentPlatformConfig.getInstallLogFile()
                    localInstallFile = File(AGENTS_LOGS_TEMP_DIR_FILE, ip_address_str + '-' + installLogFile)
                    getLogFileContent(Framework, localInstallFile, str(BASEDIR) + installLogFile)
                if downloadUnInstallLog:
                    logger.debug('Download the uninstall log')
                    unInstallLogFile = agentPlatformConfig.getUnInstallLogFile()
                    localUnInstallFile = File(AGENTS_LOGS_TEMP_DIR_FILE, ip_address_str + '-' + unInstallLogFile)
                    getLogFileContent(Framework, localUnInstallFile, str(BASEDIR) + unInstallLogFile)
            except:
                errorMessage = str(sys.exc_info()[1])
                logger.debugException(errorMessage)
                Framework.reportError(inventoryerrorcodes.INVENTORY_DISCOVERY_FAILED_EXECUTE_STEP, ['FinalizeAndReleaseResources', errorMessage])
        finally:
            try:
                if localInstallFile and not localInstallFile.delete():
                    logger.debug('File was not deleted:' + localInstallFile.getCanonicalPath())
            except:
                logger.debugException('Failed to delete ' + localInstallFile.getCanonicalPath())
            try:
                logger.debug('Going to delete file ' + localInstallFile.getCanonicalPath())
                if localUnInstallFile and not localUnInstallFile.delete():
                    logger.debug('File was not deleted:' + localUnInstallFile.getCanonicalPath())
            except:
                logger.debugException('Failed to delete ' + localUnInstallFile.getCanonicalPath())
Exemple #11
0
def checkAgentInstalled(Framework, ignoreError=False):
    # Ensure we're disconnected
    InventoryUtils.releaseConnection(Framework)

    Framework.setProperty(AgentUtils.DOWNLOAD_INSTALL_LOG_FILE, AgentUtils.DOWNLOAD_INSTALL_LOG_FILE)

    if Framework.getProperty(FIRST_TRY_INSTALL_AGENT) is None:
        # we don't want immediately check whether agent installed or not, since for sure it is not. go to parking
        # to let others to install
        logger.debug('UD agent install command just run, will check after parking')
        Framework.setProperty(FIRST_TRY_INSTALL_AGENT, FIRST_TRY_INSTALL_AGENT)
        Framework.setStepExecutionStatus(WorkflowStepStatus.FAILURE)
        return
    else:
        logger.debug('Going to check whether agent already installed or not')

    # errorCode = AgentUtils.getInstallErrorCode(Framework)
    # if not errorCode.isSuccess():
    #     logger.debug('Failed to install agent.')
    #     Framework.reportError(inventoryerrorcodes.INVENTORY_DISCOVERY_FAILED_AGENT_INSTALL, None)
    #     Framework.setStepExecutionStatus(WorkflowStepStatus.FATAL_FAILURE)
    #     return

    warningsList = []
    errorsList = []

    # When we migrate ddmi to uda, we already know what cred_id to use
    ddmiMigrationCredId = AgentUtils.getUdAgentProtocolForMigration(Framework)
    if ddmiMigrationCredId:
        conToUse = ddmiMigrationCredId.getIdAsString()
    else:
        conToUse = None

    agent = AgentUtils.agentConnect(Framework, conToUse, warningsList, errorsList)
    if not agent:
        if not ignoreError:
            for errobj in warningsList:
                logger.reportWarningObject(errobj)
            for errobj in errorsList:
                logger.reportErrorObject(errobj)
            Framework.reportError(inventoryerrorcodes.INVENTORY_DISCOVERY_ENSURE_CONNECTED_FAILED, ['Could not connect to the remote agent'])
        Framework.setStepExecutionStatus(WorkflowStepStatus.FAILURE)
    else:
        try:
            logger.debug('Connected to agent!!!!')

            # Check whether the agent is native
            agentsConfigFile = Framework.getConfigFile(CollectorsConstants.AGENTSSBYPLATFORM_FILE_NAME)

            platform = Framework.getProperty(InventoryUtils.STATE_PROPERTY_PLATFORM)
            architecture = Framework.getProperty(InventoryUtils.STATE_PROPERTY_ARCHITECTURE)

            agentPlatformConfig = agentsConfigFile.getPlatformConfiguration(platform, architecture)
            isNativeCmd = agentPlatformConfig.getIsNativeCmd()
            logger.debug('Native command is [' + str(isNativeCmd) + ']')

            if isNativeCmd and len(isNativeCmd) > 0:
                isNativeCmd = InventoryUtils.handleBaseDirPath(Framework, isNativeCmd)
                isNative = agent.executeCmd(isNativeCmd)
                if isNative != 'true':
                    logger.debug('Could not verify whether the remote agent is native')
                    Framework.reportError(inventoryerrorcodes.INVENTORY_DISCOVERY_ENSURE_CONNECTED_FAILED,
                        ['Remote agent doesnt appear to be natively installed'])
                    Framework.setStepExecutionStatus(WorkflowStepStatus.FAILURE)
                    return

            # Reporting agent osh to framework
            Framework.setProperty(AgentUtils.DOWNLOAD_INSTALL_LOG_FILE, '')
            Framework.setProperty(InventoryUtils.STATE_PROPERTY_AGENT_INSTALLED, InventoryUtils.STATE_PROPERTY_AGENT_INSTALLED)
            AgentUtils.saveGlobalState(agent, Framework)

            OSHVResult = ObjectStateHolderVector()
            ip = Framework.getProperty(InventoryUtils.STATE_PROPERTY_CONNECTED_SHELL_IP)
            hostOsh = modeling.createHostOSH(ip)
            uduid = InventoryUtils.getUduid(agent)
            hostOsh.setStringAttribute(InventoryUtils.ATTR_UD_UNIQUE_ID, uduid)

            agentOsh = AgentUtils.createAgentOsh(agent, Framework)
            agentOsh.setContainer(hostOsh)
            OSHVResult.add(hostOsh)
            OSHVResult.add(agentOsh)
            Framework.sendObjects(OSHVResult)
            Framework.flushObjects()
            Framework.setStepExecutionStatus(WorkflowStepStatus.SUCCESS)
        finally:
            if agent:
                agent.close()
def downloadLogsIfNeeded(Framework):
    platform = Framework.getProperty(InventoryUtils.STATE_PROPERTY_PLATFORM)
    logger.debug('Checking if to print install/uninstall logs')
    downloadMigrateLog = Framework.getProperty(
        AgentUtils.DOWNLOAD_MIGRATE_LOG_FILE)
    downloadInstallLog = Framework.getProperty(
        AgentUtils.DOWNLOAD_INSTALL_LOG_FILE)
    downloadUnInstallLog = Framework.getProperty(
        AgentUtils.DOWNLOAD_UNINSTALL_LOG_FILE)
    if not downloadMigrateLog and not downloadInstallLog and not downloadUnInstallLog:
        logger.debug('Migrate/Install/UnInstall log should not be downloaded')
        return

    try:
        logger.debug('Releasing old connection')
        InventoryUtils.releaseConnection(Framework)
        logger.debug('Preparing framework for new connection')
        AgentUtils.prepareFrameworkForShellOrAgentConnect(Framework)
    except:
        errorMessage = str(sys.exc_info()[1])
        logger.debugException(
            'Failed to initialize connection for downloading agent log files' +
            errorMessage)
        return

    if downloadMigrateLog:
        # If need to download migrate log, we need to connect to DDMi agent as well
        Framework.setProperty(InventoryUtils.STATE_PROPERTY_IS_MIGRATE,
                              str('true'))

    if not InventoryUtils.ensureConnection(Framework):
        logger.debug(
            'Failed to connect to the remote machine, no logs available')
    else:
        ip_address = Framework.getTriggerCIData('ip_address')
        localInstallFile = None
        localUnInstallFile = None
        try:
            try:
                agentsConfigFile = Framework.getConfigFile(
                    CollectorsConstants.AGENTSSBYPLATFORM_FILE_NAME)
                BASEDIR = Framework.getProperty(
                    InventoryUtils.STATE_PROPERTY_RESOLVED_BASEDIR)
                architecture = Framework.getProperty(
                    InventoryUtils.STATE_PROPERTY_ARCHITECTURE)
                agentPlatformConfig = agentsConfigFile.getPlatformConfiguration(
                    platform, architecture)
                ip_address_str = str(ip_address)
                if (ip_address_str.find(':') <> -1):
                    ip_address_str = ip_address_str.replace(':', '-')

                if downloadMigrateLog:
                    logger.debug('Download the migrate log')
                    installLogFile = agentPlatformConfig.getUpgradeLogFile()
                    localInstallFile = File(
                        AGENTS_LOGS_TEMP_DIR_FILE,
                        ip_address_str + '-' + installLogFile)
                    getLogFileContent(Framework, localInstallFile,
                                      str(BASEDIR) + installLogFile)
                if downloadInstallLog:
                    logger.debug('Download the install/update log')
                    if AgentUtils.isUpgradeByUDAgent(Framework):
                        installLogFile = agentPlatformConfig.getUpgradeLogFile(
                        )
                    else:
                        installLogFile = agentPlatformConfig.getInstallLogFile(
                        )
                    localInstallFile = File(
                        AGENTS_LOGS_TEMP_DIR_FILE,
                        ip_address_str + '-' + installLogFile)
                    getLogFileContent(Framework, localInstallFile,
                                      str(BASEDIR) + installLogFile)
                if downloadUnInstallLog:
                    logger.debug('Download the uninstall log')
                    unInstallLogFile = agentPlatformConfig.getUnInstallLogFile(
                    )
                    localUnInstallFile = File(
                        AGENTS_LOGS_TEMP_DIR_FILE,
                        ip_address_str + '-' + unInstallLogFile)
                    getLogFileContent(Framework, localUnInstallFile,
                                      str(BASEDIR) + unInstallLogFile)
            except:
                errorMessage = str(sys.exc_info()[1])
                logger.debugException(errorMessage)
                Framework.reportError(
                    inventoryerrorcodes.
                    INVENTORY_DISCOVERY_FAILED_EXECUTE_STEP,
                    ['FinalizeAndReleaseResources', errorMessage])
        finally:
            try:
                if localInstallFile and not localInstallFile.delete():
                    logger.debug('File was not deleted:' +
                                 localInstallFile.getCanonicalPath())
            except:
                logger.debugException('Failed to delete ' +
                                      localInstallFile.getCanonicalPath())
            try:
                logger.debug('Going to delete file ' +
                             localInstallFile.getCanonicalPath())
                if localUnInstallFile and not localUnInstallFile.delete():
                    logger.debug('File was not deleted:' +
                                 localUnInstallFile.getCanonicalPath())
            except:
                logger.debugException('Failed to delete ' +
                                      localUnInstallFile.getCanonicalPath())