diff --git a/daemon/core/api/grpc/client.py b/daemon/core/api/grpc/client.py index a51f3724..6098db25 100644 --- a/daemon/core/api/grpc/client.py +++ b/daemon/core/api/grpc/client.py @@ -137,7 +137,7 @@ class CoreGrpcClient: Provides convenience methods for interfacing with the CORE grpc server. """ - def __init__(self, address="localhost:50051"): + def __init__(self, address="localhost:50051", proxy=False): """ Creates a CoreGrpcClient instance. @@ -146,6 +146,7 @@ class CoreGrpcClient: self.address = address self.stub = None self.channel = None + self.proxy = proxy def start_session( self, @@ -1035,7 +1036,9 @@ class CoreGrpcClient: :return: nothing """ - self.channel = grpc.insecure_channel(self.address) + self.channel = grpc.insecure_channel( + self.address, options=[("grpc.enable_http_proxy", self.proxy)] + ) self.stub = core_pb2_grpc.CoreApiStub(self.channel) def close(self): diff --git a/daemon/core/gui/app.py b/daemon/core/gui/app.py index dba22068..2596a411 100644 --- a/daemon/core/gui/app.py +++ b/daemon/core/gui/app.py @@ -17,8 +17,8 @@ HEIGHT = 800 class Application(tk.Frame): - def __init__(self, master=None): - super().__init__(master) + def __init__(self, proxy): + super().__init__(master=None) # load node icons NodeUtils.setup() @@ -33,7 +33,7 @@ class Application(tk.Frame): self.guiconfig = appconfig.read() self.style = ttk.Style() self.setup_theme() - self.core = CoreClient(self) + self.core = CoreClient(self, proxy) self.setup_app() self.draw() self.core.set_up() diff --git a/daemon/core/gui/coreclient.py b/daemon/core/gui/coreclient.py index 220719cb..23f7adc0 100644 --- a/daemon/core/gui/coreclient.py +++ b/daemon/core/gui/coreclient.py @@ -47,11 +47,11 @@ class Observer: class CoreClient: - def __init__(self, app): + def __init__(self, app, proxy): """ Create a CoreGrpc instance """ - self.client = client.CoreGrpcClient() + self.client = client.CoreGrpcClient(proxy=proxy) self.session_id = None self.node_ids = [] self.app = app diff --git a/daemon/scripts/coretk-gui b/daemon/scripts/coretk-gui index 1ddb7526..4fc60d51 100755 --- a/daemon/scripts/coretk-gui +++ b/daemon/scripts/coretk-gui @@ -1,4 +1,5 @@ #!/usr/bin/env python +import argparse import logging from core.gui import appconfig @@ -6,10 +7,18 @@ from core.gui.app import Application from core.gui.images import Images if __name__ == "__main__": + # parse flags + parser = argparse.ArgumentParser(description=f"CORE Python Tk GUI") + parser.add_argument("-p", "--proxy", action="store_true", help="enable proxy") + args = parser.parse_args() + + # setup logging log_format = "%(asctime)s - %(levelname)s - %(module)s:%(funcName)s - %(message)s" logging.basicConfig(level=logging.DEBUG, format=log_format) logging.getLogger("PIL").setLevel(logging.ERROR) + + # start app Images.load_all() appconfig.check_directory() - app = Application() + app = Application(args.proxy) app.mainloop()