Skip to content

Commit 39d1c86

Browse files
committed
[iris] Ignore unknown inherited constraint fields
1 parent 1729aeb commit 39d1c86

2 files changed

Lines changed: 23 additions & 1 deletion

File tree

lib/iris/src/iris/cluster/client/job_info.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,12 @@ def get_job_info() -> JobInfo | None:
109109
constraints: list[Constraint] = []
110110
if constraints_json:
111111
for item in json.loads(constraints_json):
112-
constraints.append(Constraint.from_proto(json_format.ParseDict(item, cluster_pb2.Constraint())))
112+
constraint_proto = json_format.ParseDict(
113+
item,
114+
cluster_pb2.Constraint(),
115+
ignore_unknown_fields=True,
116+
)
117+
constraints.append(Constraint.from_proto(constraint_proto))
113118

114119
info = JobInfo(
115120
task_id=task_id,

lib/iris/tests/cluster/client/test_job_info.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,23 @@ def test_get_job_info_accepts_legacy_iris_job_id_env(monkeypatch):
7979
set_job_info(None)
8080

8181

82+
def test_get_job_info_ignores_unknown_constraint_fields(monkeypatch):
83+
set_job_info(None)
84+
monkeypatch.delenv("IRIS_JOB_ID", raising=False)
85+
monkeypatch.setenv("IRIS_TASK_ID", "/alice/train/0:0")
86+
monkeypatch.setenv(
87+
"IRIS_JOB_CONSTRAINTS",
88+
'[{"key":"region","op":0,"mode":"cohort"}]',
89+
)
90+
91+
info = get_job_info()
92+
93+
assert info is not None
94+
assert len(info.constraints) == 1
95+
assert info.constraints[0].key == "region"
96+
set_job_info(None)
97+
98+
8299
def test_worker_region_from_env(monkeypatch):
83100
"""IRIS_WORKER_REGION is read into JobInfo.worker_region."""
84101
set_job_info(None)

0 commit comments

Comments
 (0)