Merge pull request #31 from mistercrunch/test_connection

Adding a button to test connections
This commit is contained in:
Maxime Beauchemin 2015-09-23 21:23:06 -07:00
commit 9fab75bb1f
7 changed files with 51 additions and 3 deletions

View File

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@ -0,0 +1,7 @@
{% extends "appbuilder/general/model/add.html" %}
{% import "panoramix/models/database/macros.html" as macros %}
{% block tail_js %}
{{ super() }}
{{ macros.testconn() }}
{% endblock %}

View File

@ -0,0 +1,7 @@
{% extends "appbuilder/general/model/edit.html" %}
{% import "panoramix/models/database/macros.html" as macros %}
{% block tail_js %}
{{ super() }}
{{ macros.testconn() }}
{% endblock %}

View File

@ -0,0 +1,19 @@
{% macro testconn() %}
<script>
$("#sqlalchemy_uri").parent()
.append('<button id="testconn" class="btn">Test Connection</button>');
$("#testconn").click(function() {
var url = "/panoramix/testconn";
$.ajax({
method: "GET",
url: url,
data: { uri: $("#sqlalchemy_uri").val() }
}).done(function() {
alert("success");
}).fail(function(error) {
alert("ERROR: " + error.responseText);
});
return false;
});
</script>
{% endmacro %}

View File

@ -3,12 +3,13 @@ import json
import logging
from flask import request, redirect, flash, Response
from flask.ext.appbuilder.models.sqla.interface import SQLAInterface
from flask.ext.appbuilder import ModelView, CompactCRUDMixin, BaseView, expose
from flask.ext.appbuilder.actions import action
from flask.ext.appbuilder.models.sqla.interface import SQLAInterface
from flask.ext.appbuilder.security.decorators import has_access
from pydruid.client import doublesum
from sqlalchemy import create_engine
from wtforms.validators import ValidationError
from flask.ext.appbuilder.actions import action
from panoramix import appbuilder, db, models, viz, utils, app, config
@ -91,6 +92,8 @@ class DatabaseView(ModelView, DeleteMixin):
list_columns = ['database_name']
add_columns = ['database_name', 'sqlalchemy_uri']
edit_columns = add_columns
add_template = "panoramix/models/database/add.html"
edit_template = "panoramix/models/database/edit.html"
appbuilder.add_view(
DatabaseView,
@ -317,7 +320,19 @@ class Panoramix(BaseView):
return "SUCCESS"
@has_access
@expose("/save/")
@expose("/testconn/")
def testconn(self):
try:
db = create_engine(request.args.get('uri'))
for i in range(15):
request.args.get('uri')
db.connect()
return "SUCCESS"
except Exception as e:
return Response(
str(e),
status=500,
mimetype="application/json")
@has_access
@expose("/dashboard/<id_>/")