Allow extra args to the dynamic resolver queries
Test: unit tests
Bug: 149516126
Change-Id: I622c3a81fd000f9b8fa63ece1c3a5d4a6acae37c
diff --git a/src/com/android/tradefed/config/DynamicRemoteFileResolver.java b/src/com/android/tradefed/config/DynamicRemoteFileResolver.java
index 56467a6..3b9e778 100644
--- a/src/com/android/tradefed/config/DynamicRemoteFileResolver.java
+++ b/src/com/android/tradefed/config/DynamicRemoteFileResolver.java
@@ -74,6 +74,8 @@
public static final String OPTIONAL_KEY = "optional";
private Map<String, OptionFieldsForName> mOptionMap;
+ // Populated from {@link ICommandOptions#getDynamicDownloadArgs()}
+ private Map<String, String> mExtraArgs = new LinkedHashMap<>();
private ITestDevice mDevice;
/** Sets the map of options coming from {@link OptionSetter} */
@@ -86,6 +88,11 @@
mDevice = device;
}
+ /** Add extra args for the query. */
+ public void addExtraArgs(Map<String, String> extraArgs) {
+ mExtraArgs.putAll(extraArgs);
+ }
+
/**
* Runs through all the {@link File} option type and check if their path should be resolved.
*
@@ -357,6 +364,8 @@
CLog.d(
"Considering option '%s' with path: '%s' for download.",
option.name(), path);
+ // Overrides query args
+ query.putAll(mExtraArgs);
return resolver.resolveRemoteFiles(fileToResolve, query);
} catch (BuildRetrievalError e) {
if (isOptional(query)) {