htcondor 25.1.0__cp311-cp311-manylinux_2_28_aarch64.whl → 25.2.1__cp311-cp311-manylinux_2_28_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of htcondor might be problematic. Click here for more details.
- classad2/classad2_impl.abi3.so +0 -0
- {htcondor-25.1.0.dist-info → htcondor-25.2.1.dist-info}/METADATA +1 -1
- {htcondor-25.1.0.dist-info → htcondor-25.2.1.dist-info}/RECORD +12 -12
- htcondor.libs/libSciTokens-d5b98c44.so.0.0.2 +0 -0
- htcondor.libs/{libclassad-fceb76cf.so.25.1.0 → libclassad-bf0400d6.so.25.2.1} +0 -0
- htcondor.libs/{libcondor_utils_25_1_0-bc863910.so → libcondor_utils_25_2_1-84237ac3.so} +0 -0
- htcondor.libs/{libcurl-37295c13.so.4.5.0 → libcurl-723d0589.so.4.5.0} +0 -0
- htcondor2/_schedd.py +171 -1
- htcondor2/htcondor2_impl.abi3.so +0 -0
- htcondor2/personal.py +3 -5
- {htcondor-25.1.0.dist-info → htcondor-25.2.1.dist-info}/WHEEL +0 -0
- {htcondor-25.1.0.dist-info → htcondor-25.2.1.dist-info}/top_level.txt +0 -0
classad2/classad2_impl.abi3.so
CHANGED
|
Binary file
|
|
@@ -3,19 +3,19 @@ classad2/_class_ad.py,sha256=-C1hW5NRkg0GwBHGqrPp73yvRXrw4WCeh8RfYqeu5yw,15235
|
|
|
3
3
|
classad2/_expr_tree.py,sha256=DckBEItpSdBkyX38Oa-_z0yBEsg7GbOHP6W4yWMsTTI,4700
|
|
4
4
|
classad2/_parser_type.py,sha256=AfiZZ-pRoxLC6DJRmVA2ttI9pX5UhiCDJtt_6UTmH1E,654
|
|
5
5
|
classad2/_value.py,sha256=R5skf2GIXLoqa8ngeZOWqzUnwwbe_uLHvRVY5kOTHSs,219
|
|
6
|
-
classad2/classad2_impl.abi3.so,sha256=
|
|
6
|
+
classad2/classad2_impl.abi3.so,sha256=faZMBUWCX6GkXzbjrH5Wjy6C6EsfoPEIoQn9wGr4fng,1455305
|
|
7
7
|
classad3/ClassAd.py,sha256=c3i86QEcQcLPbF6gB8Yo4U19nRFy7xf_5wilAAfuLtg,8235
|
|
8
8
|
classad3/Expression.py,sha256=_Gj9VaBE9Iq-91ROpOmxYaE-VrDOAzs9g34lIP1Fs3g,3584
|
|
9
9
|
classad3/__init__.py,sha256=kHH3eWogIUG_jpRXHwWvJGZ3zAPvrZk8Tl8bBAhEEY8,1570
|
|
10
|
-
htcondor.libs/libSciTokens-d5b98c44.so.0.0.2,sha256=
|
|
10
|
+
htcondor.libs/libSciTokens-d5b98c44.so.0.0.2,sha256=OkT53stJN7LuNEtyyHm6rybIfTFzIRzBy5xcLRGO7FM,399721
|
|
11
11
|
htcondor.libs/libbrotlicommon-b6e6c8bd.so.1.0.6,sha256=_B5anwC4bzb29Shq_l8USYARGAtrW1EUwebby8caUyM,197553
|
|
12
12
|
htcondor.libs/libbrotlidec-5094ef0a.so.1.0.6,sha256=RM1YVlg7wchTccHvzrUwubok1CkZTM53CRw7T2Ov6yo,198281
|
|
13
|
-
htcondor.libs/libclassad-
|
|
13
|
+
htcondor.libs/libclassad-bf0400d6.so.25.2.1,sha256=QKnN13beA989pZRu_SBok4Mivpz-qDveHzaekNQLlDc,16922273
|
|
14
14
|
htcondor.libs/libcom_err-4b53f6ce.so.2.1,sha256=GdtF3jgePZjotDUKVW8JdbXuc-fr39R6YIINsvX8qWY,132169
|
|
15
|
-
htcondor.libs/
|
|
15
|
+
htcondor.libs/libcondor_utils_25_2_1-84237ac3.so,sha256=fk74E0WVmOQ1UD6jCF0o7sEekUbEyId1jcTbCMZWyVA,132219729
|
|
16
16
|
htcondor.libs/libcrypt-258f54d5.so.1.1.0,sha256=mA1Hga6a2NGy9gvlLPu_F20yzGLs-IiSDzR-mVdjbuI,198433
|
|
17
17
|
htcondor.libs/libcrypto-3dc39733.so.1.1.1k,sha256=_iompPH3TAPEsA4B85pYGztLxEt3RLDKE13q56BlyyM,2945609
|
|
18
|
-
htcondor.libs/libcurl-
|
|
18
|
+
htcondor.libs/libcurl-723d0589.so.4.5.0,sha256=K1Qg-Hwy_DZs3RjOLdTl9y-n0kEGdoiYRpCJU-vKtcA,730537
|
|
19
19
|
htcondor.libs/libgomp-a49a47f9.so.1.0.0,sha256=Q2Qt8EvfIPm0Ei0zbvPi5qSGxTbmFBWawOmBqQHVRTc,343345
|
|
20
20
|
htcondor.libs/libgssapi_krb5-fe951f80.so.2.2,sha256=kQ1dHklTpLYm8TOCKr-6nsZhCDhkMcWUnSa8MtmcJk4,468689
|
|
21
21
|
htcondor.libs/libidn2-1b2a13b7.so.0.3.6,sha256=EcpHyoq5qwMwcuinaXlv9_SCkTF_ydaO3wt7VPftphs,265025
|
|
@@ -64,7 +64,7 @@ htcondor2/_negotiator.py,sha256=ZmbYJSJgcy0r1nwuPT7FKWiHztwwVVcbAAIHay0wRSI,8221
|
|
|
64
64
|
htcondor2/_param.py,sha256=hTrGFxuNbqW0BQ9AuoWNCzNsezblAJAR3iNt0TYk7PA,1018
|
|
65
65
|
htcondor2/_query_opt.py,sha256=_qi5tU-7YFdS7iIYBP1-kCAQzJoap1rE0WZikgIiIJ8,1249
|
|
66
66
|
htcondor2/_remote_param.py,sha256=c0t_oJhWK0GsT_PVhQp4hhEx5B6SsmEfT2dZ08n2aTQ,2745
|
|
67
|
-
htcondor2/_schedd.py,sha256=
|
|
67
|
+
htcondor2/_schedd.py,sha256=g3CKOQyDngWj39neHOWNoLmxlT6rAEDOy0qruNDWJOE,41730
|
|
68
68
|
htcondor2/_security_context.py,sha256=UkhzTMPb2B9gcACiQEw9aHVOS7Lv1xnSXKi2WpOeTKc,692
|
|
69
69
|
htcondor2/_startd.py,sha256=OqGtV3bv80WCasBoAp--J9ZkG5uHlZr6Q1fCHEscjMc,6063
|
|
70
70
|
htcondor2/_submit.py,sha256=5OrJfrSi-2uk4LvgJCoPsuNRzB-_e28a73gHekrK2s8,16724
|
|
@@ -72,8 +72,8 @@ htcondor2/_submit_method.py,sha256=B_lmrg-sAu6r_cLOFsaRXGowQr0Vje492otq1tAPNhQ,7
|
|
|
72
72
|
htcondor2/_submit_result.py,sha256=IV6SQeGpp0tXubSra8n69LN84yYDVKUZR8gHVbWmmkg,1710
|
|
73
73
|
htcondor2/_subsystem_type.py,sha256=E0aq5aIDxYQ-SVbUsXJo7-CcVhV2KGkhCHGs7ydPnek,872
|
|
74
74
|
htcondor2/_transaction_flag.py,sha256=JEFIs0hUa_t5pGYFHvJhGJW7xvQLvksdfjUelnY0Y2E,1129
|
|
75
|
-
htcondor2/htcondor2_impl.abi3.so,sha256
|
|
76
|
-
htcondor2/personal.py,sha256
|
|
75
|
+
htcondor2/htcondor2_impl.abi3.so,sha256=ik-ETw5ZAkcIodJ2e3lTBxWoitQ-Y6-5U_8aouopm9A,4481033
|
|
76
|
+
htcondor2/personal.py,sha256=-Ae6JLvYJTwQIMsSngy_hQnjJkew3shgu8CsXHh1FGc,25464
|
|
77
77
|
htcondor2/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
78
78
|
htcondor2/_utils/ansi.py,sha256=cmL0GeEJ35BvGeVtfvFA7bI6Kk5s8OKajKPUPtHYMZ4,4243
|
|
79
79
|
htcondor2/_utils/keyboard.py,sha256=jcI0fNIxNGwi91DvZOfN2e3fNzdDZPiudBSiOa3wF54,3289
|
|
@@ -89,7 +89,7 @@ htcondor2/dags/walk_order.py,sha256=nKRNwDZ2cTSlCsVXmRjStoSecgpuD8v2M9LgY8BNlrY,
|
|
|
89
89
|
htcondor2/dags/writer.py,sha256=O388tmu-gUyd9jyyhCUpXB9hx68tvO7u_oAeQdSdfCU,12167
|
|
90
90
|
htcondor2/htchirp/__init__.py,sha256=4u5l9a7xMB3CJtjThQ-maXXt5l4hN8AagCpqfO_UKxg,729
|
|
91
91
|
htcondor2/htchirp/htchirp.py,sha256=xiKXhmzuftf69-_FMV0SYdg45lX97cJDChRFghglZ6k,50482
|
|
92
|
-
htcondor-25.1.
|
|
93
|
-
htcondor-25.1.
|
|
94
|
-
htcondor-25.1.
|
|
95
|
-
htcondor-25.1.
|
|
92
|
+
htcondor-25.2.1.dist-info/METADATA,sha256=eKg0oJnnHC9jSCy9cZxlKUYwgnJEvIVJEB8DkoLUcDE,1592
|
|
93
|
+
htcondor-25.2.1.dist-info/WHEEL,sha256=8jTxASeLvPr09PZ22DGSMQlRkrmgeqGaotjla49xWxo,114
|
|
94
|
+
htcondor-25.2.1.dist-info/top_level.txt,sha256=v4Qf76MjPw5Ld-EyM6v3J6nSJDLUr3XGMf-HiXKegK0,78
|
|
95
|
+
htcondor-25.2.1.dist-info/RECORD,,
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
htcondor2/_schedd.py
CHANGED
|
@@ -31,6 +31,8 @@ from .htcondor2_impl import (
|
|
|
31
31
|
_schedd_userrec_query,
|
|
32
32
|
_schedd_act_on_job_ids,
|
|
33
33
|
_schedd_act_on_job_constraint,
|
|
34
|
+
_schedd_act_on_userrec_list,
|
|
35
|
+
_schedd_act_on_userrec_constraint,
|
|
34
36
|
_schedd_edit_job_ids,
|
|
35
37
|
_schedd_edit_job_constraint,
|
|
36
38
|
_schedd_reschedule,
|
|
@@ -98,6 +100,30 @@ def job_spec_hack(
|
|
|
98
100
|
else:
|
|
99
101
|
raise TypeError("The job_spec must be list of strings, a string, an int, or an ExprTree." );
|
|
100
102
|
|
|
103
|
+
# helper method that routes various types of userrec_spec
|
|
104
|
+
# to the correct userrec act function
|
|
105
|
+
def userrec_act_dispatcher(
|
|
106
|
+
addr : str,
|
|
107
|
+
userrec_spec : Union[List[str], str, classad.ExprTree, List[classad.ClassAd] ],
|
|
108
|
+
f_name_list : callable,
|
|
109
|
+
f_constraint : callable,
|
|
110
|
+
args : list,
|
|
111
|
+
):
|
|
112
|
+
if isinstance(userrec_spec, list):
|
|
113
|
+
if all([isinstance(i, str) for i in userrec_spec]):
|
|
114
|
+
return f_name_list(addr, userrec_spec, *args)
|
|
115
|
+
elif all([isinstance(i, classad.ClassAd) for i in userrec_spec]):
|
|
116
|
+
return f_name_list(addr, userrec_spec, args[0] + 0x20000, args[1])
|
|
117
|
+
else:
|
|
118
|
+
raise TypeError("All elements of the userrec list must be strings or classads");
|
|
119
|
+
elif isinstance(userrec_spec, classad.ExprTree):
|
|
120
|
+
job_spec_string = str(userrec_spec)
|
|
121
|
+
return f_constraint(addr, job_spec_string, *args)
|
|
122
|
+
elif isinstance(userrec_spec, str):
|
|
123
|
+
return f_name_list(addr, [userrec_spec], *args);
|
|
124
|
+
else:
|
|
125
|
+
raise TypeError("The userrec_spec must be list of strings, a list of ClassAd, a string, or an ExprTree." );
|
|
126
|
+
|
|
101
127
|
|
|
102
128
|
class Schedd():
|
|
103
129
|
'''
|
|
@@ -225,7 +251,7 @@ class Schedd():
|
|
|
225
251
|
:param limit: The maximum number of project ads to return. The default
|
|
226
252
|
(``-1``) is to return all ads.
|
|
227
253
|
'''
|
|
228
|
-
project_flag = 1 # 0=default, 1=project
|
|
254
|
+
project_flag = 1 # 0=default/user, 1=project
|
|
229
255
|
results = _schedd_userrec_query(self._addr, str(constraint), projection, int(limit), project_flag)
|
|
230
256
|
if callback is None:
|
|
231
257
|
return results
|
|
@@ -294,6 +320,150 @@ class Schedd():
|
|
|
294
320
|
|
|
295
321
|
return pyResult
|
|
296
322
|
|
|
323
|
+
def addUserRec(self,
|
|
324
|
+
user_spec : Union[List[str], str, List[classad.ClassAd] ],
|
|
325
|
+
) -> classad.ClassAd:
|
|
326
|
+
"""
|
|
327
|
+
Add User record(s) to the *condor_schedd* daemon if a User
|
|
328
|
+
record with the given name does not already exist.
|
|
329
|
+
|
|
330
|
+
:param user_spec: Which user(s) to add. A :class:`str`
|
|
331
|
+
of the username, a :class:`list` of such
|
|
332
|
+
strings, or a list of the initial User records in :class:`classad2.ClassAd` form.
|
|
333
|
+
:return: A ClassAd describing the changes made. This
|
|
334
|
+
ClassAd is currently undocumented.
|
|
335
|
+
"""
|
|
336
|
+
|
|
337
|
+
result = userrec_act_dispatcher(self._addr, user_spec,
|
|
338
|
+
_schedd_act_on_userrec_list, _schedd_act_on_userrec_constraint,
|
|
339
|
+
(0x10000 + 541, None)
|
|
340
|
+
)
|
|
341
|
+
return result;
|
|
342
|
+
|
|
343
|
+
def enableUserRec(self,
|
|
344
|
+
user_spec : Union[List[str], str, classad.ExprTree],
|
|
345
|
+
) -> classad.ClassAd:
|
|
346
|
+
"""
|
|
347
|
+
Enable User record(s) to the *condor_schedd* daemon.
|
|
348
|
+
|
|
349
|
+
:param user_spec: Which user(s) to enable. A :class:`str`
|
|
350
|
+
of the username, a :class:`list` of such
|
|
351
|
+
strings, or a :class:`classad2.ExprTree` constraint.
|
|
352
|
+
When a constraint is used, only User records that
|
|
353
|
+
match the constraint will be enabled.
|
|
354
|
+
:return: A ClassAd describing the changes made. This
|
|
355
|
+
ClassAd is currently undocumented.
|
|
356
|
+
"""
|
|
357
|
+
|
|
358
|
+
result = userrec_act_dispatcher(self._addr, user_spec,
|
|
359
|
+
_schedd_act_on_userrec_list, _schedd_act_on_userrec_constraint,
|
|
360
|
+
(541, None)
|
|
361
|
+
)
|
|
362
|
+
return result;
|
|
363
|
+
|
|
364
|
+
def disableUserRec(self,
|
|
365
|
+
user_spec : Union[List[str], str, classad.ExprTree],
|
|
366
|
+
reason : str = None
|
|
367
|
+
) -> classad.ClassAd:
|
|
368
|
+
"""
|
|
369
|
+
Disable User record(s) in the *condor_schedd* daemon.
|
|
370
|
+
|
|
371
|
+
:param user_spec: Which user(s) to disable. A :class:`str`
|
|
372
|
+
of the username, a :class:`list` of such
|
|
373
|
+
strings, or a :class:`classad2.ExprTree` constraint.
|
|
374
|
+
When a constraint is used, only User records that match
|
|
375
|
+
the constraint will be disabled.
|
|
376
|
+
:param reason: A free-form justification. Defaults to
|
|
377
|
+
"Python-initiated action".
|
|
378
|
+
:return: A ClassAd describing the changes made. This
|
|
379
|
+
ClassAd is currently undocumented.
|
|
380
|
+
"""
|
|
381
|
+
|
|
382
|
+
if reason is None:
|
|
383
|
+
reason = "Python-initiated action"
|
|
384
|
+
|
|
385
|
+
result = userrec_act_dispatcher(self._addr, user_spec,
|
|
386
|
+
_schedd_act_on_userrec_list, _schedd_act_on_userrec_constraint,
|
|
387
|
+
(542, reason)
|
|
388
|
+
)
|
|
389
|
+
return result;
|
|
390
|
+
|
|
391
|
+
def removeUserRec(self,
|
|
392
|
+
user_spec : Union[List[str], str, classad.ExprTree],
|
|
393
|
+
reason : str = None
|
|
394
|
+
) -> classad.ClassAd:
|
|
395
|
+
"""
|
|
396
|
+
Remove User record(s) in the *condor_schedd* daemon.
|
|
397
|
+
|
|
398
|
+
:param user_spec: Which user(s) to remove. A :class:`str`
|
|
399
|
+
of the username, a :class:`list` of such
|
|
400
|
+
strings, or a :class:`classad2.ExprTree` constraint.
|
|
401
|
+
When a constraint is used, only User records that match
|
|
402
|
+
the constraint will be removed.
|
|
403
|
+
:param reason: A free-form justification that is used when
|
|
404
|
+
the record cannot be removed. Defaults to
|
|
405
|
+
"Python-initiated action".
|
|
406
|
+
:return: A ClassAd describing the changes made. This
|
|
407
|
+
ClassAd is currently undocumented.
|
|
408
|
+
"""
|
|
409
|
+
|
|
410
|
+
if reason is None:
|
|
411
|
+
reason = "Python-initiated action"
|
|
412
|
+
|
|
413
|
+
result = userrec_act_dispatcher(self._addr, user_spec,
|
|
414
|
+
_schedd_act_on_userrec_list, _schedd_act_on_userrec_constraint,
|
|
415
|
+
(549, reason)
|
|
416
|
+
)
|
|
417
|
+
return result;
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
def addProjectRec(self,
|
|
421
|
+
project_spec : Union[List[str], str, List[classad.ClassAd] ],
|
|
422
|
+
) -> classad.ClassAd:
|
|
423
|
+
"""
|
|
424
|
+
Add Project record(s) to the *condor_schedd* daemon.
|
|
425
|
+
|
|
426
|
+
:param project_spec: Which projects(s) to add. A :class:`str`
|
|
427
|
+
of the project name, a :class:`list` of such
|
|
428
|
+
strings, or a list of the initial Project records in :class:`classad2.ClassAd` form.
|
|
429
|
+
:return: A ClassAd describing the changes made. This
|
|
430
|
+
ClassAd is currently undocumented.
|
|
431
|
+
"""
|
|
432
|
+
|
|
433
|
+
result = userrec_act_dispatcher(self._addr, project_spec,
|
|
434
|
+
_schedd_act_on_userrec_list, _schedd_act_on_userrec_constraint,
|
|
435
|
+
(0x10000 + 0x80000 + 541, None)
|
|
436
|
+
)
|
|
437
|
+
return result;
|
|
438
|
+
|
|
439
|
+
def removeProjectRec(self,
|
|
440
|
+
user_spec : Union[List[str], str, classad.ExprTree],
|
|
441
|
+
reason : str = None
|
|
442
|
+
) -> classad.ClassAd:
|
|
443
|
+
"""
|
|
444
|
+
Remove Project record(s) in the *condor_schedd* daemon.
|
|
445
|
+
|
|
446
|
+
:param Project_spec: Which projects(s) to remove. A :class:`str`
|
|
447
|
+
of the project name, a :class:`list` of such
|
|
448
|
+
strings, or a :class:`classad2.ExprTree` constraint.
|
|
449
|
+
When a constraint is used, only User records that match
|
|
450
|
+
the constraint will be removed.
|
|
451
|
+
:param reason: A free-form justification that is used when
|
|
452
|
+
the record cannot be removed. Defaults to
|
|
453
|
+
"Python-initiated action".
|
|
454
|
+
:return: A ClassAd describing the changes made. This
|
|
455
|
+
ClassAd is currently undocumented.
|
|
456
|
+
"""
|
|
457
|
+
|
|
458
|
+
if reason is None:
|
|
459
|
+
reason = "Python-initiated action"
|
|
460
|
+
|
|
461
|
+
result = userrec_act_dispatcher(self._addr, user_spec,
|
|
462
|
+
_schedd_act_on_userrec_list, _schedd_act_on_userrec_constraint,
|
|
463
|
+
(0x80000 + 549, reason)
|
|
464
|
+
)
|
|
465
|
+
return result;
|
|
466
|
+
|
|
297
467
|
|
|
298
468
|
# In version 1, edit(ClassAd) and edit_multiple() weren't documented,
|
|
299
469
|
# so they're not implemented in version 2.
|
htcondor2/htcondor2_impl.abi3.so
CHANGED
|
Binary file
|
htcondor2/personal.py
CHANGED
|
@@ -21,6 +21,7 @@ import os
|
|
|
21
21
|
import shlex
|
|
22
22
|
import signal
|
|
23
23
|
import subprocess
|
|
24
|
+
import sys
|
|
24
25
|
import textwrap
|
|
25
26
|
import time
|
|
26
27
|
from pathlib import Path
|
|
@@ -384,8 +385,8 @@ class PersonalPool:
|
|
|
384
385
|
"SEC_PASSWORD_DIRECTORY": self.passwords_dir.as_posix(),
|
|
385
386
|
"SEC_TOKEN_DIRECTORY": self.tokens_dir.as_posix(),
|
|
386
387
|
"SEC_TOKEN_SYSTEM_DIRECTORY": self.system_tokens_dir.as_posix(),
|
|
387
|
-
"MAIL": "/bin/true",
|
|
388
|
-
"SENDMAIL": "/bin/true",
|
|
388
|
+
"MAIL": "/usr/bin/true" if sys.platform == "darwin" else "/bin/true",
|
|
389
|
+
"SENDMAIL": "/usr/bin/true" if sys.platform == "darwin" else "/bin/true",
|
|
389
390
|
}
|
|
390
391
|
|
|
391
392
|
param_lines += ["# BASE PARAMS"]
|
|
@@ -627,9 +628,6 @@ class PersonalPool:
|
|
|
627
628
|
)
|
|
628
629
|
|
|
629
630
|
def _kill_condor_system(self):
|
|
630
|
-
if self._condor_master_is_alive():
|
|
631
|
-
return
|
|
632
|
-
|
|
633
631
|
pids = self._daemon_pids()
|
|
634
632
|
for pid in pids:
|
|
635
633
|
os.kill(pid, signal.SIGKILL)
|
|
File without changes
|
|
File without changes
|