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 connectToRemoteNode(Framework): client = Framework.getConnectedClient() Framework.setProperty( InventoryUtils.STATE_PROPERTY_RESOLVED_BASEDIR, Framework.getProperty( InventoryUtils.STATE_PROPERTY_RESOLVED_CONFIGURED_BASEDIR)) client.setOptionsDirectory( Framework.getProperty(InventoryUtils.STATE_PROPERTY_RESOLVED_BASEDIR)) InventoryUtils.setConnectedClientIdentifier(Framework, client) Framework.setStepExecutionStatus(WorkflowStepStatus.SUCCESS)
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 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 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 connectToRemoteNode(Framework): client = Framework.getConnectedClient() Framework.setProperty(InventoryUtils.STATE_PROPERTY_RESOLVED_BASEDIR, Framework.getProperty(InventoryUtils.STATE_PROPERTY_RESOLVED_CONFIGURED_BASEDIR)) client.setOptionsDirectory(Framework.getProperty(InventoryUtils.STATE_PROPERTY_RESOLVED_BASEDIR)) InventoryUtils.setConnectedClientIdentifier(Framework, client) Framework.setStepExecutionStatus(WorkflowStepStatus.SUCCESS)