comparison sat/plugins/plugin_comp_ap_gateway/http_server.py @ 3847:aaa4e7815ba8

component AP gateway: new `verbose` attribute in AP gateway to activate debug logs: when verbose is not null, object posted or returned on GET request are logged. Check comments for vebosity level
author Goffi <goffi@goffi.org>
date Thu, 14 Jul 2022 12:55:30 +0200
parents cc13efdd8360
children c0bcbcf5b4b7
comparison
equal deleted inserted replaced
3846:cc13efdd8360 3847:aaa4e7815ba8
686 async def APRequest( 686 async def APRequest(
687 self, 687 self,
688 request: "HTTPRequest", 688 request: "HTTPRequest",
689 signing_actor: Optional[str] = None 689 signing_actor: Optional[str] = None
690 ) -> None: 690 ) -> None:
691 if self.apg.verbose:
692 try:
693 data = json.load(request.content)
694 except (json.JSONDecodeError, ValueError) as e:
695 pass
696 else:
697 from pprint import pformat
698 log.info(
699 f"==> got {request.method.decode()} request:\n{pformat(data)}\n---"
700 )
701
702 finally:
703 request.content.seek(0)
704
691 path = request.path.decode() 705 path = request.path.decode()
692 ap_url = parse.urljoin( 706 ap_url = parse.urljoin(
693 f"https://{self.apg.public_url}", 707 f"https://{self.apg.public_url}",
694 path 708 path
695 ) 709 )
723 request, account_jid, node, ap_account, ap_url, signing_actor 737 request, account_jid, node, ap_account, ap_url, signing_actor
724 ) 738 )
725 if ret_data is not None: 739 if ret_data is not None:
726 request.setHeader("content-type", CONTENT_TYPE_AP) 740 request.setHeader("content-type", CONTENT_TYPE_AP)
727 request.write(json.dumps(ret_data).encode()) 741 request.write(json.dumps(ret_data).encode())
742 if self.apg.verbose>=2:
743 from pprint import pformat
744 to_log = [f"==> ret (code: {request.code}):\n{pformat(ret_data)}"]
745 log.info(
746
747 )
748 if self.apg.verbose>=3:
749 headers = "\n".join(
750 f" {k.decode()}: {v.decode()}"
751 for k,v in request.getAllHeaders().items()
752 )
753 to_log.append(" headers:\n{headers}")
754 to_log.append("---")
755 log.info("\n".join(to_log))
728 request.finish() 756 request.finish()
729 757
730 async def APPostRequest(self, request: "HTTPRequest"): 758 async def APPostRequest(self, request: "HTTPRequest"):
731 try: 759 try:
732 signing_actor = await self.checkSignature(request) 760 signing_actor = await self.checkSignature(request)