deepfos 1.1.79__tar.gz → 1.1.81__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. {deepfos-1.1.79 → deepfos-1.1.81}/CHANGELOG.md +13 -0
  2. {deepfos-1.1.79 → deepfos-1.1.81}/PKG-INFO +1 -1
  3. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/_version.py +3 -3
  4. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/base.py +4 -1
  5. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/deepconnector.py +1 -0
  6. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/deepfos_task.py +1 -0
  7. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/constant.py +4 -0
  8. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/k8s.py +14 -10
  9. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/options.py +1 -0
  10. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos.egg-info/PKG-INFO +1 -1
  11. {deepfos-1.1.79 → deepfos-1.1.81}/.gitattributes +0 -0
  12. {deepfos-1.1.79 → deepfos-1.1.81}/.gitee/ISSUE_GUIDELINES.md +0 -0
  13. {deepfos-1.1.79 → deepfos-1.1.81}/.gitee/ISSUE_TEMPLATE.md +0 -0
  14. {deepfos-1.1.79 → deepfos-1.1.81}/.gitignore +0 -0
  15. {deepfos-1.1.79 → deepfos-1.1.81}/MANIFEST.in +0 -0
  16. {deepfos-1.1.79 → deepfos-1.1.81}/README.md +0 -0
  17. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/__init__.py +0 -0
  18. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/algo/__init__.py +0 -0
  19. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/algo/graph.py +0 -0
  20. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/V1_1/__init__.py +0 -0
  21. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/V1_1/business_model.py +0 -0
  22. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/V1_1/dimension.py +0 -0
  23. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/V1_1/models/__init__.py +0 -0
  24. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/V1_1/models/business_model.py +0 -0
  25. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/V1_1/models/dimension.py +0 -0
  26. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/V1_2/__init__.py +0 -0
  27. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/V1_2/dimension.py +0 -0
  28. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/V1_2/models/__init__.py +0 -0
  29. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/V1_2/models/dimension.py +0 -0
  30. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/__init__.py +0 -0
  31. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/account.py +0 -0
  32. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/accounting_engines.py +0 -0
  33. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/app.py +0 -0
  34. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/approval_process.py +0 -0
  35. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/business_model.py +0 -0
  36. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/consolidation.py +0 -0
  37. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/consolidation_process.py +0 -0
  38. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/datatable.py +0 -0
  39. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/deep_pipeline.py +0 -0
  40. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/deepmodel.py +0 -0
  41. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/dimension.py +0 -0
  42. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/financial_model.py +0 -0
  43. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/journal_model.py +0 -0
  44. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/journal_template.py +0 -0
  45. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/memory_financial_model.py +0 -0
  46. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/__init__.py +0 -0
  47. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/account.py +0 -0
  48. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/accounting_engines.py +0 -0
  49. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/app.py +0 -0
  50. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/approval_process.py +0 -0
  51. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/base.py +0 -0
  52. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/business_model.py +0 -0
  53. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/consolidation.py +0 -0
  54. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/consolidation_process.py +0 -0
  55. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/datatable_mysql.py +0 -0
  56. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/deep_pipeline.py +0 -0
  57. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/deepconnector.py +0 -0
  58. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/deepfos_task.py +0 -0
  59. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/deepmodel.py +0 -0
  60. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/dimension.py +0 -0
  61. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/financial_model.py +0 -0
  62. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/journal_model.py +0 -0
  63. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/journal_template.py +0 -0
  64. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/memory_financial_model.py +0 -0
  65. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/platform.py +0 -0
  66. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/python.py +0 -0
  67. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/reconciliation_engine.py +0 -0
  68. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/reconciliation_report.py +0 -0
  69. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/role_strategy.py +0 -0
  70. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/smartlist.py +0 -0
  71. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/space.py +0 -0
  72. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/system.py +0 -0
  73. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/variable.py +0 -0
  74. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/models/workflow.py +0 -0
  75. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/platform.py +0 -0
  76. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/python.py +0 -0
  77. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/reconciliation_engine.py +0 -0
  78. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/reconciliation_report.py +0 -0
  79. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/role_strategy.py +0 -0
  80. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/smartlist.py +0 -0
  81. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/space.py +0 -0
  82. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/system.py +0 -0
  83. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/variable.py +0 -0
  84. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/api/workflow.py +0 -0
  85. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/boost/__init__.py +0 -0
  86. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/boost/jstream.c +0 -0
  87. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/boost/jstream.pyx +0 -0
  88. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/boost/pandas.c +0 -0
  89. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/boost/pandas.pyx +0 -0
  90. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/boost/py_jstream.py +0 -0
  91. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/boost/py_pandas.py +0 -0
  92. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/cache.py +0 -0
  93. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/config.py +0 -0
  94. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/__init__.py +0 -0
  95. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/cube/__init__.py +0 -0
  96. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/cube/_base.py +0 -0
  97. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/cube/constants.py +0 -0
  98. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/cube/cube.py +0 -0
  99. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/cube/formula.py +0 -0
  100. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/cube/syscube.py +0 -0
  101. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/cube/typing.py +0 -0
  102. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/cube/utils.py +0 -0
  103. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/dimension/__init__.py +0 -0
  104. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/dimension/_base.py +0 -0
  105. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/dimension/dimcreator.py +0 -0
  106. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/dimension/dimension.py +0 -0
  107. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/dimension/dimexpr.py +0 -0
  108. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/dimension/dimmember.py +0 -0
  109. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/dimension/eledimension.py +0 -0
  110. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/dimension/filters.py +0 -0
  111. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/dimension/sysdimension.py +0 -0
  112. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/logictable/__init__.py +0 -0
  113. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/logictable/_cache.py +0 -0
  114. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/logictable/_operator.py +0 -0
  115. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/logictable/nodemixin.py +0 -0
  116. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/logictable/sqlcondition.py +0 -0
  117. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/core/logictable/tablemodel.py +0 -0
  118. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/__init__.py +0 -0
  119. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/cipher.py +0 -0
  120. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/clickhouse.py +0 -0
  121. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/connector.py +0 -0
  122. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/daclickhouse.py +0 -0
  123. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/dameng.py +0 -0
  124. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/damysql.py +0 -0
  125. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/dbkits.py +0 -0
  126. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/deepengine.py +0 -0
  127. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/deepmodel.py +0 -0
  128. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/deepmodel_kingbase.py +0 -0
  129. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/edb.py +0 -0
  130. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/gauss.py +0 -0
  131. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/kingbase.py +0 -0
  132. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/mysql.py +0 -0
  133. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/oracle.py +0 -0
  134. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/postgresql.py +0 -0
  135. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/sqlserver.py +0 -0
  136. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/db/utils.py +0 -0
  137. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/__init__.py +0 -0
  138. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/accounting.py +0 -0
  139. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/apvlprocess.py +0 -0
  140. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/base.py +0 -0
  141. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/bizmodel.py +0 -0
  142. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/datatable.py +0 -0
  143. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/deep_pipeline.py +0 -0
  144. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/deepconnector.py +0 -0
  145. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/deepmodel.py +0 -0
  146. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/dimension.py +0 -0
  147. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/fact_table.py +0 -0
  148. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/finmodel.py +0 -0
  149. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/journal.py +0 -0
  150. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/journal_template.py +0 -0
  151. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/pyscript.py +0 -0
  152. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/reconciliation.py +0 -0
  153. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/rolestrategy.py +0 -0
  154. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/smartlist.py +0 -0
  155. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/variable.py +0 -0
  156. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/element/workflow.py +0 -0
  157. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/exceptions/__init__.py +0 -0
  158. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/exceptions/hook.py +0 -0
  159. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lazy.py +0 -0
  160. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/__init__.py +0 -0
  161. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/_javaobj.py +0 -0
  162. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/asynchronous.py +0 -0
  163. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/concurrency.py +0 -0
  164. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/decorator.py +0 -0
  165. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/deepchart.py +0 -0
  166. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/deepux.py +0 -0
  167. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/discovery.py +0 -0
  168. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/edb_lexer.py +0 -0
  169. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/eureka.py +0 -0
  170. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/filterparser.py +0 -0
  171. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/httpcli.py +0 -0
  172. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/jsonstreamer.py +0 -0
  173. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/msg.py +0 -0
  174. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/nacos.py +0 -0
  175. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/patch.py +0 -0
  176. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/redis.py +0 -0
  177. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/serutils.py +0 -0
  178. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/stopwatch.py +0 -0
  179. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/subtask.py +0 -0
  180. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/sysutils.py +0 -0
  181. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/lib/utils.py +0 -0
  182. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/local.py +0 -0
  183. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos/translation.py +0 -0
  184. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos.egg-info/SOURCES.txt +0 -0
  185. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos.egg-info/dependency_links.txt +0 -0
  186. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos.egg-info/not-zip-safe +0 -0
  187. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos.egg-info/requires.txt +0 -0
  188. {deepfos-1.1.79 → deepfos-1.1.81}/deepfos.egg-info/top_level.txt +0 -0
  189. {deepfos-1.1.79 → deepfos-1.1.81}/requirements.txt +0 -0
  190. {deepfos-1.1.79 → deepfos-1.1.81}/setup.cfg +0 -0
  191. {deepfos-1.1.79 → deepfos-1.1.81}/setup.py +0 -0
  192. {deepfos-1.1.79 → deepfos-1.1.81}/versioneer.py +0 -0
