From 6032daf5f01266fc4414973ac84afed5041ada82 Mon Sep 17 00:00:00 2001 From: Maxime Date: Thu, 30 Jul 2015 00:33:37 +0000 Subject: [PATCH] Multi clusters --- app/models.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/app/models.py b/app/models.py index 0c5b266fc8..b3e7bb646e 100644 --- a/app/models.py +++ b/app/models.py @@ -2,7 +2,7 @@ from flask.ext.appbuilder import Model from datetime import datetime, timedelta from flask.ext.appbuilder.models.mixins import AuditMixin, FileColumn, ImageColumn from flask.ext.appbuilder.security.sqla.models import User -from sqlalchemy import Column, Integer, String, ForeignKey, Text, Boolean +from sqlalchemy import Column, Integer, String, ForeignKey, Text, Boolean, DateTime from sqlalchemy.orm import relationship from app import db, utils from dateutil.parser import parse @@ -11,6 +11,20 @@ import json client = utils.get_pydruid_client() + +class Cluster(Model, AuditMixin): + __tablename__ = 'clusters' + id = Column(Integer, primary_key=True) + cluster_name = Column(String(256), unique=True) + coordinator_host = Column(String(256)) + coordinator_port = Column(Integer) + coordinator_endpoint = Column(String(256)) + broker_host = Column(String(256)) + broker_port = Column(Integer) + broker_endpoint = Column(String(256)) + metadata_last_refreshed = Column(DateTime) + + class Datasource(Model, AuditMixin): __tablename__ = 'datasources' id = Column(Integer, primary_key=True) @@ -22,6 +36,9 @@ class Datasource(Model, AuditMixin): user_id = Column(Integer, ForeignKey('ab_user.id')) owner = relationship('User', backref='datasources', foreign_keys=[user_id]) + cluster_name = Column(Integer, + ForeignKey('clusters.cluster_name')) + cluster = relationship('Cluster', backref='datasources', foreign_keys=[cluster_name]) @property def metrics_combo(self):