This is an automated email from the ASF dual-hosted git repository.

qianzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git

commit b4531d868ffaad9da4b5d96970fbb8441952f620
Author: Qian Zhang <[email protected]>
AuthorDate: Wed Apr 10 14:14:23 2019 +0800

    Added an parameter `outputFileName` to the fetcher plugin interface.
    
    Review: https://reviews.apache.org/r/70444
---
 include/mesos/uri/fetcher.hpp | 4 +++-
 src/uri/fetcher.cpp           | 8 ++++++--
 src/uri/fetchers/copy.cpp     | 3 ++-
 src/uri/fetchers/copy.hpp     | 3 ++-
 src/uri/fetchers/curl.cpp     | 3 ++-
 src/uri/fetchers/curl.hpp     | 3 ++-
 src/uri/fetchers/docker.cpp   | 3 ++-
 src/uri/fetchers/docker.hpp   | 3 ++-
 src/uri/fetchers/hadoop.cpp   | 3 ++-
 src/uri/fetchers/hadoop.hpp   | 3 ++-
 10 files changed, 25 insertions(+), 11 deletions(-)

diff --git a/include/mesos/uri/fetcher.hpp b/include/mesos/uri/fetcher.hpp
index 645995a..122cee4 100644
--- a/include/mesos/uri/fetcher.hpp
+++ b/include/mesos/uri/fetcher.hpp
@@ -72,13 +72,15 @@ public:
      * @param uri the URI to fetch
      * @param directory the directory the URI will be downloaded to
      * @param data the optional user defined data
