Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Commit

Permalink
webserver module use hosturl from WebServerManager
Browse files Browse the repository at this point in the history
  • Loading branch information
iLLiCiTiT committed Aug 24, 2021
1 parent e8fa377 commit ad5a73d
Showing 1 changed file with 24 additions and 9 deletions.
33 changes: 24 additions & 9 deletions openpype/modules/webserver/webserver_module.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,15 @@ class WebServerModule(PypeModule, ITrayService):
name = "webserver"
label = "WebServer"

webserver_url_env = "OPENPYPE_WEBSERVER_URL"

def initialize(self, _module_settings):
self.enabled = True
self.server_manager = None
self._host_listener = None

self.port = self.find_free_port()
self.webserver_url = None

def connect_with_modules(self, enabled_modules):
if not self.server_manager:
Expand All @@ -51,7 +54,7 @@ def _add_resources_statics(self):
self.server_manager.add_static(static_prefix, resources.RESOURCES_DIR)

os.environ["OPENPYPE_STATICS_SERVER"] = "{}{}".format(
os.environ["OPENPYPE_WEBSERVER_URL"], static_prefix
self.webserver_url, static_prefix
)

def _add_listeners(self):
Expand All @@ -69,21 +72,33 @@ def stop_server(self):
if self.server_manager:
self.server_manager.stop_server()

@staticmethod
def create_new_server_manager(port=None, host=None):
"""Create webserver manager for passed port and host.
Args:
port(int): Port on which wil webserver listen.
host(str): Host name or IP address. Default is 'localhost'.
Returns:
WebServerManager: Prepared manager.
"""
from .server import WebServerManager

return WebServerManager(port, host)

def create_server_manager(self):
if self.server_manager:
return

from .server import WebServerManager

self.server_manager = WebServerManager(self)
self.server_manager = self.create_new_server_manager(self.port)
self.server_manager.on_stop_callbacks.append(
self.set_service_failed_icon
)
# 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

webserver_url = self.server_manager.url
os.environ[self.webserver_url_env] = str(webserver_url)
self.webserver_url = webserver_url

@staticmethod
def find_free_port(
Expand Down

0 comments on commit ad5a73d

Please sign in to comment.