diff --git a/reframe/__init__.py b/reframe/__init__.py index 12bc2aa7e..c4c361617 100644 --- a/reframe/__init__.py +++ b/reframe/__init__.py @@ -6,7 +6,7 @@ import os import sys -VERSION = '4.7.0' +VERSION = '4.7.0.1' INSTALL_PREFIX = os.path.normpath( os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) ) diff --git a/reframe/core/schedulers/slurm.py b/reframe/core/schedulers/slurm.py index 7b4a4bff0..a466c0c2d 100644 --- a/reframe/core/schedulers/slurm.py +++ b/reframe/core/schedulers/slurm.py @@ -351,6 +351,7 @@ def filternodes(self, job, nodes): option_parser.add_argument('-w', '--nodelist') option_parser.add_argument('-C', '--constraint') option_parser.add_argument('-x', '--exclude') + self.log(f'[F] Slurm options: {" ".join(options)}') parsed_args, _ = option_parser.parse_known_args(options) reservation = parsed_args.reservation partitions = parsed_args.partition @@ -714,6 +715,7 @@ def satisfies(self, slurm_constraint): # Convert the Slurm constraint to a Python expression and evaluate it, # but restrict our syntax to accept only AND or OR constraints and # their combinations + slurm_constraint = slurm_constraint.replace('-', '_') if not re.match(r'^[\w\d\(\)\|\&]*$', slurm_constraint): return False @@ -751,7 +753,7 @@ def _extract_attribute(self, attr_name, node_descr, sep=None): attr_match = re.search(r'%s=(\S+)' % attr_name, node_descr) if attr_match: attr = attr_match.group(1) - return set(attr_match.group(1).split(sep)) if sep else attr + return {n.replace('-', '_') for n in attr_match.group(1).split(sep)} if sep else attr return None