Skip to content

Commit acef812

Browse files
authored
Merge pull request flatland-association#17 from flatland-association/fix-interactive-orchestrator
ops(railway test runners): railway orchestrator permission fixes.
2 parents 77c24e6 + 8080146 commit acef812

File tree

2 files changed

+35
-31
lines changed

2 files changed

+35
-31
lines changed

ai4realnet_orchestrators/railway/abstract_test_runner_railway.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ def exec(self, generate_policy_args: List[str], scenario_id: str, submission_id:
5050
"/home/conda/entrypoint_generic.sh", "flatland-trajectory-generate-from-policy",
5151
] + generate_policy_args
5252
exec_with_logging(args if not SUDO else ["sudo"] + args, log_level_stdout=logging.DEBUG)
53+
54+
args = ["docker", "run", "--rm", "-v", f"{DATA_VOLUME}:/vol", "alpine:latest", "chmod", "-R", "a=rwx",
55+
f"/vol/{submission_id}/{self.test_id}/{scenario_id}"]
56+
exec_with_logging(args if not SUDO else ["sudo"] + args)
5357
else:
5458
from flatland.trajectories.policy_runner import generate_trajectory_from_policy
5559
Path(f"{DATA_VOLUME_MOUNTPATH}/{subdir}").mkdir(parents=True, exist_ok=False)

ai4realnet_orchestrators/railway/playground/orchestrator_interactive.py

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,54 +5,54 @@
55
from typing import List
66

77
from celery import Celery
8-
from fab_clientlib import ApiClient, DefaultApi, Configuration
98

109
from ai4realnet_orchestrators.orchestrator import Orchestrator
11-
from ai4realnet_orchestrators.railway.test_runner_c4c70f8a import TestRunnerc4c70f8a
10+
from ai4realnet_orchestrators.railway.playground.test_runner_playground_interactive import TestRunnerPlaygroundInteractive
11+
from fab_clientlib import ApiClient, DefaultApi, Configuration
1212

1313
logger = logging.getLogger(__name__)
1414

1515
app = Celery(
16-
broker=os.environ.get('BROKER_URL'),
17-
backend=os.environ.get('BACKEND_URL'),
18-
queue=os.environ.get("BENCHMARK_ID"),
19-
broker_use_ssl={
20-
'keyfile': os.environ.get("RABBITMQ_KEYFILE"),
21-
'certfile': os.environ.get("RABBITMQ_CERTFILE"),
22-
'ca_certs': os.environ.get("RABBITMQ_CA_CERTS"),
23-
'cert_reqs': ssl.CERT_REQUIRED
24-
}
16+
broker=os.environ.get('BROKER_URL'),
17+
backend=os.environ.get('BACKEND_URL'),
18+
queue=os.environ.get("BENCHMARK_ID"),
19+
broker_use_ssl={
20+
'keyfile': os.environ.get("RABBITMQ_KEYFILE"),
21+
'certfile': os.environ.get("RABBITMQ_CERTFILE"),
22+
'ca_certs': os.environ.get("RABBITMQ_CA_CERTS"),
23+
'cert_reqs': ssl.CERT_REQUIRED
24+
}
2525
)
2626

2727
# Playground: https://ai4realnet-int.flatland.cloud/benchmarks/9fbde927-189e-44bb-8432-f63b491aabb0/734144d1-c88c-4371-9dcf-72dd5dfe058e
2828
interactive_railway_orchestrator = Orchestrator(
29-
test_runners={
30-
"c4c70f8a-679c-4044-a9d4-5e0ce0780a0f": TestRunnerc4c70f8a(
31-
test_id="c4c70f8a-679c-4044-a9d4-5e0ce0780a0f", scenario_ids=['cf8e0a9b-14af-43e1-b1fc-e43bf3aaddd7']
32-
)
33-
}
29+
test_runners={
30+
"c4c70f8a-679c-4044-a9d4-5e0ce0780a0f": TestRunnerPlaygroundInteractive(
31+
test_id="c4c70f8a-679c-4044-a9d4-5e0ce0780a0f", scenario_ids=['cf8e0a9b-14af-43e1-b1fc-e43bf3aaddd7']
32+
)
33+
}
3434
)
3535

3636

3737
# https://docs.celeryq.dev/en/stable/userguide/tasks.html#bound-tasks: A task being bound means the first argument to the task will always be the task instance (self).
3838
# https://docs.celeryq.dev/en/stable/userguide/tasks.html#names: Every task must have a unique name.
3939
@app.task(name=os.environ.get("BENCHMARK_ID"), bind=True)
4040
def orchestrator(self, submission_data_url: str, tests: List[str] = None, **kwargs):
41-
submission_id = self.request.id
42-
benchmark_id = orchestrator.name
43-
logger.info(
44-
f"Queue/task {benchmark_id} received submission {submission_id} with submission_data_url={submission_data_url} for tests={tests}"
45-
)
46-
# fail fast
47-
check_fab_healthy()
48-
return interactive_railway_orchestrator.run(
49-
submission_id=submission_id,
50-
submission_data_url=submission_data_url,
51-
tests=tests,
52-
)
41+
submission_id = self.request.id
42+
benchmark_id = orchestrator.name
43+
logger.info(
44+
f"Queue/task {benchmark_id} received submission {submission_id} with submission_data_url={submission_data_url} for tests={tests}"
45+
)
46+
# fail fast
47+
check_fab_healthy()
48+
return interactive_railway_orchestrator.run(
49+
submission_id=submission_id,
50+
submission_data_url=submission_data_url,
51+
tests=tests,
52+
)
5353

5454

5555
def check_fab_healthy():
56-
FAB_API_URL = os.environ.get("FAB_API_URL")
57-
fab = DefaultApi(ApiClient(configuration=Configuration(host=FAB_API_URL)))
58-
print(fab.health_live_get())
56+
FAB_API_URL = os.environ.get("FAB_API_URL")
57+
fab = DefaultApi(ApiClient(configuration=Configuration(host=FAB_API_URL)))
58+
print(fab.health_live_get())

0 commit comments

Comments
 (0)