From a3f106736456755f7e7a9d4399eba68cc54d321a Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Tue, 24 Aug 2021 11:08:44 +0200 Subject: [PATCH] Webpublisher - webserver ip is configurable In some cases webserver needs to listen on specific ip (because of Docker) --- openpype/modules/webserver/server.py | 5 ++++- openpype/modules/webserver/webserver_cli.py | 5 +++-- openpype/modules/webserver/webserver_module.py | 5 ++++- website/docs/admin_webserver_for_webpublisher.md | 1 + 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/openpype/modules/webserver/server.py b/openpype/modules/webserver/server.py index 65c5795995..9d99e1c7a3 100644 --- a/openpype/modules/webserver/server.py +++ b/openpype/modules/webserver/server.py @@ -1,5 +1,6 @@ import threading import asyncio +import os from aiohttp import web @@ -110,7 +111,9 @@ class WebServerThread(threading.Thread): """ Starts runner and TCPsite """ self.runner = web.AppRunner(self.manager.app) await self.runner.setup() - self.site = web.TCPSite(self.runner, 'localhost', self.port) + host_ip = os.environ.get("WEBSERVER_HOST_IP") or 'localhost' + log.info("host_ip:: {}".format(os.environ.get("WEBSERVER_HOST_IP"))) + self.site = web.TCPSite(self.runner, host_ip, self.port) await self.site.start() def stop(self): diff --git a/openpype/modules/webserver/webserver_cli.py b/openpype/modules/webserver/webserver_cli.py index 8e4dfd229d..24bd28ba7d 100644 --- a/openpype/modules/webserver/webserver_cli.py +++ b/openpype/modules/webserver/webserver_cli.py @@ -19,7 +19,7 @@ from .webpublish_routes import ( from openpype.api import get_system_settings -SERVER_URL = "http://172.17.0.1:8079" # machine is not listening on localhost +# SERVER_URL = "http://172.17.0.1:8079" # machine is not listening on localhost log = PypeLogger().get_logger("webserver_gui") @@ -129,7 +129,8 @@ def reprocess_failed(upload_dir): }} ) continue - server_url = "{}/api/webpublish/batch".format(SERVER_URL) + server_url = "{}/api/webpublish/batch".format( + os.environ["OPENPYPE_WEBSERVER_URL"]) with open(batch_url) as f: data = json.loads(f.read()) diff --git a/openpype/modules/webserver/webserver_module.py b/openpype/modules/webserver/webserver_module.py index 4832038575..10508265da 100644 --- a/openpype/modules/webserver/webserver_module.py +++ b/openpype/modules/webserver/webserver_module.py @@ -79,7 +79,10 @@ class WebServerModule(PypeModule, ITrayService): self.server_manager.on_stop_callbacks.append( self.set_service_failed_icon ) - webserver_url = "http://localhost:{}".format(self.port) + # in a case that webserver should listen on specific ip (webpublisher) + self.log.info("module host_ip:: {}".format(os.environ.get("WEBSERVER_HOST_IP"))) + host_ip = os.environ.get("WEBSERVER_HOST_IP") or 'localhost' + webserver_url = "http://{}:{}".format(host_ip, self.port) os.environ["OPENPYPE_WEBSERVER_URL"] = webserver_url @staticmethod diff --git a/website/docs/admin_webserver_for_webpublisher.md b/website/docs/admin_webserver_for_webpublisher.md index 748b269ad7..2b23033595 100644 --- a/website/docs/admin_webserver_for_webpublisher.md +++ b/website/docs/admin_webserver_for_webpublisher.md @@ -40,6 +40,7 @@ Deploy OP build distribution (Openpype Igniter) on an OS of your choice. ```sh #!/usr/bin/env bash export OPENPYPE_DEBUG=3 +export WEBSERVER_HOST_IP=localhost export FTRACK_BOT_API_KEY=YOUR_API_KEY export PYTHONDONTWRITEBYTECODE=1 export OPENPYPE_MONGO=YOUR_MONGODB_CONNECTION