Skip to content

Commit a52ddb4

Browse files
committed
scripts: add deferred_orelse_reserve to flux-ion-resource
Add functions and parsing for deferred_orelse_reserve RPCs and actions in flux-ion-resource.
1 parent 258389e commit a52ddb4

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

t/scripts/flux-ion-resource.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,14 @@ def rpc_reserve(self, jobid, jobspec_str):
6666
}
6767
return self.f.rpc("sched-fluxion-resource.match", payload).get()
6868

69+
def rpc_defer(self, jobid, jobspec_str):
70+
payload = {
71+
"cmd": "defer_orelse_reserve",
72+
"jobid": jobid,
73+
"jobspec": jobspec_str,
74+
}
75+
return self.f.rpc("sched-fluxion-resource.match", payload).get()
76+
6977
def rpc_info(self, jobid):
7078
payload = {"jobid": jobid}
7179
return self.f.rpc("sched-fluxion-resource.info", payload).get()
@@ -157,6 +165,23 @@ def match_reserve_action(args):
157165
print(resp["R"])
158166

159167

168+
"""
169+
Action for match defer_orelse_reserve sub-command
170+
"""
171+
172+
173+
def match_defer_action(args):
174+
with open(args.jobspec, "r") as stream:
175+
jobspec_str = yaml.dump(yaml.safe_load(stream))
176+
r = ResourceModuleInterface()
177+
resp = r.rpc_defer(r.rpc_next_jobid(), jobspec_str)
178+
print(heading())
179+
print(body(resp["jobid"], resp["status"], resp["at"], resp["overhead"]))
180+
print("=" * width())
181+
print("MATCHED RESOURCES:")
182+
print(resp["R"])
183+
184+
160185
"""
161186
Action for match satisfiability sub-command
162187
"""
@@ -378,6 +403,7 @@ def main():
378403
parser_ma = subparsers_m.add_parser("allocate", help=mastr)
379404
parser_ms = subparsers_m.add_parser("allocate_with_satisfiability", help=msstr)
380405
parser_mr = subparsers_m.add_parser("allocate_orelse_reserve", help=mrstr)
406+
parser_md = subparsers_m.add_parser("defer_orelse_reserve", help=mrstr)
381407
parser_fe = subparsers_m.add_parser("satisfiability", help=festr)
382408

383409
#
@@ -443,6 +469,14 @@ def main():
443469
)
444470
parser_mr.set_defaults(func=match_reserve_action)
445471

472+
#
473+
# Positional argument for match defer_orelse_reserve sub-command
474+
#
475+
parser_md.add_argument(
476+
"jobspec", metavar="Jobspec", type=str, help="Jobspec file name"
477+
)
478+
parser_md.set_defaults(func=match_defer_action)
479+
446480
# Positional arguments for set-property sub-command
447481
#
448482
parser_sp.add_argument(

0 commit comments

Comments
 (0)