def connectToRemoteNode(Framework): Framework.setProperty(InventoryUtils.STATE_PROPERTY_RESOLVED_BASEDIR, Framework.getProperty(InventoryUtils.STATE_PROPERTY_RESOLVED_CONFIGURED_BASEDIR)) Framework.getConnectedClient().setOptionsDirectory(Framework.getProperty(InventoryUtils.STATE_PROPERTY_RESOLVED_BASEDIR)) if AgentUtils.isUpgradeProcess(Framework): # we here means that destination data shows version different from OOTB installer version. # need to recheck with real agent logger.debug('Checking if real version of agent differs from OOTB installer version') agentVersion = None connectedUDACredentialId = None installCredentialId = Framework.getParameter(AgentUtils.UDAGENT_CONNECT_CREDENTIAL_ID_PARAM) logger.debug('Credential id will be used:', installCredentialId) client = Framework.getConnectedClient() if AgentUtils.isUpgradeByUDAgent(Framework): agentVersion = client.getVersion() connectedUDACredentialId = client.getCredentialId() logger.debug('Credential id on remote:', connectedUDACredentialId) AgentUtils.updateCallHomeParams(Framework) AgentUtils.updateSWUtilization(Framework) InventoryUtils.setConnectedClientIdentifier(Framework, client) #Same version and same credential, skip upgrade if AgentUtils.versionsEqual(Framework, agentVersion) and (not installCredentialId or installCredentialId == connectedUDACredentialId): logger.debug('Installed agent version equals to local installer version, skipping upgrade') Framework.setProperty(InventoryUtils.STEP_SKIP_ALL_STEPS_PROPERTY, 'Upgrade not required, real installed agent version equals to the local installer version') client.close() elif Framework.getParameter("UpgradeAgent") == 'false': logger.debug("Upgrade is not required because the job parameter 'UpgradeAgent' is false") Framework.setProperty(InventoryUtils.STEP_SKIP_ALL_STEPS_PROPERTY, "Upgrade is not required because the job parameter 'UpgradeAgent' is false") client.close() else: logger.debug('Installed agent version does not equal to local installer version, Going to execute agent upgrade') Framework.setStepExecutionStatus(WorkflowStepStatus.SUCCESS)
def CheckInstallErrorCode(Framework): if AgentUtils.isUpgradeProcess(Framework): if AgentUtils.isUpgradeByUDAgent(Framework): client = Framework.getConnectedClient() agentVersion = client.getVersion() logger.debug("The current agent version is:", agentVersion) connectedUDACredentialId = client.getCredentialId() logger.debug('Credential id on remote:', connectedUDACredentialId) installCredentialId = Framework.getParameter(AgentUtils.UDAGENT_CONNECT_CREDENTIAL_ID_PARAM) logger.debug('Credential id for upgrade:', installCredentialId) if not AgentUtils.versionsEqual(Framework, agentVersion) or (installCredentialId and installCredentialId != connectedUDACredentialId): logger.debug("Notice: The connected client is still old UDA.") errorCode = AgentUtils.getUpgradeErrorCode(Framework) else: errorCode = AgentUtils.getInstallErrorCode(Framework) if errorCode: if errorCode.isSuccess(): Framework.setProperty(CheckAgentInstalled.FIRST_TRY_INSTALL_AGENT, CheckAgentInstalled.FIRST_TRY_INSTALL_AGENT) Framework.setStepExecutionStatus(WorkflowStepStatus.SUCCESS) elif errorCode.isInProgress(): logger.debug('UDA install command is in progress, will check after parking') Framework.setStepExecutionStatus(WorkflowStepStatus.FAILURE) else: logger.debug('Failed to install UDA according to install error code.') Framework.reportError("Install/Upgrade UDA failed. Reason is:%s" % errorCode.getMessage()) Framework.setStepExecutionStatus(WorkflowStepStatus.FATAL_FAILURE) else: logger.debug('Can not get error code now, will check after parking') Framework.setStepExecutionStatus(WorkflowStepStatus.FAILURE)
def connectToRemoteNode(Framework): Framework.setProperty( InventoryUtils.STATE_PROPERTY_RESOLVED_BASEDIR, Framework.getProperty( InventoryUtils.STATE_PROPERTY_RESOLVED_CONFIGURED_BASEDIR)) Framework.getConnectedClient().setOptionsDirectory( Framework.getProperty(InventoryUtils.STATE_PROPERTY_RESOLVED_BASEDIR)) if AgentUtils.isUpgradeProcess(Framework): # we here means that destination data shows version different from OOTB installer version. # need to recheck with real agent logger.debug( 'Checking if real version of agent differs from OOTB installer version' ) agentVersion = None connectedUDACredentialId = None installCredentialId = Framework.getParameter( AgentUtils.UDAGENT_CONNECT_CREDENTIAL_ID_PARAM) logger.debug('Credential id will be used:', installCredentialId) client = Framework.getConnectedClient() if AgentUtils.isUpgradeByUDAgent(Framework): agentVersion = client.getVersion() connectedUDACredentialId = client.getCredentialId() logger.debug('Credential id on remote:', connectedUDACredentialId) AgentUtils.updateCallHomeParams(Framework) AgentUtils.updateSWUtilization(Framework) InventoryUtils.setConnectedClientIdentifier(Framework, client) #Same version and same credential, skip upgrade if AgentUtils.versionsEqual(Framework, agentVersion) and ( not installCredentialId or installCredentialId == connectedUDACredentialId): logger.debug( 'Installed agent version equals to local installer version, skipping upgrade' ) Framework.setProperty( InventoryUtils.STEP_SKIP_ALL_STEPS_PROPERTY, 'Upgrade not required, real installed agent version equals to the local installer version' ) client.close() elif Framework.getParameter("UpgradeAgent") == 'false': logger.debug( "Upgrade is not required because the job parameter 'UpgradeAgent' is false" ) Framework.setProperty( InventoryUtils.STEP_SKIP_ALL_STEPS_PROPERTY, "Upgrade is not required because the job parameter 'UpgradeAgent' is false" ) client.close() else: logger.debug( 'Installed agent version does not equal to local installer version, Going to execute agent upgrade' ) Framework.setStepExecutionStatus(WorkflowStepStatus.SUCCESS)
def CheckInstallErrorCode(Framework): if AgentUtils.isUpgradeProcess(Framework): if AgentUtils.isUpgradeByUDAgent(Framework): client = Framework.getConnectedClient() agentVersion = client.getVersion() logger.debug("The current agent version is:", agentVersion) connectedUDACredentialId = client.getCredentialId() logger.debug('Credential id on remote:', connectedUDACredentialId) installCredentialId = Framework.getParameter( AgentUtils.UDAGENT_CONNECT_CREDENTIAL_ID_PARAM) logger.debug('Credential id for upgrade:', installCredentialId) if not AgentUtils.versionsEqual(Framework, agentVersion) or ( installCredentialId and installCredentialId != connectedUDACredentialId): logger.debug("Notice: The connected client is still old UDA.") errorCode = AgentUtils.getUpgradeErrorCode(Framework) else: errorCode = AgentUtils.getInstallErrorCode(Framework) if errorCode: if errorCode.isSuccess(): Framework.setProperty(CheckAgentInstalled.FIRST_TRY_INSTALL_AGENT, CheckAgentInstalled.FIRST_TRY_INSTALL_AGENT) Framework.setStepExecutionStatus(WorkflowStepStatus.SUCCESS) elif errorCode.isInProgress(): logger.debug( 'UDA install command is in progress, will check after parking') Framework.setStepExecutionStatus(WorkflowStepStatus.FAILURE) else: logger.debug( 'Failed to install UDA according to install error code.') Framework.reportError("Install/Upgrade UDA failed. Reason is:%s" % errorCode.getMessage()) Framework.setStepExecutionStatus(WorkflowStepStatus.FATAL_FAILURE) else: logger.debug('Can not get error code now, will check after parking') Framework.setStepExecutionStatus(WorkflowStepStatus.FAILURE)