You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by vo...@apache.org on 2018/07/02 06:23:38 UTC

[drill] 02/06: DRILL-4580: Support for exporting storage plugin configurations

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

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

commit 7c22e35ef2a9ecc41cc15c5deefac9b306ea87a1
Author: agirish <ab...@gmail.com>
AuthorDate: Sun Apr 9 17:42:57 2017 -0700

    DRILL-4580: Support for exporting storage plugin configurations
    
    closes #1350
---
 .../org/apache/drill/exec/server/rest/StorageResources.java    | 10 ++++++++++
 exec/java-exec/src/main/resources/rest/storage/list.ftl        |  1 +
 exec/java-exec/src/main/resources/rest/storage/update.ftl      |  1 +
 3 files changed, 12 insertions(+)

diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StorageResources.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StorageResources.java
index ca10860..b6f839b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StorageResources.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/StorageResources.java
@@ -35,6 +35,7 @@ import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
 import javax.ws.rs.core.SecurityContext;
 import javax.xml.bind.annotation.XmlRootElement;
 
@@ -134,6 +135,15 @@ public class StorageResources {
     }
   }
 
+  @GET
+  @Path("/storage/{name}/export")
+  @Produces(MediaType.APPLICATION_JSON)
+  public Response exportPlugin(@PathParam("name") String name) {
+    Response.ResponseBuilder response = Response.ok(getStoragePluginJSON(name));
+    response.header("Content-Disposition", String.format("attachment;filename=\"%s.json\"", name));
+    return response.build();
+  }
+
   @DELETE
   @Path("/storage/{name}.json")
   @Produces(MediaType.APPLICATION_JSON)
diff --git a/exec/java-exec/src/main/resources/rest/storage/list.ftl b/exec/java-exec/src/main/resources/rest/storage/list.ftl
index ca20063..7dfcf25 100644
--- a/exec/java-exec/src/main/resources/rest/storage/list.ftl
+++ b/exec/java-exec/src/main/resources/rest/storage/list.ftl
@@ -38,6 +38,7 @@
               <td style="border:none;">
                 <a class="btn btn-primary" href="/storage/${plugin.getName()}">Update</a>
                 <a class="btn btn-default" onclick="doEnable('${plugin.getName()}', false)">Disable</a>
+                <a class="btn btn-default" href="/storage/${plugin.getName()}/export"">Export</a>
               </td>
             </tr>
           </#if>
diff --git a/exec/java-exec/src/main/resources/rest/storage/update.ftl b/exec/java-exec/src/main/resources/rest/storage/update.ftl
index a15cc98..a30b65e 100644
--- a/exec/java-exec/src/main/resources/rest/storage/update.ftl
+++ b/exec/java-exec/src/main/resources/rest/storage/update.ftl
@@ -48,6 +48,7 @@
       <#else>
         <a id="enabled" class="btn btn-primary">Enable</a>
       </#if>
+      <a class="btn btn-default" href="/storage/${model.getName()}/export"">Export</a>
       <a id="del" class="btn btn-danger" onclick="deleteFunction()">Delete</a>
     </#if>
   </form>