i2up-python-sdk 9.1.3.1__py3-none-any.whl

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 (1472) hide show
  1. examples/OracleRule.py +39 -0
  2. examples/__init__.py +0 -0
  3. examples/nodeList.py +42 -0
  4. examples/repBackupList.py +30 -0
  5. i2up_python_sdk-9.1.3.1.dist-info/LICENSE +201 -0
  6. i2up_python_sdk-9.1.3.1.dist-info/METADATA +23 -0
  7. i2up_python_sdk-9.1.3.1.dist-info/RECORD +1472 -0
  8. i2up_python_sdk-9.1.3.1.dist-info/WHEEL +5 -0
  9. i2up_python_sdk-9.1.3.1.dist-info/top_level.txt +2 -0
  10. info2soft/ContainerCls/__init__.py +0 -0
  11. info2soft/ContainerCls/v20240819/ContainerCls.py +261 -0
  12. info2soft/ContainerCls/v20240819/__init__.py +2 -0
  13. info2soft/ContainerCls/v20250123/ContainerCls.py +261 -0
  14. info2soft/ContainerCls/v20250123/__init__.py +2 -0
  15. info2soft/ContainerCls/v20250630/ContainerCls.py +261 -0
  16. info2soft/ContainerCls/v20250630/__init__.py +2 -0
  17. info2soft/TapeCopy/__init__.py +0 -0
  18. info2soft/TapeCopy/v20240819/TapeCopy.py +74 -0
  19. info2soft/TapeCopy/v20240819/__init__.py +2 -0
  20. info2soft/TapeCopy/v20250123/TapeCopy.py +74 -0
  21. info2soft/TapeCopy/v20250123/__init__.py +2 -0
  22. info2soft/TapeCopy/v20250630/TapeCopy.py +74 -0
  23. info2soft/TapeCopy/v20250630/__init__.py +2 -0
  24. info2soft/__init__.py +85 -0
  25. info2soft/active/__init__.py +3 -0
  26. info2soft/active/test/__init__.py +0 -0
  27. info2soft/active/test/v20200720/DataChkTest.py +269 -0
  28. info2soft/active/test/v20200720/Db2Test.py +546 -0
  29. info2soft/active/test/v20200720/DmTest.py +285 -0
  30. info2soft/active/test/v20200720/GaussTest.py +339 -0
  31. info2soft/active/test/v20200720/HeteroTest.py +416 -0
  32. info2soft/active/test/v20200720/InfomixTest.py +193 -0
  33. info2soft/active/test/v20200720/LogTest.py +69 -0
  34. info2soft/active/test/v20200720/MaskTest.py +690 -0
  35. info2soft/active/test/v20200720/MongoDBTest.py +202 -0
  36. info2soft/active/test/v20200720/MysqlTest.py +1058 -0
  37. info2soft/active/test/v20200720/NodeTest.py +200 -0
  38. info2soft/active/test/v20200720/NotificationsTest.py +52 -0
  39. info2soft/active/test/v20200720/OceanbaseTest.py +316 -0
  40. info2soft/active/test/v20200720/OracleRuleTest.py +1588 -0
  41. info2soft/active/test/v20200720/PostgresTest.py +238 -0
  42. info2soft/active/test/v20200720/QianBaseSyncTest.py +404 -0
  43. info2soft/active/test/v20200720/QianBasexTPTest.py +174 -0
  44. info2soft/active/test/v20200720/ScriptMaskTest.py +255 -0
  45. info2soft/active/test/v20200720/SqlserverTest.py +505 -0
  46. info2soft/active/test/v20200720/SummaryTest.py +76 -0
  47. info2soft/active/test/v20200720/SyncRulesTest.py +1295 -0
  48. info2soft/active/test/v20200720/TidbTest.py +444 -0
  49. info2soft/active/test/v20200720/__init__.py +0 -0
  50. info2soft/active/test/v20220622/DataChkTest.py +269 -0
  51. info2soft/active/test/v20220622/Db2Test.py +546 -0
  52. info2soft/active/test/v20220622/DmTest.py +285 -0
  53. info2soft/active/test/v20220622/GaussTest.py +339 -0
  54. info2soft/active/test/v20220622/HeteroTest.py +416 -0
  55. info2soft/active/test/v20220622/InfomixTest.py +193 -0
  56. info2soft/active/test/v20220622/LogTest.py +69 -0
  57. info2soft/active/test/v20220622/MaskTest.py +690 -0
  58. info2soft/active/test/v20220622/MongoDBTest.py +202 -0
  59. info2soft/active/test/v20220622/MysqlTest.py +1058 -0
  60. info2soft/active/test/v20220622/NodeTest.py +200 -0
  61. info2soft/active/test/v20220622/NotificationsTest.py +52 -0
  62. info2soft/active/test/v20220622/OceanbaseTest.py +316 -0
  63. info2soft/active/test/v20220622/OracleRuleTest.py +1588 -0
  64. info2soft/active/test/v20220622/PostgresTest.py +238 -0
  65. info2soft/active/test/v20220622/QianBaseSyncTest.py +404 -0
  66. info2soft/active/test/v20220622/QianBasexTPTest.py +174 -0
  67. info2soft/active/test/v20220622/ScriptMaskTest.py +255 -0
  68. info2soft/active/test/v20220622/SqlserverTest.py +505 -0
  69. info2soft/active/test/v20220622/SummaryTest.py +76 -0
  70. info2soft/active/test/v20220622/SyncRulesTest.py +1295 -0
  71. info2soft/active/test/v20220622/TidbTest.py +444 -0
  72. info2soft/active/test/v20220622/__init__.py +0 -0
  73. info2soft/active/v20200720/DataChk.py +192 -0
  74. info2soft/active/v20200720/Db2.py +495 -0
  75. info2soft/active/v20200720/Dm.py +226 -0
  76. info2soft/active/v20200720/Gauss.py +184 -0
  77. info2soft/active/v20200720/Hetero.py +320 -0
  78. info2soft/active/v20200720/Infomix.py +98 -0
  79. info2soft/active/v20200720/Log.py +35 -0
  80. info2soft/active/v20200720/Mask.py +475 -0
  81. info2soft/active/v20200720/MongoDB.py +158 -0
  82. info2soft/active/v20200720/Mysql.py +936 -0
  83. info2soft/active/v20200720/Node.py +126 -0
  84. info2soft/active/v20200720/Notifications.py +21 -0
  85. info2soft/active/v20200720/Oceanbase.py +257 -0
  86. info2soft/active/v20200720/OracleRule.py +1360 -0
  87. info2soft/active/v20200720/Postgres.py +196 -0
  88. info2soft/active/v20200720/QianBaseSync.py +330 -0
  89. info2soft/active/v20200720/QianBasexTP.py +86 -0
  90. info2soft/active/v20200720/ScriptMask.py +193 -0
  91. info2soft/active/v20200720/Sqlserver.py +430 -0
  92. info2soft/active/v20200720/Summary.py +46 -0
  93. info2soft/active/v20200720/SyncRules.py +1079 -0
  94. info2soft/active/v20200720/Tidb.py +304 -0
  95. info2soft/active/v20200720/__init__.py +6 -0
  96. info2soft/active/v20220622/DataChk.py +192 -0
  97. info2soft/active/v20220622/Db2.py +495 -0
  98. info2soft/active/v20220622/Dm.py +226 -0
  99. info2soft/active/v20220622/Gauss.py +184 -0
  100. info2soft/active/v20220622/Hetero.py +320 -0
  101. info2soft/active/v20220622/Infomix.py +98 -0
  102. info2soft/active/v20220622/Log.py +35 -0
  103. info2soft/active/v20220622/Mask.py +475 -0
  104. info2soft/active/v20220622/MongoDB.py +158 -0
  105. info2soft/active/v20220622/Mysql.py +936 -0
  106. info2soft/active/v20220622/Node.py +126 -0
  107. info2soft/active/v20220622/Notifications.py +21 -0
  108. info2soft/active/v20220622/Oceanbase.py +257 -0
  109. info2soft/active/v20220622/OracleRule.py +1360 -0
  110. info2soft/active/v20220622/Postgres.py +196 -0
  111. info2soft/active/v20220622/QianBaseSync.py +330 -0
  112. info2soft/active/v20220622/QianBasexTP.py +86 -0
  113. info2soft/active/v20220622/ScriptMask.py +193 -0
  114. info2soft/active/v20220622/Sqlserver.py +430 -0
  115. info2soft/active/v20220622/Summary.py +46 -0
  116. info2soft/active/v20220622/SyncRules.py +1079 -0
  117. info2soft/active/v20220622/Tidb.py +304 -0
  118. info2soft/active/v20220622/__init__.py +22 -0
  119. info2soft/active/v20230227/DataChk.py +302 -0
  120. info2soft/active/v20230227/Db2.py +282 -0
  121. info2soft/active/v20230227/Dm.py +98 -0
  122. info2soft/active/v20230227/Gauss.py +140 -0
  123. info2soft/active/v20230227/Hetero.py +296 -0
  124. info2soft/active/v20230227/Infomix.py +73 -0
  125. info2soft/active/v20230227/Log.py +47 -0
  126. info2soft/active/v20230227/Mask.py +488 -0
  127. info2soft/active/v20230227/MongoDB.py +111 -0
  128. info2soft/active/v20230227/Mysql.py +936 -0
  129. info2soft/active/v20230227/Notifications.py +21 -0
  130. info2soft/active/v20230227/Oceanbase.py +124 -0
  131. info2soft/active/v20230227/OfflineRule.py +100 -0
  132. info2soft/active/v20230227/OracleRule.py +490 -0
  133. info2soft/active/v20230227/Postgres.py +114 -0
  134. info2soft/active/v20230227/QianBaseSync.py +259 -0
  135. info2soft/active/v20230227/QianBasexTP.py +86 -0
  136. info2soft/active/v20230227/Redis.py +111 -0
  137. info2soft/active/v20230227/ScriptMask.py +170 -0
  138. info2soft/active/v20230227/Sqlserver.py +323 -0
  139. info2soft/active/v20230227/Summary.py +45 -0
  140. info2soft/active/v20230227/Tidb.py +114 -0
  141. info2soft/active/v20230227/__init__.py +44 -0
  142. info2soft/active/v20240228/DataChk.py +428 -0
  143. info2soft/active/v20240228/Db2.py +370 -0
  144. info2soft/active/v20240228/Dm.py +142 -0
  145. info2soft/active/v20240228/Gauss.py +140 -0
  146. info2soft/active/v20240228/HBase.py +75 -0
  147. info2soft/active/v20240228/Hetero.py +296 -0
  148. info2soft/active/v20240228/Infomix.py +136 -0
  149. info2soft/active/v20240228/Log.py +47 -0
  150. info2soft/active/v20240228/Mask.py +503 -0
  151. info2soft/active/v20240228/MongoDB.py +155 -0
  152. info2soft/active/v20240228/Mysql.py +949 -0
  153. info2soft/active/v20240228/Notifications.py +21 -0
  154. info2soft/active/v20240228/Oceanbase.py +244 -0
  155. info2soft/active/v20240228/OfflineRule.py +100 -0
  156. info2soft/active/v20240228/OracleRule.py +1683 -0
  157. info2soft/active/v20240228/Postgres.py +177 -0
  158. info2soft/active/v20240228/QianBaseSync.py +303 -0
  159. info2soft/active/v20240228/QianBasexTP.py +86 -0
  160. info2soft/active/v20240228/Redis.py +155 -0
  161. info2soft/active/v20240228/ScriptMask.py +170 -0
  162. info2soft/active/v20240228/Sqlserver.py +468 -0
  163. info2soft/active/v20240228/Summary.py +45 -0
  164. info2soft/active/v20240228/Tidb.py +291 -0
  165. info2soft/active/v20240228/__init__.py +44 -0
  166. info2soft/active/v20240819/DataChk.py +380 -0
  167. info2soft/active/v20240819/Db2.py +164 -0
  168. info2soft/active/v20240819/Dm.py +111 -0
  169. info2soft/active/v20240819/HBase.py +75 -0
  170. info2soft/active/v20240819/Hetero.py +231 -0
  171. info2soft/active/v20240819/Informix.py +112 -0
  172. info2soft/active/v20240819/Mask.py +493 -0
  173. info2soft/active/v20240819/MongoDB.py +115 -0
  174. info2soft/active/v20240819/Mysql.py +270 -0
  175. info2soft/active/v20240819/Notifications.py +21 -0
  176. info2soft/active/v20240819/Oceanbase.py +202 -0
  177. info2soft/active/v20240819/OfflineRule.py +207 -0
  178. info2soft/active/v20240819/OracleRule.py +1397 -0
  179. info2soft/active/v20240819/Postgres.py +140 -0
  180. info2soft/active/v20240819/QianBaseSync.py +140 -0
  181. info2soft/active/v20240819/Rabbitmq.py +111 -0
  182. info2soft/active/v20240819/Redis.py +115 -0
  183. info2soft/active/v20240819/ScriptMask.py +210 -0
  184. info2soft/active/v20240819/Sqlserver.py +230 -0
  185. info2soft/active/v20240819/Summary.py +34 -0
  186. info2soft/active/v20240819/Tidb.py +205 -0
  187. info2soft/active/v20240819/__init__.py +42 -0
  188. info2soft/active/v20250123/DataChk.py +380 -0
  189. info2soft/active/v20250123/Db2.py +163 -0
  190. info2soft/active/v20250123/Dm.py +111 -0
  191. info2soft/active/v20250123/HBase.py +75 -0
  192. info2soft/active/v20250123/Hetero.py +244 -0
  193. info2soft/active/v20250123/HeteroConsumer.py +114 -0
  194. info2soft/active/v20250123/Informix.py +112 -0
  195. info2soft/active/v20250123/Mask.py +493 -0
  196. info2soft/active/v20250123/MongoDB.py +115 -0
  197. info2soft/active/v20250123/Mysql.py +270 -0
  198. info2soft/active/v20250123/MysqlRule.py +125 -0
  199. info2soft/active/v20250123/Notifications.py +21 -0
  200. info2soft/active/v20250123/Oceanbase.py +202 -0
  201. info2soft/active/v20250123/OfflineRule.py +207 -0
  202. info2soft/active/v20250123/OracleRule.py +1397 -0
  203. info2soft/active/v20250123/Postgres.py +140 -0
  204. info2soft/active/v20250123/QianBaseSync.py +140 -0
  205. info2soft/active/v20250123/Rabbitmq.py +111 -0
  206. info2soft/active/v20250123/Redis.py +115 -0
  207. info2soft/active/v20250123/ScriptMask.py +210 -0
  208. info2soft/active/v20250123/SqlServerRule.py +125 -0
  209. info2soft/active/v20250123/Sqlserver.py +230 -0
  210. info2soft/active/v20250123/Summary.py +34 -0
  211. info2soft/active/v20250123/Tidb.py +205 -0
  212. info2soft/active/v20250123/__init__.py +48 -0
  213. info2soft/active/v20250630/DataChk.py +380 -0
  214. info2soft/active/v20250630/Db2.py +163 -0
  215. info2soft/active/v20250630/Dm.py +111 -0
  216. info2soft/active/v20250630/HBase.py +75 -0
  217. info2soft/active/v20250630/Hetero.py +244 -0
  218. info2soft/active/v20250630/HeteroConsumer.py +140 -0
  219. info2soft/active/v20250630/Informix.py +112 -0
  220. info2soft/active/v20250630/Mask.py +493 -0
  221. info2soft/active/v20250630/MongoDB.py +115 -0
  222. info2soft/active/v20250630/Mysql.py +270 -0
  223. info2soft/active/v20250630/MysqlRule.py +125 -0
  224. info2soft/active/v20250630/Notifications.py +21 -0
  225. info2soft/active/v20250630/Oceanbase.py +202 -0
  226. info2soft/active/v20250630/OfflineRule.py +207 -0
  227. info2soft/active/v20250630/OracleRule.py +1397 -0
  228. info2soft/active/v20250630/Postgres.py +140 -0
  229. info2soft/active/v20250630/QianBaseSync.py +140 -0
  230. info2soft/active/v20250630/Rabbitmq.py +111 -0
  231. info2soft/active/v20250630/Redis.py +115 -0
  232. info2soft/active/v20250630/RocketMq.py +114 -0
  233. info2soft/active/v20250630/RoutingRule.py +163 -0
  234. info2soft/active/v20250630/ScriptMask.py +210 -0
  235. info2soft/active/v20250630/SqlServerRule.py +125 -0
  236. info2soft/active/v20250630/Sqlserver.py +230 -0
  237. info2soft/active/v20250630/Summary.py +34 -0
  238. info2soft/active/v20250630/Tidb.py +205 -0
  239. info2soft/active/v20250630/__init__.py +52 -0
  240. info2soft/appContinuity/__init__.py +0 -0
  241. info2soft/appContinuity/v20240819/AppContinuity.py +180 -0
  242. info2soft/appContinuity/v20240819/__init__.py +2 -0
  243. info2soft/appContinuity/v20250123/AppContinuity.py +180 -0
  244. info2soft/appContinuity/v20250123/__init__.py +2 -0
  245. info2soft/appContinuity/v20250630/AppContinuity.py +219 -0
  246. info2soft/appContinuity/v20250630/__init__.py +2 -0
  247. info2soft/authorization/__init__.py +0 -0
  248. info2soft/authorization/v20240819/Authorization.py +99 -0
  249. info2soft/authorization/v20240819/__init__.py +2 -0
  250. info2soft/authorization/v20250123/Authorization.py +99 -0
  251. info2soft/authorization/v20250123/__init__.py +2 -0
  252. info2soft/authorization/v20250630/Authorization.py +99 -0
  253. info2soft/authorization/v20250630/__init__.py +2 -0
  254. info2soft/backupDomain/__init__.py +0 -0
  255. info2soft/backupDomain/v20250630/BackupDomain.py +115 -0
  256. info2soft/backupDomain/v20250630/__init__.py +2 -0
  257. info2soft/backupRule/__init__.py +0 -0
  258. info2soft/backupRule/v20240228/BackupRule.py +178 -0
  259. info2soft/backupRule/v20240228/__init__.py +2 -0
  260. info2soft/backupRule/v20240819/BackupRule.py +167 -0
  261. info2soft/backupRule/v20240819/__init__.py +2 -0
  262. info2soft/backupRule/v20250123/BackupRule.py +193 -0
  263. info2soft/backupRule/v20250123/__init__.py +2 -0
  264. info2soft/backupRule/v20250630/BackupRule.py +232 -0
  265. info2soft/backupRule/v20250630/__init__.py +2 -0
  266. info2soft/backupSet/__init__.py +0 -0
  267. info2soft/backupSet/v20240228/BackupSet.py +208 -0
  268. info2soft/backupSet/v20240228/__init__.py +2 -0
  269. info2soft/backupSet/v20240819/BackupSet.py +242 -0
  270. info2soft/backupSet/v20240819/__init__.py +2 -0
  271. info2soft/backupSet/v20250123/BackupSet.py +294 -0
  272. info2soft/backupSet/v20250123/__init__.py +2 -0
  273. info2soft/backupSet/v20250630/BackupSet.py +294 -0
  274. info2soft/backupSet/v20250630/__init__.py +2 -0
  275. info2soft/backupSetRulePolicy/__init__.py +0 -0
  276. info2soft/backupSetRulePolicy/v20240228/BackupSetRulePolicy.py +76 -0
  277. info2soft/backupSetRulePolicy/v20240228/__init__.py +2 -0
  278. info2soft/backupSetRulePolicy/v20240819/BackupSetRulePolicy.py +76 -0
  279. info2soft/backupSetRulePolicy/v20240819/__init__.py +2 -0
  280. info2soft/backupSetRulePolicy/v20250123/BackupSetRulePolicy.py +76 -0
  281. info2soft/backupSetRulePolicy/v20250123/__init__.py +2 -0
  282. info2soft/backupSetRulePolicy/v20250630/BackupSetRulePolicy.py +76 -0
  283. info2soft/backupSetRulePolicy/v20250630/__init__.py +2 -0
  284. info2soft/backupWork/__init__.py +0 -0
  285. info2soft/backupWork/v20240228/BackupWork.py +152 -0
  286. info2soft/backupWork/v20240228/__init__.py +2 -0
  287. info2soft/backupWork/v20240819/BackupWork.py +183 -0
  288. info2soft/backupWork/v20240819/__init__.py +2 -0
  289. info2soft/backupWork/v20250123/BackupWork.py +183 -0
  290. info2soft/backupWork/v20250123/__init__.py +2 -0
  291. info2soft/backupWork/v20250630/BackupWork.py +183 -0
  292. info2soft/backupWork/v20250630/__init__.py +2 -0
  293. info2soft/bigdata/__init__.py +2 -0
  294. info2soft/bigdata/v20200724/Backup.py +130 -0
  295. info2soft/bigdata/v20200724/Recovery.py +164 -0
  296. info2soft/bigdata/v20200724/__init__.py +3 -0
  297. info2soft/bigdata/v20220622/Backup.py +130 -0
  298. info2soft/bigdata/v20220622/Recovery.py +164 -0
  299. info2soft/bigdata/v20220622/__init__.py +3 -0
  300. info2soft/bigdata/v20230227/Backup.py +218 -0
  301. info2soft/bigdata/v20230227/__init__.py +2 -0
  302. info2soft/bigdata/v20240228/Backup.py +257 -0
  303. info2soft/bigdata/v20240228/__init__.py +2 -0
  304. info2soft/bigdata/v20240819/Backup.py +243 -0
  305. info2soft/bigdata/v20240819/Recovery.py +152 -0
  306. info2soft/bigdata/v20240819/__init__.py +4 -0
  307. info2soft/bigdata/v20250123/Backup.py +243 -0
  308. info2soft/bigdata/v20250123/Recovery.py +152 -0
  309. info2soft/bigdata/v20250123/__init__.py +4 -0
  310. info2soft/bigdata/v20250630/Backup.py +243 -0
  311. info2soft/bigdata/v20250630/Recovery.py +152 -0
  312. info2soft/bigdata/v20250630/__init__.py +4 -0
  313. info2soft/bigdataBackupRule/__init__.py +0 -0
  314. info2soft/bigdataBackupRule/v20240819/BigdataBackupRule.py +152 -0
  315. info2soft/bigdataBackupRule/v20240819/__init__.py +2 -0
  316. info2soft/bigdataBackupRule/v20250123/BigdataBackupRule.py +152 -0
  317. info2soft/bigdataBackupRule/v20250123/__init__.py +2 -0
  318. info2soft/bigdataBackupRule/v20250630/BigdataBackupRule.py +152 -0
  319. info2soft/bigdataBackupRule/v20250630/__init__.py +2 -0
  320. info2soft/bigdataRecoveryRule/__init__.py +0 -0
  321. info2soft/bigdataRecoveryRule/v20240819/BigdataRecoveryRule.py +76 -0
  322. info2soft/bigdataRecoveryRule/v20240819/__init__.py +2 -0
  323. info2soft/bigdataRecoveryRule/v20250123/BigdataRecoveryRule.py +76 -0
  324. info2soft/bigdataRecoveryRule/v20250123/__init__.py +2 -0
  325. info2soft/bigdataRecoveryRule/v20250630/BigdataRecoveryRule.py +76 -0
  326. info2soft/bigdataRecoveryRule/v20250630/__init__.py +2 -0
  327. info2soft/cdm/__init__.py +1 -0
  328. info2soft/cdm/v20200729/Cdm.py +688 -0
  329. info2soft/cdm/v20200729/__init__.py +2 -0
  330. info2soft/cdm/v20220622/Cdm.py +688 -0
  331. info2soft/cdm/v20220622/__init__.py +2 -0
  332. info2soft/cdm/v20230227/Cdm.py +602 -0
  333. info2soft/cdm/v20230227/__init__.py +2 -0
  334. info2soft/cdm/v20240228/Cdm.py +640 -0
  335. info2soft/cdm/v20240228/__init__.py +2 -0
  336. info2soft/cdm/v20240819/Cdm.py +232 -0
  337. info2soft/cdm/v20240819/CdmRecovery.py +99 -0
  338. info2soft/cdm/v20240819/CdmRule.py +113 -0
  339. info2soft/cdm/v20240819/Drill.py +127 -0
  340. info2soft/cdm/v20240819/FfoMount.py +89 -0
  341. info2soft/cdm/v20240819/RemoteCoopy.py +178 -0
  342. info2soft/cdm/v20240819/__init__.py +12 -0
  343. info2soft/cdm/v20250123/Cdm.py +232 -0
  344. info2soft/cdm/v20250123/CdmRecovery.py +99 -0
  345. info2soft/cdm/v20250123/CdmRule.py +113 -0
  346. info2soft/cdm/v20250123/Drill.py +127 -0
  347. info2soft/cdm/v20250123/FfoMount.py +89 -0
  348. info2soft/cdm/v20250123/RemoteCoopy.py +178 -0
  349. info2soft/cdm/v20250123/__init__.py +12 -0
  350. info2soft/cdm/v20250630/Cdm.py +232 -0
  351. info2soft/cdm/v20250630/CdmRecovery.py +99 -0
  352. info2soft/cdm/v20250630/CdmRule.py +113 -0
  353. info2soft/cdm/v20250630/Drill.py +127 -0
  354. info2soft/cdm/v20250630/FfoMount.py +89 -0
  355. info2soft/cdm/v20250630/RemoteCoopy.py +178 -0
  356. info2soft/cdm/v20250630/__init__.py +12 -0
  357. info2soft/cfs/__init__.py +0 -0
  358. info2soft/cfs/v20240228/CfsBackup.py +218 -0
  359. info2soft/cfs/v20240228/__init__.py +2 -0
  360. info2soft/cfs/v20240819/CfsBackup.py +193 -0
  361. info2soft/cfs/v20240819/__init__.py +2 -0
  362. info2soft/cfs/v20250123/CfsBackup.py +193 -0
  363. info2soft/cfs/v20250123/__init__.py +2 -0
  364. info2soft/cfs/v20250630/CfsBackup.py +232 -0
  365. info2soft/cfs/v20250630/__init__.py +2 -0
  366. info2soft/cloud/__init__.py +1 -0
  367. info2soft/cloud/v20200727/CloudBackup.py +170 -0
  368. info2soft/cloud/v20200727/CloudEcs.py +237 -0
  369. info2soft/cloud/v20200727/CloudPlatform.py +191 -0
  370. info2soft/cloud/v20200727/CloudRehearse.py +438 -0
  371. info2soft/cloud/v20200727/CloudVolume.py +123 -0
  372. info2soft/cloud/v20200727/__init__.py +6 -0
  373. info2soft/cloud/v20220622/CloudBackup.py +170 -0
  374. info2soft/cloud/v20220622/CloudEcs.py +237 -0
  375. info2soft/cloud/v20220622/CloudPlatform.py +191 -0
  376. info2soft/cloud/v20220622/CloudRehearse.py +438 -0
  377. info2soft/cloud/v20220622/CloudVolume.py +123 -0
  378. info2soft/cloud/v20220622/__init__.py +6 -0
  379. info2soft/cloud/v20230227/CloudBackup.py +1028 -0
  380. info2soft/cloud/v20230227/__init__.py +2 -0
  381. info2soft/cloud/v20240228/CloudBackup.py +1098 -0
  382. info2soft/cloud/v20240228/__init__.py +2 -0
  383. info2soft/cloud/v20240819/CloudBackendStorage.py +76 -0
  384. info2soft/cloud/v20240819/CloudBackup.py +153 -0
  385. info2soft/cloud/v20240819/CloudEcs.py +256 -0
  386. info2soft/cloud/v20240819/CloudPlatform.py +193 -0
  387. info2soft/cloud/v20240819/CloudRehearse.py +438 -0
  388. info2soft/cloud/v20240819/CloudVolume.py +124 -0
  389. info2soft/cloud/v20240819/__init__.py +12 -0
  390. info2soft/cloud/v20250123/CloudBackendStorage.py +76 -0
  391. info2soft/cloud/v20250123/CloudBackup.py +153 -0
  392. info2soft/cloud/v20250123/CloudEcs.py +256 -0
  393. info2soft/cloud/v20250123/CloudPlatform.py +193 -0
  394. info2soft/cloud/v20250123/CloudRehearse.py +438 -0
  395. info2soft/cloud/v20250123/CloudVolume.py +124 -0
  396. info2soft/cloud/v20250123/__init__.py +12 -0
  397. info2soft/cloud/v20250630/CloudBackendStorage.py +76 -0
  398. info2soft/cloud/v20250630/CloudBackup.py +153 -0
  399. info2soft/cloud/v20250630/CloudEcs.py +256 -0
  400. info2soft/cloud/v20250630/CloudPlatform.py +193 -0
  401. info2soft/cloud/v20250630/CloudRehearse.py +438 -0
  402. info2soft/cloud/v20250630/CloudVolume.py +124 -0
  403. info2soft/cloud/v20250630/__init__.py +12 -0
  404. info2soft/common/Auth.py +215 -0
  405. info2soft/common/BackupMigrate.py +111 -0
  406. info2soft/common/Cache.py +93 -0
  407. info2soft/common/CcMonitor.py +33 -0
  408. info2soft/common/Client.py +101 -0
  409. info2soft/common/CompareResult.py +78 -0
  410. info2soft/common/Credential.py +102 -0
  411. info2soft/common/DataBaseBackup.py +68 -0
  412. info2soft/common/DbConvert.py +46 -0
  413. info2soft/common/Diagnose.py +47 -0
  414. info2soft/common/Dir.py +112 -0
  415. info2soft/common/FindPassword.py +60 -0
  416. info2soft/common/GTS.py +83 -0
  417. info2soft/common/GeneralInterface.py +256 -0
  418. info2soft/common/Lic.py +215 -0
  419. info2soft/common/Logs.py +85 -0
  420. info2soft/common/Menu.py +20 -0
  421. info2soft/common/Notifications.py +177 -0
  422. info2soft/common/OpLogs.py +72 -0
  423. info2soft/common/Permission.py +32 -0
  424. info2soft/common/Qr.py +99 -0
  425. info2soft/common/RestrpcServer.py +114 -0
  426. info2soft/common/Rsa.py +67 -0
  427. info2soft/common/Settings.py +448 -0
  428. info2soft/common/Statistics.py +101 -0
  429. info2soft/common/Storage.py +978 -0
  430. info2soft/common/Tenant.py +62 -0
  431. info2soft/common/Wechat.py +45 -0
  432. info2soft/common/__init__.py +0 -0
  433. info2soft/common/test/__init__.py +0 -0
  434. info2soft/common/test/v20190104/AuthTest.py +124 -0
  435. info2soft/common/test/v20190104/BackupMigrateTest.py +149 -0
  436. info2soft/common/test/v20190104/CcMonitorTest.py +63 -0
  437. info2soft/common/test/v20190104/ClientTest.py +153 -0
  438. info2soft/common/test/v20190104/CompareResultTest.py +102 -0
  439. info2soft/common/test/v20190104/CredentialTest.py +129 -0
  440. info2soft/common/test/v20190104/DataBaseBackupTest.py +75 -0
  441. info2soft/common/test/v20190104/DbConvertTest.py +73 -0
  442. info2soft/common/test/v20190104/DiagnoseTest.py +79 -0
  443. info2soft/common/test/v20190104/DirTest.py +158 -0
  444. info2soft/common/test/v20190104/FindPasswordTest.py +92 -0
  445. info2soft/common/test/v20190104/GTSTest.py +117 -0
  446. info2soft/common/test/v20190104/GeneralInterfaceTest.py +285 -0
  447. info2soft/common/test/v20190104/LicTest.py +265 -0
  448. info2soft/common/test/v20190104/LogsTest.py +153 -0
  449. info2soft/common/test/v20190104/MenuTest.py +48 -0
  450. info2soft/common/test/v20190104/NotificationsTest.py +256 -0
  451. info2soft/common/test/v20190104/OpLogsTest.py +125 -0
  452. info2soft/common/test/v20190104/PermissionTest.py +55 -0
  453. info2soft/common/test/v20190104/QrTest.py +117 -0
  454. info2soft/common/test/v20190104/RestrpcServerTest.py +159 -0
  455. info2soft/common/test/v20190104/SettingsTest.py +518 -0
  456. info2soft/common/test/v20190104/StatisticsTest.py +210 -0
  457. info2soft/common/test/v20190104/StorageTest.py +48 -0
  458. info2soft/common/test/v20190104/TenantTest.py +100 -0
  459. info2soft/common/test/v20190104/WechatTest.py +72 -0
  460. info2soft/common/test/v20190104/__init__.py +0 -0
  461. info2soft/common/test/v20190805/MonitorTest.py +45 -0
  462. info2soft/common/test/v20190805/PermissionTest.py +45 -0
  463. info2soft/common/test/v20190805/StorageTest.py +1058 -0
  464. info2soft/common/test/v20190805/__init__.py +0 -0
  465. info2soft/common/test/v20220622/AuthTest.py +124 -0
  466. info2soft/common/test/v20220622/BackupMigrateTest.py +149 -0
  467. info2soft/common/test/v20220622/CcMonitorTest.py +63 -0
  468. info2soft/common/test/v20220622/ClientTest.py +153 -0
  469. info2soft/common/test/v20220622/CompareResultTest.py +102 -0
  470. info2soft/common/test/v20220622/CredentialTest.py +129 -0
  471. info2soft/common/test/v20220622/DataBaseBackupTest.py +75 -0
  472. info2soft/common/test/v20220622/DbConvertTest.py +73 -0
  473. info2soft/common/test/v20220622/DiagnoseTest.py +79 -0
  474. info2soft/common/test/v20220622/DirTest.py +158 -0
  475. info2soft/common/test/v20220622/FindPasswordTest.py +92 -0
  476. info2soft/common/test/v20220622/GTSTest.py +117 -0
  477. info2soft/common/test/v20220622/GeneralInterfaceTest.py +285 -0
  478. info2soft/common/test/v20220622/LicTest.py +265 -0
  479. info2soft/common/test/v20220622/LogsTest.py +153 -0
  480. info2soft/common/test/v20220622/MenuTest.py +48 -0
  481. info2soft/common/test/v20220622/NotificationsTest.py +256 -0
  482. info2soft/common/test/v20220622/OpLogsTest.py +125 -0
  483. info2soft/common/test/v20220622/PermissionTest.py +55 -0
  484. info2soft/common/test/v20220622/QrTest.py +117 -0
  485. info2soft/common/test/v20220622/RestrpcServerTest.py +159 -0
  486. info2soft/common/test/v20220622/SettingsTest.py +518 -0
  487. info2soft/common/test/v20220622/StatisticsTest.py +210 -0
  488. info2soft/common/test/v20220622/StorageTest.py +48 -0
  489. info2soft/common/test/v20220622/TenantTest.py +100 -0
  490. info2soft/common/test/v20220622/WechatTest.py +72 -0
  491. info2soft/common/test/v20220622/__init__.py +0 -0
  492. info2soft/common/utils.py +168 -0
  493. info2soft/common/v20230227/Auth.py +218 -0
  494. info2soft/common/v20230227/BackupMigrate.py +111 -0
  495. info2soft/common/v20230227/BigScreen.py +192 -0
  496. info2soft/common/v20230227/CcMonitor.py +33 -0
  497. info2soft/common/v20230227/Client.py +112 -0
  498. info2soft/common/v20230227/CommonTemplate.py +77 -0
  499. info2soft/common/v20230227/CompareResult.py +76 -0
  500. info2soft/common/v20230227/Credential.py +115 -0
  501. info2soft/common/v20230227/DataBaseBackup.py +69 -0
  502. info2soft/common/v20230227/DbConvert.py +46 -0
  503. info2soft/common/v20230227/Diagnose.py +59 -0
  504. info2soft/common/v20230227/Dir.py +112 -0
  505. info2soft/common/v20230227/FindPassword.py +60 -0
  506. info2soft/common/v20230227/GTS.py +83 -0
  507. info2soft/common/v20230227/GeneralInterface.py +295 -0
  508. info2soft/common/v20230227/Lic.py +239 -0
  509. info2soft/common/v20230227/Logs.py +85 -0
  510. info2soft/common/v20230227/Menu.py +20 -0
  511. info2soft/common/v20230227/Notifications.py +203 -0
  512. info2soft/common/v20230227/OpLogs.py +72 -0
  513. info2soft/common/v20230227/Permission.py +45 -0
  514. info2soft/common/v20230227/Qr.py +73 -0
  515. info2soft/common/v20230227/RestrpcServer.py +112 -0
  516. info2soft/common/v20230227/Settings.py +487 -0
  517. info2soft/common/v20230227/Statistics.py +112 -0
  518. info2soft/common/v20230227/Tenant.py +60 -0
  519. info2soft/common/v20230227/Webhook.py +130 -0
  520. info2soft/common/v20230227/Wechat.py +45 -0
  521. info2soft/common/v20230227/__init__.py +60 -0
  522. info2soft/common/v20240228/Auth.py +218 -0
  523. info2soft/common/v20240228/BackupMigrate.py +111 -0
  524. info2soft/common/v20240228/BigScreen.py +192 -0
  525. info2soft/common/v20240228/CcMonitor.py +161 -0
  526. info2soft/common/v20240228/Client.py +242 -0
  527. info2soft/common/v20240228/CommonTemplate.py +77 -0
  528. info2soft/common/v20240228/CompareResult.py +76 -0
  529. info2soft/common/v20240228/Credential.py +115 -0
  530. info2soft/common/v20240228/DataBaseBackup.py +69 -0
  531. info2soft/common/v20240228/DbConvert.py +46 -0
  532. info2soft/common/v20240228/Diagnose.py +59 -0
  533. info2soft/common/v20240228/Dir.py +125 -0
  534. info2soft/common/v20240228/FindPassword.py +60 -0
  535. info2soft/common/v20240228/GTS.py +83 -0
  536. info2soft/common/v20240228/GeneralInterface.py +333 -0
  537. info2soft/common/v20240228/GuardData.py +114 -0
  538. info2soft/common/v20240228/Lic.py +280 -0
  539. info2soft/common/v20240228/Logs.py +85 -0
  540. info2soft/common/v20240228/Menu.py +20 -0
  541. info2soft/common/v20240228/Notifications.py +203 -0
  542. info2soft/common/v20240228/OpLogs.py +72 -0
  543. info2soft/common/v20240228/Permission.py +45 -0
  544. info2soft/common/v20240228/Qr.py +73 -0
  545. info2soft/common/v20240228/RestrpcServer.py +112 -0
  546. info2soft/common/v20240228/Settings.py +550 -0
  547. info2soft/common/v20240228/Statistics.py +125 -0
  548. info2soft/common/v20240228/Tenant.py +60 -0
  549. info2soft/common/v20240228/Webhook.py +130 -0
  550. info2soft/common/v20240228/Wechat.py +45 -0
  551. info2soft/common/v20240228/__init__.py +60 -0
  552. info2soft/common/v20240819/Auth.py +122 -0
  553. info2soft/common/v20240819/BackupMigrate.py +111 -0
  554. info2soft/common/v20240819/BigScreen.py +192 -0
  555. info2soft/common/v20240819/CcMonitor.py +137 -0
  556. info2soft/common/v20240819/Client.py +254 -0
  557. info2soft/common/v20240819/CommonTemplate.py +77 -0
  558. info2soft/common/v20240819/CompareResult.py +76 -0
  559. info2soft/common/v20240819/Credential.py +115 -0
  560. info2soft/common/v20240819/DbConvert.py +46 -0
  561. info2soft/common/v20240819/Diagnose.py +59 -0
  562. info2soft/common/v20240819/Dir.py +125 -0
  563. info2soft/common/v20240819/FindPassword.py +60 -0
  564. info2soft/common/v20240819/GeneralInterface.py +419 -0
  565. info2soft/common/v20240819/Lic.py +149 -0
  566. info2soft/common/v20240819/Logs.py +85 -0
  567. info2soft/common/v20240819/Menu.py +20 -0
  568. info2soft/common/v20240819/Notifications.py +216 -0
  569. info2soft/common/v20240819/OpLogs.py +59 -0
  570. info2soft/common/v20240819/Permission.py +58 -0
  571. info2soft/common/v20240819/Qr.py +99 -0
  572. info2soft/common/v20240819/Settings.py +729 -0
  573. info2soft/common/v20240819/Statistics.py +138 -0
  574. info2soft/common/v20240819/Tenant.py +62 -0
  575. info2soft/common/v20240819/Webhook.py +130 -0
  576. info2soft/common/v20240819/Wechat.py +45 -0
  577. info2soft/common/v20240819/__init__.py +50 -0
  578. info2soft/common/v20250123/Auth.py +148 -0
  579. info2soft/common/v20250123/BackupMigrate.py +111 -0
  580. info2soft/common/v20250123/BigScreen.py +192 -0
  581. info2soft/common/v20250123/CcMonitor.py +137 -0
  582. info2soft/common/v20250123/Client.py +254 -0
  583. info2soft/common/v20250123/CommonTemplate.py +77 -0
  584. info2soft/common/v20250123/CompareResult.py +76 -0
  585. info2soft/common/v20250123/Credential.py +115 -0
  586. info2soft/common/v20250123/DbConvert.py +46 -0
  587. info2soft/common/v20250123/Diagnose.py +59 -0
  588. info2soft/common/v20250123/Dir.py +125 -0
  589. info2soft/common/v20250123/FindPassword.py +60 -0
  590. info2soft/common/v20250123/GeneralInterface.py +419 -0
  591. info2soft/common/v20250123/GeneralSettings.py +84 -0
  592. info2soft/common/v20250123/Lic.py +149 -0
  593. info2soft/common/v20250123/LicQuota.py +102 -0
  594. info2soft/common/v20250123/Logs.py +85 -0
  595. info2soft/common/v20250123/Menu.py +20 -0
  596. info2soft/common/v20250123/Notifications.py +216 -0
  597. info2soft/common/v20250123/OpLogs.py +59 -0
  598. info2soft/common/v20250123/Permission.py +58 -0
  599. info2soft/common/v20250123/Qr.py +99 -0
  600. info2soft/common/v20250123/Settings.py +537 -0
  601. info2soft/common/v20250123/Statistics.py +163 -0
  602. info2soft/common/v20250123/Tenant.py +62 -0
  603. info2soft/common/v20250123/UserSettings.py +173 -0
  604. info2soft/common/v20250123/Webhook.py +130 -0
  605. info2soft/common/v20250123/Wechat.py +45 -0
  606. info2soft/common/v20250123/__init__.py +56 -0
  607. info2soft/common/v20250630/BackupMigrate.py +111 -0
  608. info2soft/common/v20250630/BigScreen.py +192 -0
  609. info2soft/common/v20250630/CcMonitor.py +137 -0
  610. info2soft/common/v20250630/Client.py +254 -0
  611. info2soft/common/v20250630/CommonTemplate.py +77 -0
  612. info2soft/common/v20250630/CompareResult.py +76 -0
  613. info2soft/common/v20250630/Credential.py +115 -0
  614. info2soft/common/v20250630/DbConvert.py +46 -0
  615. info2soft/common/v20250630/Diagnose.py +59 -0
  616. info2soft/common/v20250630/Dir.py +125 -0
  617. info2soft/common/v20250630/FindPassword.py +60 -0
  618. info2soft/common/v20250630/GeneralInterface.py +419 -0
  619. info2soft/common/v20250630/GeneralSettings.py +84 -0
  620. info2soft/common/v20250630/Lic.py +161 -0
  621. info2soft/common/v20250630/LicQuota.py +102 -0
  622. info2soft/common/v20250630/Logs.py +85 -0
  623. info2soft/common/v20250630/Menu.py +20 -0
  624. info2soft/common/v20250630/Notifications.py +216 -0
  625. info2soft/common/v20250630/OpLogs.py +59 -0
  626. info2soft/common/v20250630/Permission.py +58 -0
  627. info2soft/common/v20250630/Qr.py +99 -0
  628. info2soft/common/v20250630/Settings.py +537 -0
  629. info2soft/common/v20250630/Statistics.py +163 -0
  630. info2soft/common/v20250630/Tenant.py +62 -0
  631. info2soft/common/v20250630/UserSettings.py +173 -0
  632. info2soft/common/v20250630/Webhook.py +130 -0
  633. info2soft/common/v20250630/Wechat.py +45 -0
  634. info2soft/common/v20250630/__init__.py +54 -0
  635. info2soft/compat.py +76 -0
  636. info2soft/config.py +33 -0
  637. info2soft/container_cls/__init__.py +0 -0
  638. info2soft/container_cls/v20230227/ContainerCls.py +209 -0
  639. info2soft/container_cls/v20230227/__init__.py +2 -0
  640. info2soft/container_cls/v20240228/ContainerCls.py +247 -0
  641. info2soft/container_cls/v20240228/__init__.py +2 -0
  642. info2soft/dashboard/__init__.py +0 -0
  643. info2soft/dashboard/test/__init__.py +0 -0
  644. info2soft/dashboard/test/v20190104/DashboardTest.py +100 -0
  645. info2soft/dashboard/test/v20190104/__init__.py +0 -0
  646. info2soft/dashboard/test/v20220622/DashboardTest.py +100 -0
  647. info2soft/dashboard/test/v20220622/__init__.py +0 -0
  648. info2soft/dashboard/v20181227/Dashboard.py +73 -0
  649. info2soft/dashboard/v20181227/__init__.py +0 -0
  650. info2soft/dashboard/v20220622/Dashboard.py +73 -0
  651. info2soft/dashboard/v20220622/__init__.py +1 -0
  652. info2soft/dashboard/v20240819/Dashboard.py +120 -0
  653. info2soft/dashboard/v20240819/__init__.py +2 -0
  654. info2soft/dashboard/v20250123/Dashboard.py +120 -0
  655. info2soft/dashboard/v20250123/__init__.py +2 -0
  656. info2soft/dashboard/v20250630/Dashboard.py +120 -0
  657. info2soft/dashboard/v20250630/__init__.py +2 -0
  658. info2soft/dbInstance/__init__.py +0 -0
  659. info2soft/dbInstance/v20240819/DbInstance.py +140 -0
  660. info2soft/dbInstance/v20240819/__init__.py +2 -0
  661. info2soft/dbInstance/v20250123/DbInstance.py +140 -0
  662. info2soft/dbInstance/v20250123/__init__.py +2 -0
  663. info2soft/dbInstance/v20250630/DbInstance.py +140 -0
  664. info2soft/dbInstance/v20250630/__init__.py +2 -0
  665. info2soft/dedupeStorage/__init__.py +0 -0
  666. info2soft/dedupeStorage/v20240819/DedupeStorage.py +115 -0
  667. info2soft/dedupeStorage/v20240819/__init__.py +2 -0
  668. info2soft/dedupeStorage/v20250123/DedupeStorage.py +115 -0
  669. info2soft/dedupeStorage/v20250123/__init__.py +2 -0
  670. info2soft/dedupeStorage/v20250630/DedupeStorage.py +115 -0
  671. info2soft/dedupeStorage/v20250630/__init__.py +2 -0
  672. info2soft/distributor/__init__.py +1 -0
  673. info2soft/distributor/v20200727/DistributorSystem.py +216 -0
  674. info2soft/distributor/v20200727/Group.py +150 -0
  675. info2soft/distributor/v20200727/Node.py +176 -0
  676. info2soft/distributor/v20200727/__init__.py +6 -0
  677. info2soft/distributor/v20220622/DistributorSystem.py +216 -0
  678. info2soft/distributor/v20220622/Group.py +150 -0
  679. info2soft/distributor/v20220622/Node.py +176 -0
  680. info2soft/distributor/v20220622/__init__.py +6 -0
  681. info2soft/dto/Dto.py +221 -0
  682. info2soft/dto/__init__.py +0 -0
  683. info2soft/dto/v20220622/Dto.py +221 -0
  684. info2soft/dto/v20220622/__init__.py +1 -0
  685. info2soft/dto/v20230227/Dto.py +158 -0
  686. info2soft/dto/v20230227/__init__.py +2 -0
  687. info2soft/dto/v20240228/Dto.py +158 -0
  688. info2soft/dto/v20240228/__init__.py +2 -0
  689. info2soft/dto/v20240819/Dto.py +249 -0
  690. info2soft/dto/v20240819/DtoArchive.py +164 -0
  691. info2soft/dto/v20240819/__init__.py +4 -0
  692. info2soft/dto/v20250123/Dto.py +249 -0
  693. info2soft/dto/v20250123/DtoArchive.py +164 -0
  694. info2soft/dto/v20250123/__init__.py +4 -0
  695. info2soft/dto/v20250630/Dto.py +262 -0
  696. info2soft/dto/v20250630/DtoArchive.py +164 -0
  697. info2soft/dto/v20250630/__init__.py +4 -0
  698. info2soft/dtrack/Dtrack.py +809 -0
  699. info2soft/dtrack/__init__.py +2 -0
  700. info2soft/dtrack/v20220622/Dtrack.py +809 -0
  701. info2soft/dtrack/v20220622/__init__.py +2 -0
  702. info2soft/dtrack/v20230227/Dtrack.py +862 -0
  703. info2soft/dtrack/v20230227/__init__.py +2 -0
  704. info2soft/examineApprove/__init__.py +0 -0
  705. info2soft/examineApprove/v20240819/ExamineApprove.py +137 -0
  706. info2soft/examineApprove/v20240819/__init__.py +2 -0
  707. info2soft/examineApprove/v20250123/ExamineApprove.py +137 -0
  708. info2soft/examineApprove/v20250123/__init__.py +2 -0
  709. info2soft/examineApprove/v20250630/ExamineApprove.py +137 -0
  710. info2soft/examineApprove/v20250630/__init__.py +2 -0
  711. info2soft/fileWriter.py +16 -0
  712. info2soft/fingerprintDomain/__init__.py +0 -0
  713. info2soft/fingerprintDomain/v20240819/FingerprintDomain.py +89 -0
  714. info2soft/fingerprintDomain/v20240819/__init__.py +2 -0
  715. info2soft/fingerprintDomain/v20250123/FingerprintDomain.py +89 -0
  716. info2soft/fingerprintDomain/v20250123/__init__.py +2 -0
  717. info2soft/fingerprintDomain/v20250630/FingerprintDomain.py +102 -0
  718. info2soft/fingerprintDomain/v20250630/__init__.py +2 -0
  719. info2soft/fsp/FspBackup.py +228 -0
  720. info2soft/fsp/FspMove.py +233 -0
  721. info2soft/fsp/FspRecovery.py +253 -0
  722. info2soft/fsp/__init__.py +0 -0
  723. info2soft/fsp/test/FspBackupTest.py +426 -0
  724. info2soft/fsp/test/FspMoveTest.py +450 -0
  725. info2soft/fsp/test/FspRecoveryTest.py +393 -0
  726. info2soft/fsp/test/__init__.py +0 -0
  727. info2soft/fsp/test/v20220622/FspBackupTest.py +427 -0
  728. info2soft/fsp/test/v20220622/FspMoveTest.py +451 -0
  729. info2soft/fsp/test/v20220622/FspRecoveryTest.py +394 -0
  730. info2soft/fsp/test/v20220622/__init__.py +0 -0
  731. info2soft/fsp/v20220622/FspBackup.py +228 -0
  732. info2soft/fsp/v20220622/FspMove.py +233 -0
  733. info2soft/fsp/v20220622/FspRecovery.py +253 -0
  734. info2soft/fsp/v20220622/__init__.py +3 -0
  735. info2soft/fsp/v20230227/FspBackup.py +601 -0
  736. info2soft/fsp/v20230227/__init__.py +2 -0
  737. info2soft/fsp/v20240228/FspBackup.py +614 -0
  738. info2soft/fsp/v20240228/__init__.py +2 -0
  739. info2soft/fsp/v20240819/FspBackup.py +271 -0
  740. info2soft/fsp/v20240819/FspMove.py +232 -0
  741. info2soft/fsp/v20240819/FspRecovery.py +257 -0
  742. info2soft/fsp/v20240819/__init__.py +2 -0
  743. info2soft/fsp/v20250123/FspBackup.py +271 -0
  744. info2soft/fsp/v20250123/FspMove.py +232 -0
  745. info2soft/fsp/v20250123/FspRecovery.py +257 -0
  746. info2soft/fsp/v20250123/__init__.py +6 -0
  747. info2soft/fsp/v20250630/FspBackup.py +271 -0
  748. info2soft/fsp/v20250630/FspMove.py +232 -0
  749. info2soft/fsp/v20250630/FspRecovery.py +257 -0
  750. info2soft/fsp/v20250630/__init__.py +6 -0
  751. info2soft/fspBackupRule/__init__.py +0 -0
  752. info2soft/fspBackupRule/v20240819/FspBackupRule.py +154 -0
  753. info2soft/fspBackupRule/v20240819/__init__.py +2 -0
  754. info2soft/fspBackupRule/v20250123/FspBackupRule.py +154 -0
  755. info2soft/fspBackupRule/v20250123/__init__.py +2 -0
  756. info2soft/fspBackupRule/v20250630/FspBackupRule.py +154 -0
  757. info2soft/fspBackupRule/v20250630/__init__.py +2 -0
  758. info2soft/fspRecoveryRule/__init__.py +0 -0
  759. info2soft/fspRecoveryRule/v20240819/FspRecoveryRule.py +153 -0
  760. info2soft/fspRecoveryRule/v20240819/__init__.py +2 -0
  761. info2soft/fspRecoveryRule/v20250123/FspRecoveryRule.py +153 -0
  762. info2soft/fspRecoveryRule/v20250123/__init__.py +2 -0
  763. info2soft/fspRecoveryRule/v20250630/FspRecoveryRule.py +179 -0
  764. info2soft/fspRecoveryRule/v20250630/__init__.py +2 -0
  765. info2soft/fullMachineCopy/__init__.py +0 -0
  766. info2soft/fullMachineCopy/v20240819/FullMachineCopy.py +115 -0
  767. info2soft/fullMachineCopy/v20240819/__init__.py +2 -0
  768. info2soft/fullMachineCopy/v20250123/FullMachineCopy.py +115 -0
  769. info2soft/fullMachineCopy/v20250123/__init__.py +2 -0
  770. info2soft/fullMachineCopy/v20250630/FullMachineCopy.py +115 -0
  771. info2soft/fullMachineCopy/v20250630/__init__.py +2 -0
  772. info2soft/gts/__init__.py +0 -0
  773. info2soft/gts/test/GTS.py +157 -0
  774. info2soft/gts/test/__init__.py +0 -0
  775. info2soft/gts/test/v20220622/GTS.py +157 -0
  776. info2soft/gts/test/v20220622/__init__.py +0 -0
  777. info2soft/gts/v20190805/GTS.py +123 -0
  778. info2soft/gts/v20190805/__init__.py +0 -0
  779. info2soft/gts/v20220622/GTS.py +123 -0
  780. info2soft/gts/v20220622/__init__.py +1 -0
  781. info2soft/guardData/__init__.py +0 -0
  782. info2soft/guardData/v20240819/GuardData.py +114 -0
  783. info2soft/guardData/v20240819/__init__.py +2 -0
  784. info2soft/guardData/v20250123/GuardData.py +114 -0
  785. info2soft/guardData/v20250123/__init__.py +2 -0
  786. info2soft/guardData/v20250630/GuardData.py +114 -0
  787. info2soft/guardData/v20250630/__init__.py +2 -0
  788. info2soft/ha/__init__.py +1 -0
  789. info2soft/ha/test/__init__.py +0 -0
  790. info2soft/ha/test/v20190104/AppHighAvailabilityTest.py +383 -0
  791. info2soft/ha/test/v20190104/__init__.py +0 -0
  792. info2soft/ha/test/v20190806/AppHighAvailabilityTest.py +246 -0
  793. info2soft/ha/test/v20190806/__init__.py +0 -0
  794. info2soft/ha/test/v20200727/ClusterTest.py +330 -0
  795. info2soft/ha/test/v20200727/__init__.py +0 -0
  796. info2soft/ha/test/v20220622/AppHighAvailabilityTest.py +246 -0
  797. info2soft/ha/test/v20220622/ClusterTest.py +330 -0
  798. info2soft/ha/test/v20220622/__init__.py +0 -0
  799. info2soft/ha/v20181227/AppHighAvailability.py +335 -0
  800. info2soft/ha/v20181227/__init__.py +0 -0
  801. info2soft/ha/v20200724/Cluster.py +270 -0
  802. info2soft/ha/v20200724/__init__.py +2 -0
  803. info2soft/ha/v20220622/AppHighAvailability.py +335 -0
  804. info2soft/ha/v20220622/Cluster.py +270 -0
  805. info2soft/ha/v20220622/__init__.py +3 -0
  806. info2soft/ha/v20230227/AppHighAvailability.py +302 -0
  807. info2soft/ha/v20230227/Cluster.py +232 -0
  808. info2soft/ha/v20230227/__init__.py +4 -0
  809. info2soft/ha/v20240228/AppHighAvailability.py +302 -0
  810. info2soft/ha/v20240228/Cluster.py +232 -0
  811. info2soft/ha/v20240228/__init__.py +4 -0
  812. info2soft/ha/v20240819/AppHighAvailability.py +318 -0
  813. info2soft/ha/v20240819/Cluster.py +204 -0
  814. info2soft/ha/v20240819/Label.py +62 -0
  815. info2soft/ha/v20240819/__init__.py +6 -0
  816. info2soft/ha/v20250123/AppHighAvailability.py +318 -0
  817. info2soft/ha/v20250123/Cluster.py +192 -0
  818. info2soft/ha/v20250123/Label.py +62 -0
  819. info2soft/ha/v20250123/__init__.py +6 -0
  820. info2soft/ha/v20250630/AppHighAvailability.py +318 -0
  821. info2soft/ha/v20250630/Cluster.py +192 -0
  822. info2soft/ha/v20250630/Label.py +62 -0
  823. info2soft/ha/v20250630/__init__.py +6 -0
  824. info2soft/hdfs/Hdfs.py +112 -0
  825. info2soft/hdfs/__init__.py +2 -0
  826. info2soft/hdfs/v20220622/Hdfs.py +112 -0
  827. info2soft/hdfs/v20220622/__init__.py +2 -0
  828. info2soft/hdfs/v20230227/Hdfs.py +89 -0
  829. info2soft/hdfs/v20230227/__init__.py +2 -0
  830. info2soft/hdfs/v20240228/Hdfs.py +89 -0
  831. info2soft/hdfs/v20240228/__init__.py +2 -0
  832. info2soft/hdfs/v20240819/Hdfs.py +300 -0
  833. info2soft/hdfs/v20240819/__init__.py +2 -0
  834. info2soft/hdfs/v20250123/Hdfs.py +300 -0
  835. info2soft/hdfs/v20250123/__init__.py +2 -0
  836. info2soft/hdfs/v20250630/Hdfs.py +300 -0
  837. info2soft/hdfs/v20250630/__init__.py +2 -0
  838. info2soft/https.py +422 -0
  839. info2soft/hw/__init__.py +0 -0
  840. info2soft/hw/v20240819/GTS.py +87 -0
  841. info2soft/hw/v20240819/HDR.py +58 -0
  842. info2soft/hw/v20240819/__init__.py +4 -0
  843. info2soft/hw/v20250123/GTS.py +87 -0
  844. info2soft/hw/v20250123/HDR.py +58 -0
  845. info2soft/hw/v20250123/__init__.py +4 -0
  846. info2soft/hw/v20250630/CBG.py +21 -0
  847. info2soft/hw/v20250630/GTS.py +87 -0
  848. info2soft/hw/v20250630/HDR.py +121 -0
  849. info2soft/hw/v20250630/__init__.py +6 -0
  850. info2soft/mountTask/__init__.py +0 -0
  851. info2soft/mountTask/v20240819/MountTask.py +139 -0
  852. info2soft/mountTask/v20240819/__init__.py +2 -0
  853. info2soft/mountTask/v20250123/MountTask.py +139 -0
  854. info2soft/mountTask/v20250123/__init__.py +2 -0
  855. info2soft/mountTask/v20250630/MountTask.py +139 -0
  856. info2soft/mountTask/v20250630/__init__.py +2 -0
  857. info2soft/nas/__init__.py +0 -0
  858. info2soft/nas/test/NASTest.py +111 -0
  859. info2soft/nas/test/__init__.py +0 -0
  860. info2soft/nas/test/v20190104/NASTest.py +173 -0
  861. info2soft/nas/test/v20190104/__init__.py +0 -0
  862. info2soft/nas/test/v20220622/NASTest.py +175 -0
  863. info2soft/nas/test/v20220622/__init__.py +0 -0
  864. info2soft/nas/v20190102/NAS.py +119 -0
  865. info2soft/nas/v20190102/__init__.py +0 -0
  866. info2soft/nas/v20220622/NAS.py +119 -0
  867. info2soft/nas/v20220622/__init__.py +1 -0
  868. info2soft/nas/v20230227/NAS.py +102 -0
  869. info2soft/nas/v20230227/__init__.py +2 -0
  870. info2soft/nas/v20240228/NAS.py +102 -0
  871. info2soft/nas/v20240228/__init__.py +2 -0
  872. info2soft/nas/v20240819/Nas.py +115 -0
  873. info2soft/nas/v20240819/__init__.py +2 -0
  874. info2soft/nas/v20250123/Nas.py +115 -0
  875. info2soft/nas/v20250123/__init__.py +2 -0
  876. info2soft/nas/v20250630/Nas.py +115 -0
  877. info2soft/nas/v20250630/__init__.py +2 -0
  878. info2soft/nbuBackupSet/__init__.py +0 -0
  879. info2soft/nbuBackupSet/v20250630/NbuBackupSet.py +34 -0
  880. info2soft/nbuBackupSet/v20250630/__init__.py +2 -0
  881. info2soft/notifications/__init__.py +0 -0
  882. info2soft/notifications/test/NotificationsTest.py +90 -0
  883. info2soft/notifications/test/__init__.py +0 -0
  884. info2soft/notifications/test/v20190104/NotificationsTest.py +192 -0
  885. info2soft/notifications/test/v20190104/__init__.py +0 -0
  886. info2soft/notifications/test/v20190806/NotificationsTest.py +63 -0
  887. info2soft/notifications/test/v20190806/__init__.py +0 -0
  888. info2soft/notifications/v20181227/Notifications.py +142 -0
  889. info2soft/notifications/v20181227/__init__.py +0 -0
  890. info2soft/recovery/__init__.py +0 -0
  891. info2soft/recovery/v20240819/Recovery.py +34 -0
  892. info2soft/recovery/v20240819/__init__.py +2 -0
  893. info2soft/recovery/v20250123/Recovery.py +34 -0
  894. info2soft/recovery/v20250123/__init__.py +2 -0
  895. info2soft/recovery/v20250630/Recovery.py +34 -0
  896. info2soft/recovery/v20250630/__init__.py +2 -0
  897. info2soft/recoveryRule/__init__.py +0 -0
  898. info2soft/recoveryRule/v20240228/RecoveryRule.py +212 -0
  899. info2soft/recoveryRule/v20240228/__init__.py +2 -0
  900. info2soft/recoveryRule/v20240819/RecoveryRule.py +207 -0
  901. info2soft/recoveryRule/v20240819/__init__.py +2 -0
  902. info2soft/recoveryRule/v20250123/RecoveryRule.py +207 -0
  903. info2soft/recoveryRule/v20250123/__init__.py +2 -0
  904. info2soft/recoveryRule/v20250630/BatchRecoveryRule.py +154 -0
  905. info2soft/recoveryRule/v20250630/RecoveryRule.py +220 -0
  906. info2soft/recoveryRule/v20250630/__init__.py +4 -0
  907. info2soft/recycleBin/__init__.py +0 -0
  908. info2soft/recycleBin/v20240819/RecycleBin.py +35 -0
  909. info2soft/recycleBin/v20240819/__init__.py +2 -0
  910. info2soft/recycleBin/v20250123/RecycleBin.py +35 -0
  911. info2soft/recycleBin/v20250123/__init__.py +2 -0
  912. info2soft/recycleBin/v20250630/RecycleBin.py +35 -0
  913. info2soft/recycleBin/v20250630/__init__.py +2 -0
  914. info2soft/remoteRep/__init__.py +0 -0
  915. info2soft/remoteRep/v20240819/RemoteRep.py +206 -0
  916. info2soft/remoteRep/v20240819/__init__.py +2 -0
  917. info2soft/remoteRep/v20250123/RemoteRep.py +206 -0
  918. info2soft/remoteRep/v20250123/__init__.py +2 -0
  919. info2soft/remoteRep/v20250630/RemoteRep.py +206 -0
  920. info2soft/remoteRep/v20250630/__init__.py +2 -0
  921. info2soft/remote_rep/__init__.py +0 -0
  922. info2soft/remote_rep/v20230227/RemoteRep.py +167 -0
  923. info2soft/remote_rep/v20230227/__init__.py +2 -0
  924. info2soft/remote_rep/v20240228/RemoteRep.py +211 -0
  925. info2soft/remote_rep/v20240228/__init__.py +2 -0
  926. info2soft/rep/__init__.py +0 -0
  927. info2soft/rep/test/__init__.py +0 -0
  928. info2soft/rep/test/v20190104/RepBackupTest.py +513 -0
  929. info2soft/rep/test/v20190104/RepRecoveryTest.py +279 -0
  930. info2soft/rep/test/v20190104/__init__.py +0 -0
  931. info2soft/rep/test/v20220622/RepBackupTest.py +513 -0
  932. info2soft/rep/test/v20220622/RepRecoveryTest.py +279 -0
  933. info2soft/rep/test/v20220622/__init__.py +0 -0
  934. info2soft/rep/v20181227/RepBackup.py +325 -0
  935. info2soft/rep/v20181227/RepRecovery.py +203 -0
  936. info2soft/rep/v20181227/__init__.py +0 -0
  937. info2soft/rep/v20220622/RepBackup.py +325 -0
  938. info2soft/rep/v20220622/RepRecovery.py +203 -0
  939. info2soft/rep/v20220622/__init__.py +2 -0
  940. info2soft/rep/v20230227/RepBackup.py +308 -0
  941. info2soft/rep/v20230227/RepRecovery.py +156 -0
  942. info2soft/rep/v20230227/__init__.py +4 -0
  943. info2soft/rep/v20240228/RepBackup.py +308 -0
  944. info2soft/rep/v20240228/RepRecovery.py +156 -0
  945. info2soft/rep/v20240228/__init__.py +4 -0
  946. info2soft/rep/v20240819/RepBackup.py +360 -0
  947. info2soft/rep/v20240819/RepRecovery.py +195 -0
  948. info2soft/rep/v20240819/__init__.py +4 -0
  949. info2soft/rep/v20250123/RepBackup.py +360 -0
  950. info2soft/rep/v20250123/RepRecovery.py +195 -0
  951. info2soft/rep/v20250123/__init__.py +4 -0
  952. info2soft/rep/v20250630/RepBackup.py +360 -0
  953. info2soft/rep/v20250630/RepRecovery.py +195 -0
  954. info2soft/rep/v20250630/__init__.py +4 -0
  955. info2soft/replica/__init__.py +0 -0
  956. info2soft/replica/v20240819/First.py +115 -0
  957. info2soft/replica/v20240819/Second.py +139 -0
  958. info2soft/replica/v20240819/__init__.py +4 -0
  959. info2soft/replica/v20250123/First.py +115 -0
  960. info2soft/replica/v20250123/Second.py +139 -0
  961. info2soft/replica/v20250123/__init__.py +4 -0
  962. info2soft/replica/v20250630/First.py +115 -0
  963. info2soft/replica/v20250630/Second.py +139 -0
  964. info2soft/replica/v20250630/__init__.py +4 -0
  965. info2soft/resource/__init__.py +2 -0
  966. info2soft/resource/test/__init__.py +0 -0
  967. info2soft/resource/test/v20190104/BizGroupTest.py +143 -0
  968. info2soft/resource/test/v20190104/ClusterTest.py +219 -0
  969. info2soft/resource/test/v20190104/NodeTest.py +575 -0
  970. info2soft/resource/test/v20190104/__init__.py +0 -0
  971. info2soft/resource/test/v20200727/BoxVmTest.py +139 -0
  972. info2soft/resource/test/v20200727/__init__.py +0 -0
  973. info2soft/resource/test/v20200930/ActiveNodeTest.py +479 -0
  974. info2soft/resource/test/v20200930/AppTypeTest.py +98 -0
  975. info2soft/resource/test/v20200930/AuthorizationTest.py +140 -0
  976. info2soft/resource/test/v20200930/CopyVolume.py +155 -0
  977. info2soft/resource/test/v20200930/DedupePoolTest.py +151 -0
  978. info2soft/resource/test/v20200930/DtoHostTest.py +266 -0
  979. info2soft/resource/test/v20200930/DtoLifeManagementTest.py +140 -0
  980. info2soft/resource/test/v20200930/DtoStorageTest.py +144 -0
  981. info2soft/resource/test/v20200930/HdfsPlatformTest.py +167 -0
  982. info2soft/resource/test/v20200930/MonitorTest.py +109 -0
  983. info2soft/resource/test/v20200930/NodeDbConfigTest.py +82 -0
  984. info2soft/resource/test/v20200930/NodeProxyTest.py +100 -0
  985. info2soft/resource/test/v20200930/ReCyleTest.py +76 -0
  986. info2soft/resource/test/v20200930/ServiceClusterTest.py +151 -0
  987. info2soft/resource/test/v20200930/StoragePool.py +200 -0
  988. info2soft/resource/test/v20200930/StorageTest.py +1734 -0
  989. info2soft/resource/test/v20200930/VirtualizationSupportTest.py +536 -0
  990. info2soft/resource/test/v20200930/__init__.py +0 -0
  991. info2soft/resource/test/v20220622/ActiveNodeTest.py +479 -0
  992. info2soft/resource/test/v20220622/AppTypeTest.py +98 -0
  993. info2soft/resource/test/v20220622/AuthorizationTest.py +140 -0
  994. info2soft/resource/test/v20220622/CopyVolume.py +155 -0
  995. info2soft/resource/test/v20220622/DedupePoolTest.py +151 -0
  996. info2soft/resource/test/v20220622/DtoHostTest.py +266 -0
  997. info2soft/resource/test/v20220622/DtoLifeManagementTest.py +140 -0
  998. info2soft/resource/test/v20220622/DtoStorageTest.py +144 -0
  999. info2soft/resource/test/v20220622/HdfsPlatformTest.py +167 -0
  1000. info2soft/resource/test/v20220622/MonitorTest.py +109 -0
  1001. info2soft/resource/test/v20220622/NodeDbConfigTest.py +82 -0
  1002. info2soft/resource/test/v20220622/NodeProxyTest.py +100 -0
  1003. info2soft/resource/test/v20220622/ReCyleTest.py +76 -0
  1004. info2soft/resource/test/v20220622/ServiceClusterTest.py +151 -0
  1005. info2soft/resource/test/v20220622/StoragePool.py +200 -0
  1006. info2soft/resource/test/v20220622/StorageTest.py +1734 -0
  1007. info2soft/resource/test/v20220622/VirtualizationSupportTest.py +536 -0
  1008. info2soft/resource/test/v20220622/__init__.py +0 -0
  1009. info2soft/resource/v20181227/BizGroup.py +106 -0
  1010. info2soft/resource/v20181227/Cluster.py +190 -0
  1011. info2soft/resource/v20181227/Node.py +463 -0
  1012. info2soft/resource/v20181227/__init__.py +6 -0
  1013. info2soft/resource/v20200727/BoxVm.py +106 -0
  1014. info2soft/resource/v20200727/__init__.py +2 -0
  1015. info2soft/resource/v20200729/AppSystem.py +364 -0
  1016. info2soft/resource/v20200729/__init__.py +2 -0
  1017. info2soft/resource/v20200930/ActiveNode.py +297 -0
  1018. info2soft/resource/v20200930/AppType.py +75 -0
  1019. info2soft/resource/v20200930/Authorization.py +99 -0
  1020. info2soft/resource/v20200930/CopyVolume.py +129 -0
  1021. info2soft/resource/v20200930/DedupePool.py +126 -0
  1022. info2soft/resource/v20200930/DtoHost.py +242 -0
  1023. info2soft/resource/v20200930/DtoLifeManagement.py +91 -0
  1024. info2soft/resource/v20200930/DtoStorage.py +102 -0
  1025. info2soft/resource/v20200930/HdfsPlatform.py +102 -0
  1026. info2soft/resource/v20200930/Monitor.py +99 -0
  1027. info2soft/resource/v20200930/NodeDbConfig.py +47 -0
  1028. info2soft/resource/v20200930/NodeProxy.py +76 -0
  1029. info2soft/resource/v20200930/ReCyle.py +47 -0
  1030. info2soft/resource/v20200930/ServiceCluster.py +100 -0
  1031. info2soft/resource/v20200930/Storage.py +1443 -0
  1032. info2soft/resource/v20200930/StoragePool.py +166 -0
  1033. info2soft/resource/v20200930/VirtualizationSupport.py +464 -0
  1034. info2soft/resource/v20200930/__init__.py +17 -0
  1035. info2soft/resource/v20220622/ActiveNode.py +297 -0
  1036. info2soft/resource/v20220622/AppType.py +75 -0
  1037. info2soft/resource/v20220622/Authorization.py +99 -0
  1038. info2soft/resource/v20220622/CopyVolume.py +129 -0
  1039. info2soft/resource/v20220622/DedupePool.py +126 -0
  1040. info2soft/resource/v20220622/DtoHost.py +242 -0
  1041. info2soft/resource/v20220622/DtoLifeManagement.py +91 -0
  1042. info2soft/resource/v20220622/DtoStorage.py +102 -0
  1043. info2soft/resource/v20220622/HdfsPlatform.py +102 -0
  1044. info2soft/resource/v20220622/Monitor.py +99 -0
  1045. info2soft/resource/v20220622/NodeDbConfig.py +47 -0
  1046. info2soft/resource/v20220622/NodeProxy.py +76 -0
  1047. info2soft/resource/v20220622/ReCyle.py +47 -0
  1048. info2soft/resource/v20220622/ServiceCluster.py +100 -0
  1049. info2soft/resource/v20220622/Storage.py +1443 -0
  1050. info2soft/resource/v20220622/StoragePool.py +166 -0
  1051. info2soft/resource/v20220622/VirtualizationSupport.py +464 -0
  1052. info2soft/resource/v20220622/__init__.py +25 -0
  1053. info2soft/resource/v20230227/ActiveNode.py +361 -0
  1054. info2soft/resource/v20230227/AppSystem.py +307 -0
  1055. info2soft/resource/v20230227/AppType.py +75 -0
  1056. info2soft/resource/v20230227/Authorization.py +86 -0
  1057. info2soft/resource/v20230227/BizGroup.py +118 -0
  1058. info2soft/resource/v20230227/BoxVm.py +100 -0
  1059. info2soft/resource/v20230227/Cluster.py +180 -0
  1060. info2soft/resource/v20230227/ContainerCluster.py +313 -0
  1061. info2soft/resource/v20230227/CopyVolume.py +130 -0
  1062. info2soft/resource/v20230227/DedupePool.py +101 -0
  1063. info2soft/resource/v20230227/DtoHost.py +218 -0
  1064. info2soft/resource/v20230227/DtoLifeManagement.py +91 -0
  1065. info2soft/resource/v20230227/DtoStorage.py +128 -0
  1066. info2soft/resource/v20230227/HdfsPlatform.py +102 -0
  1067. info2soft/resource/v20230227/Monitor.py +92 -0
  1068. info2soft/resource/v20230227/Node.py +518 -0
  1069. info2soft/resource/v20230227/NodeDbConfig.py +47 -0
  1070. info2soft/resource/v20230227/NodeProxy.py +76 -0
  1071. info2soft/resource/v20230227/Npsvr.py +126 -0
  1072. info2soft/resource/v20230227/ReCyle.py +60 -0
  1073. info2soft/resource/v20230227/ServiceCluster.py +139 -0
  1074. info2soft/resource/v20230227/Storage.py +1374 -0
  1075. info2soft/resource/v20230227/StoragePool.py +180 -0
  1076. info2soft/resource/v20230227/Ukey.py +153 -0
  1077. info2soft/resource/v20230227/VirtualizationSupport.py +604 -0
  1078. info2soft/resource/v20230227/__init__.py +46 -0
  1079. info2soft/resource/v20240228/ActiveDbType.py +99 -0
  1080. info2soft/resource/v20240228/ActiveNode.py +387 -0
  1081. info2soft/resource/v20240228/AppSystem.py +1221 -0
  1082. info2soft/resource/v20240228/AppType.py +80 -0
  1083. info2soft/resource/v20240228/Authorization.py +86 -0
  1084. info2soft/resource/v20240228/BizGroup.py +118 -0
  1085. info2soft/resource/v20240228/BoxVm.py +119 -0
  1086. info2soft/resource/v20240228/Cfs.py +133 -0
  1087. info2soft/resource/v20240228/Cluster.py +206 -0
  1088. info2soft/resource/v20240228/ContainerCluster.py +313 -0
  1089. info2soft/resource/v20240228/CopyVolume.py +139 -0
  1090. info2soft/resource/v20240228/DedupePool.py +126 -0
  1091. info2soft/resource/v20240228/DtoHost.py +254 -0
  1092. info2soft/resource/v20240228/DtoLifeManagement.py +96 -0
  1093. info2soft/resource/v20240228/DtoStorage.py +128 -0
  1094. info2soft/resource/v20240228/Filesystem.py +114 -0
  1095. info2soft/resource/v20240228/HdfsPlatform.py +288 -0
  1096. info2soft/resource/v20240228/LanfreeChannel.py +101 -0
  1097. info2soft/resource/v20240228/Monitor.py +92 -0
  1098. info2soft/resource/v20240228/Node.py +544 -0
  1099. info2soft/resource/v20240228/NodeDbConfig.py +47 -0
  1100. info2soft/resource/v20240228/NodeProxy.py +76 -0
  1101. info2soft/resource/v20240228/Npsvr.py +164 -0
  1102. info2soft/resource/v20240228/ReCyle.py +60 -0
  1103. info2soft/resource/v20240228/ServiceCluster.py +140 -0
  1104. info2soft/resource/v20240228/Storage.py +1452 -0
  1105. info2soft/resource/v20240228/StoragePool.py +253 -0
  1106. info2soft/resource/v20240228/StorageUnit.py +196 -0
  1107. info2soft/resource/v20240228/Tape.py +487 -0
  1108. info2soft/resource/v20240228/Ukey.py +248 -0
  1109. info2soft/resource/v20240228/VirtualizationSupport.py +620 -0
  1110. info2soft/resource/v20240228/__init__.py +52 -0
  1111. info2soft/resource/v20240819/ActiveDbType.py +113 -0
  1112. info2soft/resource/v20240819/ActiveNode.py +375 -0
  1113. info2soft/resource/v20240819/ActiveNodeCluster.py +141 -0
  1114. info2soft/resource/v20240819/ActiveNodeV3.py +348 -0
  1115. info2soft/resource/v20240819/AppSystem.py +181 -0
  1116. info2soft/resource/v20240819/AppType.py +75 -0
  1117. info2soft/resource/v20240819/BigdataPlatform.py +194 -0
  1118. info2soft/resource/v20240819/BizGroup.py +118 -0
  1119. info2soft/resource/v20240819/BoxVm.py +100 -0
  1120. info2soft/resource/v20240819/Cfs.py +128 -0
  1121. info2soft/resource/v20240819/Cluster.py +206 -0
  1122. info2soft/resource/v20240819/ContainerCluster.py +326 -0
  1123. info2soft/resource/v20240819/CopyVolume.py +156 -0
  1124. info2soft/resource/v20240819/DedupePool.py +114 -0
  1125. info2soft/resource/v20240819/DiskPool.py +89 -0
  1126. info2soft/resource/v20240819/DtoHost.py +270 -0
  1127. info2soft/resource/v20240819/DtoLifeManagement.py +60 -0
  1128. info2soft/resource/v20240819/DtoStorage.py +128 -0
  1129. info2soft/resource/v20240819/DtoStorageBucket.py +74 -0
  1130. info2soft/resource/v20240819/Filesystem.py +114 -0
  1131. info2soft/resource/v20240819/HdfsPlatform.py +141 -0
  1132. info2soft/resource/v20240819/LanfreeChannel.py +114 -0
  1133. info2soft/resource/v20240819/Monitor.py +92 -0
  1134. info2soft/resource/v20240819/Node.py +611 -0
  1135. info2soft/resource/v20240819/NodeDbConfig.py +47 -0
  1136. info2soft/resource/v20240819/NodeProxy.py +76 -0
  1137. info2soft/resource/v20240819/Npsvr.py +130 -0
  1138. info2soft/resource/v20240819/ReCyle.py +47 -0
  1139. info2soft/resource/v20240819/ServiceCluster.py +139 -0
  1140. info2soft/resource/v20240819/Storage.py +1530 -0
  1141. info2soft/resource/v20240819/StoragePool.py +206 -0
  1142. info2soft/resource/v20240819/StorageUnit.py +209 -0
  1143. info2soft/resource/v20240819/Tape.py +505 -0
  1144. info2soft/resource/v20240819/Ukey.py +218 -0
  1145. info2soft/resource/v20240819/VirtualizationSupport.py +741 -0
  1146. info2soft/resource/v20240819/__init__.py +70 -0
  1147. info2soft/resource/v20250123/ActiveDbType.py +113 -0
  1148. info2soft/resource/v20250123/ActiveNode.py +375 -0
  1149. info2soft/resource/v20250123/ActiveNodeCluster.py +141 -0
  1150. info2soft/resource/v20250123/ActiveNodeV3.py +348 -0
  1151. info2soft/resource/v20250123/AppSystem.py +181 -0
  1152. info2soft/resource/v20250123/AppType.py +75 -0
  1153. info2soft/resource/v20250123/BigdataPlatform.py +194 -0
  1154. info2soft/resource/v20250123/BizGroup.py +118 -0
  1155. info2soft/resource/v20250123/BoxVm.py +100 -0
  1156. info2soft/resource/v20250123/Cfs.py +128 -0
  1157. info2soft/resource/v20250123/Cluster.py +245 -0
  1158. info2soft/resource/v20250123/ContainerCluster.py +326 -0
  1159. info2soft/resource/v20250123/CopyVolume.py +156 -0
  1160. info2soft/resource/v20250123/DedupePool.py +114 -0
  1161. info2soft/resource/v20250123/DiskPool.py +89 -0
  1162. info2soft/resource/v20250123/DtoGateway.py +116 -0
  1163. info2soft/resource/v20250123/DtoHost.py +270 -0
  1164. info2soft/resource/v20250123/DtoLifeManagement.py +60 -0
  1165. info2soft/resource/v20250123/DtoStorage.py +128 -0
  1166. info2soft/resource/v20250123/DtoStorageBucket.py +89 -0
  1167. info2soft/resource/v20250123/Filesystem.py +114 -0
  1168. info2soft/resource/v20250123/HdfsPlatform.py +141 -0
  1169. info2soft/resource/v20250123/LanfreeChannel.py +114 -0
  1170. info2soft/resource/v20250123/Monitor.py +92 -0
  1171. info2soft/resource/v20250123/Node.py +611 -0
  1172. info2soft/resource/v20250123/NodeDbConfig.py +47 -0
  1173. info2soft/resource/v20250123/NodeProxy.py +76 -0
  1174. info2soft/resource/v20250123/Npsvr.py +130 -0
  1175. info2soft/resource/v20250123/ReCyle.py +47 -0
  1176. info2soft/resource/v20250123/ServiceCluster.py +139 -0
  1177. info2soft/resource/v20250123/Storage.py +1530 -0
  1178. info2soft/resource/v20250123/StoragePool.py +206 -0
  1179. info2soft/resource/v20250123/StorageUnit.py +209 -0
  1180. info2soft/resource/v20250123/Tape.py +505 -0
  1181. info2soft/resource/v20250123/Ukey.py +218 -0
  1182. info2soft/resource/v20250123/VirtualizationSupport.py +756 -0
  1183. info2soft/resource/v20250123/__init__.py +72 -0
  1184. info2soft/resource/v20250630/ActiveDbType.py +113 -0
  1185. info2soft/resource/v20250630/ActiveNode.py +375 -0
  1186. info2soft/resource/v20250630/ActiveNodeCluster.py +141 -0
  1187. info2soft/resource/v20250630/ActiveNodeClusterV3.py +141 -0
  1188. info2soft/resource/v20250630/ActiveNodeV3.py +361 -0
  1189. info2soft/resource/v20250630/AppSystem.py +181 -0
  1190. info2soft/resource/v20250630/AppType.py +75 -0
  1191. info2soft/resource/v20250630/BigdataPlatform.py +194 -0
  1192. info2soft/resource/v20250630/BizGroup.py +118 -0
  1193. info2soft/resource/v20250630/BoxVm.py +100 -0
  1194. info2soft/resource/v20250630/Cfs.py +128 -0
  1195. info2soft/resource/v20250630/Cluster.py +335 -0
  1196. info2soft/resource/v20250630/ContainerCluster.py +325 -0
  1197. info2soft/resource/v20250630/CopyVolume.py +156 -0
  1198. info2soft/resource/v20250630/DedupePool.py +114 -0
  1199. info2soft/resource/v20250630/DiskPool.py +89 -0
  1200. info2soft/resource/v20250630/DtoGateway.py +155 -0
  1201. info2soft/resource/v20250630/DtoHost.py +270 -0
  1202. info2soft/resource/v20250630/DtoLifeManagement.py +60 -0
  1203. info2soft/resource/v20250630/DtoStorage.py +128 -0
  1204. info2soft/resource/v20250630/DtoStorageBucket.py +89 -0
  1205. info2soft/resource/v20250630/Filesystem.py +114 -0
  1206. info2soft/resource/v20250630/HdfsPlatform.py +141 -0
  1207. info2soft/resource/v20250630/LanfreeChannel.py +114 -0
  1208. info2soft/resource/v20250630/Monitor.py +92 -0
  1209. info2soft/resource/v20250630/Node.py +624 -0
  1210. info2soft/resource/v20250630/NodeDbConfig.py +47 -0
  1211. info2soft/resource/v20250630/NodeProxy.py +76 -0
  1212. info2soft/resource/v20250630/NodeV3.py +663 -0
  1213. info2soft/resource/v20250630/Npsvr.py +130 -0
  1214. info2soft/resource/v20250630/ReCyle.py +47 -0
  1215. info2soft/resource/v20250630/ServiceCluster.py +139 -0
  1216. info2soft/resource/v20250630/Storage.py +1531 -0
  1217. info2soft/resource/v20250630/StoragePool.py +206 -0
  1218. info2soft/resource/v20250630/StorageUnit.py +209 -0
  1219. info2soft/resource/v20250630/Tape.py +505 -0
  1220. info2soft/resource/v20250630/Ukey.py +218 -0
  1221. info2soft/resource/v20250630/VirtualizationSupport.py +756 -0
  1222. info2soft/resource/v20250630/__init__.py +76 -0
  1223. info2soft/retentionPolicy/__init__.py +0 -0
  1224. info2soft/retentionPolicy/v20240228/RetentionPolicy.py +33 -0
  1225. info2soft/retentionPolicy/v20240228/__init__.py +2 -0
  1226. info2soft/retentionPolicy/v20240819/RetentionPolicy.py +33 -0
  1227. info2soft/retentionPolicy/v20240819/__init__.py +2 -0
  1228. info2soft/retentionPolicy/v20250123/RetentionPolicy.py +33 -0
  1229. info2soft/retentionPolicy/v20250123/__init__.py +2 -0
  1230. info2soft/retentionPolicy/v20250630/RetentionPolicy.py +33 -0
  1231. info2soft/retentionPolicy/v20250630/__init__.py +2 -0
  1232. info2soft/ruleVersion/__init__.py +0 -0
  1233. info2soft/ruleVersion/v20240228/RuleVersion.py +34 -0
  1234. info2soft/ruleVersion/v20240228/__init__.py +2 -0
  1235. info2soft/ruleVersion/v20240819/RuleVersion.py +47 -0
  1236. info2soft/ruleVersion/v20240819/__init__.py +2 -0
  1237. info2soft/ruleVersion/v20250123/RuleVersion.py +47 -0
  1238. info2soft/ruleVersion/v20250123/__init__.py +2 -0
  1239. info2soft/ruleVersion/v20250630/RuleVersion.py +47 -0
  1240. info2soft/ruleVersion/v20250630/__init__.py +2 -0
  1241. info2soft/snapshotTask/__init__.py +0 -0
  1242. info2soft/snapshotTask/v20240819/SnapshotTask.py +157 -0
  1243. info2soft/snapshotTask/v20240819/__init__.py +2 -0
  1244. info2soft/snapshotTask/v20250123/SnapshotTask.py +157 -0
  1245. info2soft/snapshotTask/v20250123/__init__.py +2 -0
  1246. info2soft/snapshotTask/v20250630/SnapshotTask.py +157 -0
  1247. info2soft/snapshotTask/v20250630/__init__.py +2 -0
  1248. info2soft/stoCluster/__init__.py +0 -0
  1249. info2soft/stoCluster/v20250630/StoCluster.py +89 -0
  1250. info2soft/stoCluster/v20250630/__init__.py +2 -0
  1251. info2soft/storage_cdm/FfoMount.py +76 -0
  1252. info2soft/storage_cdm/MountTask.py +151 -0
  1253. info2soft/storage_cdm/SnapshotTask.py +173 -0
  1254. info2soft/storage_cdm/__init__.py +6 -0
  1255. info2soft/storage_cdm/v20220622/FfoMount.py +76 -0
  1256. info2soft/storage_cdm/v20220622/MountTask.py +151 -0
  1257. info2soft/storage_cdm/v20220622/SnapshotTask.py +173 -0
  1258. info2soft/storage_cdm/v20220622/__init__.py +6 -0
  1259. info2soft/storage_cdm/v20230227/MountTask.py +113 -0
  1260. info2soft/storage_cdm/v20230227/SnapshotTask.py +118 -0
  1261. info2soft/storage_cdm/v20230227/__init__.py +3 -0
  1262. info2soft/storage_cdm/v20240228/MountTask.py +151 -0
  1263. info2soft/storage_cdm/v20240228/SnapshotTask.py +175 -0
  1264. info2soft/storage_cdm/v20240228/__init__.py +3 -0
  1265. info2soft/stream/__init__.py +0 -0
  1266. info2soft/stream/v20240228/ObjCmp.py +21 -0
  1267. info2soft/stream/v20240228/OracleBkTakeover.py +74 -0
  1268. info2soft/stream/v20240228/OracleReverse.py +21 -0
  1269. info2soft/stream/v20240228/SyncRule.py +331 -0
  1270. info2soft/stream/v20240228/TbCmp.py +97 -0
  1271. info2soft/stream/v20240228/__init__.py +10 -0
  1272. info2soft/stream/v20240819/ObjCmp.py +99 -0
  1273. info2soft/stream/v20240819/OracleBkTakeover.py +47 -0
  1274. info2soft/stream/v20240819/OracleReverse.py +21 -0
  1275. info2soft/stream/v20240819/RuleMonitor.py +137 -0
  1276. info2soft/stream/v20240819/SyncRule.py +322 -0
  1277. info2soft/stream/v20240819/TbCmp.py +125 -0
  1278. info2soft/stream/v20240819/TrafficReport.py +47 -0
  1279. info2soft/stream/v20240819/__init__.py +14 -0
  1280. info2soft/stream/v20250123/ObjCmp.py +99 -0
  1281. info2soft/stream/v20250123/OracleBkTakeover.py +47 -0
  1282. info2soft/stream/v20250123/OracleReverse.py +21 -0
  1283. info2soft/stream/v20250123/RuleMonitor.py +137 -0
  1284. info2soft/stream/v20250123/SyncRule.py +322 -0
  1285. info2soft/stream/v20250123/TbCmp.py +125 -0
  1286. info2soft/stream/v20250123/TrafficReport.py +47 -0
  1287. info2soft/stream/v20250123/__init__.py +14 -0
  1288. info2soft/stream/v20250630/MaskAlgo.py +61 -0
  1289. info2soft/stream/v20250630/MaskRule.py +140 -0
  1290. info2soft/stream/v20250630/MaskSensType.py +50 -0
  1291. info2soft/stream/v20250630/ObjCmp.py +112 -0
  1292. info2soft/stream/v20250630/OracleBkTakeover.py +85 -0
  1293. info2soft/stream/v20250630/OracleReverse.py +21 -0
  1294. info2soft/stream/v20250630/RuleMonitor.py +137 -0
  1295. info2soft/stream/v20250630/Script.py +89 -0
  1296. info2soft/stream/v20250630/ScriptRule.py +115 -0
  1297. info2soft/stream/v20250630/SensCheck.py +143 -0
  1298. info2soft/stream/v20250630/SensMap.py +129 -0
  1299. info2soft/stream/v20250630/SyncRule.py +698 -0
  1300. info2soft/stream/v20250630/TbCmp.py +151 -0
  1301. info2soft/stream/v20250630/TrafficReport.py +47 -0
  1302. info2soft/stream/v20250630/__init__.py +28 -0
  1303. info2soft/system/__init__.py +1 -0
  1304. info2soft/system/test/__init__.py +0 -0
  1305. info2soft/system/test/v20190104/LicTest.py +215 -0
  1306. info2soft/system/test/v20190104/UserTest.py +152 -0
  1307. info2soft/system/test/v20190104/__init__.py +0 -0
  1308. info2soft/system/test/v20190806/UserTest.py +92 -0
  1309. info2soft/system/test/v20190806/__init__.py +0 -0
  1310. info2soft/system/test/v20220622/CredentialTest.py +129 -0
  1311. info2soft/system/test/v20220622/LicTest.py +215 -0
  1312. info2soft/system/test/v20220622/UserTest.py +92 -0
  1313. info2soft/system/test/v20220622/__init__.py +0 -0
  1314. info2soft/system/v20181227/Lic.py +204 -0
  1315. info2soft/system/v20181227/User.py +203 -0
  1316. info2soft/system/v20181227/__init__.py +0 -0
  1317. info2soft/system/v20200729/Credential.py +102 -0
  1318. info2soft/system/v20200729/__init__.py +2 -0
  1319. info2soft/system/v20220622/Credential.py +102 -0
  1320. info2soft/system/v20220622/Lic.py +204 -0
  1321. info2soft/system/v20220622/User.py +203 -0
  1322. info2soft/system/v20220622/__init__.py +5 -0
  1323. info2soft/system/v20240819/Lic.py +189 -0
  1324. info2soft/system/v20240819/__init__.py +2 -0
  1325. info2soft/system/v20250123/Lic.py +189 -0
  1326. info2soft/system/v20250123/__init__.py +2 -0
  1327. info2soft/system/v20250630/Lic.py +189 -0
  1328. info2soft/system/v20250630/__init__.py +2 -0
  1329. info2soft/tape/Tape.py +74 -0
  1330. info2soft/tape/__init__.py +2 -0
  1331. info2soft/tape/v20220622/Tape.py +74 -0
  1332. info2soft/tape/v20220622/__init__.py +2 -0
  1333. info2soft/tape/v20230227/Tape.py +74 -0
  1334. info2soft/tape/v20230227/__init__.py +2 -0
  1335. info2soft/tape/v20240228/Tape.py +74 -0
  1336. info2soft/tape/v20240228/__init__.py +2 -0
  1337. info2soft/tape/v20240819/TapeRecovery.py +74 -0
  1338. info2soft/tape/v20240819/__init__.py +2 -0
  1339. info2soft/tape/v20250123/TapeRecovery.py +74 -0
  1340. info2soft/tape/v20250123/__init__.py +2 -0
  1341. info2soft/tape/v20250630/TapeRecovery.py +74 -0
  1342. info2soft/tape/v20250630/__init__.py +2 -0
  1343. info2soft/tape_copy/__init__.py +0 -0
  1344. info2soft/tape_copy/v20230227/TapeCopy.py +74 -0
  1345. info2soft/tape_copy/v20230227/__init__.py +2 -0
  1346. info2soft/tape_copy/v20240228/TapeCopy.py +74 -0
  1347. info2soft/tape_copy/v20240228/__init__.py +2 -0
  1348. info2soft/taskCenter/__init__.py +0 -0
  1349. info2soft/taskCenter/v20240819/BatchTask.py +73 -0
  1350. info2soft/taskCenter/v20240819/__init__.py +2 -0
  1351. info2soft/taskCenter/v20250123/BatchTask.py +73 -0
  1352. info2soft/taskCenter/v20250123/__init__.py +2 -0
  1353. info2soft/taskCenter/v20250630/BatchTask.py +73 -0
  1354. info2soft/taskCenter/v20250630/__init__.py +2 -0
  1355. info2soft/thirdParty/__init__.py +0 -0
  1356. info2soft/thirdParty/v20240819/ThirdParty.py +21 -0
  1357. info2soft/thirdParty/v20240819/__init__.py +2 -0
  1358. info2soft/thirdParty/v20250123/ThirdParty.py +21 -0
  1359. info2soft/thirdParty/v20250123/__init__.py +2 -0
  1360. info2soft/thirdParty/v20250630/ThirdParty.py +21 -0
  1361. info2soft/thirdParty/v20250630/__init__.py +2 -0
  1362. info2soft/timing/TimingBackup.py +239 -0
  1363. info2soft/timing/TimingRecovery.py +369 -0
  1364. info2soft/timing/__init__.py +0 -0
  1365. info2soft/timing/test/TimingBackupTest.py +451 -0
  1366. info2soft/timing/test/TimingRecoveryTest.py +478 -0
  1367. info2soft/timing/test/__init__.py +0 -0
  1368. info2soft/timing/test/v20220622/TimingBackupTest.py +451 -0
  1369. info2soft/timing/test/v20220622/TimingRecoveryTest.py +478 -0
  1370. info2soft/timing/test/v20220622/__init__.py +0 -0
  1371. info2soft/timing/v20220622/TimingBackup.py +239 -0
  1372. info2soft/timing/v20220622/TimingRecovery.py +369 -0
  1373. info2soft/timing/v20220622/__init__.py +2 -0
  1374. info2soft/timing/v20230227/TimingBackup.py +626 -0
  1375. info2soft/timing/v20230227/__init__.py +2 -0
  1376. info2soft/timing/v20240228/TimingBackup.py +664 -0
  1377. info2soft/timing/v20240228/__init__.py +2 -0
  1378. info2soft/timing/v20240819/TimingBackup.py +361 -0
  1379. info2soft/timing/v20240819/TimingRecovery.py +376 -0
  1380. info2soft/timing/v20240819/__init__.py +4 -0
  1381. info2soft/timing/v20250123/TimingBackup.py +361 -0
  1382. info2soft/timing/v20250123/TimingRecovery.py +376 -0
  1383. info2soft/timing/v20250123/__init__.py +4 -0
  1384. info2soft/timing/v20250630/TimingBackup.py +361 -0
  1385. info2soft/timing/v20250630/TimingRecovery.py +376 -0
  1386. info2soft/timing/v20250630/__init__.py +4 -0
  1387. info2soft/tools/__init__.py +0 -0
  1388. info2soft/tools/test/DiagnoseTest.py +62 -0
  1389. info2soft/tools/test/__init__.py +0 -0
  1390. info2soft/tools/test/v20190104/CompareTest.py +241 -0
  1391. info2soft/tools/test/v20190104/DiagnoseTest.py +73 -0
  1392. info2soft/tools/test/v20190104/__init__.py +0 -0
  1393. info2soft/tools/test/v20220622/CompareTest.py +241 -0
  1394. info2soft/tools/test/v20220622/DiagnoseTest.py +62 -0
  1395. info2soft/tools/test/v20220622/__init__.py +0 -0
  1396. info2soft/tools/v20181227/Compare.py +177 -0
  1397. info2soft/tools/v20181227/Diagnose.py +60 -0
  1398. info2soft/tools/v20181227/__init__.py +0 -0
  1399. info2soft/tools/v20220622/Compare.py +177 -0
  1400. info2soft/tools/v20220622/Diagnose.py +60 -0
  1401. info2soft/tools/v20220622/__init__.py +2 -0
  1402. info2soft/tools/v20230227/Compare.py +129 -0
  1403. info2soft/tools/v20230227/__init__.py +2 -0
  1404. info2soft/tools/v20240228/Compare.py +129 -0
  1405. info2soft/tools/v20240228/__init__.py +2 -0
  1406. info2soft/tools/v20240819/Compare.py +156 -0
  1407. info2soft/tools/v20240819/__init__.py +2 -0
  1408. info2soft/tools/v20250123/Compare.py +156 -0
  1409. info2soft/tools/v20250123/__init__.py +2 -0
  1410. info2soft/tools/v20250630/Compare.py +156 -0
  1411. info2soft/tools/v20250630/__init__.py +2 -0
  1412. info2soft/upmonitor/__init__.py +0 -0
  1413. info2soft/upmonitor/test/UpMonitor.py +153 -0
  1414. info2soft/upmonitor/test/__init__.py +0 -0
  1415. info2soft/upmonitor/test/v20220622/UpMonitor.py +153 -0
  1416. info2soft/upmonitor/test/v20220622/__init__.py +0 -0
  1417. info2soft/upmonitor/v20190805/UpMonitor.py +134 -0
  1418. info2soft/upmonitor/v20190805/__init__.py +0 -0
  1419. info2soft/upmonitor/v20220622/UpMonitor.py +134 -0
  1420. info2soft/upmonitor/v20220622/__init__.py +1 -0
  1421. info2soft/upmonitor/v20230227/UpMonitor.py +128 -0
  1422. info2soft/upmonitor/v20230227/__init__.py +2 -0
  1423. info2soft/upmonitor/v20240228/UpMonitor.py +128 -0
  1424. info2soft/upmonitor/v20240228/__init__.py +2 -0
  1425. info2soft/upmonitor/v20240819/UpMonitor.py +245 -0
  1426. info2soft/upmonitor/v20240819/__init__.py +2 -0
  1427. info2soft/upmonitor/v20250123/UpMonitor.py +245 -0
  1428. info2soft/upmonitor/v20250123/__init__.py +2 -0
  1429. info2soft/upmonitor/v20250630/UpMonitor.py +245 -0
  1430. info2soft/upmonitor/v20250630/__init__.py +2 -0
  1431. info2soft/vmClone/__init__.py +0 -0
  1432. info2soft/vmClone/v20240819/VmCloneRule.py +100 -0
  1433. info2soft/vmClone/v20240819/VmCloneVm.py +102 -0
  1434. info2soft/vmClone/v20240819/__init__.py +4 -0
  1435. info2soft/vmClone/v20250123/VmCloneRule.py +100 -0
  1436. info2soft/vmClone/v20250123/VmCloneVm.py +102 -0
  1437. info2soft/vmClone/v20250123/__init__.py +4 -0
  1438. info2soft/vmClone/v20250630/VmCloneRule.py +100 -0
  1439. info2soft/vmClone/v20250630/VmCloneVm.py +102 -0
  1440. info2soft/vmClone/v20250630/__init__.py +4 -0
  1441. info2soft/vp/VirtualizationSupport.py +1066 -0
  1442. info2soft/vp/__init__.py +0 -0
  1443. info2soft/vp/test/VirtualizationSupportTest.py +1341 -0
  1444. info2soft/vp/test/__init__.py +0 -0
  1445. info2soft/vp/test/v20220622/VirtualizationSupportTest.py +1341 -0
  1446. info2soft/vp/test/v20220622/__init__.py +0 -0
  1447. info2soft/vp/v20220622/VirtualizationSupport.py +1066 -0
  1448. info2soft/vp/v20220622/__init__.py +1 -0
  1449. info2soft/vp/v20230227/VirtualizationSupport.py +570 -0
  1450. info2soft/vp/v20230227/__init__.py +2 -0
  1451. info2soft/vp/v20240228/VirtualizationSupport.py +570 -0
  1452. info2soft/vp/v20240228/__init__.py +2 -0
  1453. info2soft/vp/v20240819/VirtualizationSupport.py +876 -0
  1454. info2soft/vp/v20240819/__init__.py +2 -0
  1455. info2soft/vp/v20250123/VirtualizationSupport.py +876 -0
  1456. info2soft/vp/v20250123/__init__.py +2 -0
  1457. info2soft/vp/v20250630/VirtualizationSupport.py +876 -0
  1458. info2soft/vp/v20250630/__init__.py +2 -0
  1459. info2soft/vpBackupRule/__init__.py +0 -0
  1460. info2soft/vpBackupRule/v20240819/VpBackupRule.py +115 -0
  1461. info2soft/vpBackupRule/v20240819/__init__.py +2 -0
  1462. info2soft/vpBackupRule/v20250123/VpBackupRule.py +115 -0
  1463. info2soft/vpBackupRule/v20250123/__init__.py +2 -0
  1464. info2soft/vpBackupRule/v20250630/VpBackupRule.py +127 -0
  1465. info2soft/vpBackupRule/v20250630/__init__.py +2 -0
  1466. info2soft/vpRecoveryRule/__init__.py +0 -0
  1467. info2soft/vpRecoveryRule/v20240819/VpRecoveryRule.py +102 -0
  1468. info2soft/vpRecoveryRule/v20240819/__init__.py +2 -0
  1469. info2soft/vpRecoveryRule/v20250123/VpRecoveryRule.py +102 -0
  1470. info2soft/vpRecoveryRule/v20250123/__init__.py +2 -0
  1471. info2soft/vpRecoveryRule/v20250630/VpRecoveryRule.py +102 -0
  1472. info2soft/vpRecoveryRule/v20250630/__init__.py +2 -0