@@ -1,3 +1,16 @@
1
+ ## [1.1.81] - 2026-01-22
2
+
3
+ ### 更新
4
+
5
+ * 兼容internal_token相关功能
6
+ * 修复k8s服务发现可能绑定已关闭的eventloop的问题
7
+
8
+ ## [1.1.80] - 2026-01-14
9
+
10
+ ### 更新
11
+
12
+ * 修复DeepConnectorAPI/TaskAPI在take_over=True情况下不可用的bug
13
+
1
14
  ## [1.1.79] - 2026-01-12
2
15
 
3
16
  ### 更新
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deepfos
3
- Version: 1.1.79
3
+ Version: 1.1.81
4
4
  Summary: Collecions of useful and handy tools for deepfos platform
5
5
  Home-page: http://py.deepfos.com
6
6
  Author: deepfos-python-team
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2026-01-13T06:00:21+0000",
11
+ "date": "2026-01-22T08:33:03+0000",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "d049dc802ae4862dbe78beae839ba023357d5e14",
15
- "version": "1.1.79"
14
+ "full-revisionid": "aa7164c60be8e0acdde1a4db53fc101402d4983a",
15
+ "version": "1.1.81"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -23,7 +23,7 @@ from deepfos.lib.httpcli import AioHttpCli
23
23
  from deepfos.lib.utils import concat_url, retry, to_version_tuple, repr_version, trim_text
