oar-team / oar3

OAR: versatile resource and job manager for cluster (third generation)
Other
8 stars 11 forks source link

Improve oarsub option error messages #29

Closed mickours closed 1 year ago

mickours commented 1 year ago

Currently the oarsub command show a stack trace instead of a proper error message when the resources are not defined:

Here is an example using node instead of nodes:

> oarsub -l node=maw "sleep 1000"                                                                                                                                                                  
Traceback (most recent call last):                                                                                                                                                                                   
  File "/nix/store/97r8kvfcb961g8r3x744qxz4ja1ag5j2-python3.9-oar-3.0.0/bin/..oarsub-wrapped", line 9, in <module>                                                                                                   
    sys.exit(cli())                                                                                                                                                                                                  
  File "/nix/store/b2w921gj2qa6ilxrp032g30d67aap4n0-python3.9-click-8.1.3/lib/python3.9/site-packages/click/core.py", line 1130, in __call__                                                                         
    return self.main(*args, **kwargs)                                                                                                                                                                                
  File "/nix/store/b2w921gj2qa6ilxrp032g30d67aap4n0-python3.9-click-8.1.3/lib/python3.9/site-packages/click/core.py", line 1055, in main                                                                             
    rv = self.invoke(ctx)                                                                                                                                                                                            
  File "/nix/store/b2w921gj2qa6ilxrp032g30d67aap4n0-python3.9-click-8.1.3/lib/python3.9/site-packages/click/core.py", line 1404, in invoke                                                                           
    return ctx.invoke(self.callback, **ctx.params)                                                                                                                                                                   
  File "/nix/store/b2w921gj2qa6ilxrp032g30d67aap4n0-python3.9-click-8.1.3/lib/python3.9/site-packages/click/core.py", line 760, in invoke                                                                            
    return __callback(*args, **kwargs)                                                                                                                                                                               
  File "/nix/store/97r8kvfcb961g8r3x744qxz4ja1ag5j2-python3.9-oar-3.0.0/lib/python3.9/site-packages/oar/cli/oarsub.py", line 622, in cli                                                                             
    (error, job_id_lst) = submission.submit()                                                                                                                                                                        
  File "/nix/store/97r8kvfcb961g8r3x744qxz4ja1ag5j2-python3.9-oar-3.0.0/lib/python3.9/site-packages/oar/lib/submission.py", line 1449, in submit                                                                     
    (err, job_id_lst) = add_micheline_jobs(                                                                                                                                                                          
  File "/nix/store/97r8kvfcb961g8r3x744qxz4ja1ag5j2-python3.9-oar-3.0.0/lib/python3.9/site-packages/oar/lib/submission.py", line 1146, in add_micheline_jobs
    (error, job_id) = add_micheline_subjob(
  File "/nix/store/97r8kvfcb961g8r3x744qxz4ja1ag5j2-python3.9-oar-3.0.0/lib/python3.9/site-packages/oar/lib/submission.py", line 582, in add_micheline_subjob
    error, resource_available, estimated_nb_resources = estimate_job_nb_resources(
  File "/nix/store/97r8kvfcb961g8r3x744qxz4ja1ag5j2-python3.9-oar-3.0.0/lib/python3.9/site-packages/oar/lib/submission.py", line 540, in estimate_job_nb_resources
    hy_levels.append(resource_set.hierarchy[res_name])
KeyError: 'node'

Also, the max value is not supported as advertised in the manual and type is not checked:

oarsub -l nodes=max "sleep 1000"
Traceback (most recent call last):
  File "/nix/store/97r8kvfcb961g8r3x744qxz4ja1ag5j2-python3.9-oar-3.0.0/bin/..oarsub-wrapped", line 9, in <module>
    sys.exit(cli())
  File "/nix/store/b2w921gj2qa6ilxrp032g30d67aap4n0-python3.9-click-8.1.3/lib/python3.9/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/nix/store/b2w921gj2qa6ilxrp032g30d67aap4n0-python3.9-click-8.1.3/lib/python3.9/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/nix/store/b2w921gj2qa6ilxrp032g30d67aap4n0-python3.9-click-8.1.3/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/nix/store/b2w921gj2qa6ilxrp032g30d67aap4n0-python3.9-click-8.1.3/lib/python3.9/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/nix/store/97r8kvfcb961g8r3x744qxz4ja1ag5j2-python3.9-oar-3.0.0/lib/python3.9/site-packages/oar/cli/oarsub.py", line 622, in cli
    (error, job_id_lst) = submission.submit()
  File "/nix/store/97r8kvfcb961g8r3x744qxz4ja1ag5j2-python3.9-oar-3.0.0/lib/python3.9/site-packages/oar/lib/submission.py", line 1449, in submit
    (err, job_id_lst) = add_micheline_jobs(
  File "/nix/store/97r8kvfcb961g8r3x744qxz4ja1ag5j2-python3.9-oar-3.0.0/lib/python3.9/site-packages/oar/lib/submission.py", line 1146, in add_micheline_jobs
    (error, job_id) = add_micheline_subjob(
  File "/nix/store/97r8kvfcb961g8r3x744qxz4ja1ag5j2-python3.9-oar-3.0.0/lib/python3.9/site-packages/oar/lib/submission.py", line 582, in add_micheline_subjob
    error, resource_available, estimated_nb_resources = estimate_job_nb_resources(
  File "/nix/store/97r8kvfcb961g8r3x744qxz4ja1ag5j2-python3.9-oar-3.0.0/lib/python3.9/site-packages/oar/lib/submission.py", line 541, in estimate_job_nb_resources
    hy_nbs.append(int(value))
ValueError: invalid literal for int() with base 10: 'max'
adfaure commented 1 year ago

Thank you @mickours , it should be fixed now.

[adfaure@frontend]# oarsub -l node=maw "sleep 1000"
#ERROR: unamed error
(-3, 'Bad resources name: node is not a valid resources name.Valid resource names are: core, network_address, resource_id')