@@ -0,0 +1,1588 @@
1
+
2
+ # -*- coding: utf-8 -*-
3
+ # flake8: noqa
4
+ import sys
5
+
6
+ import unittest
7
+ from info2soft.active.v20200720.OracleRule import OracleRule
8
+ # from info2soft.active.v20200722.OracleRule import OracleRule
9
+ from info2soft import Auth
10
+ from info2soft.fileWriter import write
11
+ from info2soft.compat import is_py2, is_py3
12
+
13
+ if is_py2:
14
+ import sys
15
+ import StringIO
16
+ import urllib
17
+
18
+ # reload(sys)
19
+ sys.setdefaultencoding('utf-8')
20
+ StringIO = StringIO.StringIO
21
+ urlopen = urllib.urlopen
22
+ if is_py3:
23
+ import io
24
+ import urllib
25
+
26
+ StringIO = io.StringIO
27
+ urlopen = urllib.request.urlopen
28
+
29
+ username = 'admin'
30
+ pwd = 'Info1234'
31
+
32
+
33
+ class OracleRuleTestCase(unittest.TestCase):
34
+
35
+ def testDescribeRuleDbCheckMult(self):
36
+ a = Auth(username, pwd)
37
+ body = {
38
+ 'db_uuid': [],
39
+ }
40
+
41
+ oracleRule = OracleRule(a)
42
+ r = oracleRule.describeRuleDbCheckMult(body)
43
+ print(r[0])
44
+ assert r[0]['ret'] == 200
45
+ write(r[0], 'OracleRule', 'describeRuleDbCheckMult', body)
46
+
47
+ def testDescribeSyncRulesObjInfo(self):
48
+ a = Auth(username, pwd)
49
+ body = {
50
+ 'offset': 0,
51
+ 'limit': 10,
52
+ 'rule_uuid': '1993ed2C-72cC-cFCB-8BC3-E7da46CAF7bF',
53
+ 'usr': '',
54
+ 'sort': '',
55
+ 'sort_order': '',
56
+ 'search': '',
57
+ }
58
+
59
+ oracleRule = OracleRule(a)
60
+ r = oracleRule.describeSyncRulesObjInfo(body)
61
+ print(r[0])
62
+ assert r[0]['ret'] == 200
63
+ write(r[0], 'OracleRule', 'describeSyncRulesObjInfo', body)
64
+
65
+ def testDescribeSyncRulesDML(self):
66
+ a = Auth(username, pwd)
67
+ body = {
68
+ 'offset': 1,
69
+ 'limit': '10',
70
+ 'usr': '',
71
+ 'rule_uuid': 'e7a05Dab-8ffC-fEdf-8eBE-7761bdEb0AFc',
72
+ 'sort_order': 'asc',
73
+ 'search': '',
74
+ 'sort': '',
75
+ }
76
+
77
+ oracleRule = OracleRule(a)
78
+ r = oracleRule.describeSyncRulesDML(body)
79
+ print(r[0])
80
+ assert r[0]['ret'] == 200
81
+ write(r[0], 'OracleRule', 'describeSyncRulesDML', body)
82
+
83
+ def testDescribeSyncRulesProxyStatus(self):
84
+ a = Auth(username, pwd)
85
+ body = {
86
+ }
87
+
88
+ oracleRule = OracleRule(a)
89
+ r = oracleRule.describeSyncRulesProxyStatus(body)
90
+ print(r[0])
91
+ assert r[0]['ret'] == 200
92
+ write(r[0], 'OracleRule', 'describeSyncRulesProxyStatus', body)
93
+
94
+ def testCreateOracleRule(self):
95
+ a = Auth(username, pwd)
96
+ body = {
97
+ 'rule_name': 'ctt->ctt',
98
+ 'src_db_uuid': ' 6C4AEF37-6496-6DCD-E085-DD640001E4EC',
99
+ 'tgt_db_uuid': ' 1C5F3C4B-7333-9518-7349-9712BC9ED664',
100
+ 'tgt_type': 'oracle',
101
+ 'db_user_map': {
102
+ 'CTT': 'CTT',},
103
+ 'row_map_mode': 'rowid',
104
+ 'map_type': 'user',
105
+ 'table_map': [{},],
106
+ 'dbmap_topic': '',
107
+ 'sync_mode': 1,
108
+ 'start_scn': '',
109
+ 'full_sync_settings': {
110
+ 'keep_exist_table': 0,
111
+ 'keep_table': 0,
112
+ 'load_thd': 1,
113
+ 'ld_dir_opt': 0,
114
+ 'his_thread': 1,
115
+ 'try_split_part_table': 0,
116
+ 'concurrent_table': [
117
+ 'hello.world',],
118
+ 'dump_thd': 1,
119
+ 'clean_user_before_dump': 0,
120
+ 'existing_table': 'drop_to_recycle',
121
+ 'sync_mode': 0,
122
+ 'start_scn': '',},
123
+ 'full_sync_obj_filter': {
124
+ 'full_sync_obj_data': [
125
+ 'PROCEDURE',
126
+ 'PACKAGE',
127
+ 'PACKAGE BODY',
128
+ 'DATABASE LINK',
129
+ 'OLD JOB',
130
+ 'JOB',
131
+ 'PRIVS',
132
+ 'CONSTRAINT',
133
+ 'JAVA RESOURCE',
134
+ 'JAVA SOURCE',],},
135
+ 'inc_sync_ddl_filter': {
136
+ 'inc_sync_ddl_data': [
137
+ 'INDEX',
138
+ 'VIEW',
139
+ 'FUNCTION',],},
140
+ 'filter_table_settings': {
141
+ 'exclude_table': [
142
+ 'hh.ww',],},
143
+ 'etl_settings': {
144
+ 'etl_table': [{
145
+ 'oprType': 'IRP',
146
+ 'table': '',
147
+ 'user': '',
148
+ 'process': 'SKIP',
149
+ 'addInfo': '',},],},
150
+ 'start_rule_now': 0,
151
+ 'storage_settings': {
152
+ 'src_max_mem': 512,
153
+ 'src_max_disk': 5000,
154
+ 'txn_max_mem': 10000,
155
+ 'tf_max_size': 100,
156
+ 'tgt_extern_table': '',
157
+ 'max_ld_mem': '',},
158
+ 'table_space_map': {
159
+ 'tgt_table_space': '',
160
+ 'table_mapping_way': 'ptop',
161
+ 'table_path_map': {
162
+ 'ddd': 'sss',
163
+ 'ddd1': 'sss1',},
164
+ 'table_space_name': {
165
+ 'qq': 'ss',},},
166
+ 'other_settings': {
167
+ 'keep_dyn_data': 0,
168
+ 'dyn_thread': 1,
169
+ 'dly_constraint_load': 0,
170
+ 'zip_level': 0,
171
+ 'ddl_cv': 0,
172
+ 'keep_bad_act': 0,
173
+ 'keep_usr_pwd': 1,
174
+ 'convert_urp_of_key': 0,
175
+ 'ignore_foreign_key': 0,
176
+ 'table_delay_load': [],
177
+ 'merge_track': '',
178
+ 'fill_lob_column': '',
179
+ 'keep_seq_sync': '',
180
+ 'gen_txn': '',
181
+ 'encrypt_switch': 1,
182
+ 'encrypt_type': 1,
183
+ 'encrypt_key': '',
184
+ 'table_change_info': 1,
185
+ 'message_format': '',
186
+ 'json_format': '',
187
+ 'run_time': '"12*00:00-13:00*40M,3*00:00-13:00*40M"',
188
+ 'jointing': {
189
+ 'table': '',
190
+ 'op': 'append',
191
+ 'content': [],},},
192
+ 'bw_settings': {
193
+ 'bw_limit': '"12*00:00-13:00*40M,3*00:00-13:00*40M"',},
194
+ 'biz_grp_list': [],
195
+ 'kafka_time_out': '7$4RPuy&^I!D[AXsN[*FP)0@ye%yp^TG[WOpegC]SLb#eTZEwz5gec7%nLH6TZuHMhtPHAVOL0h8]4y2Q@vbnlIDId[FJ8VMAtwTEnuxL%BS2v82G5N[3FS4NQEBvMdXyN[PkFBS2wdqShJ8#jXJy^hRp6qwFMBLAg[xrHFK(7&#A6FtTp81i&HD&vSz$x@gKJ!CSK@1h[70Zj%(4mmwTi]nNVPZAr6)SN8*aps7y3mRoak[iV]KM4u^SHUAAR8dk!YXV*#Qz5K%B20@J9ewY%4w)xOzP#VIt!FP#(3ojnc6V0F99%rX0N[0Q!dYHQps^R3#NeZi2f6H^dbEsXJ%18S4IuZmwCUHbvCI0ln^royf3H0gOpsb]lJb%bmg62YZ9UY5&W&UvkyrSSyDPlKBt2R)Eh5LavIQcsntBz0x5[DA0@@%4]jN!1V9X2V&k^(&BUR#M0os@FAU[s@b9TuA9dw6m[&JCxD$%)4vJAE0CL0i!Dkwu2fL&KCNrq^RsmO#m9%4yOoW2tuSY4TFOVapqrnz1SqzNmJYlUcBwWhW#AN5NTDLf*WUR)wCdgp2qpQ)NqRLFM*1XQh#zYEVo$Tb!S1$Qz!^I&@ib3X]G%2uYfB3@X8#UNNKl8t!&Euen^y$ws2##m4Ko257C^cLRU)Zo7vH(g6r5EZlx9IA*O2v[KTfc*48Z$^(gy($C2jymNgrtg*4IqVPzOL*sX(H3@JGh*43ot)YiXk(N[&ek^&Syd*0QIw[$%Qa7^8FJN!qc&ss*[(]uU0&h2C9V4[cEbj8@^x4Dp0Gpr7&!N7f5bAx2P*s8kU*)67q1SEon*[kOrmx0BHhswud[*^%uwwv(FgV*UWuE*[GwLDHzM#HDw6VNhHTnzW%4EW4wxxSYje(b[RRIkoB]wh&UuX8QB!n2A&DhGUc*H$Zh3!9Dqe^sDgShXKOEsYBD7O5LuYYn15^c6nSJTNN#spr)Urlfo)Gvw%yGc(hGZ!OFC8NI$!$M5TliOs@ko4fsNFA4QqpjItpI04enKNVqad&EKo*lBlfrK5y4tm#i$4Xp00*prBAcMP&^SV%pLH^A&25gUT^mrpv[Q1N4UQLX3818jqEU8Y7W^MF)Vtnk)SxMXBrEqLv&y![uOo#9v!2V0l2rqDvY(SxfEEE8J#%[XbHtSEx%CbF]VmxHe!0zADKFVlfqp6@7jhZfiVzPOWVbZlEd5(Ohvu$qflrM8fGZfZRP8rmdQ@nB^5J*eVNnF1&PJ0ykVb19D@C(A[eI^p1s6W9lvx59HqE)f3@sQP[60XPncFFd2WZ&AxBPtr0DyLa0X(QDWD2I#C9uXI%lbW[ag4VkDATqu1Anhc8TJL0AhYSf^9uWW*NKcV1uB3fbcR%64R)Qb27f*q8hR5co0*lc6rUf$&UTxM397BwbM5y*7%xRKql@B22528IN@*Zja(dSz^agphkXqR@w&!JB3v*CG2S$p4WeV[&AM)lo4nES2Can1j#nMS0T(DOM!$I)EyYxDGO5[2&3kJy7KVRSNkDo^#HG5O1QH5%yR!q6#6Y^F4Zs3)Vl9ZcYbvF@Wfz)!cLWad4FMV3I0$FHMcPy34nY^1V[)RAFKRta(ENC$TTtnX6SsdHQ94i1mq3*5DoMbAxNq2eqY5TMCr&lmoODJZ1G6ce17O%[[dZcZ%o9eFrIYc1uIjzjIskKxO0MW2(2hRQx2mnJK%Q*@CIDY!zUW4kGm[7QxOp*Q&pJ7RrQPVict0OoVM&5D[ufJQKsRT!]qIR1q1uO$JpKhSFiATgDF)wy^kd$qjIHbci6iB85O37OyDFTGJEw[Q#6EtVBVl0J8XCZ3HPUvrK#0mzSL&DbDYR@kZcovyI9CFEzqQ0pPJUyJi4XKwie[KUXfoh^^nKm5oTxu$fxd3N5GvrCQyXyFB^D1!Tr[knak2!qEzZox2Bqlw1$EGLDi6Zw7LNyID7&ggXPut!)q)(PH8XS]il@tMm7YnYiD0)nDDSp(Lt(cwR6f%j#qrKz#W[y!SFLZX^b&Wi[FT42MeWBytR7xnt#elMLIB&hv4kJ9n)SJPm8Wl(I4bsXR68B^u^MSKRAP8&6ji2&pZEGUmdi]wnXiU2AhGkGa2UP$lfF2&nM$EK$[NDg89aC]U4I$uyEycB7LBLXc#TS)x$M6Q8fmU7$FLkmtv0xGJkU]t68CFV6pkzo6*pHDG&9)S#uqR4C!nvYkb4Dwo0tPzbz$leqemp)0zkJV(odosVIf&gecPQFs$9n([HjeM^WOQmfsMj]S#B2^r26PbZB3DdFLkHrMxbwH42w@@tPeoPxn0nS%8%(3p5W#oLO4kZPI6BSne1(3j@CyxL4SX!9iaW1clEFGqADj&wM48qQ(WyVES][DevJo(4^iXMA5meg*e3v8)AlLSQ7wh%pVk9Y!XgqiHQtvX%KioVQ0cxqRHXZs3HkDOTzY4nX1IwhI^dYjbPyk!]H&DJ*jK9DQ8H@)S@z3ft&uajRec9yTctesu8G#cqqjdQ%d*FE#br4O)jPAM0dGg[QIC#avp$Aoj$JKK^UjYy@2j3ro[^nsMSAdnVqEygiUTnAZZXs^qv2L4GR)y%gL@@[(&)n11raMN*IY8E8zX)B&lG(JdALUcBT9OUdo4*YYIIk(A4%LDl8SO!Vluq0GD)aF*^Lz4OGh$DiN4Wgw&Y]Rd[GA)A04ybV*lm#jqodIMqifUt5pxEFfY0CPg$iH(ZlSFOc*EDbfIqU3$z0EF%Vdq*rXR8wFq9*^u^VW$U(XxyE@x5NJskWFltu%CqBCWZhyOtooOylQsJz)^EP3D4wrUVKetXqN8In)wR3]f^WOoOJidQGz*LzVQLsW(PBN0[!zUKzFqphp3KATeA%!r^DjSgscZlkEVV0lfzwgA&hQtyG4D#e3Xu(0hY^Co)k^FWJccMt!H0Mg@jpq683AI7ZH9$XyZmb&f[]4ArikP^hK6)qbrvjeHapiPT[^JaTJGPQz[JE!3I!kHuGiLRBP]2ePSbT6mfEMZAh##sf4bt@E8X*nO*kVr^MifGwX)YaR*sze33oWq7Oju1&W6cOvn$&U1CKRIBlROu]iru7q8$vI9vy#ny!&NmZBXQ#CDEDGL7[B$M#FFRL32M8bG0D0I6ylIZw72K#lM&BEtY#gC*l7uRA3WKn$CMsiXiU0S1qvm8c7WDv^sA@8#g#3uJ(JvR#@)r9X#qMZ5O2&tWmKwbnSj0VVZfS@X!1g$E9$V2iZN8[4soQp!kKxnK^%F$REwFZmq@ogMcsZ8Y2mD0ghm9$ms7pWto6G(Rs94Yq[i^3^JD48pyi3vLr0XbED7yEdkrFM@TmPoq58o37$Ic5nH@iIQE8BM)Y1tBSk(BXgE@AHxX!wuXzdH4!M4m)h)mw#RbDZ!iFonEOG[wVc4)[e[vCfsA#C92zMI!4)4D#KivRyccx$Ke%YE(DbJ2K(lIIq[B)yc7IYAEmA)jOEG*KczUQz5lkCABf@q[thUVpZYD]odHWtON6)$MwSSox%!Y*ga5J(#HLzI[5VrEUOA^)UMsiPfc[o2Ut]rndC$7SU!U91@T4]Bn^hmn1oVT&Mitz8Qn8n4$[o&zOkEeMENZT*PMhWZoJHxxFgABjQ@sRU3YqrkSV2eDxrG2RDx78)LI6Rp6okSgVLZtp(Dy37aMz5s%vQCQUL(Z6!tHR22&v2BMcBRsl6il9@wY9CS&gh6RnhKkquYrN&s6O)%ZPrJ9a3&Mt9u@kAOAvWmdI00D@5S5#Pq7OP8QWI6g6HHl31rx5B@v6eHdlpPCy%E$XQ&01S378Sz&ssGZsqk*caokIv$7Q!CmlW)z0qU^T&jVFHUQ5BWmkNLv)zgOMLMAEkEX7gv#diZ*NyAAZryTgnj)k#Y4!*mP7Sg(T]D8[[X!LEopK&2q)1@k1xelzogFl3rgLe6QpK3^znnkjyMIcAN*L#E@DJIFvILXLf%TuJF%COxpAf2AE29hZVDxn(7XgbQSb2g%uvEDpoR7Foaq1B*7l42NOPaOVoyuNK3718Vv#MrmocunWnDsdaZ&0mC6giLy)5yzY8gb!KUCANERi[1Bt%umYeHi%AWXniqhiK68K9k9ylAZ@c6J9j*rR*UvmR578)1RE^6c&AvchQ]1$i[fpe9yX$6iRFrkJcOPp($IsBk8^uB]mk[tG&c%UT0F7n0nFwLdI!baylUU!O)Ma%Gi97*c([ewz7UBkg(uo82k4VCQToHxr4P$DXscVO6pNAz8cW63^OHMB@f&Iu4k0B*f3I1!O!cqRkt&Z4uC2xm^vq1rYlyc1)HrRiHF5@mrfNTZP6tZWJkorX4H^n2BZdurpuKOPqe01$tJac@slK6#GzjlHJ@LSGyyXazBq5qtrslJOket%L@xxbUvuMKY9Gn*urA$^LDeF[$KkwCmy$6AApJt5)Kr1ZN)*Gfmf3(wEl4h773kfMson[YuLePBSKzDlUMm4HsENNCzY%7sJ#NIFNM%ojx^owzwJo%5SUEuLc5KI8Nsz6I[AiG(ET8xRJ%DGtS5lDFclT0@VJgRnszah^7hH5&d6Gsrb6BCin7UEBTtnnz6s#H[4!5OY^y]0bePp)V0vLI$IMoPfHDJWmQ[&@AzKvk(3tf0Mm]P@i]4)mTe@BVm*[o#TxMGt#gl6PkjOXA^*rV45%GKi^VmqUVVWJAQ4UzP4dh6ned(@v^Oq(&jiBY8jLRL2T8!F)7%HdH@ADk*Zd5l37Uc1ovJUlseYxrKrPR(MonY1GPPt9Pl2)WDvhX)fJ*RoBXnv$KWg6$]EM1@U3sJGT@8s(^Q&NIxWV9(]y*(#Fk]4og#zsA5IGW)g6uDfV*)m6CZ2!6pjCTZPRdKe1$wNBVCbYLjhZdQ(Q!U#6Vtfm*zDltZ6XbvzFe8WQPUXaAHVzYc2C3B#d8!k#bu1%P6(lsi)amCnbqVH1UD5vhfHyf(@&py27zLVka9hcigSi^M0WE3wXXG!WYonS3%RvaMiM1W5EI&2qwjOkN8MUaWEGsocu5VvE0&Gt34pCv#9E*Ow@)N!ahmnT$HSUlcAAJ241w3GBvOA(TvTHhhcDKT8$3RBq#@nJdCG2AjMc1TcXtB%WrZlJXR^89wb5rxf^dEVq&oBsabe86Ih(0sMaMsEAw)V7m(L&g7LSBO0Ch6eUC^X$#mv*7mx1$[sLit[pd3No$$mYRuJSmY4LpH1AdcgbRRODrE[ooJo7xcNO^MEkDCk%S&R7(nme)EveolXT6z1bB8dgrSyVi^)npyzjPY92H0oznC8zLqK&UUdGcp9Qc3Vcz*KY)25bf1NmELOh2lwQt%P*GSmhME6KbN72wlUaPQBUhy&N^IZ4g6zcNk$4udX77^wiRC29kCnF35mg23GxxQW)pKrBDIKXBHoS*QiB@7Z%TAlguLD(J$&I^fpKKWQs$0zEiDkOtVQtDYPFHlnRVrP1^cYzpZ*feW83#y&YHi$&4@G1My8C58)6a02&kNN9a@Knr*UGM0K7Umy)ES)nfdRTuU8Z8Kw!*xYsg&3V0@K5JSV#a&IL8isehBL$MzblOc$9D2[Zn#ANE61DqXU56t4yHEgzFmb1u#jL4czLIpnoy5RAi7mFwc9iNlL0v9BnvKmGD&HEhEI$bF9#woL50AuZMxWeef74nVmD*XO8UN4nc1gN5WDV7RA^bS^g!I^(cnUup764Su93HI7137NQZuuh9H^uOrG#YMlyb^tppEfUB)bcu531dmjJi5OEfDH3gExZ2fG(s$hPsD6CI!5ELfOCK0#zdXGbmO%n*Tl!!S%OfTxG(8)@6Q6Cyk@q3jd0%kFiZ@r!Pq6cJ*8HGOTZT7ee@50q7S%V(FKpSzA@CqRzo[%R8t1P!Jh$9QSb#%*REeUfrThjh@UukECbPk)7)9VQ2drEw3YP@EyMk7zt[lcn9GLUe2d&omUSZMCm[6!^4sX2qWRI7C5slfehUfmvdv52KT)Y*l02Re485ir8&xbnF*D$bc*WUB!g@cxC2wJY[obnNC@PFxoiAyyZLI1(ZE&mOIG*3#S7adwQk9T8m7CD&(wxgKL8zUM1MFz5A)ou01ERcEy)&USM#yqWMSAlVxBWmLpnqi3Ub2RqCh4S[*3ce8z2GFY45iDfFK)SThHbup*51rBzV0x5341lg#o%hopdCvtaEtjeGfhhoeh&oFAaRu#nbQ5wQJRFgEF3kh@q3p2kSZIgdcVNxphgl02I7b@!#2dQninPr)TRg*@gHVPxo#VdLw(BhElm3wGoATHh]2z7(fdVVo*lQ*JFkEHWlweQLPJHHAf1ZDU5o$JZA8ih8gv%Te*MQA]V&4b%[7VY2M*c1^#AXK8[l6Hlqll!*q24(h0vt)@H%Zp(&9skU(S%izk5pG4D&zU#z1hh[O92ssb6(FCQfh$Zi)0G9D[r)!#&]@%S2D713zGLpV%wZ(gsVy@liZVv#(NLtKD$J^9rTHS)1qmkR5KT1oj^xRI)D@f8z*fx%@o7jb(uGoJHYzHdKU72c^ONJp0M(wmi%fiPy[3)0Oi2SlNvHbxsI#SKrwLSJZq&p7K8T]ycRvt#tZN4]YQIDzfizFDZbl620pnoHhfAzRv$pG&t8HBQL7fnmlJxqcqoi(z!YQkIp$C[TT#OK25THkD@0[fZIfZfYal#Q1w*i8%u!ObrgAVk6w#57*io316MUW7IGQv&ytnRTuF@76nq)Sx[HQ#lMwgR)AnexK[&g2coCSUdhEfH0VvVRbHOhj9lR9l2f9ryl#XeQLnbf[J415E0JgKvLPL$gWt0VAv8zijay]]WZT]08SKNnr%tPGjhei3uS8ZwN2#TEeDAXGCFn%gjzkCjW9x0LPePB(BYEqoC(2L03AguTriDWMC]jMUIl30S@(BpdqFA[q*sqoh[6Xqnonmd*#v)x0svjvZC$lX#MMQON]W6ti(%Mi1z9Tm!tz38R!A!d@s$M2[T75S%aQ[Nc#uSeR3efxtZmg9G4r#*IsXjokN5!BXcUn0Qs@&2y[2lW&KY##In6(gTYhZ466jLjQ0Lb%ca!D7jK3Oc%!BaINe1@HmjLwzH3RzB*EP$vGLI1OQ(nPK5@7[Lk2[s8VN]dt*m*W()xly$WLaU94jF$N00CyvjPP@Uz!1Uf#fqMeXe2e747^]0!LCUAqKbrK5tK!ssxBMz)6VBUzgOrDn8yIeelM%uRUoTPwr@c6$26d]JjP83SSJ0ic7#5^k5ZAW@WulB3%8S$Z5U&Ur7^uSsA6G8HDtIWunpg@2dQ0xOx!8C*ePx&7%siNq!*pp0ycupGJIQ7#jXZ5#BHXF6Zlw^qC3H@CO$lsOOD3L&YiE1mzJb0(fwthX4(TmQxA&FBDdCOvcnRa$hcW8@Z2[$89wg9PDSAR9h&L^I!TU%Cf[mZ4IlFGTGG($gyfHpIW225t374Vdzt23p[zb#%X7@)8a2yi!QGi6TZMbC8TN51Z4l4Ad*[&u87$2Kw*iGyxJ&(!5C%ltJLWS9[hpPE2)LOmyDdt9^Ucl]gcoh^Qvz4oFEDx17NK8P&v1yCUCd7QexrplcSj8Mg5!hEZPLEdgu)[e%&P1n#h8)72F*Dn7xm9bSyRZ6hFivf1i6UA6I7kvK*HkqHMmZRxdRsxf39)RTP8rWn29(a3)ALkW]M6nAMfDPbL2YodVuqGyA1R$LeeN^k0Ed5(PwB5D8@pI7pj!m25Y(OL9*hwfNQWI3mo%RnLPllFlc)1DuE3oDIfxnd&dQ^Ti[56rKBT05XvFHq0U0dwf3rcwbz[DrkfSN4Z4()]43XT^qd2z%CAV2UAM2AbdoBeRhiQbvM*J#@[R)p9YTFLf(I!hGVMENm0My5G%Rb$7^vur4P12vk7ezZF6!UOF6]MRlO!1pH@edT9FgF)mXqQU1BG*PH%Zc4k[4g@yM[S6k@2HvHI7xR$P7CAZ6J!Bwrb*GM55jKDQsLMbk9VJ)loAVA%@%VOirHoCTxw7y3^%lfM3YCi!EUxBU@!mjxpV[OJ3jcV4YJG0!yo*oKtpTYA]oI$wCj&NyZ5PkD9p#z0JDZBr)X&]*^n$wX0NNe3qKATK8aN@6%*0@A6%mlKqSJHYHpJb$Rz0x54Nz&fXggy4ys2zmk(moY3[wruobyf8j2pgO@X&36QMT]E]%yn6petoK75IcAF(bIy&p3HB^nOJoneBHTDZTyhW9H80(]*QD%QEzi7pqX0GkqabBG%W6C#SxoM5kWO5)(yCM9i%PEYzqymSby&L[sShLXu3F5iEBlJSN4HkCVWZK#e@W4lFYxWRP$l^RYXc(AY2u(a%Tt([Lj9s$NT)Yed0$xn298if#0k6(ox3T[TfZ[shG3NH[j(vc7slx9$xG7GN2%4Y3jl03Q7N9bz1k$H*D)1iOW#SxfaLyZ@be7YG2mS*F4bvxDD4LlExM&IAP[Yk9GiDjzkMyHBsBrTN0Sr1*lCIhoQDUu^FU[QNbmzTR*lj#TqqgU2GyrIWAG72s#9446!B8TD@qnAb$h7f]HUuLoQqvez%q*7I7#JPx31jGe#AOtRtrlRc3WasRqYS9SBbMJhOhP@zbvtO2IoJGt84gB3Pil3yd*zQxqNkX1mOskg8ATN2kj^H3YZP6Hv![B9$3ey67q@EIBxwRtdjNNn[A[g$c9g^8Fz]y67L!S6tOfmMu@5cqw9lkkzgmuAO2TKzFoJHoUk04^ApMRwk5l#^d5(XIt5GotlR^!!YJrbBr&qaGtiSvjAvjo5rMwQk4*uFFh@eSlk0A*4Gf@A)OE7RK#Afm2*&MLTwn@Ru*4s852$J5W@7a[A4!)rh8FtdiF$m9kVKi96cHOU4[jlen!kWqP%CDJv*Ezl%X12&SOSm(1d(KDy8R[GMhLRec&t3zH@efmvaWZtBbww6HoOaN9VHv[Md&(P)YHZJscHx(1cvL0zVe1$x3@4sNS67)o1SgvQ9m3NwKmjcDRFH*FgFk!W#D3K%^eG7F2ZRbH8uv7QvAX1rQ&RU^Jb^2HFzgfwjiOW#s71^^cUGUPJ!oYSGPxCbX)t^Pu^01X0Z[f0[Pdle]wRO$^Ago@Uk#5tonz%d6L7O49CC8j3))OlZod)uYnhxd2dRGs12okbWEeFUD##Nem4Z3YkKbKft5A7Qed3QJzOn0I5isG1G]wM[j1XLc^aU^Qt$1OkTRe*Ib%OP!Ruo!JlP#L5x4)@Ka38uv]Y[mPQXWOf!6]M^3Zz7e(WxhcuvZL23$dW#*#K[f$jc@L[S6NGDLbiQo**bkGMY^Y6yEV3(6D6aw2ZsC]mbzu*Ph9rg[Quc&vBfpLCZV[)D^z31x#rd2FYm])iKPt2gqEbJ0P*TZ@1dO$Mk^a^V7PxtcUlegVjuvGuAU(nrAL2cV0w1FhdB37Z!23cU!W2oCrc&Wgw)sj6[wxLKwT4$CxWQw2G!(7u0DZx*HEMk@%!ZFXj!JmBcAX)^L4KU@a[v4#92E)ubdQ1(%6HgbO[Z48m#YrOo&3I$5LO[zW6fjJi*k^N0!C*alEJtn$p&95tQ1CbSI(OU[U@SVkWJX3jcn(LuyG])u!A[Qn[UauMAOf(nuxh*Y(Ye79iCIOPtc1*80Fi(RIvOGQnZ@4[Mmk#qGgz5IvGx71GML$BZY^l#tu7@#$d^Ri&NQ6^ObYF8xg*YjRf6(8u3lf*&E0jSDhP0kAuu8UXnqDP!@rx51)bpZjWslcDDNf#1*g&XYlfFI%csZ^r$*duO^o*t0fDJ7xQ[URUi4Lq^tYeJ^T)zbY)EgyMZaO(i%Zw*tQ4RZOBr4nLB4*Cpc#WWfCX77(Alu8^xE4508(qcOs3i^qtbisYlJ11R2#[F[6V4A#Zo(X5N)n#i4Y2^h@HT$%z2PJwJlAy2CYO%smnfJKSy1ZDVSoUXfCR*c4CjKJ^*s4!h190A4FXcr5o0BZ8NgX0f%WZroy9USF]6jqLC^&rCp)6*qctC#bqFJ%&q3Z#*G(oF^Sw9K@Q!$[Qq@o0i3SA8gpwXqIXxQOTcVi5JIIU2%P@GtvUc(8sY[sQi9oVHXYm2$UxSL!H7X#@qxDFb5Xy&ljJr(GLB[q5AxryK1l9%U3yJQn&(^MGejZbDU$g2iXx#UyXE@@z[R5!whHUsyT$32(rAxz5W*pFL8RzKGISA*1*zSG])Ca4%NwsSfeV8)bL^r5Dt[AoLi1#LnjYYY(%glCY9MFT!)cWMOMOPCSkLXbjkfJyrUTRP#2hXNRwZ2NeUumZ1dic$gWyjfOkmdlA@%EDf*lW#sMqDlplF1qo5xv@z3*btUo#bPrfv5gCn(7J3zSRw7J(BlOdXB0$)L7p0%QxHgEP3mkun^)BJrQ8IhMUcH2uF!Y0)%s^XPidb0Z8%[M]ScS*AIXtvXTRB!)pld*W@pVr6NHd3w*(*!TuDYQ1[Rx9i#uJ0I*e1H8Aj48kPLtHDo6j&KduB1W[nsknqh5s6YDWKWDaJQyataE9NDULvIrWk(O&@o^]5f%75sUZX%FyFHAd*BEI&^wZyO)kfP[1Q2pNZ7N%rtJux1gToDazslIZp7RsENFbibVgUnPBAk4bzKW(kdq)8F&fKyOEgtJi(Tibx31D*sx(PJ6Zb^fRVh@Wbi^3Ao8GNCG$d#JSQ]IU%B$AsuVEqq*#Zk&d$knqzQ7Ab6io)1xp#9zbN1b!x0y2Ch1x97N7QVNNoTe@)CF(A3#p%[z1Igb@QK6^Rd8xcEgZEQ@oSJAe6!ID*@rJdiJ&f2gHnOz9mgsVqNGDk(u(eWu^1&7#%dCs^gSIQXYeK1HEE6ML(8yt5CnI3hSM6uPmZu3NKuo3R4TqiCWyQUQ4t&(R&slgI$StyOE&USVOFlOrdh#Iv66PDc$s$eWH75F]ejk7]Rnw$Bjz3#N$nc1#HETr0CzHuk[E#ey0B4VSj%#$4jZPNIMdo@LDUxqjl67CrKy4JARJOXszbriY!4Ss8wu)@8smnk1dCndi&^Sjlw0BxSR7haL^u[lUqCAmeSsThjY*(]G^XrNXh9jj4PqFbJl(^2MvIARa7TluCkIH38us)XAExq%Xz7AlbYC6epo0YS6C!i@wSQkrKuPJPwBnKvd2khH(8Eck^J0o!M[!EP2wHv0&o4j15qmopV1LESv1h[m4oPWqvjjRyozwN4W#(9evQj$pn(xkK7semeN2wrlmyKQQqXMGxnv)3rG0KKLpr5jw$z8DMVvxc1dHr(bVPes%!2c1oTdGMRpGNgm[CXFW*p2IfTdb$L*KkLI0kQ$zc[S3B*6xd)Rju1pRdB@r1(ONY5HAm#o9%c5oSrmq*JkSPz]rq01oIYGdcFkau(gFhFhgTPxEt^i65muQ%&Vt)V#qEIaqJeauXUF1Ei8c@Qrog53ICQq)IKuTY@WeLxPqcnI5u)3R[4yGzezA61twMiTm&y4^YHmonnOJe[h5Zw[I!lg4oJJq5p$vRsckc]MfIV*z^!@]9vpHTsX^Bie)fP*1NQPN4C#u(cJ5gAJgmh4V67crxmr*O2ZZn]enZ^wmQ)q7]#3*$EF4aDeOG1XCyat*YgZc7)3RfO3JeLB&dQkYQwWFNJc0ES7EoAgvZH6[we@2%1I@4F%C9Y)HG&*x#QxFMUu$Wgw^L$MJvgDmE^$S@Ra4ILqXS5H!ufWaAslUirIN6QN^iPOebCg0*[Tt%1DPM9PpBiTJ$uiEh#v839ZdzcDYZkBc#1J5P*j41ktv$Ch)u(PjAZK6[t@jAAZz%DzseiR)MG6RcS5pxs2D4JIA[l7vV%l*q#(PadjZHWHRW7ltpHMwm&CLy3DByCxi&#KvIl75IzELVU*joZPvK!cBtpcwWzMkw*422&[O07tjYw]zNRlBk27UXn#chLpwv0DyEr[BTQK%p0xpYfPI#ssNd]LSfvpJQeVG%&u8*c!IxvEb#DP^W2#9jmr3bL!H&Xpu5suXJqJiIqwcs@FOpZtFFCXVn[l6J8zcnGv8ILtm$rQ4E]nMC3[dWrCHgXbNomNU7gVXsqEFG)Siw3h)IU02P@C&^rkXrNj6jFZp[x8C8O2ZLVcPPHrlbz6fvoDmhqI3ToQ0BNv![ZgB[R4tLVf8RGJ!$LS5PFI8xEIVDNWbLr^z2IAvuxRlJj20u@3kYVYOANK03HMFEfQJ!5mrUn&UgNkY',
196
+ 'part_load_balanceby_table': '',
197
+ 'kafka_message_encodingUTF-8': '',
198
+ 'kafka': [{
199
+ 'binary_codehex': '',},],
200
+ 'dml_track': [{
201
+ 'enable': '',
202
+ 'keep_deleted_row': '',
203
+ 'date_column': '',
204
+ 'time_column': '',
205
+ 'date_time_column': '',
206
+ 'op_column': '',
207
+ 'opv_insert': '',
208
+ 'opv_update': '',
209
+ 'opv_update_key': '',
210
+ 'opv_delete': '',
211
+ 'audit': '',
212
+ 'audit_prefix': '',
213
+ 'audit_appendix': '',
214
+ 'identity_column': 'AUTO_INCR',
215
+ 'load_date_column': '',
216
+ 'load_time_column': '',
217
+ 'load_date_time_column': '',},],
218
+ 'error_handling': {
219
+ 'load_err_set': 'continue',
220
+ 'drp': 'ignore',
221
+ 'irp': 'irpafterdel',
222
+ 'urp': 'toirp',
223
+ 'report_failed_dml': 1,},
224
+ 'save_json_text': '',
225
+ }
226
+
227
+ oracleRule = OracleRule(a)
228
+ r = oracleRule.createOracleRule(body)
229
+ print(r[0])
230
+ assert r[0]['ret'] == 200
231
+ write(r[0], 'OracleRule', 'createOracleRule', body)
232
+
233
+ def testModifyOracleRule(self):
234
+ a = Auth(username, pwd)
235
+ body = {
236
+ 'row_map_mode': 'rowid',
237
+ 'map_type': 'user',
238
+ 'table_map': [{},],
239
+ 'dbmap_topic': 'test1',
240
+ 'sync_mode': 1,
241
+ 'start_scn': '1',
242
+ 'full_sync_settings': {
243
+ 'keep_exist_table': 0,
244
+ 'keep_table': 0,
245
+ 'load_mode': 'direct',
246
+ 'ld_dir_opt': 0,
247
+ 'his_thread': 1,
248
+ 'try_split_part_table': 0,
249
+ 'concurrent_table': [
250
+ 'hello.world',],
251
+ 'dump_thd': 1,
252
+ 'clean_user_before_dump': 1,
253
+ 'existing_table': 's',
254
+ 'sync_mode': 1,
255
+ 'start_scn': '1',
256
+ 'load_thd': 1,},
257
+ 'full_sync_obj_filter': {
258
+ 'full_sync_obj_data': [
259
+ 'PROCEDURE',
260
+ 'PACKAGE',
261
+ 'PACKAGE BODY',
262
+ 'DATABASE LINK',
263
+ 'OLD JOB',
264
+ 'JOB',
265
+ 'PRIVS',
266
+ 'CONSTRAINT',
267
+ 'JAVA RESOURCE',
268
+ 'JAVA SOURCE',],},
269
+ 'inc_sync_ddl_filter': {
270
+ 'inc_sync_ddl_data': [
271
+ 'INDEX',
272
+ 'VIEW',
273
+ 'FUNCTION',],},
274
+ 'filter_table_settings': {
275
+ 'exclude_table': [
276
+ 'hh.ww',],},
277
+ 'etl_settings': {
278
+ 'etl_table': [{
279
+ 'oprType': 'IRP',
280
+ 'table': '1',
281
+ 'user': 'user',
282
+ 'process': 'SKIP',
283
+ 'addInfo': '1',},],},
284
+ 'start_rule_now': 0,
285
+ 'storage_settings': {
286
+ 'src_max_mem': 512,
287
+ 'src_max_disk': 5000,
288
+ 'txn_max_mem': 10000,
289
+ 'tf_max_size': 100,
290
+ 'tgt_extern_table': '1',
291
+ 'max_ld_mem': '1',},
292
+ 'error_handling': {
293
+ 'load_err_set': 'continue',
294
+ 'drp': 'ignore',
295
+ 'irp': 'irpafterdel',
296
+ 'urp': 'toirp',
297
+ 'report_failed_dml': 1,},
298
+ 'table_space_map': {
299
+ 'tgt_table_space': '1',
300
+ 'table_mapping_way': 'ptop',
301
+ 'table_path_map': {
302
+ 'ddd': 'sss',
303
+ 'ddd1': 'sss1',},
304
+ 'table_space_name': {
305
+ 'qq': 'ss',},},
306
+ 'other_settings': {
307
+ 'keep_dyn_data': 0,
308
+ 'dyn_thread': 1,
309
+ 'dly_constraint_load': 0,
310
+ 'zip_level': 0,
311
+ 'ddl_cv': 0,
312
+ 'keep_bad_act': 0,
313
+ 'keep_usr_pwd': 1,
314
+ 'convert_urp_of_key': 0,
315
+ 'ignore_foreign_key': 0,
316
+ 'table_delay_load': [{
317
+ 'table': '',
318
+ 'user': '',},],
319
+ 'keep_seq_sync': '1',
320
+ 'gen_txn': '1',
321
+ 'merge_track': '',
322
+ 'fill_lob_colum': '',
323
+ 'sync_lob': 1,
324
+ 'table_change_info': 1,
325
+ 'message_format': '',
326
+ 'json_format': '',
327
+ 'run_time': '',},
328
+ 'bw_settings': {
329
+ 'bw_limit': '"12*00:00-13:00*40M,3*00:00-13:00*40M"',},
330
+ 'biz_grp_list': [],
331
+ 'part_load_balance': '12',
332
+ 'kafka_time_out': '12000',
333
+ 'rule_name': 'ctt->ctt',
334
+ 'src_db_uuid': ' 6C4AEF37-6496-6DCD-E085-DD640001E4EC',
335
+ 'tgt_db_uuid': ' 1C5F3C4B-7333-9518-7349-9712BC9ED664',
336
+ 'tgt_type': 'oracle',
337
+ 'db_user_map': {
338
+ 'CTT': 'CTT',},
339
+ 'rule_uuid': 'F530FB0E-0208-9071-66D3-E595AE7D5A4C',
340
+ 'kafka': [{
341
+ 'binary_code': 'base64',},],
342
+ 'dml_track': [{
343
+ 'enable': 1,
344
+ 'urp': 1,
345
+ 'drp': 1,
346
+ 'tmcol': '1',
347
+ 'delcol': '1',},],
348
+ 'save_json_text': '',
349
+ }
350
+
351
+ oracleRule = OracleRule(a)
352
+ r = oracleRule.modifyOracleRule(body)
353
+ print(r[0])
354
+ assert r[0]['ret'] == 200
355
+ write(r[0], 'OracleRule', 'modifyOracleRule', body)
356
+
357
+ def testDeleteOracleRule(self):
358
+ a = Auth(username, pwd)
359
+ body = {
360
+ 'rule_uuids': [
361
+ 'DBED8CDE-435D-7865-76FE-149AA54AC7F7',],
362
+ 'type': '',
363
+ 'force': '',
364
+ }
365
+
366
+ oracleRule = OracleRule(a)
367
+ r = oracleRule.deleteOracleRule(body)
368
+ print(r[0])
369
+ assert r[0]['ret'] == 200
370
+ write(r[0], 'OracleRule', 'deleteOracleRule', body)
371
+
372
+ def testListSyncRules(self):
373
+ a = Auth(username, pwd)
374
+ body = {
375
+ 'page': 1,
376
+ 'limit': 10,
377
+ 'search_field': 'rule_name',
378
+ 'search_value': '',
379
+ 'group_uuid': '',
380
+ 'where_args': {
381
+ 'rule_uuid': 'BAbd22a3-8fb8-c5e2-9B36-8A13173d56db',},
382
+ }
383
+
384
+ oracleRule = OracleRule(a)
385
+ r = oracleRule.listSyncRules(body)
386
+ print(r[0])
387
+ assert r[0]['ret'] == 200
388
+ write(r[0], 'OracleRule', 'listSyncRules', body)
389
+
390
+ def testDescribeSyncRules(self):
391
+ a = Auth(username, pwd)
392
+ body = {
393
+ 'uuid': 'F530FB0E-0208-9071-66D3-E595AE7D5A4C',
394
+ }
395
+ uuid = "22D03E06-94D0-5E2C-336E-4BEEC2D28EC4"
396
+ oracleRule = OracleRule(a)
397
+ r = oracleRule.describeSyncRules(body, uuid)
398
+ print(r[0])
399
+ assert r[0]['ret'] == 200
400
+ write(r[0], 'OracleRule', 'describeSyncRules', body)
401
+
402
+ def testResumeOracleRule(self):
403
+ a = Auth(username, pwd)
404
+ body = {
405
+ 'operate': 'restart',
406
+ 'rule_uuid': '552206c2-Ed85-6b51-6B21-42BFA6d9026d',
407
+ 'scn': '1',
408
+ 'all': 1,
409
+ }
410
+
411
+ oracleRule = OracleRule(a)
412
+ r = oracleRule.resumeOracleRule(body)
413
+ print(r[0])
414
+ assert r[0]['ret'] == 200
415
+ write(r[0], 'OracleRule', 'resumeOracleRule', body)
416
+
417
+ def testStopOracleRule(self):
418
+ a = Auth(username, pwd)
419
+ body = {
420
+ 'operate': 'restart',
421
+ 'rule_uuid': '552206c2-Ed85-6b51-6B21-42BFA6d9026d',
422
+ 'scn': '1',
423
+ 'all': 1,
424
+ }
425
+
426
+ oracleRule = OracleRule(a)
427
+ r = oracleRule.stopOracleRule(body)
428
+ print(r[0])
429
+ assert r[0]['ret'] == 200
430
+ write(r[0], 'OracleRule', 'stopOracleRule', body)
431
+
432
+ def testRestartOracleRule(self):
433
+ a = Auth(username, pwd)
434
+ body = {
435
+ 'operate': 'restart',
436
+ 'rule_uuid': '552206c2-Ed85-6b51-6B21-42BFA6d9026d',
437
+ 'scn': '1',
438
+ 'all': 1,
439
+ }
440
+
441
+ oracleRule = OracleRule(a)
442
+ r = oracleRule.restartOracleRule(body)
443
+ print(r[0])
444
+ assert r[0]['ret'] == 200
445
+ write(r[0], 'OracleRule', 'restartOracleRule', body)
446
+
447
+ def testStartAnalysisOracleRule(self):
448
+ a = Auth(username, pwd)
449
+ body = {
450
+ 'operate': 'restart',
451
+ 'rule_uuid': '552206c2-Ed85-6b51-6B21-42BFA6d9026d',
452
+ 'scn': '1',
453
+ 'all': 1,
454
+ }
455
+
456
+ oracleRule = OracleRule(a)
457
+ r = oracleRule.startAnalysisOracleRule(body)
458
+ print(r[0])
459
+ assert r[0]['ret'] == 200
460
+ write(r[0], 'OracleRule', 'startAnalysisOracleRule', body)
461
+
462
+ def testStopAnalysisOracleRule(self):
463
+ a = Auth(username, pwd)
464
+ body = {
465
+ 'operate': 'restart',
466
+ 'rule_uuid': '552206c2-Ed85-6b51-6B21-42BFA6d9026d',
467
+ 'scn': '1',
468
+ 'all': 1,
469
+ }
470
+
471
+ oracleRule = OracleRule(a)
472
+ r = oracleRule.stopAnalysisOracleRule(body)
473
+ print(r[0])
474
+ assert r[0]['ret'] == 200
475
+ write(r[0], 'OracleRule', 'stopAnalysisOracleRule', body)
476
+
477
+ def testResetAnalysisOracleRule(self):
478
+ a = Auth(username, pwd)
479
+ body = {
480
+ 'operate': 'restart',
481
+ 'rule_uuid': '552206c2-Ed85-6b51-6B21-42BFA6d9026d',
482
+ 'scn': '1',
483
+ 'all': 1,
484
+ }
485
+
486
+ oracleRule = OracleRule(a)
487
+ r = oracleRule.resetAnalysisOracleRule(body)
488
+ print(r[0])
489
+ assert r[0]['ret'] == 200
490
+ write(r[0], 'OracleRule', 'resetAnalysisOracleRule', body)
491
+
492
+ def testStopAndStopanalysisOracleRule(self):
493
+ a = Auth(username, pwd)
494
+ body = {
495
+ 'operate': 'restart',
496
+ 'rule_uuid': '552206c2-Ed85-6b51-6B21-42BFA6d9026d',
497
+ 'scn': '1',
498
+ 'all': 1,
499
+ }
500
+
501
+ oracleRule = OracleRule(a)
502
+ r = oracleRule.stopAndStopanalysisOracleRule(body)
503
+ print(r[0])
504
+ assert r[0]['ret'] == 200
505
+ write(r[0], 'OracleRule', 'stopAndStopanalysisOracleRule', body)
506
+
507
+ def testStopScheduleOracleRule(self):
508
+ a = Auth(username, pwd)
509
+ body = {
510
+ 'operate': 'restart',
511
+ 'rule_uuid': '552206c2-Ed85-6b51-6B21-42BFA6d9026d',
512
+ 'scn': '1',
513
+ 'all': 1,
514
+ }
515
+
516
+ oracleRule = OracleRule(a)
517
+ r = oracleRule.stopScheduleOracleRule(body)
518
+ print(r[0])
519
+ assert r[0]['ret'] == 200
520
+ write(r[0], 'OracleRule', 'stopScheduleOracleRule', body)
521
+
522
+ def testStartScheduleOracleRule(self):
523
+ a = Auth(username, pwd)
524
+ body = {
525
+ 'operate': 'restart',
526
+ 'rule_uuid': '552206c2-Ed85-6b51-6B21-42BFA6d9026d',
527
+ 'scn': '1',
528
+ 'all': 1,
529
+ }
530
+
531
+ oracleRule = OracleRule(a)
532
+ r = oracleRule.startScheduleOracleRule(body)
533
+ print(r[0])
534
+ assert r[0]['ret'] == 200
535
+ write(r[0], 'OracleRule', 'startScheduleOracleRule', body)
536
+
537
+ def testListRuleLog(self):
538
+ a = Auth(username, pwd)
539
+ body = {
540
+ 'offset': 0,
541
+ 'limit': 10,
542
+ 'date_start': '2018-12-23',
543
+ 'date_end': '1980-09-19',
544
+ 'type': -1,
545
+ 'module_type': -1,
546
+ 'query_type': 1,
547
+ 'rule_uuid': 'F530FB0E-0208-9071-66D3-E595AE7D5A4C',
548
+ }
549
+
550
+ oracleRule = OracleRule(a)
551
+ r = oracleRule.listRuleLog(body)
552
+ print(r[0])
553
+ assert r[0]['ret'] == 200
554
+ write(r[0], 'OracleRule', 'listRuleLog', body)
555
+
556
+ def testListSyncRulesStatus(self):
557
+ a = Auth(username, pwd)
558
+ body = {
559
+ 'uuids': [],
560
+ }
561
+
562
+ oracleRule = OracleRule(a)
563
+ r = oracleRule.listSyncRulesStatus(body)
564
+ print(r[0])
565
+ assert r[0]['ret'] == 200
566
+ write(r[0], 'OracleRule', 'listSyncRulesStatus', body)
567
+
568
+ def testListSyncRulesGeneralStatus(self):
569
+ a = Auth(username, pwd)
570
+ body = {
571
+ 'uuids': [
572
+ 'EE992515-8DDb-9404-5eF7-F847422Ba8e3',
573
+ 'c23be9AF-E314-0e76-8CEC-E74BaFc329F0',],
574
+ }
575
+
576
+ oracleRule = OracleRule(a)
577
+ r = oracleRule.listSyncRulesGeneralStatus(body)
578
+ print(r[0])
579
+ assert r[0]['ret'] == 200
580
+ write(r[0], 'OracleRule', 'listSyncRulesGeneralStatus', body)
581
+
582
+ def testDescribeSyncRulesHasSync(self):
583
+ a = Auth(username, pwd)
584
+ body = {
585
+ 'offset': '0',
586
+ 'limit': 10,
587
+ 'row_uuid': 'b6Fddd9C-D515-6D2E-6CeC-96b1bF9FDe14',
588
+ 'search': '',
589
+ }
590
+
591
+ oracleRule = OracleRule(a)
592
+ r = oracleRule.describeSyncRulesHasSync(body)
593
+ print(r[0])
594
+ assert r[0]['ret'] == 200
595
+ write(r[0], 'OracleRule', 'describeSyncRulesHasSync', body)
596
+
597
+ def testDescribeSyncRulesFailObj(self):
598
+ a = Auth(username, pwd)
599
+ body = {
600
+ 'offset': 0,
601
+ 'limit': 10,
602
+ 'rule_uuid': 'afC2Ef54-996F-CCBB-e2F6-2d1877eFccAB',
603
+ 'search': '',
604
+ 'type': 1,
605
+ 'stage': 1,
606
+ }
607
+
608
+ oracleRule = OracleRule(a)
609
+ r = oracleRule.describeSyncRulesFailObj(body)
610
+ print(r[0])
611
+ assert r[0]['ret'] == 200
612
+ write(r[0], 'OracleRule', 'describeSyncRulesFailObj', body)
613
+
614
+ def testDescribeSyncRulesLoadInfo(self):
615
+ a = Auth(username, pwd)
616
+ body = {
617
+ 'rule_uuid': '',
618
+ }
619
+
620
+ oracleRule = OracleRule(a)
621
+ r = oracleRule.describeSyncRulesLoadInfo(body)
622
+ print(r[0])
623
+ assert r[0]['ret'] == 200
624
+ write(r[0], 'OracleRule', 'describeSyncRulesLoadInfo', body)
625
+
626
+ def testListRuleIncreDml(self):
627
+ a = Auth(username, pwd)
628
+ body = {
629
+ 'offset': 0,
630
+ 'limit': '10',
631
+ 'rule_uuid': 'cACDe7eF-bCf9-5d8c-b9fc-B5e991f4678a',
632
+ }
633
+
634
+ oracleRule = OracleRule(a)
635
+ r = oracleRule.listRuleIncreDml(body)
636
+ print(r[0])
637
+ assert r[0]['ret'] == 200
638
+ write(r[0], 'OracleRule', 'listRuleIncreDml', body)
639
+
640
+ def testListRuleSyncTable(self):
641
+ a = Auth(username, pwd)
642
+ body = {
643
+ 'row_uuid': '7FaEF546-e3e3-1760-673b-12B1cEbfeD71',
644
+ 'limit': 15,
645
+ 'offset': 1,
646
+ }
647
+
648
+ oracleRule = OracleRule(a)
649
+ r = oracleRule.listRuleSyncTable(body)
650
+ print(r[0])
651
+ assert r[0]['ret'] == 200
652
+ write(r[0], 'OracleRule', 'listRuleSyncTable', body)
653
+
654
+ def testDescribeRuleZStructure(self):
655
+ a = Auth(username, pwd)
656
+ body = {
657
+ 'db_uuid': 'A83Cc1A5-FAe2-C1aB-D58f-0272761c534A',
658
+ 'level': '',
659
+ 'type': '',
660
+ 'tab_name': '',
661
+ 'type_value': '',
662
+ }
663
+
664
+ oracleRule = OracleRule(a)
665
+ r = oracleRule.describeRuleZStructure(body)
666
+ print(r[0])
667
+ assert r[0]['ret'] == 200
668
+ write(r[0], 'OracleRule', 'describeRuleZStructure', body)
669
+
670
+ def testDescribeSyncRulesMrtg(self):
671
+ a = Auth(username, pwd)
672
+ body = {
673
+ 'set_time': 1,
674
+ 'type': '',
675
+ 'interval': '时间间隔',
676
+ 'set_time_init': '',
677
+ 'rule_uuid': '',
678
+ }
679
+
680
+ oracleRule = OracleRule(a)
681
+ r = oracleRule.describeSyncRulesMrtg(body)
682
+ print(r[0])
683
+ assert r[0]['ret'] == 200
684
+ write(r[0], 'OracleRule', 'describeSyncRulesMrtg', body)
685
+
686
+ def testListRuleLoadDelayReport(self):
687
+ a = Auth(username, pwd)
688
+ body = {
689
+ 'type': 'sec',
690
+ 'start_time': '',
691
+ 'end_time': '',
692
+ 'limit': 10,
693
+ 'offset': 0,
694
+ 'uuid': '1d2F6Fed-DAC6-FE94-A6cB-5Ab55415E9fd',
695
+ }
696
+
697
+ oracleRule = OracleRule(a)
698
+ r = oracleRule.listRuleLoadDelayReport(body)
699
+ print(r[0])
700
+ assert r[0]['ret'] == 200
701
+ write(r[0], 'OracleRule', 'listRuleLoadDelayReport', body)
702
+
703
+ def testDescribeSyncRulesIncreDdl(self):
704
+ a = Auth(username, pwd)
705
+ body = {
706
+ 'offset': 0,
707
+ 'limit': '10',
708
+ 'rule_uuid': 'CbcC8ee1-45dF-bDBc-fE6f-E6A6D7DF2E36',
709
+ }
710
+
711
+ oracleRule = OracleRule(a)
712
+ r = oracleRule.describeSyncRulesIncreDdl(body)
713
+ print(r[0])
714
+ assert r[0]['ret'] == 200
715
+ write(r[0], 'OracleRule', 'describeSyncRulesIncreDdl', body)
716
+
717
+ def testDescribeRuleDbCheck(self):
718
+ a = Auth(username, pwd)
719
+ body = {
720
+ 'src_db_uuid': '',
721
+ 'dst_db_uuid': '',
722
+ }
723
+
724
+ oracleRule = OracleRule(a)
725
+ r = oracleRule.describeRuleDbCheck(body)
726
+ print(r[0])
727
+ assert r[0]['ret'] == 200
728
+ write(r[0], 'OracleRule', 'describeRuleDbCheck', body)
729
+
730
+ def testDescribeRuleGetFalseRule(self):
731
+ a = Auth(username, pwd)
732
+ body = {
733
+ }
734
+
735
+ oracleRule = OracleRule(a)
736
+ r = oracleRule.describeRuleGetFalseRule(body)
737
+ print(r[0])
738
+ assert r[0]['ret'] == 200
739
+ write(r[0], 'OracleRule', 'describeRuleGetFalseRule', body)
740
+
741
+ def testDescribeRuleSelectUser(self):
742
+ a = Auth(username, pwd)
743
+ body = {
744
+ 'db_uuid': 'AefceB68-6B69-d5a2-cCDb-F82635ecCCFD',
745
+ }
746
+
747
+ oracleRule = OracleRule(a)
748
+ r = oracleRule.describeRuleSelectUser(body)
749
+ print(r[0])
750
+ assert r[0]['ret'] == 200
751
+ write(r[0], 'OracleRule', 'describeRuleSelectUser', body)
752
+
753
+ def testDescribeRuleTableFix(self):
754
+ a = Auth(username, pwd)
755
+ body = {
756
+ 'rule_uuid': 'F530FB0E-0208-9071-66D3-E595AE7D5A4C',
757
+ 'tab': [
758
+ 'I2.table',],
759
+ 'fix_relation': 0,
760
+ }
761
+
762
+ oracleRule = OracleRule(a)
763
+ r = oracleRule.describeRuleTableFix(body)
764
+ print(r[0])
765
+ assert r[0]['ret'] == 200
766
+ write(r[0], 'OracleRule', 'describeRuleTableFix', body)
767
+
768
+ def testDescribeRuleGetScn(self):
769
+ a = Auth(username, pwd)
770
+ body = {
771
+ 'uuid': '8410B91E-2DDA-fda0-3e7d-bc729D91Dd2a',
772
+ }
773
+
774
+ oracleRule = OracleRule(a)
775
+ r = oracleRule.describeRuleGetScn(body)
776
+ print(r[0])
777
+ assert r[0]['ret'] == 200
778
+ write(r[0], 'OracleRule', 'describeRuleGetScn', body)
779
+
780
+ def testListRuleLoadReport(self):
781
+ a = Auth(username, pwd)
782
+ body = {
783
+ 'type': 'sec',
784
+ 'start_time': '',
785
+ 'end_time': '',
786
+ 'limit': 10,
787
+ 'offset': 0,
788
+ 'uuid': '1d2F6Fed-DAC6-FE94-A6cB-5Ab55415E9fd',
789
+ }
790
+
791
+ oracleRule = OracleRule(a)
792
+ r = oracleRule.listRuleLoadReport(body)
793
+ print(r[0])
794
+ assert r[0]['ret'] == 200
795
+ write(r[0], 'OracleRule', 'listRuleLoadReport', body)
796
+
797
+ def testListObjCmp(self):
798
+ a = Auth(username, pwd)
799
+ body = {
800
+ 'page': 1,
801
+ 'limit': 10,
802
+ 'search_field': '',
803
+ 'search_value': '',
804
+ }
805
+
806
+ oracleRule = OracleRule(a)
807
+ r = oracleRule.listObjCmp(body)
808
+ print(r[0])
809
+ assert r[0]['ret'] == 200
810
+ write(r[0], 'OracleRule', 'listObjCmp', body)
811
+
812
+ def testCreateObjCmp(self):
813
+ a = Auth(username, pwd)
814
+ body = {
815
+ 'obj_cmp_name': 'test',
816
+ 'src_db_uuid': '4CA773F4-36E3-A091-122C-ACDFB2112C21',
817
+ 'tgt_db_uuid': '40405FD3-DB86-DC8A-81C9-C137B6FDECE5',
818
+ 'cal_table_recoders': 1,
819
+ 'cmp_type': 'user',
820
+ 'rule_uuid': '751A03F5-C97D-645B-82B2-316A5D198528',
821
+ 'db_user_map': {'src_user':'dst_user'},
822
+ 'policies': '',
823
+ 'policy_type': 'periodic',
824
+ 'one_time': '2019-05-27 16:07:08',
825
+ 'repair': 1,
826
+ 'config': {
827
+ 'one_task': 'immediate',},
828
+ }
829
+
830
+ oracleRule = OracleRule(a)
831
+ r = oracleRule.createObjCmp(body)
832
+ print(r[0])
833
+ assert r[0]['ret'] == 200
834
+ write(r[0], 'OracleRule', 'createObjCmp', body)
835
+
836
+ def testDeleteObjCmp(self):
837
+ a = Auth(username, pwd)
838
+ body = {
839
+ 'uuids': [
840
+ '11111111-1111-1111-1111-111111111111',],
841
+ 'force': '',
842
+ }
843
+
844
+ oracleRule = OracleRule(a)
845
+ r = oracleRule.deleteObjCmp(body)
846
+ print(r[0])
847
+ assert r[0]['ret'] == 200
848
+ write(r[0], 'OracleRule', 'deleteObjCmp', body)
849
+
850
+ def testDescribeObjCmp(self):
851
+ a = Auth(username, pwd)
852
+ body = {
853
+ }
854
+ uuid = "22D03E06-94D0-5E2C-336E-4BEEC2D28EC4"
855
+ oracleRule = OracleRule(a)
856
+ r = oracleRule.describeObjCmp(body, uuid)
857
+ print(r[0])
858
+ assert r[0]['ret'] == 200
859
+ write(r[0], 'OracleRule', 'describeObjCmp', body)
860
+
861
+ def testCmpStopObjCmp(self):
862
+ a = Auth(username, pwd)
863
+ body = {
864
+ }
865
+ oracleRule = OracleRule(a)
866
+ r = oracleRule.cmpStopObjCmp(body)
867
+ print(r[0])
868
+ assert r[0]['ret'] == 200
869
+ write(r[0], 'OracleRule', 'cmpStopObjCmp', body)
870
+
871
+ def testCmpRestartObjCmp(self):
872
+ a = Auth(username, pwd)
873
+ body = {
874
+ }
875
+ oracleRule = OracleRule(a)
876
+ r = oracleRule.cmpRestartObjCmp(body)
877
+ print(r[0])
878
+ assert r[0]['ret'] == 200
879
+ write(r[0], 'OracleRule', 'cmpRestartObjCmp', body)
880
+
881
+ def testCmpImmediateObjCmp(self):
882
+ a = Auth(username, pwd)
883
+ body = {
884
+ }
885
+ oracleRule = OracleRule(a)
886
+ r = oracleRule.cmpImmediateObjCmp(body)
887
+ print(r[0])
888
+ assert r[0]['ret'] == 200
889
+ write(r[0], 'OracleRule', 'cmpImmediateObjCmp', body)
890
+
891
+ def testCmpStopTimeObjCmp(self):
892
+ a = Auth(username, pwd)
893
+ body = {
894
+ }
895
+ oracleRule = OracleRule(a)
896
+ r = oracleRule.cmpStopTimeObjCmp(body)
897
+ print(r[0])
898
+ assert r[0]['ret'] == 200
899
+ write(r[0], 'OracleRule', 'cmpStopTimeObjCmp', body)
900
+
901
+ def testCmpResumeTimeObjCmp(self):
902
+ a = Auth(username, pwd)
903
+ body = {
904
+ }
905
+ oracleRule = OracleRule(a)
906
+ r = oracleRule.cmpResumeTimeObjCmp(body)
907
+ print(r[0])
908
+ assert r[0]['ret'] == 200
909
+ write(r[0], 'OracleRule', 'cmpResumeTimeObjCmp', body)
910
+
911
+ def testListObjCmpResultTimeList(self):
912
+ a = Auth(username, pwd)
913
+ body = {
914
+ 'uuid': 'b0E8DBd1-64FF-534D-19C3-F3405f4bE5be',
915
+ }
916
+
917
+ oracleRule = OracleRule(a)
918
+ r = oracleRule.listObjCmpResultTimeList(body)
919
+ print(r[0])
920
+ assert r[0]['ret'] == 200
921
+ write(r[0], 'OracleRule', 'listObjCmpResultTimeList', body)
922
+
923
+ def testDescribeObjCmpResult(self):
924
+ a = Auth(username, pwd)
925
+ body = {
926
+ 'uuid': 'AcCcfeC8-7374-0Fd5-3dEa-b9da9AeCc7DB',
927
+ 'start_time': '',
928
+ 'limit': 1,
929
+ 'offset': '',
930
+ 'search_value': '',
931
+ 'BackLackOnly': 0,
932
+ }
933
+
934
+ oracleRule = OracleRule(a)
935
+ r = oracleRule.describeObjCmpResult(body)
936
+ print(r[0])
937
+ assert r[0]['ret'] == 200
938
+ write(r[0], 'OracleRule', 'describeObjCmpResult', body)
939
+
940
+ def testListObjCmpStatus(self):
941
+ a = Auth(username, pwd)
942
+ body = {
943
+ 'uuids': [],
944
+ }
945
+
946
+ oracleRule = OracleRule(a)
947
+ r = oracleRule.listObjCmpStatus(body)
948
+ print(r[0])
949
+ assert r[0]['ret'] == 200
950
+ write(r[0], 'OracleRule', 'listObjCmpStatus', body)
951
+
952
+ def testDescribeObjCmpResultTimeList(self):
953
+ a = Auth(username, pwd)
954
+ body = {
955
+ 'uuid': '9D43d629-2c11-Ae39-8cEE-12a2198F9c0e',
956
+ 'time_list': [],
957
+ }
958
+
959
+ oracleRule = OracleRule(a)
960
+ r = oracleRule.describeObjCmpResultTimeList(body)
961
+ print(r[0])
962
+ assert r[0]['ret'] == 200
963
+ write(r[0], 'OracleRule', 'describeObjCmpResultTimeList', body)
964
+
965
+ def testListObjCmpCmpInfo(self):
966
+ a = Auth(username, pwd)
967
+ body = {
968
+ 'offset': 1,
969
+ 'limit': 10,
970
+ 'search_value': '',
971
+ 'usr': 'I2',
972
+ 'filed': '',
973
+ 'uuid': '',
974
+ 'start_time': '',
975
+ }
976
+
977
+ oracleRule = OracleRule(a)
978
+ r = oracleRule.listObjCmpCmpInfo(body)
979
+ print(r[0])
980
+ assert r[0]['ret'] == 200
981
+ write(r[0], 'OracleRule', 'listObjCmpCmpInfo', body)
982
+
983
+ def testCreateObjFix(self):
984
+ a = Auth(username, pwd)
985
+ body = {
986
+ 'obj_fix_name': 'test',
987
+ 'src_db_uuid': '4CA773F4-36E3-A091-122C-ACDFB2112C21',
988
+ 'tgt_db_uuid': '40405FD3-DB86-DC8A-81C9-C137B6FDECE5',
989
+ 'obj_map': [{
990
+ 'type': 'owner.name',},{
991
+ 'type': 'owner.name',},],
992
+ 'obj_fix_uuid': '9Aad7B34-C2eA-af3F-64cf-5e7B6AECCCdB',
993
+ }
994
+
995
+ oracleRule = OracleRule(a)
996
+ r = oracleRule.createObjFix(body)
997
+ print(r[0])
998
+ assert r[0]['ret'] == 200
999
+ write(r[0], 'OracleRule', 'createObjFix', body)
1000
+
1001
+ def testDescribeObjFix(self):
1002
+ a = Auth(username, pwd)
1003
+ body = {
1004
+ 'uuid': 'FcdBCAC6-bbEA-9cea-e1eF-9EbaA8Eb2F15',
1005
+ }
1006
+ uuid = "22D03E06-94D0-5E2C-336E-4BEEC2D28EC4"
1007
+ oracleRule = OracleRule(a)
1008
+ r = oracleRule.describeObjFix(body, uuid)
1009
+ print(r[0])
1010
+ assert r[0]['ret'] == 200
1011
+ write(r[0], 'OracleRule', 'describeObjFix', body)
1012
+
1013
+ def testDeleteObjFix(self):
1014
+ a = Auth(username, pwd)
1015
+ body = {
1016
+ 'uuids': '49A4ffAF-8441-C85F-80Da-FC2C8C567bCA',
1017
+ 'force': '',
1018
+ }
1019
+
1020
+ oracleRule = OracleRule(a)
1021
+ r = oracleRule.deleteObjFix(body)
1022
+ print(r[0])
1023
+ assert r[0]['ret'] == 200
1024
+ write(r[0], 'OracleRule', 'deleteObjFix', body)
1025
+
1026
+ def testListObjFix(self):
1027
+ a = Auth(username, pwd)
1028
+ body = {
1029
+ 'page': 1,
1030
+ 'limit': 10,
1031
+ 'search_field': '',
1032
+ 'search_value': '',
1033
+ }
1034
+
1035
+ oracleRule = OracleRule(a)
1036
+ r = oracleRule.listObjFix(body)
1037
+ print(r[0])
1038
+ assert r[0]['ret'] == 200
1039
+ write(r[0], 'OracleRule', 'listObjFix', body)
1040
+
1041
+ def testRestartObjFix(self):
1042
+ a = Auth(username, pwd)
1043
+ body = {
1044
+ 'obj_fix_uuids': '9db3722a-6A25-25e5-e3Cc-53582bd6fdED',
1045
+ }
1046
+
1047
+ oracleRule = OracleRule(a)
1048
+ r = oracleRule.restartObjFix(body)
1049
+ print(r[0])
1050
+ assert r[0]['ret'] == 200
1051
+ write(r[0], 'OracleRule', 'restartObjFix', body)
1052
+
1053
+ def testStopObjFix(self):
1054
+ a = Auth(username, pwd)
1055
+ body = {
1056
+ 'obj_fix_uuids': '9db3722a-6A25-25e5-e3Cc-53582bd6fdED',
1057
+ }
1058
+
1059
+ oracleRule = OracleRule(a)
1060
+ r = oracleRule.stopObjFix(body)
1061
+ print(r[0])
1062
+ assert r[0]['ret'] == 200
1063
+ write(r[0], 'OracleRule', 'stopObjFix', body)
1064
+
1065
+ def testDescribeObjFixResult(self):
1066
+ a = Auth(username, pwd)
1067
+ body = {
1068
+ 'uuid': 'E335ED9F-6FCd-1d84-fcBe-153cFcE016D7',
1069
+ }
1070
+
1071
+ oracleRule = OracleRule(a)
1072
+ r = oracleRule.describeObjFixResult(body)
1073
+ print(r[0])
1074
+ assert r[0]['ret'] == 200
1075
+ write(r[0], 'OracleRule', 'describeObjFixResult', body)
1076
+
1077
+ def testListObjFixStatus(self):
1078
+ a = Auth(username, pwd)
1079
+ body = {
1080
+ 'uuids': [],
1081
+ }
1082
+
1083
+ oracleRule = OracleRule(a)
1084
+ r = oracleRule.listObjFixStatus(body)
1085
+ print(r[0])
1086
+ assert r[0]['ret'] == 200
1087
+ write(r[0], 'OracleRule', 'listObjFixStatus', body)
1088
+
1089
+ def testCreateTbCmp(self):
1090
+ a = Auth(username, pwd)
1091
+ body = {
1092
+ 'tb_cmp_name': 'ctt->ctt',
1093
+ 'src_db_uuid': '4CA773F4-36E3-A091-122C-ACDFB2112C21',
1094
+ 'tgt_db_uuid': '40405FD3-DB86-DC8A-81C9-C137B6FDECE5',
1095
+ 'cmp_type': 'user',
1096
+ 'db_user_map': '{"CTT":"CTT"}',
1097
+ 'filter_table': [
1098
+ 'i2.test',],
1099
+ 'db_tb_map': '{"ctt:ctt"}',
1100
+ 'dump_thd': 1,
1101
+ 'rule_uuid': '49eDe644-6cAe-3CAD-fC1d-3ef858BA557e',
1102
+ 'polices': '"0|00:00',
1103
+ 'policy_type': 'one_time',
1104
+ 'concurrent_table': [
1105
+ 'hh.ww',],
1106
+ 'try_split_part_table': 0,
1107
+ 'one_time': '2019-05-27 16:07:08',
1108
+ 'repair': 0,
1109
+ 'fix_related': 0,
1110
+ 'config': {
1111
+ 'one_task': '',
1112
+ 'tab_cmp_fiter': [{
1113
+ 'user': '',
1114
+ 'table': '',
1115
+ 'condition': '',},],
1116
+ 'start_rule_now': 1,},
1117
+ 'report_msg': 0,
1118
+ }
1119
+
1120
+ oracleRule = OracleRule(a)
1121
+ r = oracleRule.createTbCmp(body)
1122
+ print(r[0])
1123
+ assert r[0]['ret'] == 200
1124
+ write(r[0], 'OracleRule', 'createTbCmp', body)
1125
+
1126
+ def testDescribeTbCmp(self):
1127
+ a = Auth(username, pwd)
1128
+ body = {
1129
+ 'uuid': 'B8773e8b-8dA6-6CB2-eDEf-cd2892E66cc4',
1130
+ }
1131
+ uuid = "22D03E06-94D0-5E2C-336E-4BEEC2D28EC4"
1132
+ oracleRule = OracleRule(a)
1133
+ r = oracleRule.describeTbCmp(body, uuid)
1134
+ print(r[0])
1135
+ assert r[0]['ret'] == 200
1136
+ write(r[0], 'OracleRule', 'describeTbCmp', body)
1137
+
1138
+ def testDeleteTbCmp(self):
1139
+ a = Auth(username, pwd)
1140
+ body = {
1141
+ 'uuids': '834f9BDc-aB2b-48A2-5d27-2A3e51Eb76Ed',
1142
+ 'force': '',
1143
+ }
1144
+
1145
+ oracleRule = OracleRule(a)
1146
+ r = oracleRule.deleteTbCmp(body)
1147
+ print(r[0])
1148
+ assert r[0]['ret'] == 200
1149
+ write(r[0], 'OracleRule', 'deleteTbCmp', body)
1150
+
1151
+ def testListTbCmp(self):
1152
+ a = Auth(username, pwd)
1153
+ body = {
1154
+ 'page': 1,
1155
+ 'limit': 10,
1156
+ 'search_field': '',
1157
+ 'search_value': '',
1158
+ }
1159
+
1160
+ oracleRule = OracleRule(a)
1161
+ r = oracleRule.listTbCmp(body)
1162
+ print(r[0])
1163
+ assert r[0]['ret'] == 200
1164
+ write(r[0], 'OracleRule', 'listTbCmp', body)
1165
+
1166
+ def testListTbCmpStatus(self):
1167
+ a = Auth(username, pwd)
1168
+ body = {
1169
+ 'uuids': '8Ab28B3A-6eaD-E2Bf-A8bc-7D7CdDe1c566',
1170
+ }
1171
+
1172
+ oracleRule = OracleRule(a)
1173
+ r = oracleRule.listTbCmpStatus(body)
1174
+ print(r[0])
1175
+ assert r[0]['ret'] == 200
1176
+ write(r[0], 'OracleRule', 'listTbCmpStatus', body)
1177
+
1178
+ def testStopTbCmp(self):
1179
+ a = Auth(username, pwd)
1180
+ body = {
1181
+ 'tb_cmp_uuids': '5774f953-78d9-f3E1-bc50-B9bA9f2E01DB',
1182
+ 'operate': '',
1183
+ }
1184
+
1185
+ oracleRule = OracleRule(a)
1186
+ r = oracleRule.stopTbCmp(body)
1187
+ print(r[0])
1188
+ assert r[0]['ret'] == 200
1189
+ write(r[0], 'OracleRule', 'stopTbCmp', body)
1190
+
1191
+ def testRestartTbCmp(self):
1192
+ a = Auth(username, pwd)
1193
+ body = {
1194
+ 'tb_cmp_uuids': '5774f953-78d9-f3E1-bc50-B9bA9f2E01DB',
1195
+ 'operate': '',
1196
+ }
1197
+
1198
+ oracleRule = OracleRule(a)
1199
+ r = oracleRule.restartTbCmp(body)
1200
+ print(r[0])
1201
+ assert r[0]['ret'] == 200
1202
+ write(r[0], 'OracleRule', 'restartTbCmp', body)
1203
+
1204
+ def testCmpImmediateTbCmp(self):
1205
+ a = Auth(username, pwd)
1206
+ body = {
1207
+ 'tb_cmp_uuids': '5774f953-78d9-f3E1-bc50-B9bA9f2E01DB',
1208
+ 'operate': '',
1209
+ }
1210
+
1211
+ oracleRule = OracleRule(a)
1212
+ r = oracleRule.cmpImmediateTbCmp(body)
1213
+ print(r[0])
1214
+ assert r[0]['ret'] == 200
1215
+ write(r[0], 'OracleRule', 'cmpImmediateTbCmp', body)
1216
+
1217
+ def testCmpStopTimeTbCmp(self):
1218
+ a = Auth(username, pwd)
1219
+ body = {
1220
+ 'tb_cmp_uuids': '5774f953-78d9-f3E1-bc50-B9bA9f2E01DB',
1221
+ 'operate': '',
1222
+ }
1223
+
1224
+ oracleRule = OracleRule(a)
1225
+ r = oracleRule.cmpStopTimeTbCmp(body)
1226
+ print(r[0])
1227
+ assert r[0]['ret'] == 200
1228
+ write(r[0], 'OracleRule', 'cmpStopTimeTbCmp', body)
1229
+
1230
+ def testCmpResumeTimeTbCmp(self):
1231
+ a = Auth(username, pwd)
1232
+ body = {
1233
+ 'tb_cmp_uuids': '5774f953-78d9-f3E1-bc50-B9bA9f2E01DB',
1234
+ 'operate': '',
1235
+ }
1236
+
1237
+ oracleRule = OracleRule(a)
1238
+ r = oracleRule.cmpResumeTimeTbCmp(body)
1239
+ print(r[0])
1240
+ assert r[0]['ret'] == 200
1241
+ write(r[0], 'OracleRule', 'cmpResumeTimeTbCmp', body)
1242
+
1243
+ def testListTbCmpResultTimeList(self):
1244
+ a = Auth(username, pwd)
1245
+ body = {
1246
+ 'uuid': '',
1247
+ }
1248
+
1249
+ oracleRule = OracleRule(a)
1250
+ r = oracleRule.listTbCmpResultTimeList(body)
1251
+ print(r[0])
1252
+ assert r[0]['ret'] == 200
1253
+ write(r[0], 'OracleRule', 'listTbCmpResultTimeList', body)
1254
+
1255
+ def testDescribeTbCmpResuluTimeList(self):
1256
+ a = Auth(username, pwd)
1257
+ body = {
1258
+ 'time_list': '14F7A5d6-1d73-FC61-be2F-EbcC5Cf335f6',
1259
+ 'uuid': '',
1260
+ }
1261
+
1262
+ oracleRule = OracleRule(a)
1263
+ r = oracleRule.describeTbCmpResuluTimeList(body)
1264
+ print(r[0])
1265
+ assert r[0]['ret'] == 200
1266
+ write(r[0], 'OracleRule', 'describeTbCmpResuluTimeList', body)
1267
+
1268
+ def testDescribeTbCmpResult(self):
1269
+ a = Auth(username, pwd)
1270
+ body = {
1271
+ 'offset': 1,
1272
+ 'limit': 10,
1273
+ 'search_field': '',
1274
+ 'search_value': '',
1275
+ 'uuid': '2f56179a-f2cD-9f71-74d1-eEcbfA1BeD12',
1276
+ 'start_time': '',
1277
+ 'flag': 0,
1278
+ }
1279
+
1280
+ oracleRule = OracleRule(a)
1281
+ r = oracleRule.describeTbCmpResult(body)
1282
+ print(r[0])
1283
+ assert r[0]['ret'] == 200
1284
+ write(r[0], 'OracleRule', 'describeTbCmpResult', body)
1285
+
1286
+ def testDescribeTbCmpErrorMsg(self):
1287
+ a = Auth(username, pwd)
1288
+ body = {
1289
+ 'offset': 1,
1290
+ 'limit': 10,
1291
+ 'search_field': '',
1292
+ 'search_value': '',
1293
+ 'uuid': '8B711a3d-A466-E4C1-9ccA-BcE9DeFD8bC4',
1294
+ 'start_time': '',
1295
+ 'name': '',
1296
+ 'owner': 'admin',
1297
+ }
1298
+
1299
+ oracleRule = OracleRule(a)
1300
+ r = oracleRule.describeTbCmpErrorMsg(body)
1301
+ print(r[0])
1302
+ assert r[0]['ret'] == 200
1303
+ write(r[0], 'OracleRule', 'describeTbCmpErrorMsg', body)
1304
+
1305
+ def testDescribeTbCmpCmpDesc(self):
1306
+ a = Auth(username, pwd)
1307
+ body = {
1308
+ 'offset': 1,
1309
+ 'limit': 10,
1310
+ 'search_field': '',
1311
+ 'search_value': '',
1312
+ 'uuid': 'FDEB1968-cACE-Fa3b-794b-1d2b5FFFfFEf',
1313
+ 'start_time': '',
1314
+ 'name': '',
1315
+ 'owner': 'admin',
1316
+ }
1317
+
1318
+ oracleRule = OracleRule(a)
1319
+ r = oracleRule.describeTbCmpCmpDesc(body)
1320
+ print(r[0])
1321
+ assert r[0]['ret'] == 200
1322
+ write(r[0], 'OracleRule', 'describeTbCmpCmpDesc', body)
1323
+
1324
+ def testDescribeTbCmpCmpResult(self):
1325
+ a = Auth(username, pwd)
1326
+ body = {
1327
+ 'uuid': '',
1328
+ }
1329
+
1330
+ oracleRule = OracleRule(a)
1331
+ r = oracleRule.describeTbCmpCmpResult(body)
1332
+ print(r[0])
1333
+ assert r[0]['ret'] == 200
1334
+ write(r[0], 'OracleRule', 'describeTbCmpCmpResult', body)
1335
+
1336
+ def testListBkTakeoveNetworkCard(self):
1337
+ a = Auth(username, pwd)
1338
+ body = {
1339
+ 'rule_uuid': '',
1340
+ }
1341
+
1342
+ oracleRule = OracleRule(a)
1343
+ r = oracleRule.listBkTakeoveNetworkCard(body)
1344
+ print(r[0])
1345
+ assert r[0]['ret'] == 200
1346
+ write(r[0], 'OracleRule', 'listBkTakeoveNetworkCard', body)
1347
+
1348
+ def testCreateBkTakeover(self):
1349
+ a = Auth(username, pwd)
1350
+ body = {
1351
+ 'rule_uuid': '2dC857d9-ff7A-cd5b-ad5b-984EccAE5A91',
1352
+ 'type': 1,
1353
+ 'enable_trgjob': 1,
1354
+ 'enable_alter_seq': 1,
1355
+ 'start_val': 10,
1356
+ 'enable_attachip': 0,
1357
+ 'net_adapter': '',
1358
+ 'ip': '',
1359
+ 'disable_trgjob': 1,
1360
+ 'dettach_ip': 1,
1361
+ }
1362
+
1363
+ oracleRule = OracleRule(a)
1364
+ r = oracleRule.createBkTakeover(body)
1365
+ print(r[0])
1366
+ assert r[0]['ret'] == 200
1367
+ write(r[0], 'OracleRule', 'createBkTakeover', body)
1368
+
1369
+ def testDescribeBkTakeover(self):
1370
+ a = Auth(username, pwd)
1371
+ body = {
1372
+ }
1373
+ uuid = "22D03E06-94D0-5E2C-336E-4BEEC2D28EC4"
1374
+ oracleRule = OracleRule(a)
1375
+ r = oracleRule.describeBkTakeover(body, uuid)
1376
+ print(r[0])
1377
+ assert r[0]['ret'] == 200
1378
+ write(r[0], 'OracleRule', 'describeBkTakeover', body)
1379
+
1380
+ def testDeleteBkTakeover(self):
1381
+ a = Auth(username, pwd)
1382
+ body = {
1383
+ 'uuids': 'AB8293a3-3dEE-6b29-CD3F-98DCbe1bABAc',
1384
+ 'force': '',
1385
+ }
1386
+
1387
+ oracleRule = OracleRule(a)
1388
+ r = oracleRule.deleteBkTakeover(body)
1389
+ print(r[0])
1390
+ assert r[0]['ret'] == 200
1391
+ write(r[0], 'OracleRule', 'deleteBkTakeover', body)
1392
+
1393
+ def testDescribeBkTakeoverResult(self):
1394
+ a = Auth(username, pwd)
1395
+ body = {
1396
+ 'bk_takeover_uuid': 'C63430e0-5AC7-EFcF-Be12-d1FabECB6E15',
1397
+ }
1398
+
1399
+ oracleRule = OracleRule(a)
1400
+ r = oracleRule.describeBkTakeoverResult(body)
1401
+ print(r[0])
1402
+ assert r[0]['ret'] == 200
1403
+ write(r[0], 'OracleRule', 'describeBkTakeoverResult', body)
1404
+
1405
+ def testStopBkTakeover(self):
1406
+ a = Auth(username, pwd)
1407
+ body = {
1408
+ 'bk_takeover_uuids': '2BF4aFac-9A3A-f352-caA5-8aee913f8AA6',
1409
+ 'operate': '',
1410
+ }
1411
+
1412
+ oracleRule = OracleRule(a)
1413
+ r = oracleRule.stopBkTakeover(body)
1414
+ print(r[0])
1415
+ assert r[0]['ret'] == 200
1416
+ write(r[0], 'OracleRule', 'stopBkTakeover', body)
1417
+
1418
+ def testRestartBkTakeover(self):
1419
+ a = Auth(username, pwd)
1420
+ body = {
1421
+ 'bk_takeover_uuids': '2BF4aFac-9A3A-f352-caA5-8aee913f8AA6',
1422
+ 'operate': '',
1423
+ }
1424
+
1425
+ oracleRule = OracleRule(a)
1426
+ r = oracleRule.restartBkTakeover(body)
1427
+ print(r[0])
1428
+ assert r[0]['ret'] == 200
1429
+ write(r[0], 'OracleRule', 'restartBkTakeover', body)
1430
+
1431
+ def testListBkTakeoverStatus(self):
1432
+ a = Auth(username, pwd)
1433
+ body = {
1434
+ 'uuids': [],
1435
+ }
1436
+
1437
+ oracleRule = OracleRule(a)
1438
+ r = oracleRule.listBkTakeoverStatus(body)
1439
+ print(r[0])
1440
+ assert r[0]['ret'] == 200
1441
+ write(r[0], 'OracleRule', 'listBkTakeoverStatus', body)
1442
+
1443
+ def testListBkTakeover(self):
1444
+ a = Auth(username, pwd)
1445
+ body = {
1446
+ }
1447
+
1448
+ oracleRule = OracleRule(a)
1449
+ r = oracleRule.listBkTakeover(body)
1450
+ print(r[0])
1451
+ assert r[0]['ret'] == 200
1452
+ write(r[0], 'OracleRule', 'listBkTakeover', body)
1453
+
1454
+ def testCreateReverse(self):
1455
+ a = Auth(username, pwd)
1456
+ body = {
1457
+ 'reverse_name': '',
1458
+ 'rule_uuid': 'F530FB0E-0208-9071-66D3-E595AE7D5A4C',
1459
+ 'start_scn': 1,
1460
+ 'rowid_thd': 5,
1461
+ 'row_map_mode': '"rowid"',
1462
+ }
1463
+
1464
+ oracleRule = OracleRule(a)
1465
+ r = oracleRule.createReverse(body)
1466
+ print(r[0])
1467
+ assert r[0]['ret'] == 200
1468
+ write(r[0], 'OracleRule', 'createReverse', body)
1469
+
1470
+ def testDeleteReverse(self):
1471
+ a = Auth(username, pwd)
1472
+ body = {
1473
+ 'uuids': [],
1474
+ 'force': '',
1475
+ }
1476
+
1477
+ oracleRule = OracleRule(a)
1478
+ r = oracleRule.deleteReverse(body)
1479
+ print(r[0])
1480
+ assert r[0]['ret'] == 200
1481
+ write(r[0], 'OracleRule', 'deleteReverse', body)
1482
+
1483
+ def testDescribeReverse(self):
1484
+ a = Auth(username, pwd)
1485
+ body = {
1486
+ 'rule_uuid': 'C1bdE82b-194e-6415-5DA5-71C8C85E34de',
1487
+ }
1488
+
1489
+ oracleRule = OracleRule(a)
1490
+ r = oracleRule.describeReverse(body)
1491
+ print(r[0])
1492
+ assert r[0]['ret'] == 200
1493
+ write(r[0], 'OracleRule', 'describeReverse', body)
1494
+
1495
+ def testListReverse(self):
1496
+ a = Auth(username, pwd)
1497
+ body = {
1498
+ 'page': 1,
1499
+ 'limit': 10,
1500
+ 'search_field': '',
1501
+ 'search_value': '',
1502
+ }
1503
+
1504
+ oracleRule = OracleRule(a)
1505
+ r = oracleRule.listReverse(body)
1506
+ print(r[0])
1507
+ assert r[0]['ret'] == 200
1508
+ write(r[0], 'OracleRule', 'listReverse', body)
1509
+
1510
+ def testListReverseStatus(self):
1511
+ a = Auth(username, pwd)
1512
+ body = {
1513
+ 'uuids': 'fDD8e834-19a6-FC1B-FFBF-55Bb630ABe1c',
1514
+ }
1515
+
1516
+ oracleRule = OracleRule(a)
1517
+ r = oracleRule.listReverseStatus(body)
1518
+ print(r[0])
1519
+ assert r[0]['ret'] == 200
1520
+ write(r[0], 'OracleRule', 'listReverseStatus', body)
1521
+
1522
+ def testStopReverse(self):
1523
+ a = Auth(username, pwd)
1524
+ body = {
1525
+ 'uuid': 'E3B62d58-474e-f266-edC5-be1af7B146Af',
1526
+ }
1527
+
1528
+ oracleRule = OracleRule(a)
1529
+ r = oracleRule.stopReverse(body)
1530
+ print(r[0])
1531
+ assert r[0]['ret'] == 200
1532
+ write(r[0], 'OracleRule', 'stopReverse', body)
1533
+
1534
+ def testRestartReverse(self):
1535
+ a = Auth(username, pwd)
1536
+ body = {
1537
+ 'uuid': 'bCBD8a2c-2cd2-1Ce4-4Daa-f6c4Bb3Dd1EB',
1538
+ }
1539
+
1540
+ oracleRule = OracleRule(a)
1541
+ r = oracleRule.restartReverse(body)
1542
+ print(r[0])
1543
+ assert r[0]['ret'] == 200
1544
+ write(r[0], 'OracleRule', 'restartReverse', body)
1545
+
1546
+ def testDescribeSingleReverse(self):
1547
+ a = Auth(username, pwd)
1548
+ body = {
1549
+ 'uuid': 'dBcBAf7E-e1F5-F2d6-eA8A-B5f60F24f6Db',
1550
+ }
1551
+
1552
+ oracleRule = OracleRule(a)
1553
+ r = oracleRule.describeSingleReverse(body)
1554
+ print(r[0])
1555
+ assert r[0]['ret'] == 200
1556
+ write(r[0], 'OracleRule', 'describeSingleReverse', body)
1557
+
1558
+ def testDownloadLog(self):
1559
+ a = Auth(username, pwd)
1560
+ body = {
1561
+ 'rule_uuid': '',
1562
+ 'type': 1,
1563
+ 'module_type': 1,
1564
+ 'date_start': 1,
1565
+ 'date_end': 1,
1566
+ }
1567
+
1568
+ oracleRule = OracleRule(a)
1569
+ r = oracleRule.downloadLog(body)
1570
+ print(r[0])
1571
+ assert r[0]['ret'] == 200
1572
+ write(r[0], 'OracleRule', 'downloadLog', body)
1573
+
1574
+ def testListKafkaOffsetInfo(self):
1575
+ a = Auth(username, pwd)
1576
+ body = {
1577
+ 'rule_uuid': '8F9cb942-156f-17aC-eCCa-CBc48cbCA91F',
1578
+ }
1579
+
1580
+ oracleRule = OracleRule(a)
1581
+ r = oracleRule.listKafkaOffsetInfo(body)
1582
+ print(r[0])
1583
+ assert r[0]['ret'] == 200
1584
+ write(r[0], 'OracleRule', 'listKafkaOffsetInfo', body)
1585
+
1586
+
1587
+ if __name__ == '__main__':
1588
+ unittest.main()