24
24
  from deepfos.lib.asynchronous import evloop
25
25
  from deepfos.lib.discovery import ServiceDiscovery
26
- from deepfos.lib.constant import UNSET, RE_SYS_SERVER_PARSER
26
+ from deepfos.lib.constant import UNSET, RE_SYS_SERVER_PARSER, INTERNAL_TOKEN_HEADER
27
27
  from deepfos.options import OPTION
28
28
  from deepfos.exceptions import APIResponseError, APIRequestError
29
29
 
@@ -376,6 +376,9 @@ class Route:
376
376
  else:
377
377
  header = CaseInsensitiveDict(ins.header, **ext_header)
378
378
 
379
+ if internal_token := OPTION.general.internal_token:
380
+ header[INTERNAL_TOKEN_HEADER] = internal_token
381
+
379
382
  if use_cache:
380
383
  if ((req_key := hash(req)), raw_result) in api_cache:
381
384
  return api_cache[(req_key, raw_result)]
@@ -27,6 +27,7 @@ class DataSourceAPI(ChildAPI):
27
27
  class DeepConnectorAPI(RootAPI):
28
28
  """连接器组件接口"""
29
29
  prefix = lambda: 'http://deep-connector-server'
30
+ server_name = 'deep-connector-server'
30
31
  url_need_format = True
31
32
  module_type = 'CONN'
32
33
 
@@ -74,6 +74,7 @@ class Job(ChildAPI):
74
74
  class TaskAPI(RootAPI):
