From patchwork Tue Jan 31 11:49:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 18843 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id B4354C38142 for ; Tue, 31 Jan 2023 11:50:03 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.10210.1675165798142807638 for ; Tue, 31 Jan 2023 03:49:58 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id F3D022F4; Tue, 31 Jan 2023 03:50:38 -0800 (PST) Received: from oss-tx204.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 786593F71E; Tue, 31 Jan 2023 03:49:56 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Cc: nd@arm.com Subject: [PATCH v2 1/2] sdkext/cases/devtool: pass a logger to HTTPService Date: Tue, 31 Jan 2023 11:49:53 +0000 Message-Id: <20230131114954.2579029-1-ross.burton@arm.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 31 Jan 2023 11:50:03 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/176515 Pass our logger to the HTTPService instance so we can see the requests and any errors. Signed-off-by: Ross Burton --- meta/lib/oeqa/sdkext/cases/devtool.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/lib/oeqa/sdkext/cases/devtool.py b/meta/lib/oeqa/sdkext/cases/devtool.py index a5c6a76e02d..5ffb732556b 100644 --- a/meta/lib/oeqa/sdkext/cases/devtool.py +++ b/meta/lib/oeqa/sdkext/cases/devtool.py @@ -112,7 +112,7 @@ class SdkUpdateTest(OESDKExtTestCase): cmd = 'oe-publish-sdk %s %s' % (tcname_new, self.publish_dir) subprocess.check_output(cmd, shell=True) - self.http_service = HTTPService(self.publish_dir) + self.http_service = HTTPService(self.publish_dir, logger=self.logger) self.http_service.start() self.http_url = "http://127.0.0.1:%d" % self.http_service.port From patchwork Tue Jan 31 11:49:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 18844 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id B4385C636D3 for ; Tue, 31 Jan 2023 11:50:03 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.10211.1675165798236377020 for ; Tue, 31 Jan 2023 03:49:58 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A0AA21713; Tue, 31 Jan 2023 03:50:39 -0800 (PST) Received: from oss-tx204.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 254FE3F71E; Tue, 31 Jan 2023 03:49:57 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Cc: nd@arm.com Subject: [PATCH v2 2/2] oeqa/utils/httpserver: connect up the request logging Date: Tue, 31 Jan 2023 11:49:54 +0000 Message-Id: <20230131114954.2579029-2-ross.burton@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230131114954.2579029-1-ross.burton@arm.com> References: <20230131114954.2579029-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 31 Jan 2023 11:50:03 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/176516 Call logger.info() in the log_message handler so that we get request logging, and hopefully even error messages. Create a child logger to be neat and compartmentalise the logging. Add a __main__ entrypoint so this class can be exercised outside of oeqa. Remove unused traceback import. Signed-off-by: Ross Burton --- meta/lib/oeqa/utils/httpserver.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/meta/lib/oeqa/utils/httpserver.py b/meta/lib/oeqa/utils/httpserver.py index 8ce1dd42f49..2aa172bf799 100644 --- a/meta/lib/oeqa/utils/httpserver.py +++ b/meta/lib/oeqa/utils/httpserver.py @@ -5,9 +5,9 @@ # import http.server +import logging import multiprocessing import os -import traceback import signal from socketserver import ThreadingMixIn @@ -15,20 +15,24 @@ class HTTPServer(ThreadingMixIn, http.server.HTTPServer): def server_start(self, root_dir, logger): os.chdir(root_dir) + self.logger = logger self.serve_forever() class HTTPRequestHandler(http.server.SimpleHTTPRequestHandler): def log_message(self, format_str, *args): - pass + self.server.logger.info(format_str, *args) -class HTTPService(object): +class HTTPService: def __init__(self, root_dir, host='', port=0, logger=None): self.root_dir = root_dir self.host = host self.port = port - self.logger = logger + if logger: + self.logger = logger.getChild("HTTPService") + else: + self.logger = logging.getLogger("HTTPService") def start(self): if not os.path.exists(self.root_dir): @@ -49,7 +53,7 @@ class HTTPService(object): signal.signal(signal.SIGTERM, orig) if self.logger: - self.logger.info("Started HTTPService on %s:%s" % (self.host, self.port)) + self.logger.info("Started HTTPService for %s on %s:%s" % (self.root_dir, self.host, self.port)) def stop(self): @@ -61,3 +65,10 @@ class HTTPService(object): if self.logger: self.logger.info("Stopped HTTPService on %s:%s" % (self.host, self.port)) +if __name__ == "__main__": + import sys, logging + + logger = logging.getLogger(__name__) + logging.basicConfig(level=logging.DEBUG) + httpd = HTTPService(sys.argv[1], port=8888, logger=logger) + httpd.start()