示例#1
0
    def process(self, context:Context, data:InternalData):
        """Set context.target_backend based on the target issuer"""

        target_issuer = context.get_decoration(Context.KEY_TARGET_ENTITYID)
        if not target_issuer:
            logger.info('skipping backend decision because no target_issuer was found')
            return super().process(context, data)

        target_backend = (
            self.target_mapping.get(target_issuer)
            or self.default_backend
        )

        report = {
            'msg': 'decided target backend by target issuer',
            'target_issuer': target_issuer,
            'target_backend': target_backend,
        }
        logger.info(report)

        context.target_backend = target_backend
        return super().process(context, data)