diff --git a/myapp/models/model_aihub.py b/myapp/models/model_aihub.py index 014bad9c..1b80bef3 100644 --- a/myapp/models/model_aihub.py +++ b/myapp/models/model_aihub.py @@ -12,7 +12,7 @@ metadata = Model.metadata conf = app.config -class Aihub(Model,ImportMixin,MyappModelBase): +class Aihub(Model,MyappModelBase): __tablename__ = 'aihub' id = Column(Integer, primary_key=True) @@ -54,7 +54,7 @@ class Aihub(Model,ImportMixin,MyappModelBase):
- {("在线:" if self.status=='online' else '待上线:')+self.describe} + { self.name+": "+self.describe }
{self.describe}
diff --git a/myapp/models/model_dimension.py b/myapp/models/model_dimension.py index d0d480bd..91343871 100644 --- a/myapp/models/model_dimension.py +++ b/myapp/models/model_dimension.py @@ -41,9 +41,9 @@ class Dimension_table(Model,ImportMixin,MyappModelBase): @property def operate_html(self): - url=''' - 创建远程表 | 建外表示例 | 清空表记录 - '''%(self.id,self.id,self.id) + url=f''' + 创建远程表 | 建外表示例 + '''%(self.id,self.id) return Markup(url) diff --git a/myapp/models/model_etl_pipeline.py b/myapp/models/model_etl_pipeline.py index ed559a69..88213e88 100644 --- a/myapp/models/model_etl_pipeline.py +++ b/myapp/models/model_etl_pipeline.py @@ -25,6 +25,7 @@ class ETL_Pipeline(Model,ImportMixin,AuditMixinNullable,MyappModelBase): project = relationship( "Project", foreign_keys=[project_id] ) + workflow = Column(String(200),nullable=True) # 调度引擎 dag_json = Column(Text(65536),nullable=True,default='{}') # pipeline的上下游关系 config = Column(Text(65536),default='{}') # pipeline的全局配置 expand = Column(Text(65536),default='[]') @@ -36,40 +37,10 @@ class ETL_Pipeline(Model,ImportMixin,AuditMixinNullable,MyappModelBase): @property def etl_pipeline_url(self): - pipeline_url="/etl_pipeline_modelview/web/" +str(self.id) + pipeline_url="/etl_pipeline_modelview/api/web/" +str(self.id) return Markup(f'{self.describe}') - @renders('dag_json') - def dag_json_html(self): - dag_json = self.dag_json or '{}' - return Markup('
' + dag_json + '
') - - - @renders('config') - def config_html(self): - config = self.config or '{}' - return Markup('
' + config + '
') - - @renders('expand') - def expand_html(self): - return Markup('
' + self.expand + '
') - - @renders('parameter') - def parameter_html(self): - return Markup('
' + self.parameter + '
') - - - @property - def run_instance(self): - # workflow = db.session.query(Workflow).filter_by(foreign_key= str(self.id)).filter_by(status= 'Running').filter_by(create_time > datetime.datetime.now().strftime("%Y-%m-%d")).all() - # workflow_num = len(workflow) if workflow else 0 - # url = '/workflow_modelview/list/?_flt_2_name=%s'%self.name.replace("_","-")[:54] - url_path = conf.get('MODEL_URLS', {}).get("etl_task_instance") - # print(url) - return Markup(f"任务实例") - - def clone(self): return ETL_Pipeline( name=self.name.replace('_', '-'), @@ -86,10 +57,11 @@ class ETL_Task(Model,ImportMixin,AuditMixinNullable,MyappModelBase): id = Column(Integer, primary_key=True) name = Column(String(100),nullable=False,unique=True) describe = Column(String(200),nullable=False) - etl_pipeline_id = Column(Integer, ForeignKey('etl_pipeline.id'),nullable=False) # 定义外键 - etl_pipeline = relationship( - "ETL_Pipeline", foreign_keys=[etl_pipeline_id] - ) + # etl_pipeline_id = Column(Integer, ForeignKey('etl_pipeline.id'),nullable=False) # 定义外键 + # etl_pipeline = relationship( + # "ETL_Pipeline", foreign_keys=[etl_pipeline_id] + # ) + etl_pipeline_id = Column(Integer) template = Column(String(100),nullable=False) task_args = Column(Text(65536),default='{}') etl_task_id = Column(String(100),nullable=False) @@ -102,10 +74,6 @@ class ETL_Task(Model,ImportMixin,AuditMixinNullable,MyappModelBase): def __repr__(self): return self.name - @property - def etl_pipeline_url(self): - pipeline_url="/etl_pipeline_modelview/web/" +str(self.etl_pipeline.id) - return Markup(f'{self.etl_pipeline.describe}') diff --git a/myapp/models/model_job.py b/myapp/models/model_job.py index b908887c..8abf285e 100644 --- a/myapp/models/model_job.py +++ b/myapp/models/model_job.py @@ -186,12 +186,14 @@ class Pipeline(Model,ImportMixin,AuditMixinNullable,MyappModelBase): parallelism = Column(Integer, nullable=False,default=1) # 同一个pipeline,最大并行的task数目 alert_status = Column(String(100), default='Pending,Running,Succeeded,Failed,Terminated') # 哪些状态会报警Pending,Running,Succeeded,Failed,Unknown,Waiting,Terminated alert_user = Column(String(300), default='') + expand = Column(Text(65536),default='[]') depends_on_past = Column(Boolean, default=False) max_active_runs = Column(Integer, nullable=False,default=3) # 最大同时运行的pipeline实例 expired_limit = Column(Integer, nullable=False, default=1) # 过期保留个数,此数值有效时,会优先使用,覆盖max_active_runs的功能 parameter = Column(Text(65536), default='{}') + def __repr__(self): return self.name diff --git a/myapp/models/model_metadata_metric.py b/myapp/models/model_metadata_metric.py index 45b7a84e..6e4563b1 100644 --- a/myapp/models/model_metadata_metric.py +++ b/myapp/models/model_metadata_metric.py @@ -1,4 +1,5 @@ from flask_appbuilder import Model +from flask import Markup from sqlalchemy import ( Boolean, Text, @@ -30,10 +31,14 @@ class Metadata_metric(Model,AuditMixinNullable,ImportMixin,MyappModelBase): status = Column(String(100), nullable=True, default='') # 状态 下线 上线 创建中 task_id = Column(String(200), nullable=True, default='') # 所有相关任务id public = Column(Boolean, default=True) # 是否公开 + remark = Column(Text(65536), nullable=True,default='') # 备注 expand = Column(Text(65536), nullable=True,default='{}') def __repr__(self): return self.name + @property + def remark_html(self): + return "
".join(self.remark.split('\n')) def clone(self): return Metadata_metric( diff --git a/myapp/models/model_notebook.py b/myapp/models/model_notebook.py index d0fe64e3..d0ad150b 100644 --- a/myapp/models/model_notebook.py +++ b/myapp/models/model_notebook.py @@ -99,7 +99,8 @@ class Notebook(Model,AuditMixinNullable,MyappModelBase): status = pods[0]['status'] if g.user.is_admin(): k8s_dash_url = self.cluster.get('K8S_DASHBOARD_CLUSTER') + "#/search?namespace=jupyter&q=" + self.name - url = Markup(f'{status}') + + url = Markup(f'{status}') return url return status