-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[245] Wildcard support and refactoring of runner task outputs and inputs expansion logic #261
Conversation
If wildcards are not provided, pathprefix should be ignored. If output is a directory and there are no wildcards, the directory's path should be used as the pathprefix. The question is whether to figure this out in the node agent or in TES itself. Either way, this code doesn't work as intended. |
I don't see why this is necessary. The implementation assumes that if a pathprefix is set, then pattern search is intended. A pattern without wildcards is a valid scenario as the underlying API (GetFiles) supports it - returns a matching file. This results in a clear and simpler rule: "if you provide a path prefix the path property is a search pattern". Looking for wildcards in the path, and selectively ignoring the pathprefix, seems confusing to me and could obfuscate an incorrect client behavior.
If the output is a directory, then it returns all files in the directory and the pathprefix is ignored, I am open to revisit this, however, I am failing to understand why this is required as well. |
This is required because 4 days ago the entire VM path of each file was appended to the storage directory (instead of the relative path) in the URL, resulting in file paths in the |
Closes #245
Addresses #8
This PR includes:
FileOperationResolver
that performs the resolution process for inputs and outputs of the runner task.path_prefix
is provided).Directory.GetFiles()
).FullFileName
property toPath
in the runner task model (NodeTask
), to better align with the TES spec and its semantics.PathPrefix
to theTestOut
model in the Web API - 1.1 prerequisite.