Skip to content

Commit

Permalink
fixed builders
Browse files Browse the repository at this point in the history
  • Loading branch information
jhnnsrs committed Apr 4, 2024
1 parent ebb4667 commit 77d15f8
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 6 deletions.
6 changes: 5 additions & 1 deletion contrib/backends/docker_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,11 @@ def render(self, service_instance: str, context: LinkingContext) -> Dict[str, An
assert service.builder in self.loaded_builders, f"Builder {service.builder} not found in loaded builders"
builder = self.loaded_builders[service.builder]

return builder(self.self_service_descriptor, context, service)
try:
return builder(self.self_service_descriptor, context, service)
except Exception as e:
logger.exception(f"Could not render service {service_instance}")
raise Exception(f"Could not render service {service_instance} with {service.builder}") from e


def get_service_descriptors(self) -> list[ServiceDescriptor]:
Expand Down
31 changes: 27 additions & 4 deletions contrib/builders/arkitekt.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@
from contrib.backends.docker_backend import DockerServiceDescriptor, SelfServiceDescriptor


def _create_base_url(self: "SelfServiceDescriptor", context: "LinkingContext", descriptor: "DockerServiceDescriptor"):
def _create_base_url(self: "SelfServiceDescriptor", context: "LinkingContext", descriptor: "DockerServiceDescriptor", inside_port="80/tcp"):
try:
outside_port = descriptor.port_map['80/tcp']
outside_port = descriptor.port_map[inside_port]
except KeyError:
raise Exception(f"Service {descriptor.internal_host} does not expose port 80 only exposes ports: " + str(descriptor.port_map.keys()))
raise Exception(f"Service {descriptor.internal_host} does not expose port {inside_port} only exposes ports: " + str(descriptor.port_map.keys()))

protocol = "https" if context.request.is_secure else "http"
inside_base_url = f"{protocol}://{descriptor.internal_host}:80"
inside_base_url = f"{protocol}://{descriptor.internal_host}:{inside_port.split('/')[0]}"
outside_base_url = f"{protocol}://{context.request.host}:{outside_port}"

# Depending on how the service is accessed, we need to return the correct base_url
Expand Down Expand Up @@ -53,6 +53,22 @@ def lok(self: "SelfServiceDescriptor", context: "LinkingContext", descriptor: "D
return { "base_url": base_url + "/o", "userinfo_url ": f"{base_url}/o/userinfo", "token_url": f"{base_url}/o/token", "authorization_url": f"{base_url}/o/authorize", "client_id": context.client.client_id, "client_secret": context.client.client_secret, "client_type": context.client.client_type, "grant_type": context.client.authorization_grant_type, "name": context.client.name, "scopes": context.manifest.scopes, "__service": "live.arkitekt.lok"} | generic(self, context, descriptor)


def lok_dep(self: "SelfServiceDescriptor", context: "LinkingContext", descriptor: "DockerServiceDescriptor"):

base_url = _create_base_url(self, context, descriptor)



return lok(self, context, descriptor)









def generic(self: "SelfServiceDescriptor", context: "LinkingContext", descriptor: "DockerServiceDescriptor"):

base_url = _create_base_url(self, context, descriptor)
Expand All @@ -74,3 +90,10 @@ def rekuest(self: "SelfServiceDescriptor", context: "LinkingContext", descriptor
return generic(self, context, descriptor) | { "agent": {"endpoint_url:": ws_base_url + "/agi"}}


def datalayer(self: "SelfServiceDescriptor", context: "LinkingContext", descriptor: "DockerServiceDescriptor"):

base_url = _create_base_url(self, context, descriptor, inside_port="9000/tcp")



return { "endpoint_url": base_url}
4 changes: 3 additions & 1 deletion lok/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,9 @@
"BUILDERS": [
"arkitekt.lok",
"arkitekt.generic",
"arkitekt.rekuest"
"arkitekt.rekuest",
"arkitekt.datalayer",
"arkitekt.lok_dep"
],
"DEFAULT_BUILDER": "arkitekt.generic",
},
Expand Down

0 comments on commit 77d15f8

Please sign in to comment.