75
75
  """任务管理接口"""
76
76
  prefix = lambda: OPTION.server.deepfos_task
77
+ server_name = 'deep-task-server'
77
78
 
78
79
  @cached_property
79
80
  def task_instance(self) -> TaskInstance:
@@ -37,3 +37,7 @@ RE_SYS_SERVER_PARSER = re.compile('^(?:https?://)?([a-z-]+-server)$', re.IGNOREC
37
37
  DECIMAL_COL = 'decimal_val'
38
38
  STRING_COL = 'string_val'
39
39
  INDEX_FIELD = 'index'
40
+
41
+ # -----------------------------------------------------------------------------
42
+ # Internal service token header
43
+ INTERNAL_TOKEN_HEADER = "X-deepfos-internal-key"
@@ -1,4 +1,5 @@
1
1
  import asyncio
2
+ import contextlib
2
3
  from collections import defaultdict
3
4
  from functools import cached_property
4
5
  from typing import TypedDict, Literal, Type, Dict, FrozenSet
@@ -11,6 +12,7 @@ from kubernetes_asyncio.client import (
11
12
  V1EndpointSubset,
12
13
  V1EndpointAddress,
13
14
  CoreV1EndpointPort,
15
+ ApiClient,
14
16
  )
15
17
  from deepfos.lib.discovery import ServiceDiscovery
16
18
  from deepfos import OPTION
@@ -31,13 +33,14 @@ class K8sCli(ServiceDiscovery):
31
33
 
32
34
  async def on_startup(self):
33
35
  config.load_incluster_config()
34
-
35
- @cached_property
36
- def _api(self):
37
36
  c = client.Configuration.get_default_copy()
38
37
  c.verify_ssl = False
39
38
  client.Configuration.set_default(c)
40
- return client.CoreV1Api()
39
+
40
+ @contextlib.asynccontextmanager
41
+ async def _acquire_api(self) -> client.CoreV1Api:
42
+ async with ApiClient() as cli:
43
+ yield client.CoreV1Api(cli)
41
44
 
42
45
  async def on_interval(self):
43
46
  await self._update_cache()
@@ -58,9 +61,9 @@ class K8sCli(ServiceDiscovery):
58
61
  self._cares.add(server_name)
59
62
  await self.update_instance_for_service(server_name)
60
63
 
61
-
62
64
  async def _list_all_service_names(self) -> FrozenSet[str]:
63
- svcs: V1ServiceList = await self._api.list_namespaced_service(self._ns)
65
+ async with self._acquire_api() as api:
66
+ svcs: V1ServiceList = await api.list_namespaced_service(self._ns)
64
67
  return frozenset(svc.metadata.name for svc in svcs.items)
65
68
 
66
69
  async def update_services(self):
@@ -79,10 +82,11 @@ class K8sCli(ServiceDiscovery):
79
82
  logger.debug(f"Removed servieces: {removed}")
80
83
 
81
84
  async def update_instance_for_service(self, server_name: str):
82
- endpoints: V1Endpoints = await self._api.read_namespaced_endpoints(
83
- server_name,
84
- self._ns,
85
- )
85
+ async with self._acquire_api() as api:
86
+ endpoints: V1Endpoints = await api.read_namespaced_endpoints(
87
+ server_name,
88
+ self._ns,
89
+ )
86
90
 
87
91
  no_active_nodes = True
88
92
  async with self._instance_lock[server_name]:
@@ -432,6 +432,7 @@ class _General(_Category):
432
432
  socket_name = _Option(None, val_type=str)
433
433
  preserve_concurrency = _Option(1, val_type=int)
434
434
  response_display_length_on_error = _Option(20000, val_type=int)
435
+ internal_token = _Option(None, val_type=str)
435
436
 
436
437
  def __get__(self, instance, owner) -> '_General':
437
438
  """defined to help ide"""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deepfos
3
- Version: 1.1.79
3
+ Version: 1.1.81
4
4
  Summary: Collecions of useful and handy tools for deepfos platform
5
5
  Home-page: http://py.deepfos.com
6
6
  Author: deepfos-python-team
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes