From ee4d0438e4cc8763330ce214d63f04f5baa31a28 Mon Sep 17 00:00:00 2001 From: kawasima Date: Tue, 4 Jun 2019 00:03:44 +0900 Subject: [PATCH] Release v0.1.0 --- project.clj | 8 ++++---- resources/metabase-plugin.yaml | 13 +++++++++++-- src/metabase/driver/gremlin/util.clj | 22 ++++++++++++---------- 3 files changed, 27 insertions(+), 16 deletions(-) diff --git a/project.clj b/project.clj index 4496829..5e1c554 100644 --- a/project.clj +++ b/project.clj @@ -1,8 +1,6 @@ -(defproject metabase/gremlin-driver "0.1.0-SNAPSHOT" +(defproject metabase/gremlin-driver "0.1.0" :min-lein-version "2.5.0" - :dependencies [[org.apache.tinkerpop/gremlin-driver "3.4.1"] - [duct/core "0.7.0"] - [duct/module.logging "0.4.0"]] + :dependencies [[org.apache.tinkerpop/gremlin-driver "3.4.1"]] :jvm-opts ["-XX:+IgnoreUnrecognizedVMOptions"] @@ -23,6 +21,8 @@ } :project/dev {:dependencies [[org.apache.tinkerpop/gremlin-server "3.4.1"] + [duct/core "0.7.0"] + [duct/module.logging "0.4.0"] [integrant/repl "0.3.1"] [eftest "0.5.7"]] :source-paths ["dev/src"] diff --git a/resources/metabase-plugin.yaml b/resources/metabase-plugin.yaml index 3cc8765..875a510 100644 --- a/resources/metabase-plugin.yaml +++ b/resources/metabase-plugin.yaml @@ -8,9 +8,18 @@ driver: display-name: Gremlin connection-properties: - name: host - display-name: host + display-name: Host - name: port - display-name: port + display-name: Port + - name: protocol + display-name: "Protocol (default: HTTP)" + required: false + - name: username + display-name: Username + required: false + - name: password + display-name: Password + required: false init: - step: load-namespace namespace: metabase.driver.gremlin diff --git a/src/metabase/driver/gremlin/util.clj b/src/metabase/driver/gremlin/util.clj index 3e026c3..862849a 100644 --- a/src/metabase/driver/gremlin/util.clj +++ b/src/metabase/driver/gremlin/util.clj @@ -6,18 +6,20 @@ (defn -with-gremlin-client [f database] - (let [cluster (-> (Cluster/build) + (let [builder (-> (Cluster/build) (.port (get database :port 8182)) (.addContactPoint (get database :host)) - (.enableSsl (get database :ssl? false)) - (.serializer (GraphSONMessageSerializerV2d0.)) -; (.credentials username password) - (.create)) - client (.connect cluster)] - (try - (binding [*gremlin-client* client] - (f *gremlin-client*)) - (finally (.close client))))) + (.enableSsl (not= (get database :protocol "http") "http")) + (.serializer (GraphSONMessageSerializerV2d0.))) + username (:username database) + password (:password database)] + (when (and username password) + (.credentials builder username password)) + (when-let [client (.connect (.create builder))] + (try + (binding [*gremlin-client* client] + (f *gremlin-client*)) + (finally (.close client)))))) (defmacro with-gremlin-client "Open a new Gremlin client"