def process(self, context): r''' @types: applications.ApplicationSignatureContext ''' shell = context.client language = shell.getOsLanguage().bundlePostfix db2_instance_osh = context.application.applicationOsh instance_name = self.get_instance_name(context) if instance_name: db2_home_path = self.get_db2_home_path(context) if db2_home_path: version = self.get_db2_version(context) SoftwareBuilder.updateName(db2_instance_osh, instance_name) SoftwareBuilder.updateVersion(db2_instance_osh, build_version_pdo(version)) SoftwareBuilder.updateApplciationPath(db2_instance_osh, db2_home_path) application_port = self.get_application_port(context) if application_port: SoftwareBuilder.updateApplicationPort(db2_instance_osh, application_port) discoverer = self.get_shell_based_discoverer(context) executor = discoverer.get_db2_command_executor(shell) interpreter = shell_interpreter.Factory().create(shell) base_shell_discoverer.Db2.set_db2_bundle(language) self._discover_local_databases(context, instance_name, application_port, db2_home_path, discoverer, executor, interpreter) self._discover_remote_databases(context, instance_name, db2_home_path, discoverer, executor, interpreter) else: logger.debug('No db2 home path found') else: logger.debug('Failed to discover instance instance_name')