I've dug into this some more, and I'm not sure we're talking about the same thing. The error I'm hitting isn't in validation, but in the runner. Here's the traceback I'm getting, for instance:
[-] Invalid scenario argument: 'Image with pattern 'rally-f22' not found'
Traceback (most recent call last):
File "/home/cstpierr/stack/rally/rally/task/engine.py", line 350, in run
name, context_obj, kw.get("args", {}))
File "/home/cstpierr/stack/rally/rally/task/runner.py", line 206, in run
args = types.preprocess(name, context, args)
File "/home/cstpierr/stack/rally/rally/task/types.py", line 63, in preprocess
clients=clients, resource_config=resource_cfg)
File "/home/cstpierr/stack/rally/rally/task/types.py", line 262, in transform
typename="image")
File "/home/cstpierr/stack/rally/rally/task/types.py", line 184, in _id_from_name
return obj_from_name(resource_config, resources, typename).id
File "/home/cstpierr/stack/rally/rally/task/types.py", line 127, in obj_from_name
typename=typename.title(), pattern=pattern.pattern))
InvalidScenarioArgument: Invalid scenario argument: 'Image with pattern 'rally-f22' not found'
That's happening in @types decorator processing, and I'm pretty sure that my original explanation is correct. If I kill Rally at the point where it raises that exception (that is, I don't let it clean up), then I can see the image created in the admin user's tenant as a non-public image.
I've dug into this some more, and I'm not sure we're talking about the same thing. The error I'm hitting isn't in validation, but in the runner. Here's the traceback I'm getting, for instance:
[-] Invalid scenario argument: 'Image with pattern 'rally-f22' not found' cstpierr/ stack/rally/ rally/task/ engine. py", line 350, in run cstpierr/ stack/rally/ rally/task/ runner. py", line 206, in run s(name, context, args) cstpierr/ stack/rally/ rally/task/ types.py" , line 63, in preprocess clients, resource_ config= resource_ cfg) cstpierr/ stack/rally/ rally/task/ types.py" , line 262, in transform "image" ) cstpierr/ stack/rally/ rally/task/ types.py" , line 184, in _id_from_name name(resource_ config, resources, typename).id cstpierr/ stack/rally/ rally/task/ types.py" , line 127, in obj_from_name typename. title() , pattern= pattern. pattern) ) Argument: Invalid scenario argument: 'Image with pattern 'rally-f22' not found'
Traceback (most recent call last):
File "/home/
name, context_obj, kw.get("args", {}))
File "/home/
args = types.preproces
File "/home/
clients=
File "/home/
typename=
File "/home/
return obj_from_
File "/home/
typename=
InvalidScenario
That's happening in @types decorator processing, and I'm pretty sure that my original explanation is correct. If I kill Rally at the point where it raises that exception (that is, I don't let it clean up), then I can see the image created in the admin user's tenant as a non-public image.