job_jdbc_datasouce.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. from typing import List, Optional
  2. from pydantic import BaseModel
  3. class JobJdbcDatasourceBase(BaseModel):
  4. # 数据源名称
  5. datasource_name: str
  6. # 数据源
  7. datasource: str
  8. # 数据库名
  9. database_name: str
  10. # 数据库用户名
  11. jdbc_username: Optional[str]
  12. # 数据库密码
  13. jdbc_password: Optional[str]
  14. # jdbc url
  15. jdbc_url: str
  16. # 备注
  17. comments: str
  18. # 标签
  19. tag: str
  20. # kerberos 验证(0:未开启,1:开启)
  21. kerberos: int
  22. # keytab 文件
  23. keytab: Optional[str]
  24. # krb5config 文件
  25. krb5config: Optional[str]
  26. # service 名称
  27. kerberos_service_name: Optional[str]
  28. # principal
  29. principal: Optional[str]
  30. class Config:
  31. schema_extra = {
  32. # "example": {
  33. # "datasource_name": 'test',
  34. # "datasource": "mysql",
  35. # "database_name": 'datax_web',
  36. # "jdbc_username": 'root',
  37. # "jdbc_password": 'happylay',
  38. # "jdbc_url": '192.168.199.107:10086',
  39. # "comments": 'This is a very nice Item',
  40. # "tag": '线下'
  41. # }
  42. "example": {
  43. "datasource_name": 'testhive',
  44. "datasource": "hive",
  45. "database_name": 'default',
  46. "jdbc_username": '',
  47. "jdbc_password": '',
  48. "jdbc_url": '192.168.199.107:10000',
  49. "comments": 'This is a very nice Item',
  50. "tag": '线下',
  51. "kerberos": 0,
  52. "keytab": "test/kerberos/user.keytab",
  53. "krb5config": "test/kerberos/user.conf",
  54. "kerberos_service_name": "hadoop",
  55. "principal": "ailab@EMR-5XJSY31F",
  56. }
  57. }
  58. class JobJdbcDatasourceCreate(JobJdbcDatasourceBase):
  59. pass
  60. class JobJdbcDatasourceUpdate(JobJdbcDatasourceBase):
  61. status: int = 1
  62. class Config:
  63. schema_extra = {
  64. # "example": {
  65. # "datasource_name": 'test',
  66. # "datasource": "mysql",
  67. # "database_name": 'datax_web',
  68. # "jdbc_username": 'root',
  69. # "jdbc_password": 'happylay',
  70. # "jdbc_url": '192.168.199.107:10086',
  71. # "comments": 'This is a very nice Item',
  72. # "tag": '线下',
  73. # "status": 1,
  74. # }
  75. "example": {
  76. "datasource_name": 'testhive',
  77. "datasource": "hive",
  78. "database_name": 'default',
  79. "jdbc_username": '',
  80. "jdbc_password": '',
  81. "jdbc_url": '192.168.199.107:10000',
  82. "comments": 'This is a very nice Item',
  83. "tag": '线下',
  84. "kerberos": 0,
  85. "keytab": "test/kerberos/user.keytab",
  86. "krb5config": "test/kerberos/user.conf",
  87. "kerberos_service_name": "hadoop",
  88. "principal": "ailab@EMR-5XJSY31F",
  89. "status": 1,
  90. }
  91. }
  92. class JobJdbcDatasource(JobJdbcDatasourceBase):
  93. id: int
  94. status: int
  95. create_time: int
  96. create_by: str
  97. update_time: int
  98. update_by: str
  99. jdbc_url: str
  100. jdbc_driver_class: str
  101. class Config:
  102. orm_mode = True