12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- from re import S
- from typing import Optional
- from fastapi import APIRouter
- from fastapi import Depends
- from sqlalchemy.orm import Session
- from app import schemas
- from app.common.hive import hiveDs
- from app.crud import jm_homework
- from app.services.jm_homework import create_jm_homework_services, update_jm_homework_service
- from app.services.jm_job import red_dag_and_format
- from utils.sx_time import sxtimeit
- from utils.sx_web import web_try
- from fastapi_pagination import Page, add_pagination, paginate, Params
- import app.crud as crud
- from app import get_db
- from configs.settings import DefaultOption, config
- DATABASE_NAME = config.get('HIVE', 'DATABASE_NAME')
- router = APIRouter(
- prefix="/jpt/jm_homework",
- tags=["jm_homework-作业管理"],
- )
- @router.post("/")
- @web_try()
- @sxtimeit
- def create_jm_homework(item: schemas.JmHomeworkCreate, db: Session = Depends(get_db)):
- return create_jm_homework_services(db, item)
- @router.get("/")
- @web_try()
- @sxtimeit
- def get_jm_homeworks(project_id: str, db: Session = Depends(get_db)):
- return crud.get_jm_homeworks(db, project_id)
- @router.get("/info")
- @web_try()
- @sxtimeit
- def get_jm_homework_info(homework_id: str, db: Session = Depends(get_db)):
- return crud.get_jm_homework_info(db, homework_id)
- @router.put("/")
- @web_try()
- @sxtimeit
- def update_jm_homework(jm_id: int, update_item: schemas.JmHomeworkUpdate, db: Session = Depends(get_db)):
- return update_jm_homework_service(db, jm_id, update_item)
- @router.delete("/")
- @web_try()
- @sxtimeit
- def delete_jm_homework(jm_id: int, db: Session = Depends(get_db)):
- jm_log_infos = crud.get_jm_job_infos(db)
- jm_job_ids = [jm_job.id for jm_job in jm_log_infos]
- res = crud.find_by_homework_and_job(db, jm_job_ids,jm_id)
- if len(res) > 0:
- raise Exception("该作业正在被定时任务使用,不可删除")
- return crud.delete_jm_homework(db, jm_id)
- @router.get("/test")
- def get_test_dag(db: Session = Depends(get_db)):
- jm_homework = crud.get_jm_homework_info(db, 83)
- res = red_dag_and_format(jm_homework, db)
- return res
- @router.get("/local_source")
- @web_try()
- @sxtimeit
- def get_local_source():
- return [{
- 'database_name': DATABASE_NAME,
- 'datasource': "hive",
- 'datasource_name': DATABASE_NAME,
- 'id': -1
- }]
- @router.get("/local_source_table")
- @web_try()
- @sxtimeit
- def get_local_source_table():
- t_list = hiveDs.list_tables()
- return t_list
- @router.get("/local_source_table_schema")
- @web_try()
- @sxtimeit
- def get_local_source_table_schema(table_name: str, db: Session = Depends(get_db)):
- return hiveDs.get_table_schema(table_name)
|