diff --git a/myapp/cli.py b/myapp/cli.py index 72de156f..f3c27bbe 100755 --- a/myapp/cli.py +++ b/myapp/cli.py @@ -11,6 +11,7 @@ import json from myapp import app, appbuilder, db, security_manager from myapp.models.model_notebook import Notebook from myapp.models.model_team import Project,Project_User +from myapp.models.model_job import Repository,Images,Job_Template,Pipeline,Task conf = app.config def create_app(script_info=None): @@ -24,7 +25,10 @@ import pysnooper # https://dormousehole.readthedocs.io/en/latest/cli.html @app.cli.command('init') +@pysnooper.snoop() def init(): + + # 初始化创建项目组 try: """Inits the Myapp application""" appbuilder.add_permissions(update_perms=True) # update_perms为true才会检测新权限 @@ -72,6 +76,117 @@ def init(): except Exception as e: print(e) + + + + # 初始化创建仓库镜像模板任务流 + try: + + repository = db.session.query(Repository).filter_by(name='hubsecret').first() + if repository is None: + try: + repository = Repository() + repository.name = 'hubsecret' + repository.server='registry.docker-cn.com' + repository.user = 'kubeflow' + repository.password = 'kubeflow' + repository.hubsecret = 'hubsecret' + repository.created_by_fk=1 + repository.changed_by_fk=1 + db.session.add(repository) + db.session.commit() + except Exception as e: + db.session.rollback() + + + images = db.session.query(Images).filter_by(name='ubuntu:18.04').first() + project = db.session.query(Project).filter_by(name='基础命令').filter_by(type='job-template').first() + if images is None and project: + try: + images = Images() + images.name = 'ubuntu:18.04' + images.describe='开源ubuntu:18.04基础镜像' + images.created_by_fk=1 + images.changed_by_fk=1 + images.project_id=project.id + images.repository_id=repository.id + db.session.add(images) + db.session.commit() + except Exception as e: + db.session.rollback() + + + job_template = db.session.query(Job_Template).filter_by(name=conf.get('CUSTOMIZE_JOB','自定义镜像')).first() + project = db.session.query(Project).filter_by(name='基础命令').filter_by(type='job-template').first() + if job_template is None and project: + try: + job_template = Job_Template() + job_template.name = conf.get('CUSTOMIZE_JOB','自定义镜像') if conf.get('CUSTOMIZE_JOB','自定义镜像') else '自定义镜像' + job_template.describe='使用用户自定义镜像作为运行镜像' + job_template.created_by_fk=1 + job_template.changed_by_fk=1 + job_template.project_id=project.id + job_template.images_id=images.id + job_template.version='Release' + job_template.args=json.dumps( + { + "shell": { + "images": { + "type": "str", + "item_type": "str", + "label": "要调试的镜像", + "require": 1, + "choice": [], + "range": "", + "default": "ai.tencentmusic.com/tme-public/ubuntu-gpu:cuda10.1-cudnn7-python3.6", + "placeholder": "", + "describe": "要调试的镜像,基础镜像参考", + "editable": 1, + "condition": "", + "sub_args": {} + }, + "workdir": { + "type": "str", + "item_type": "str", + "label": "启动目录", + "require": 1, + "choice": [], + "range": "", + "default": "/mnt/xx", + "placeholder": "", + "describe": "启动目录", + "editable": 1, + "condition": "", + "sub_args": {} + }, + "command": { + "type": "str", + "item_type": "str", + "label": "启动命令", + "require": 1, + "choice": [], + "range": "", + "default": "sh start.sh", + "placeholder": "", + "describe": "启动命令", + "editable": 1, + "condition": "", + "sub_args": {} + } + } + }, + indent=4,ensure_ascii=False) + db.session.add(job_template) + db.session.commit() + except Exception as e: + db.session.rollback() + + + + except Exception as e: + print(e) + + @app.cli.command('init_db') def init_db(): SQLALCHEMY_DATABASE_URI = conf.get('SQLALCHEMY_DATABASE_URI','')