本文整理汇总了Python中InventoryUtils.releaseConnection方法的典型用法代码示例。如果您正苦于以下问题:Python InventoryUtils.releaseConnection方法的具体用法?Python InventoryUtils.releaseConnection怎么用?Python InventoryUtils.releaseConnection使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类InventoryUtils
的用法示例。
在下文中一共展示了InventoryUtils.releaseConnection方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: releaseScannerLock
# 需要导入模块: import InventoryUtils [as 别名]
# 或者: from InventoryUtils import releaseConnection [as 别名]
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)
示例2: releaseResources
# 需要导入模块: import InventoryUtils [as 别名]
# 或者: from InventoryUtils import releaseConnection [as 别名]
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)
示例3: restoreSWUtilizationConfiguration
# 需要导入模块: import InventoryUtils [as 别名]
# 或者: from InventoryUtils import releaseConnection [as 别名]
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)
示例4: checkNonNativeAgentInstalled
# 需要导入模块: import InventoryUtils [as 别名]
# 或者: from InventoryUtils import releaseConnection [as 别名]
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)
示例5: upgradeScanner
# 需要导入模块: import InventoryUtils [as 别名]
# 或者: from InventoryUtils import releaseConnection [as 别名]
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)
示例6: downloadLogsIfNeeded
# 需要导入模块: import InventoryUtils [as 别名]
# 或者: from InventoryUtils import releaseConnection [as 别名]
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())
示例7: checkAgentInstalled
# 需要导入模块: import InventoryUtils [as 别名]
# 或者: from InventoryUtils import releaseConnection [as 别名]
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()