Skip to content

Commit c3be58d

Browse files
authoredMar 17, 2017
Add verbose name to db and druid cluster (apache#2429)
* Add verbose name field to the databases * Add migration * Display verbose name in the view.
1 parent 3d77a12 commit c3be58d

File tree

5 files changed

+55
-8
lines changed

5 files changed

+55
-8
lines changed
 

‎superset/connectors/druid/models.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ class DruidCluster(Model, AuditMixinNullable):
5757
type = "druid"
5858

5959
id = Column(Integer, primary_key=True)
60+
verbose_name = Column(String(250), unique=True)
61+
# short unique name, used in permissions
6062
cluster_name = Column(String(250), unique=True)
6163
coordinator_host = Column(String(255))
6264
coordinator_port = Column(Integer)
@@ -69,7 +71,7 @@ class DruidCluster(Model, AuditMixinNullable):
6971
cache_timeout = Column(Integer)
7072

7173
def __repr__(self):
72-
return self.cluster_name
74+
return self.verbose_name if self.verbose_name else self.cluster_name
7375

7476
def get_pydruid_client(self):
7577
cli = PyDruid(
@@ -107,7 +109,11 @@ def perm(self):
107109

108110
@property
109111
def name(self):
110-
return self.cluster_name
112+
return self.verbose_name if self.verbose_name else self.cluster_name
113+
114+
@property
115+
def unique_name(self):
116+
return self.verbose_name if self.verbose_name else self.cluster_name
111117

112118

113119
class DruidColumn(Model, BaseColumn):

‎superset/connectors/druid/views.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,9 @@ def post_update(self, metric):
103103
class DruidClusterModelView(SupersetModelView, DeleteMixin): # noqa
104104
datamodel = SQLAInterface(models.DruidCluster)
105105
add_columns = [
106-
'cluster_name',
107-
'coordinator_host', 'coordinator_port', 'coordinator_endpoint',
108-
'broker_host', 'broker_port', 'broker_endpoint', 'cache_timeout',
106+
'verbose_name', 'coordinator_host', 'coordinator_port',
107+
'coordinator_endpoint', 'broker_host', 'broker_port',
108+
'broker_endpoint', 'cache_timeout', 'cluster_name',
109109
]
110110
edit_columns = add_columns
111111
list_columns = ['cluster_name', 'metadata_last_refreshed']
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
"""Add verbose name to DruidCluster and Database
2+
3+
Revision ID: db527d8c4c78
4+
Revises: b318dfe5fb6c
5+
Create Date: 2017-03-16 18:10:57.193035
6+
7+
"""
8+
9+
# revision identifiers, used by Alembic.
10+
revision = 'db527d8c4c78'
11+
down_revision = 'b318dfe5fb6c'
12+
13+
from alembic import op
14+
import logging
15+
import sqlalchemy as sa
16+
17+
18+
def upgrade():
19+
op.add_column('clusters', sa.Column('verbose_name', sa.String(length=250), nullable=True))
20+
op.add_column('dbs', sa.Column('verbose_name', sa.String(length=250), nullable=True))
21+
22+
try:
23+
op.create_unique_constraint(None, 'dbs', ['verbose_name'])
24+
op.create_unique_constraint(None, 'clusters', ['verbose_name'])
25+
except Exception as e:
26+
logging.exception(e)
27+
28+
29+
def downgrade():
30+
try:
31+
op.drop_column('dbs', 'verbose_name')
32+
op.drop_column('clusters', 'verbose_name')
33+
except Exception as e:
34+
logging.exception(e)
35+

‎superset/models/core.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,8 @@ class Database(Model, AuditMixinNullable):
505505
type = "table"
506506

507507
id = Column(Integer, primary_key=True)
508+
verbose_name = Column(String(250), unique=True)
509+
# short unique name, used in permissions
508510
database_name = Column(String(250), unique=True)
509511
sqlalchemy_uri = Column(String(1024))
510512
password = Column(EncryptedType(String(1024), config.get('SECRET_KEY')))
@@ -525,10 +527,14 @@ class Database(Model, AuditMixinNullable):
525527
perm = Column(String(1000))
526528

527529
def __repr__(self):
528-
return self.database_name
530+
return self.verbose_name if self.verbose_name else self.database_name
529531

530532
@property
531533
def name(self):
534+
return self.verbose_name if self.verbose_name else self.database_name
535+
536+
@property
537+
def unique_name(self):
532538
return self.database_name
533539

534540
@property

‎superset/views/core.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,8 @@ def generate_download_headers(extension):
207207
class DatabaseView(SupersetModelView, DeleteMixin): # noqa
208208
datamodel = SQLAInterface(models.Database)
209209
list_columns = [
210-
'database_name', 'backend', 'allow_run_sync', 'allow_run_async',
211-
'allow_dml', 'creator', 'changed_on_']
210+
'verbose_name', 'backend', 'allow_run_sync', 'allow_run_async',
211+
'allow_dml', 'creator', 'changed_on_', 'database_name']
212212
add_columns = [
213213
'database_name', 'sqlalchemy_uri', 'cache_timeout', 'extra',
214214
'expose_in_sqllab', 'allow_run_sync', 'allow_run_async',

0 commit comments

Comments
 (0)
Please sign in to comment.