[Feature]: ARCBackend — submit + status over ARC 7 REST, token auth
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 28/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 冷清
- 技术栈
- python
调研方向
先阅读 DIRAC 的 AREXComputingElement.py 和现有的 contract interfaces,然后检查 arc-slurm stack 及其 manifest。该 issue 除了 config/proxy/ 和 remote arc marker 外,没有指出实现文件或测试文件,因此请在编码前梳理这些集成点。列出的 token/proxy contract、bulk、state、retrieval、delegation 和 registration 检查全部通过后,即表示完成。
由索引模型根据 Issue 内容生成。
描述
User Story
As the WMS consumer,
I want an ARCBackend that submits and monitors jobs on an ARC 7 CE via REST with token auth,
So that the primary grid-CE path (DIRAC's AREX CE) exists on the new contract, validated against
the arc-slurm stack.
Feature Description
Essential half of the AREX port (IC-ADR-001 migration map):
ARCBackend: implementsSubmitter+Monitoragainst the ARC REST
API (/arex/rest/1.0) usingpyarcrest(evaluate fitness; fall back to httpx against the REST
spec if it can't do async/bulk cleanly — record the choice).- Job description generation from
SubmissionSpec(XRSL or ADL — pick one, document why;
DIRAC builds XRSL), incl. input-sandbox declaration and queue targeting. - Bulk semantics: ARC REST supports multi-job operations — submit
countcopies and poll many
ids per call; per-id failures ride the outcome maps. - State normalisation: ARC state map →
JobStatus(port DIRAC'sSTATES_MAP, incl. the
auto-kill-on-Holdquestion — surface as policy, don't hide it in the backend). - Token auth per IC-ADR-003: bearer header, audience exposure. Proxy/delegation
is issue-14. OutputRetriever(destructive=False): list the ARC session dir, stream every member into
destfile-by-file, return theJobOutputmanifest (.stdout/.stderr/.files/.log).
Bounded materialisation enforced inline: byte ceiling mid-stream, file-count ceiling,
per-transfer timeout, path containment (../absolute members rejected) — IC-ADR-001 §4.Cancellable.kill/Purgeable.purge(DIRACkillJob/cleanJob): bulk, per-id outcomes.LoadReporter.counts()from the CE info endpoint.SupportsLiveDiagnostics.diagnostics(): thediagnose/errorsendpoint — the one genuinely
independent, non-destructive pre-completion fetch.- Proxy/delegation auth: create delegation (CSR → sign with the
proxy chain → upload), renew,AlwaysIncludeProxyparity where tokens+proxy coexist. Add the
config/proxy/configuration axis to thearc-slurmstack (ADR-002 §7) to test it. - Fetch-twice regression test proving re-fetchability (
destructive=False) — the counterpart
of HTCondor's one-shot test. - Phase 2 wiring: contract suite (submit/status subset) against the
arc-slurmstack
(markersremote and arc).
Definition of Done
- Full contract suite (all capabilities) green against
arc-slurm, both token and proxy
configs -
count > 1submission bundles oneSubmissionwith per-copy failure reporting - Unknown/expired ids →
JobStatus.UNKNOWN(never dropped) - State map unit-tested; Hold handling decided and documented
- Fetch-twice test green; containment/ceiling tests green (hostile filenames, oversized
output) - Delegation renewal covered by a test (short-lived test-CA proxy)
-
arc-slurmstack gainsconfig/proxy/; manifest updated - Registered via
intercede.backendsasarc
Alternatives Considered
- Wrapping the
arcCLI tools — spawns processes, brittle parsing; REST is first-class in ARC 7
and DIRAC's AREX already proves it.
Related Issues
Additional Context
ARC floor is 7.x (IC-ADR-002 §8). DIRAC reference: `AREXComputingElement.py
- 主要语言
- Python
- 星标
- 3
- 派生
- 3
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
DIRACGrid/intercede 的其他 Issue
-
难度 5/5 一周以上 新手友好度 38/100
-
难度 5/5 一周以上 新手友好度 35/100
-
难度 4/5 3-5 天 新手友好度 45/100
-
难度 5/5 一周以上 新手友好度 25/100
-
难度 5/5 一周以上 新手友好度 35/100
查看 DIRACGrid/intercede 的全部 Issue
相似的 Issue
-
agent-ready documentation needs-triage
难度 1/5 1-3 小时 新手友好度 88/100
-
documentation
难度 1/5 1 小时以内 新手友好度 91/100
-
workflow-status page template still says reusable workflows are "triggered only by workflow_call:" 未关闭
难度 1/5 1 小时以内 新手友好度 92/100
-
instance instance add
难度 1/5 1 小时以内 新手友好度 72/100
searxng/searx-instances#939 · 1 条评论 ·
-
area-deployment area-integrations triage:bot-seen
难度 2/5 半天 新手友好度 86/100