+     * @param outputFileName the optional output file name
      */
     // TODO(gilbert): Change the parameter 'data' as a hashmap
     // of <string, Secret::Value>, and update the comment.
     virtual process::Future<Nothing> fetch(
         const URI& uri,
         const std::string& directory,
-        const Option<std::string>& data = None()) const = 0;
+        const Option<std::string>& data = None(),
+        const Option<std::string>& outputFileName = None()) const = 0;
   };
 
   /**
diff --git a/src/uri/fetcher.cpp b/src/uri/fetcher.cpp
index 62a33c4..8db43eb 100644
--- a/src/uri/fetcher.cpp
+++ b/src/uri/fetcher.cpp
@@ -110,7 +110,11 @@ Future<Nothing> Fetcher::fetch(
     return Failure("Scheme '" + uri.scheme() + "' is not supported");
   }
 
-  return pluginsByScheme.at(uri.scheme())->fetch(uri, directory, data);
+  return pluginsByScheme.at(uri.scheme())->fetch(
+      uri,
+      directory,
+      data,
+      outputFileName);
 }
 
 
@@ -125,7 +129,7 @@ Future<Nothing> Fetcher::fetch(
     return Failure("Plugin  '" + name + "' is not registered.");
   }
 
-  return pluginsByName.at(name)->fetch(uri, directory, data);
+  return pluginsByName.at(name)->fetch(uri, directory, data, outputFileName);
 }
 
 } // namespace uri {
diff --git a/src/uri/fetchers/copy.cpp b/src/uri/fetchers/copy.cpp
index 4f482cc..713099e 100644
--- a/src/uri/fetchers/copy.cpp
+++ b/src/uri/fetchers/copy.cpp
@@ -77,7 +77,8 @@ string CopyFetcherPlugin::name() const
 Future<Nothing> CopyFetcherPlugin::fetch(
     const URI& uri,
     const string& directory,
-    const Option<string>& data) const
+    const Option<string>& data,
+    const Option<string>& outputFileName) const
 {
   // TODO(jojy): Validate the given URI.
 
diff --git a/src/uri/fetchers/copy.hpp b/src/uri/fetchers/copy.hpp
index 9054272..6536879 100644
--- a/src/uri/fetchers/copy.hpp
+++ b/src/uri/fetchers/copy.hpp
@@ -45,7 +45,8 @@ public:
   process::Future<Nothing> fetch(
       const URI& uri,
       const std::string& directory,
-      const Option<std::string>& data = None()) const override;
+      const Option<std::string>& data = None(),
+      const Option<std::string>& outputFileName = None()) const override;
 
 private:
   CopyFetcherPlugin() {}
diff --git a/src/uri/fetchers/curl.cpp b/src/uri/fetchers/curl.cpp
index 51ac244..4c5408a 100644
--- a/src/uri/fetchers/curl.cpp
+++ b/src/uri/fetchers/curl.cpp
@@ -90,7 +90,8 @@ string CurlFetcherPlugin::name() const
 Future<Nothing> CurlFetcherPlugin::fetch(
     const URI& uri,
     const string& directory,
-    const Option<string>& data) const
+    const Option<string>& data,
+    const Option<string>& outputFileName) const
 {
   // TODO(jieyu): Validate the given URI.
 
diff --git a/src/uri/fetchers/curl.hpp b/src/uri/fetchers/curl.hpp
index 19ade6a..5521475 100644
--- a/src/uri/fetchers/curl.hpp
+++ b/src/uri/fetchers/curl.hpp
@@ -51,7 +51,8 @@ public:
   process::Future<Nothing> fetch(
       const URI& uri,
       const std::string& directory,
-      const Option<std::string>& data = None()) const override;
+      const Option<std::string>& data = None(),
+      const Option<std::string>& outputFileName = None()) const override;
 
 private:
   explicit CurlFetcherPlugin(const Flags& _flags) : flags(_flags) {}
diff --git a/src/uri/fetchers/docker.cpp b/src/uri/fetchers/docker.cpp
index 631db2d..8f5fc96 100644
--- a/src/uri/fetchers/docker.cpp
+++ b/src/uri/fetchers/docker.cpp
@@ -607,7 +607,8 @@ string DockerFetcherPlugin::name() const
 Future<Nothing> DockerFetcherPlugin::fetch(
     const URI& uri,
     const string& directory,
-    const Option<string>& data) const
+    const Option<string>& data,
+    const Option<string>& outputFileName) const
 {
   return dispatch(
       process.get(),
diff --git a/src/uri/fetchers/docker.hpp b/src/uri/fetchers/docker.hpp
index 2abe735..2bb9214 100644
--- a/src/uri/fetchers/docker.hpp
+++ b/src/uri/fetchers/docker.hpp
@@ -60,7 +60,8 @@ public:
   process::Future<Nothing> fetch(
       const URI& uri,
       const std::string& directory,
-      const Option<std::string>& data = None()) const override;
+      const Option<std::string>& data = None(),
+      const Option<std::string>& outputFileName = None()) const override;
 
 private:
   explicit DockerFetcherPlugin(
diff --git a/src/uri/fetchers/hadoop.cpp b/src/uri/fetchers/hadoop.cpp
index 1c861e8..f31efa9 100644
--- a/src/uri/fetchers/hadoop.cpp
+++ b/src/uri/fetchers/hadoop.cpp
@@ -79,7 +79,8 @@ string HadoopFetcherPlugin::name() const
 Future<Nothing> HadoopFetcherPlugin::fetch(
     const URI& uri,
     const string& directory,
-    const Option<string>& data) const
+    const Option<string>& data,
+    const Option<string>& outputFileName) const
 {
   // TODO(jieyu): Validate the given URI.
 
diff --git a/src/uri/fetchers/hadoop.hpp b/src/uri/fetchers/hadoop.hpp
index 2d8d9be..8a817d7 100644
--- a/src/uri/fetchers/hadoop.hpp
+++ b/src/uri/fetchers/hadoop.hpp
@@ -58,7 +58,8 @@ public:
   process::Future<Nothing> fetch(
       const URI& uri,
       const std::string& directory,
-      const Option<std::string>& data = None()) const override;
+      const Option<std::string>& data = None(),
+      const Option<std::string>& outputFileName = None()) const override;
 
 private:
   HadoopFetcherPlugin(

Reply via email to