Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion das-cli/src/commands/query_agent/query_agent_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ def run(self, port_range: str):
class QueryAgentCli(CommandGroup):
name = "query-agent"

aliases = ["qa", "query"]
aliases = ["qa", "query", "query-engine", "qe"]
Comment thread
levisingularity marked this conversation as resolved.

short_help = SHORT_HELP_QA
help = HELP_QA
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

class MettaSyntaxContainerManager(ContainerManager):
def __init__(self) -> None:

container = Container(
"das-metta-parser",
metadata=ContainerMetadata(
Expand All @@ -24,6 +25,8 @@ def __init__(self) -> None:
),
)

self._options = {"service_name": "Metta Syntax Check", "service_command_label": "metta"}

super().__init__(container)

def start_container(self, filepath):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def __init__(
self._settings = settings

def _list_service_containers(self) -> list[Container]:
return self.get_docker_client().containers.list(filters={"name": "das"})
return self.get_docker_client().containers.list(filters={"label": "das-cli.managed=true"})
Comment thread
coderabbitai[bot] marked this conversation as resolved.

def get_services_status(self) -> dict:

Expand All @@ -36,6 +36,7 @@ def get_services_status(self) -> dict:

def _safe_get_container_stats(self, container: Container) -> dict:
try:
container_labels: dict = container.labels
container_stats = container.stats(stream=False)
cpu_memory_info = self._parse_container_stats(container_stats)

Expand All @@ -48,6 +49,8 @@ def _safe_get_container_stats(self, container: Container) -> dict:

return {
"container_name": container_name,
"service_name": container_labels.get("das-cli.service.name", None),
"service_command_label": container_labels.get("das-cli.command.label", None),
"image": image,
"port": port,
"age": age,
Expand Down
23 changes: 23 additions & 0 deletions das-cli/src/common/docker/container_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ def __init__(
exec_context: Union[str, None] = None,
) -> None:
super().__init__(exec_context)
self._options: dict[str, Any]
Comment thread
coderabbitai[bot] marked this conversation as resolved.
self._container = container

def get_container(self) -> Container:
Expand All @@ -93,6 +94,26 @@ def _exec_container(self, command: str):
except docker.errors.APIError as e:
raise DockerError(e.explanation)

@property
def labels(self):

REQUIRED_LABELS = ["service_name", "service_command_label"]
missing = []

for label in REQUIRED_LABELS:
if label not in self._options:
missing.append(label)

if missing:
raise KeyError(
f"Internal error in das-cli, could not find required values to form container metadata.\n Missing keys {' '.join(missing)}"
)

return {
"das-cli.service.name": self._options.get("service_name"),
"das-cli.command.label": self._options.get("service_command_label"),
}
Comment thread
levisingularity marked this conversation as resolved.

def _start_container(self, **kwargs) -> Any:
self.raise_running_container()

Expand All @@ -103,9 +124,11 @@ def _start_container(self, **kwargs) -> Any:
name=self.get_container().name,
detach=True,
network=SERVICES_NETWORK_NAME,
labels={"das-cli.managed": "true", **self.labels},
)

return response

except docker.errors.APIError as e:
if e.response.status_code == 404:
raise DockerContainerNotFoundError(
Expand Down
2 changes: 2 additions & 0 deletions das-cli/src/common/factory/atomdb/mongodb_manager_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ def build(self):
return MongodbContainerManager(
container_name,
options={
"service_name": "MongoDB",
"service_command_label": "db",
"mongodb_endpoint": mongodb_endpoint,
"mongodb_port": mongodb_port,
"mongodb_username": mongodb_username,
Expand Down
2 changes: 2 additions & 0 deletions das-cli/src/common/factory/atomdb/morkdb_manager_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ def build(self):
return MorkdbContainerManager(
container_name,
options={
"service_name": "MorkDB",
"service_command_label": "db",
"morkdb_endpoint": morkdb_endpoint,
"morkdb_port": morkdb_port,
"morkdb_hostname": "0.0.0.0" if morkdb_hostname == "localhost" else morkdb_hostname,
Expand Down
2 changes: 2 additions & 0 deletions das-cli/src/common/factory/atomdb/redis_manager_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ def build(self):
return RedisContainerManager(
container_name,
options={
"service_name": "Redis",
"service_command_label": "db",
"redis_endpoint": redis_endpoint,
"redis_port": redis_port,
"redis_nodes": redis_nodes,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,7 @@ def build(self):
options={
"attention_broker_hostname": "0.0.0.0",
"attention_broker_port": attention_broker_port,
"service_name": "Attention Broker",
"service_command_label": "attention-broker",
},
)
13 changes: 13 additions & 0 deletions das-cli/src/common/factory/busnode_manager_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,17 @@ class BusNodeContainerManagerFactory:
def __init__(self):
self._settings = Settings(store=JsonConfigStore(os.path.expanduser(SECRETS_PATH)))

def format_service_name(self, service_name: str) -> str:

if service_name.__contains__("-"):
formatted_name = service_name.replace("-", " ").title()

return formatted_name

else:
formatted_name = service_name.capitalize()
return formatted_name

def build(self, use_settings_from: str, service_name: str) -> BusNodeContainerManager:
service_port = extract_service_port(self._settings.get(f"{use_settings_from}.endpoint"))

Expand All @@ -37,6 +48,8 @@ def build(self, use_settings_from: str, service_name: str) -> BusNodeContainerMa
default_container_name,
options={
"service": service_name,
"service_name": self.format_service_name(service_name),
"service_command_label": service_name,
"service_port": service_port,
"service_endpoint": service_endpoint,
"attention_broker_hostname": attention_broker_hostname,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,7 @@ def build(self):
options={
"context_mapping_paths": context_mapping_paths,
"metta_output_dir": metta_output_dir,
"service_name": "Database Adapter",
"service_command_label": "database-adapter",
},
)
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,7 @@ def build(self):
options={
"jupyter_notebook_port": jupyter_notebook_port,
"jupyter_notebook_hostname": jupyter_notebook_hostname,
"service_name": "Jupyter Notebook",
"service_command_label": "jupyter-notebook",
},
)
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,8 @@ def build(self):

return DatabaseLoaderContainerManager(
container_name,
options={},
options={
"service_name": "Metta Loader",
"service_command_label": "metta",
},
)
Loading