watchmen-collector-kernel 16.5.8__py3-none-any.whl → 16.5.9__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.
- watchmen_collector_kernel/common/settings.py +1 -1
- watchmen_collector_kernel/model/__init__.py +2 -0
- watchmen_collector_kernel/model/change_data_json.py +1 -0
- watchmen_collector_kernel/model/change_data_record.py +1 -0
- watchmen_collector_kernel/model/collector_model_config.py +2 -0
- watchmen_collector_kernel/model/collector_module_config.py +10 -0
- watchmen_collector_kernel/model/collector_table_config.py +1 -0
- watchmen_collector_kernel/model/trigger_model.py +3 -0
- watchmen_collector_kernel/model/trigger_module.py +9 -0
- watchmen_collector_kernel/model/trigger_table.py +1 -0
- watchmen_collector_kernel/service/extract_source.py +33 -1
- watchmen_collector_kernel/service/lock_helper.py +3 -1
- watchmen_collector_kernel/service/task_service.py +1 -2
- watchmen_collector_kernel/service/trigger_collector.py +85 -21
- watchmen_collector_kernel/storage/__init__.py +2 -0
- watchmen_collector_kernel/storage/change_data_json_service.py +15 -0
- watchmen_collector_kernel/storage/change_data_record_service.py +16 -0
- watchmen_collector_kernel/storage/collector_model_config_service.py +11 -0
- watchmen_collector_kernel/storage/collector_module_config_service.py +103 -0
- watchmen_collector_kernel/storage/trigger_model_service.py +15 -0
- watchmen_collector_kernel/storage/trigger_module_service.py +100 -0
- watchmen_collector_kernel/storage/trigger_table_service.py +2 -0
- {watchmen_collector_kernel-16.5.8.dist-info → watchmen_collector_kernel-16.5.9.dist-info}/METADATA +9 -9
- {watchmen_collector_kernel-16.5.8.dist-info → watchmen_collector_kernel-16.5.9.dist-info}/RECORD +26 -22
- {watchmen_collector_kernel-16.5.8.dist-info → watchmen_collector_kernel-16.5.9.dist-info}/LICENSE +0 -0
- {watchmen_collector_kernel-16.5.8.dist-info → watchmen_collector_kernel-16.5.9.dist-info}/WHEEL +0 -0
@@ -1,10 +1,12 @@
|
|
1
1
|
from .competitive_lock import CompetitiveLock
|
2
2
|
from .scheduled_task import ScheduledTask
|
3
3
|
|
4
|
+
from .collector_module_config import CollectorModuleConfig
|
4
5
|
from .collector_model_config import CollectorModelConfig
|
5
6
|
from .collector_table_config import CollectorTableConfig
|
6
7
|
|
7
8
|
from .trigger_event import TriggerEvent
|
9
|
+
from .trigger_module import TriggerModule
|
8
10
|
from .trigger_model import TriggerModel
|
9
11
|
from .trigger_table import TriggerTable
|
10
12
|
|
@@ -0,0 +1,10 @@
|
|
1
|
+
from typing import List
|
2
|
+
from watchmen_model.common import TenantBasedTuple, OptimisticLock
|
3
|
+
from pydantic import BaseModel
|
4
|
+
|
5
|
+
|
6
|
+
class CollectorModuleConfig(TenantBasedTuple, OptimisticLock, BaseModel):
|
7
|
+
moduleId: str
|
8
|
+
moduleName: str
|
9
|
+
priority: int = 0
|
10
|
+
|
@@ -58,7 +58,7 @@ class SourceTableExtractor:
|
|
58
58
|
tenantId=self.principal_service.tenantId
|
59
59
|
)
|
60
60
|
topic_storage = ask_topic_storage(topic, self.principal_service)
|
61
|
-
factors = topic_storage.
|
61
|
+
factors = topic_storage.ask_reflect_factors(config.tableName)
|
62
62
|
topic.factors = factors
|
63
63
|
now = get_current_time_in_seconds()
|
64
64
|
topic.createdAt = now
|
@@ -157,6 +157,34 @@ class SourceTableExtractor:
|
|
157
157
|
|
158
158
|
return ArrayHelper(flatten_path_list).reduce(flatten_path, data_dict)
|
159
159
|
|
160
|
+
def process_json_path(inner_json_path_list: List[str], data_dict: Dict) -> Dict:
|
161
|
+
|
162
|
+
def json_path(data_need_load: Dict, inner_json_path: str) -> Dict:
|
163
|
+
json_path_list = inner_json_path.split(".")
|
164
|
+
json_path_link_head = LinkList().create_tail(json_path_list)
|
165
|
+
|
166
|
+
def load(data_loaded: Dict, node: LinkNode) -> Optional[Dict]:
|
167
|
+
if data_loaded is None:
|
168
|
+
return None
|
169
|
+
if node.item in data_loaded:
|
170
|
+
if node.next is not None:
|
171
|
+
temp = data_loaded[node.item]
|
172
|
+
data_loaded[node.item] = load(temp, node.next)
|
173
|
+
return data_loaded
|
174
|
+
else:
|
175
|
+
if data_loaded[node.item]:
|
176
|
+
try:
|
177
|
+
data_loaded[node.item] = json.loads(data_loaded[node.item])
|
178
|
+
return data_loaded
|
179
|
+
except ValueError:
|
180
|
+
logger.error(f'json node name: {node.item}')
|
181
|
+
else:
|
182
|
+
return data_loaded
|
183
|
+
|
184
|
+
return load(data_need_load, json_path_link_head)
|
185
|
+
|
186
|
+
return ArrayHelper(inner_json_path_list).reduce(json_path, data_dict)
|
187
|
+
|
160
188
|
def change_column_value(row: Dict) -> Dict:
|
161
189
|
for key, value in row.items():
|
162
190
|
for column in json_columns:
|
@@ -175,6 +203,10 @@ class SourceTableExtractor:
|
|
175
203
|
|
176
204
|
if column.flattenPath:
|
177
205
|
tmp_data = process_flatten_path(column.flattenPath, tmp_data)
|
206
|
+
|
207
|
+
if column.jsonPath:
|
208
|
+
tmp_data = process_json_path(column.jsonPath, tmp_data)
|
209
|
+
|
178
210
|
row[key] = tmp_data
|
179
211
|
else:
|
180
212
|
pass
|
@@ -1,6 +1,6 @@
|
|
1
1
|
from typing import Union
|
2
2
|
|
3
|
-
from sqlalchemy.exc import IntegrityError
|
3
|
+
from sqlalchemy.exc import IntegrityError, OperationalError
|
4
4
|
|
5
5
|
from watchmen_collector_kernel.model import CompetitiveLock
|
6
6
|
from watchmen_collector_kernel.storage.competitive_lock_service import CompetitiveLockService
|
@@ -11,6 +11,8 @@ def try_lock_nowait(lock_service: CompetitiveLockService, lock: CompetitiveLock)
|
|
11
11
|
try:
|
12
12
|
lock_service.insert_one(lock)
|
13
13
|
return True
|
14
|
+
except OperationalError:
|
15
|
+
return False
|
14
16
|
except IntegrityError:
|
15
17
|
return False
|
16
18
|
|
@@ -38,9 +38,8 @@ class TaskService:
|
|
38
38
|
return self.update_task_result(task)
|
39
39
|
except Exception as e:
|
40
40
|
logger.error(e, exc_info=True, stack_info=True)
|
41
|
-
task.isFinished = True
|
42
41
|
task.result = format_exc()
|
43
|
-
return self.
|
42
|
+
return self.update_task_result(task)
|
44
43
|
|
45
44
|
def update_task_result(self, task: ScheduledTask) -> ScheduledTask:
|
46
45
|
self.scheduled_task_service.begin_transaction()
|
@@ -2,11 +2,12 @@ from typing import Callable, List
|
|
2
2
|
|
3
3
|
from watchmen_auth import PrincipalService
|
4
4
|
from watchmen_collector_kernel.model import TriggerEvent, CollectorModelConfig, TriggerModel, TriggerTable, \
|
5
|
-
CollectorTableConfig
|
5
|
+
CollectorTableConfig, TriggerModule, CollectorModuleConfig
|
6
6
|
|
7
7
|
from watchmen_collector_kernel.storage import TriggerModelService, TriggerTableService, TriggerEventService, \
|
8
8
|
get_trigger_model_service, get_collector_model_config_service, get_trigger_table_service, \
|
9
|
-
CollectorTableConfigService, get_collector_table_config_service
|
9
|
+
CollectorTableConfigService, get_collector_table_config_service, get_collector_module_config_service, \
|
10
|
+
get_trigger_module_service, TriggerModuleService, CollectorModelConfigService
|
10
11
|
from watchmen_meta.common import TupleService
|
11
12
|
from watchmen_model.common import Storable
|
12
13
|
|
@@ -21,16 +22,57 @@ def redress_storable_id(tuple_service: TupleService,
|
|
21
22
|
tuple_service.redress_storable_id(a_tuple)
|
22
23
|
|
23
24
|
|
24
|
-
def
|
25
|
+
def new_trigger_module(module_name: str, priority: int, event_trigger_id: int) -> TriggerModule:
|
26
|
+
return TriggerModule(
|
27
|
+
moduleName=module_name,
|
28
|
+
priority=priority,
|
29
|
+
is_finished=False,
|
30
|
+
eventTriggerId=event_trigger_id
|
31
|
+
)
|
32
|
+
|
33
|
+
|
34
|
+
def get_trigger_module(event_trigger: TriggerEvent, module_config: CollectorModuleConfig) -> TriggerModule:
|
35
|
+
return new_trigger_module(module_config.moduleName, module_config.priority, event_trigger.eventTriggerId)
|
36
|
+
|
37
|
+
|
38
|
+
def save_trigger_module(trigger_module_service: TriggerModuleService,
|
39
|
+
trigger_module: TriggerModule,
|
40
|
+
principal_service: PrincipalService) -> TriggerModule:
|
41
|
+
validate_tenant_id(trigger_module, principal_service)
|
42
|
+
redress_storable_id(trigger_module_service, trigger_module)
|
43
|
+
# noinspection PyTypeChecker
|
44
|
+
return trigger_module_service.create(trigger_module)
|
45
|
+
|
46
|
+
|
47
|
+
def get_trigger_module_action(trigger_event_service: TriggerEventService,
|
48
|
+
trigger_event: TriggerEvent) -> Callable[[CollectorModuleConfig], TriggerModule]:
|
49
|
+
def create_trigger_module_action(module_config: CollectorModuleConfig) -> TriggerModule:
|
50
|
+
trigger_module = get_trigger_module(trigger_event, module_config)
|
51
|
+
trigger_module_service = get_trigger_module_service(trigger_event_service.storage,
|
52
|
+
trigger_event_service.snowflakeGenerator,
|
53
|
+
trigger_event_service.principalService)
|
54
|
+
return save_trigger_module(trigger_module_service,
|
55
|
+
trigger_module,
|
56
|
+
trigger_event_service.principalService)
|
57
|
+
|
58
|
+
return create_trigger_module_action
|
59
|
+
|
60
|
+
|
61
|
+
def new_trigger_model(model_name: str, priority: int, module_trigger_id: int, event_trigger_id: int) -> TriggerModel:
|
25
62
|
return TriggerModel(
|
26
63
|
modelName=model_name,
|
64
|
+
priority=priority,
|
27
65
|
is_finished=False,
|
66
|
+
moduleTriggerId=module_trigger_id,
|
28
67
|
eventTriggerId=event_trigger_id
|
29
68
|
)
|
30
69
|
|
31
70
|
|
32
|
-
def get_trigger_model(
|
33
|
-
return new_trigger_model(model_config.modelName,
|
71
|
+
def get_trigger_model(module_trigger: TriggerModule, model_config: CollectorModelConfig) -> TriggerModel:
|
72
|
+
return new_trigger_model(model_config.modelName,
|
73
|
+
model_config.priority,
|
74
|
+
module_trigger.moduleTriggerId,
|
75
|
+
module_trigger.eventTriggerId)
|
34
76
|
|
35
77
|
|
36
78
|
def save_trigger_model(trigger_model_service: TriggerModelService,
|
@@ -42,30 +84,37 @@ def save_trigger_model(trigger_model_service: TriggerModelService,
|
|
42
84
|
return trigger_model_service.create(trigger_model)
|
43
85
|
|
44
86
|
|
45
|
-
def get_trigger_model_action(
|
46
|
-
|
87
|
+
def get_trigger_model_action(trigger_module_service: TriggerModuleService,
|
88
|
+
trigger_module: TriggerModule) -> Callable[[CollectorModelConfig], TriggerModel]:
|
47
89
|
def create_trigger_model_action(model_config: CollectorModelConfig) -> TriggerModel:
|
48
|
-
trigger_model = get_trigger_model(
|
49
|
-
trigger_model_service = get_trigger_model_service(
|
50
|
-
|
51
|
-
|
90
|
+
trigger_model = get_trigger_model(trigger_module, model_config)
|
91
|
+
trigger_model_service = get_trigger_model_service(trigger_module_service.storage,
|
92
|
+
trigger_module_service.snowflakeGenerator,
|
93
|
+
trigger_module_service.principalService)
|
52
94
|
return save_trigger_model(trigger_model_service,
|
53
95
|
trigger_model,
|
54
|
-
|
96
|
+
trigger_module_service.principalService)
|
55
97
|
|
56
98
|
return create_trigger_model_action
|
57
99
|
|
58
100
|
|
101
|
+
def get_model_configs_by_module(collector_model_config_service: CollectorModelConfigService,
|
102
|
+
module_config: CollectorModuleConfig) -> List[CollectorModelConfig]:
|
103
|
+
return collector_model_config_service.find_by_module_id(module_config.moduleId)
|
104
|
+
|
105
|
+
|
59
106
|
def new_trigger_table(table_name: str,
|
60
107
|
model_name: str,
|
61
|
-
model_trigger_id:
|
62
|
-
|
108
|
+
model_trigger_id: int,
|
109
|
+
module_trigger_id: int,
|
110
|
+
event_trigger_id: int) -> TriggerTable:
|
63
111
|
return TriggerTable(
|
64
112
|
tableName=table_name,
|
65
113
|
dataCount=0,
|
66
114
|
modelName=model_name,
|
67
115
|
isExtracted=False,
|
68
116
|
modelTriggerId=model_trigger_id,
|
117
|
+
moduleTriggerId=module_trigger_id,
|
69
118
|
eventTriggerId=event_trigger_id
|
70
119
|
)
|
71
120
|
|
@@ -74,6 +123,7 @@ def get_trigger_table(model_trigger: TriggerModel, table_config: CollectorTableC
|
|
74
123
|
return new_trigger_table(table_config.tableName,
|
75
124
|
table_config.modelName,
|
76
125
|
model_trigger.modelTriggerId,
|
126
|
+
model_trigger.moduleTriggerId,
|
77
127
|
model_trigger.eventTriggerId)
|
78
128
|
|
79
129
|
|
@@ -112,10 +162,19 @@ def trigger_collector(trigger_event_service: TriggerEventService,
|
|
112
162
|
try:
|
113
163
|
# noinspection PyTypeChecker
|
114
164
|
trigger_event = trigger_event_service.create(trigger_event)
|
165
|
+
module_config_service = get_collector_module_config_service(trigger_event_service.storage,
|
166
|
+
trigger_event_service.snowflakeGenerator,
|
167
|
+
trigger_event_service.principalService)
|
168
|
+
module_configs = module_config_service.find_by_tenant(principal_service.get_tenant_id())
|
169
|
+
# noinspection PyTypeChecker
|
170
|
+
trigger_module_action = get_trigger_module_action(trigger_event_service, trigger_event)
|
171
|
+
trigger_module_service = get_trigger_module_service(trigger_event_service.storage,
|
172
|
+
trigger_event_service.snowflakeGenerator,
|
173
|
+
trigger_event_service.principalService)
|
115
174
|
model_config_service = get_collector_model_config_service(trigger_event_service.storage,
|
116
175
|
trigger_event_service.snowflakeGenerator,
|
117
176
|
trigger_event_service.principalService)
|
118
|
-
model_configs = model_config_service.find_by_tenant(principal_service.get_tenant_id())
|
177
|
+
# model_configs = model_config_service.find_by_tenant(principal_service.get_tenant_id())
|
119
178
|
# noinspection PyTypeChecker
|
120
179
|
trigger_model_action = get_trigger_model_action(trigger_event_service, trigger_event)
|
121
180
|
trigger_model_service = get_trigger_model_service(trigger_event_service.storage,
|
@@ -125,12 +184,17 @@ def trigger_collector(trigger_event_service: TriggerEventService,
|
|
125
184
|
table_config_service = get_collector_table_config_service(trigger_event_service.storage,
|
126
185
|
trigger_event_service.snowflakeGenerator,
|
127
186
|
trigger_event_service.principalService)
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
187
|
+
|
188
|
+
for module_config in module_configs:
|
189
|
+
trigger_module = trigger_module_action(module_config)
|
190
|
+
trigger_model_action = get_trigger_model_action(trigger_module_service, trigger_module)
|
191
|
+
model_configs = get_model_configs_by_module(model_config_service, module_config)
|
192
|
+
for model_config in model_configs:
|
193
|
+
trigger_model = trigger_model_action(model_config)
|
194
|
+
trigger_table_action = get_trigger_table_action(trigger_model_service, trigger_model)
|
195
|
+
table_configs = get_table_configs_by_model(table_config_service, model_config)
|
196
|
+
for table_config in table_configs:
|
197
|
+
trigger_table_action(table_config)
|
134
198
|
|
135
199
|
trigger_event_service.commit_transaction()
|
136
200
|
except Exception as e:
|
@@ -3,11 +3,13 @@ from .scheduled_task_service import get_scheduled_task_service, ScheduledTaskSer
|
|
3
3
|
from .scheduled_task_history_service import get_scheduled_task_history_service, ScheduledTaskHistoryService
|
4
4
|
|
5
5
|
|
6
|
+
from .collector_module_config_service import get_collector_module_config_service, CollectorModuleConfigService
|
6
7
|
from .collector_model_config_service import get_collector_model_config_service, CollectorModelConfigService
|
7
8
|
from .collector_table_config_service import get_collector_table_config_service, CollectorTableConfigService
|
8
9
|
|
9
10
|
|
10
11
|
from .trigger_event_service import get_trigger_event_service, TriggerEventService
|
12
|
+
from .trigger_module_service import get_trigger_module_service, TriggerModuleService
|
11
13
|
from .trigger_model_service import get_trigger_model_service, TriggerModelService
|
12
14
|
from .trigger_table_service import get_trigger_table_service, TriggerTableService
|
13
15
|
|
@@ -28,6 +28,7 @@ class ChangeDataJsonShaper(EntityShaper):
|
|
28
28
|
'task_id': entity.taskId,
|
29
29
|
'table_trigger_id': entity.tableTriggerId,
|
30
30
|
'model_trigger_id': entity.modelTriggerId,
|
31
|
+
'module_trigger_id': entity.moduleTriggerId,
|
31
32
|
'event_trigger_id': entity.eventTriggerId
|
32
33
|
})
|
33
34
|
|
@@ -48,6 +49,7 @@ class ChangeDataJsonShaper(EntityShaper):
|
|
48
49
|
taskId=row.get('task_id'),
|
49
50
|
tableTriggerId=row.get('table_trigger_id'),
|
50
51
|
modelTriggerId=row.get('model_trigger_id'),
|
52
|
+
moduleTriggerId=row.get('module_trigger_id'),
|
51
53
|
eventTriggerId=row.get('event_trigger_id')
|
52
54
|
))
|
53
55
|
|
@@ -194,6 +196,19 @@ class ChangeDataJsonService(TupleService):
|
|
194
196
|
finally:
|
195
197
|
self.close_transaction()
|
196
198
|
|
199
|
+
def is_module_finished(self, module_trigger_id: int) -> bool:
|
200
|
+
self.begin_transaction()
|
201
|
+
try:
|
202
|
+
# noinspection PyTypeChecker
|
203
|
+
return self.storage.count(self.get_entity_finder(
|
204
|
+
criteria=[
|
205
|
+
EntityCriteriaExpression(left=ColumnNameLiteral(columnName='module_trigger_id'), right=module_trigger_id),
|
206
|
+
EntityCriteriaExpression(left=ColumnNameLiteral(columnName=IS_POSTED), right=False)
|
207
|
+
]
|
208
|
+
)) == 0
|
209
|
+
finally:
|
210
|
+
self.close_transaction()
|
211
|
+
|
197
212
|
|
198
213
|
def get_change_data_json_service(storage: TransactionalStorageSPI,
|
199
214
|
snowflake_generator: SnowflakeGenerator,
|
@@ -26,6 +26,7 @@ class ChangeDataRecordShaper(EntityShaper):
|
|
26
26
|
'result': entity.result,
|
27
27
|
'table_trigger_id': entity.tableTriggerId,
|
28
28
|
'model_trigger_id': entity.modelTriggerId,
|
29
|
+
'module_trigger_id': entity.moduleTriggerId,
|
29
30
|
'event_trigger_id': entity.eventTriggerId
|
30
31
|
})
|
31
32
|
|
@@ -43,6 +44,7 @@ class ChangeDataRecordShaper(EntityShaper):
|
|
43
44
|
result=row.get('result'),
|
44
45
|
tableTriggerId=row.get('table_trigger_id'),
|
45
46
|
modelTriggerId=row.get('model_trigger_id'),
|
47
|
+
moduleTriggerId=row.get('module_trigger_id'),
|
46
48
|
eventTriggerId=row.get('event_trigger_id')
|
47
49
|
))
|
48
50
|
|
@@ -193,6 +195,20 @@ class ChangeDataRecordService(TupleService):
|
|
193
195
|
finally:
|
194
196
|
self.close_transaction()
|
195
197
|
|
198
|
+
def is_module_finished(self, module_trigger_id: int) -> bool:
|
199
|
+
self.begin_transaction()
|
200
|
+
try:
|
201
|
+
# noinspection PyTypeChecker
|
202
|
+
return self.storage.count(self.get_entity_finder(
|
203
|
+
criteria=[
|
204
|
+
EntityCriteriaExpression(left=ColumnNameLiteral(columnName='module_trigger_id'),
|
205
|
+
right=module_trigger_id),
|
206
|
+
EntityCriteriaExpression(left=ColumnNameLiteral(columnName=IS_MERGED), right=False)
|
207
|
+
]
|
208
|
+
)) == 0
|
209
|
+
finally:
|
210
|
+
self.close_transaction()
|
211
|
+
|
196
212
|
|
197
213
|
def get_change_data_record_service(storage: TransactionalStorageSPI,
|
198
214
|
snowflake_generator: SnowflakeGenerator,
|
@@ -14,7 +14,9 @@ class CollectorModelConfigShaper(EntityShaper):
|
|
14
14
|
return TupleShaper.serialize_tenant_based(config, {
|
15
15
|
'model_id': config.modelId,
|
16
16
|
'model_name': config.modelName,
|
17
|
+
'module_id': config.moduleId,
|
17
18
|
'depend_on': config.dependOn,
|
19
|
+
'priority': config.priority,
|
18
20
|
'raw_topic_code': config.rawTopicCode,
|
19
21
|
'is_paralleled': config.isParalleled
|
20
22
|
})
|
@@ -24,7 +26,9 @@ class CollectorModelConfigShaper(EntityShaper):
|
|
24
26
|
return TupleShaper.deserialize_tenant_based(row, CollectorModelConfig(
|
25
27
|
modelId=row.get('model_id'),
|
26
28
|
modelName=row.get('model_name'),
|
29
|
+
moduleId=row.get('module_id'),
|
27
30
|
dependOn=row.get('depend_on'),
|
31
|
+
priority=row.get('priority'),
|
28
32
|
rawTopicCode=row.get('raw_topic_code'),
|
29
33
|
isParalleled=row.get('is_paralleled')
|
30
34
|
))
|
@@ -99,6 +103,13 @@ class CollectorModelConfigService(TupleService):
|
|
99
103
|
finally:
|
100
104
|
self.close_transaction()
|
101
105
|
|
106
|
+
def find_by_module_id(self, module_id: str) -> Optional[List[CollectorModelConfig]]:
|
107
|
+
# noinspection PyTypeChecker
|
108
|
+
return self.storage.find(self.get_entity_finder(
|
109
|
+
criteria=[
|
110
|
+
EntityCriteriaExpression(left=ColumnNameLiteral(columnName='module_id'), right=module_id)]
|
111
|
+
))
|
112
|
+
|
102
113
|
|
103
114
|
def get_collector_model_config_service(storage: TransactionalStorageSPI,
|
104
115
|
snowflake_generator: SnowflakeGenerator,
|
@@ -0,0 +1,103 @@
|
|
1
|
+
from typing import Optional, List
|
2
|
+
|
3
|
+
from watchmen_auth import PrincipalService
|
4
|
+
from watchmen_collector_kernel.model import CollectorModuleConfig
|
5
|
+
from watchmen_meta.common import TupleService, TupleShaper
|
6
|
+
from watchmen_meta.common.storage_service import StorableId
|
7
|
+
from watchmen_model.common import Storable, TenantId, CollectorModelConfigId
|
8
|
+
from watchmen_storage import EntityName, EntityRow, EntityShaper, TransactionalStorageSPI, SnowflakeGenerator, \
|
9
|
+
EntityCriteriaExpression, ColumnNameLiteral
|
10
|
+
|
11
|
+
|
12
|
+
class CollectorModuleConfigShaper(EntityShaper):
|
13
|
+
def serialize(self, config: CollectorModuleConfig) -> EntityRow:
|
14
|
+
return TupleShaper.serialize_tenant_based(config, {
|
15
|
+
'module_id': config.moduleId,
|
16
|
+
'module_name': config.moduleName,
|
17
|
+
'priority': config.priority
|
18
|
+
})
|
19
|
+
|
20
|
+
def deserialize(self, row: EntityRow) -> CollectorModuleConfig:
|
21
|
+
# noinspection PyTypeChecker
|
22
|
+
return TupleShaper.deserialize_tenant_based(row, CollectorModuleConfig(
|
23
|
+
moduleId=row.get('module_id'),
|
24
|
+
moduleName=row.get('module_name'),
|
25
|
+
priority=row.get('priority')
|
26
|
+
))
|
27
|
+
|
28
|
+
|
29
|
+
COLLECTOR_MODULE_CONFIG_ENTITY_NAME = 'collector_module_config'
|
30
|
+
COLLECTOR_MODULE_CONFIG_ENTITY_SHAPER = CollectorModuleConfigShaper()
|
31
|
+
|
32
|
+
|
33
|
+
class CollectorModuleConfigService(TupleService):
|
34
|
+
def should_record_operation(self) -> bool:
|
35
|
+
return False
|
36
|
+
|
37
|
+
def get_entity_name(self) -> EntityName:
|
38
|
+
return COLLECTOR_MODULE_CONFIG_ENTITY_NAME
|
39
|
+
|
40
|
+
def get_entity_shaper(self) -> EntityShaper:
|
41
|
+
return COLLECTOR_MODULE_CONFIG_ENTITY_SHAPER
|
42
|
+
|
43
|
+
# noinspection SpellCheckingInspection
|
44
|
+
def get_storable_id_column_name(self) -> EntityName:
|
45
|
+
return "module_id"
|
46
|
+
|
47
|
+
def get_storable_id(self, storable: CollectorModuleConfig) -> StorableId:
|
48
|
+
return storable.moduleId
|
49
|
+
|
50
|
+
# noinspection SpellCheckingInspection
|
51
|
+
def set_storable_id(self, storable: CollectorModuleConfig, storable_id: CollectorModelConfigId) -> Storable:
|
52
|
+
storable.moduleId = storable_id
|
53
|
+
return storable
|
54
|
+
|
55
|
+
def create_module_config(self, module_config: CollectorModuleConfig) -> CollectorModuleConfig:
|
56
|
+
try:
|
57
|
+
self.storage.connect()
|
58
|
+
# noinspection PyTypeChecker
|
59
|
+
return self.create(module_config)
|
60
|
+
finally:
|
61
|
+
self.storage.close()
|
62
|
+
|
63
|
+
def update_module_config(self, module_config: CollectorModuleConfig) -> CollectorModuleConfig:
|
64
|
+
try:
|
65
|
+
self.storage.connect()
|
66
|
+
# noinspection PyTypeChecker
|
67
|
+
return self.update(module_config)
|
68
|
+
finally:
|
69
|
+
self.storage.close()
|
70
|
+
|
71
|
+
def find_by_module_id(self, module_id: str) -> Optional[CollectorModuleConfig]:
|
72
|
+
self.begin_transaction()
|
73
|
+
try:
|
74
|
+
return self.storage.find_one(self.get_entity_finder(
|
75
|
+
criteria=[
|
76
|
+
EntityCriteriaExpression(left=ColumnNameLiteral(columnName='module_id'), right=module_id)]
|
77
|
+
))
|
78
|
+
finally:
|
79
|
+
self.close_transaction()
|
80
|
+
|
81
|
+
def find_by_tenant(self, tenant_id: TenantId) -> Optional[List[CollectorModuleConfig]]:
|
82
|
+
# noinspection PyTypeChecker
|
83
|
+
return self.storage.find(self.get_entity_finder(
|
84
|
+
criteria=[
|
85
|
+
EntityCriteriaExpression(left=ColumnNameLiteral(columnName='tenant_id'), right=tenant_id)]
|
86
|
+
))
|
87
|
+
|
88
|
+
def find_by_name(self, module_name: str) -> Optional[CollectorModuleConfig]:
|
89
|
+
self.begin_transaction()
|
90
|
+
try:
|
91
|
+
return self.storage.find_one(self.get_entity_finder(
|
92
|
+
criteria=[
|
93
|
+
EntityCriteriaExpression(left=ColumnNameLiteral(columnName='module_name'), right=module_name)]
|
94
|
+
))
|
95
|
+
finally:
|
96
|
+
self.close_transaction()
|
97
|
+
|
98
|
+
|
99
|
+
def get_collector_module_config_service(storage: TransactionalStorageSPI,
|
100
|
+
snowflake_generator: SnowflakeGenerator,
|
101
|
+
principal_service: PrincipalService
|
102
|
+
) -> CollectorModuleConfigService:
|
103
|
+
return CollectorModuleConfigService(storage, snowflake_generator, principal_service)
|
@@ -16,7 +16,9 @@ class TriggerModelShaper(EntityShaper):
|
|
16
16
|
return TupleShaper.serialize_tenant_based(entity, {
|
17
17
|
'model_trigger_id': entity.modelTriggerId,
|
18
18
|
'model_name': entity.modelName,
|
19
|
+
'priority': entity.priority,
|
19
20
|
'is_finished': entity.isFinished,
|
21
|
+
'module_trigger_id': entity.moduleTriggerId,
|
20
22
|
'event_trigger_id': entity.eventTriggerId
|
21
23
|
})
|
22
24
|
|
@@ -25,7 +27,9 @@ class TriggerModelShaper(EntityShaper):
|
|
25
27
|
return TupleShaper.deserialize_tenant_based(row, TriggerModel(
|
26
28
|
modelTriggerId=row.get('model_trigger_id'),
|
27
29
|
modelName=row.get('model_name'),
|
30
|
+
priority=row.get('priority'),
|
28
31
|
isFinished=row.get('is_finished'),
|
32
|
+
moduleTriggerId=row.get('module_trigger_id'),
|
29
33
|
eventTriggerId=row.get('event_trigger_id')
|
30
34
|
))
|
31
35
|
|
@@ -88,6 +92,17 @@ class TriggerModelService(TupleService):
|
|
88
92
|
finally:
|
89
93
|
self.close_transaction()
|
90
94
|
|
95
|
+
def find_by_module_trigger_id(self, module_trigger_id: int) -> List[TriggerModel]:
|
96
|
+
self.begin_transaction()
|
97
|
+
try:
|
98
|
+
# noinspection PyTypeChecker
|
99
|
+
return self.storage.find(self.get_entity_finder(
|
100
|
+
criteria=[
|
101
|
+
EntityCriteriaExpression(left=ColumnNameLiteral(columnName='module_trigger_id'), right=module_trigger_id)
|
102
|
+
]
|
103
|
+
))
|
104
|
+
finally:
|
105
|
+
self.close_transaction()
|
91
106
|
|
92
107
|
def get_trigger_model_service(storage: TransactionalStorageSPI,
|
93
108
|
snowflake_generator: SnowflakeGenerator,
|
@@ -0,0 +1,100 @@
|
|
1
|
+
from typing import Optional, List
|
2
|
+
|
3
|
+
from watchmen_auth import PrincipalService
|
4
|
+
from watchmen_collector_kernel.common import IS_FINISHED, TENANT_ID
|
5
|
+
from watchmen_collector_kernel.model import TriggerModule
|
6
|
+
from watchmen_meta.common import TupleShaper, TupleService
|
7
|
+
from watchmen_meta.common.storage_service import StorableId
|
8
|
+
from watchmen_model.common import Storable, ModelTriggerId
|
9
|
+
from watchmen_storage import EntityName, EntityRow, EntityShaper, TransactionalStorageSPI, SnowflakeGenerator, \
|
10
|
+
EntityCriteriaExpression, ColumnNameLiteral
|
11
|
+
|
12
|
+
|
13
|
+
class TriggerModuleShaper(EntityShaper):
|
14
|
+
|
15
|
+
def serialize(self, entity: TriggerModule) -> EntityRow:
|
16
|
+
return TupleShaper.serialize_tenant_based(entity, {
|
17
|
+
'module_trigger_id': entity.moduleTriggerId,
|
18
|
+
'module_name': entity.moduleName,
|
19
|
+
'priority': entity.priority,
|
20
|
+
'is_finished': entity.isFinished,
|
21
|
+
'event_trigger_id': entity.eventTriggerId
|
22
|
+
})
|
23
|
+
|
24
|
+
def deserialize(self, row: EntityRow) -> TriggerModule:
|
25
|
+
# noinspection PyTypeChecker
|
26
|
+
return TupleShaper.deserialize_tenant_based(row, TriggerModule(
|
27
|
+
moduleTriggerId=row.get('module_trigger_id'),
|
28
|
+
moduleName=row.get('module_name'),
|
29
|
+
priority=row.get('priority'),
|
30
|
+
isFinished=row.get('is_finished'),
|
31
|
+
eventTriggerId=row.get('event_trigger_id')
|
32
|
+
))
|
33
|
+
|
34
|
+
|
35
|
+
TRIGGER_MODULE_TABLE = 'trigger_module'
|
36
|
+
TRIGGER_MODULE_ENTITY_SHAPER = TriggerModuleShaper()
|
37
|
+
|
38
|
+
|
39
|
+
class TriggerModuleService(TupleService):
|
40
|
+
|
41
|
+
def should_record_operation(self) -> bool:
|
42
|
+
return False
|
43
|
+
|
44
|
+
def get_entity_name(self) -> EntityName:
|
45
|
+
return TRIGGER_MODULE_TABLE
|
46
|
+
|
47
|
+
def get_entity_shaper(self) -> EntityShaper:
|
48
|
+
return TRIGGER_MODULE_ENTITY_SHAPER
|
49
|
+
|
50
|
+
def get_storable_id_column_name(self) -> EntityName:
|
51
|
+
return 'module_trigger_id'
|
52
|
+
|
53
|
+
def get_storable_id(self, storable: TriggerModule) -> StorableId:
|
54
|
+
# noinspection PyTypeChecker
|
55
|
+
return storable.moduleTriggerId
|
56
|
+
|
57
|
+
def set_storable_id(
|
58
|
+
self, storable: TriggerModule, storable_id: ModelTriggerId) -> Storable:
|
59
|
+
storable.moduleTriggerId = storable_id
|
60
|
+
return storable
|
61
|
+
|
62
|
+
def find_trigger_by_id(self, trigger_id: int) -> Optional[TriggerModule]:
|
63
|
+
self.begin_transaction()
|
64
|
+
try:
|
65
|
+
return self.find_by_id(trigger_id)
|
66
|
+
finally:
|
67
|
+
self.close_transaction()
|
68
|
+
|
69
|
+
def is_finished(self, event_trigger_id: str) -> bool:
|
70
|
+
self.begin_transaction()
|
71
|
+
try:
|
72
|
+
return self.storage.count(self.get_entity_finder(
|
73
|
+
criteria=[
|
74
|
+
EntityCriteriaExpression(left=ColumnNameLiteral(columnName=IS_FINISHED), right=False),
|
75
|
+
EntityCriteriaExpression(left=ColumnNameLiteral(columnName='event_trigger_id'),
|
76
|
+
right=event_trigger_id)
|
77
|
+
]
|
78
|
+
)) == 0
|
79
|
+
finally:
|
80
|
+
self.close_transaction()
|
81
|
+
|
82
|
+
def find_by_event_trigger_id(self, event_trigger_id: int) -> List[TriggerModule]:
|
83
|
+
self.begin_transaction()
|
84
|
+
try:
|
85
|
+
# noinspection PyTypeChecker
|
86
|
+
return self.storage.find(self.get_entity_finder(
|
87
|
+
criteria=[
|
88
|
+
EntityCriteriaExpression(left=ColumnNameLiteral(columnName='event_trigger_id'),
|
89
|
+
right=event_trigger_id)
|
90
|
+
]
|
91
|
+
))
|
92
|
+
finally:
|
93
|
+
self.close_transaction()
|
94
|
+
|
95
|
+
|
96
|
+
def get_trigger_module_service(storage: TransactionalStorageSPI,
|
97
|
+
snowflake_generator: SnowflakeGenerator,
|
98
|
+
principal_service: PrincipalService
|
99
|
+
) -> TriggerModuleService:
|
100
|
+
return TriggerModuleService(storage, snowflake_generator, principal_service)
|
@@ -19,6 +19,7 @@ class TriggerTableShaper(EntityShaper):
|
|
19
19
|
'is_extracted': entity.isExtracted,
|
20
20
|
'data_count': entity.dataCount,
|
21
21
|
'model_trigger_id': entity.modelTriggerId,
|
22
|
+
'module_trigger_id': entity.moduleTriggerId,
|
22
23
|
'event_trigger_id': entity.eventTriggerId
|
23
24
|
})
|
24
25
|
|
@@ -31,6 +32,7 @@ class TriggerTableShaper(EntityShaper):
|
|
31
32
|
isExtracted=row.get('is_extracted'),
|
32
33
|
dataCount=row.get('data_count'),
|
33
34
|
modelTriggerId=row.get('model_trigger_id'),
|
35
|
+
moduleTriggerId=row.get('module_trigger_id'),
|
34
36
|
eventTriggerId=row.get('event_trigger_id')
|
35
37
|
))
|
36
38
|
|
{watchmen_collector_kernel-16.5.8.dist-info → watchmen_collector_kernel-16.5.9.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: watchmen-collector-kernel
|
3
|
-
Version: 16.5.
|
3
|
+
Version: 16.5.9
|
4
4
|
Summary:
|
5
5
|
License: MIT
|
6
6
|
Author: botlikes
|
@@ -19,11 +19,11 @@ Provides-Extra: oss
|
|
19
19
|
Provides-Extra: postgresql
|
20
20
|
Provides-Extra: s3
|
21
21
|
Requires-Dist: numpy (>=1.23.3,<2.0.0)
|
22
|
-
Requires-Dist: watchmen-data-kernel (==16.5.
|
23
|
-
Requires-Dist: watchmen-storage-mongodb (==16.5.
|
24
|
-
Requires-Dist: watchmen-storage-mssql (==16.5.
|
25
|
-
Requires-Dist: watchmen-storage-mysql (==16.5.
|
26
|
-
Requires-Dist: watchmen-storage-oracle (==16.5.
|
27
|
-
Requires-Dist: watchmen-storage-oss (==16.5.
|
28
|
-
Requires-Dist: watchmen-storage-postgresql (==16.5.
|
29
|
-
Requires-Dist: watchmen-storage-s3 (==16.5.
|
22
|
+
Requires-Dist: watchmen-data-kernel (==16.5.9)
|
23
|
+
Requires-Dist: watchmen-storage-mongodb (==16.5.9) ; extra == "mongodb"
|
24
|
+
Requires-Dist: watchmen-storage-mssql (==16.5.9) ; extra == "mssql"
|
25
|
+
Requires-Dist: watchmen-storage-mysql (==16.5.9) ; extra == "mysql"
|
26
|
+
Requires-Dist: watchmen-storage-oracle (==16.5.9) ; extra == "oracle"
|
27
|
+
Requires-Dist: watchmen-storage-oss (==16.5.9) ; extra == "oss"
|
28
|
+
Requires-Dist: watchmen-storage-postgresql (==16.5.9) ; extra == "postgresql"
|
29
|
+
Requires-Dist: watchmen-storage-s3 (==16.5.9) ; extra == "s3"
|
{watchmen_collector_kernel-16.5.8.dist-info → watchmen_collector_kernel-16.5.9.dist-info}/RECORD
RENAMED
@@ -1,45 +1,49 @@
|
|
1
1
|
watchmen_collector_kernel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
2
|
watchmen_collector_kernel/common/__init__.py,sha256=xDuOxA-p9hVm0IzAsPlrnsohNJgZ0qF6g8Kx8bn1p-E,263
|
3
3
|
watchmen_collector_kernel/common/constants.py,sha256=mIsGBhAjHbmeuVeNYDOKLhiBqG2sSX-0vs8ipEEIo9E,302
|
4
|
-
watchmen_collector_kernel/common/settings.py,sha256=
|
5
|
-
watchmen_collector_kernel/model/__init__.py,sha256=
|
6
|
-
watchmen_collector_kernel/model/change_data_json.py,sha256
|
4
|
+
watchmen_collector_kernel/common/settings.py,sha256=p1I-LpMYRyg_Wx-C15vLYsJf54iwBxH5brqg8s9CJDk,695
|
5
|
+
watchmen_collector_kernel/model/__init__.py,sha256=E6niSOjVdFtNfpvghy9z8WoPqXfIOnsbc_HBXWbKvCk,767
|
6
|
+
watchmen_collector_kernel/model/change_data_json.py,sha256=M3hYIAoL1ZmlcfGjurQIA7sGiXmAoD12UFby1yNNWDs,517
|
7
7
|
watchmen_collector_kernel/model/change_data_json_history.py,sha256=L9ACRe5tCP5Pc5MrpAVkLHe-6EfgZsUBfnQ2BXIYu4M,99
|
8
|
-
watchmen_collector_kernel/model/change_data_record.py,sha256=
|
8
|
+
watchmen_collector_kernel/model/change_data_record.py,sha256=Vfy-wpy-TaXwOFrilq3pbZ1AqldBpT1apMkKnTaVl7M,352
|
9
9
|
watchmen_collector_kernel/model/change_data_record_history.py,sha256=87XLw51oT8TXDRbQLWKy4U1Tyn3KtM22G5wPlMSYCv8,106
|
10
|
-
watchmen_collector_kernel/model/collector_model_config.py,sha256=
|
11
|
-
watchmen_collector_kernel/model/
|
10
|
+
watchmen_collector_kernel/model/collector_model_config.py,sha256=t31ZWoe_ITeemrzEaXtHVPiuK_n-jiHG9UlpqjxPS4s,322
|
11
|
+
watchmen_collector_kernel/model/collector_module_config.py,sha256=0knkFhBdx4gpRXMfrnNWJlmuKMxqC643TJ8-fYDr1nA,250
|
12
|
+
watchmen_collector_kernel/model/collector_table_config.py,sha256=GEY71Ofkkzx-vAQK3xNJT2LPwIPE0Y4Hy6E5mwCtV4E,2935
|
12
13
|
watchmen_collector_kernel/model/competitive_lock.py,sha256=fxDRuzZpsgrZjGeuADS3zRYqQioqWhg72Pr592U_Yvw,264
|
13
14
|
watchmen_collector_kernel/model/condition.py,sha256=jGsjvb5z9XRFW0B55k-iC2_Zle4rl-A5J_6PB6EV6mA,1942
|
14
15
|
watchmen_collector_kernel/model/scheduled_task.py,sha256=-HBwZVbCkuZaTedixeH0s3z-d09nXSlERzQBPfNGfsY,1362
|
15
16
|
watchmen_collector_kernel/model/scheduled_task_history.py,sha256=0lgWIQWN2r_HcMoLGwKxzLmaxGNtr0NZF7NaT_DeOyE,93
|
16
17
|
watchmen_collector_kernel/model/trigger_event.py,sha256=ZjVgWQS_qqILchw4fGFzxn1tJUMx77s2_UpyiBd7azA,251
|
17
|
-
watchmen_collector_kernel/model/trigger_model.py,sha256=
|
18
|
-
watchmen_collector_kernel/model/
|
18
|
+
watchmen_collector_kernel/model/trigger_model.py,sha256=LGhtT8xmeDGB1UivAiaQ9FaHYYkaIjKztRUIuyHGBes,213
|
19
|
+
watchmen_collector_kernel/model/trigger_module.py,sha256=LVhhS-tD5Gl7GLxKDmadSYJxkSJYwlKrlnl93h4-yZQ,193
|
20
|
+
watchmen_collector_kernel/model/trigger_table.py,sha256=5ARZAJ9W5qTnvlH0Zsx4NZ8bYUqWauiZxY63M9-JTYk,251
|
19
21
|
watchmen_collector_kernel/service/__init__.py,sha256=hsg-38u7V3QizNmmuEtOw8gC7QEOopVInLbY97MiwuM,426
|
20
22
|
watchmen_collector_kernel/service/criteria_builder.py,sha256=NAk0yQBn4KARttqEOwWozxIlqkVuGPTQ8n3Zk6gjwcQ,2360
|
21
23
|
watchmen_collector_kernel/service/data_capture.py,sha256=45asoQQlv016NKsPoiUVgaSCOJzUBHDCmWr7XPt-8VI,2873
|
22
|
-
watchmen_collector_kernel/service/extract_source.py,sha256=
|
24
|
+
watchmen_collector_kernel/service/extract_source.py,sha256=8Yy3J2Cb62jskWEXewyeu4TL1luu-MzHaOIrCSQdMv0,7622
|
23
25
|
watchmen_collector_kernel/service/extract_utils.py,sha256=PIyxFG7U37ZXLYlOdIK-Dh-kBptXPFqk-9-b1LuPL1A,2452
|
24
26
|
watchmen_collector_kernel/service/lock_clean.py,sha256=-TVsJjr61MtgBU67S9hBrcH4Mb7xFEG61njq9GA5obY,1142
|
25
|
-
watchmen_collector_kernel/service/lock_helper.py,sha256=
|
27
|
+
watchmen_collector_kernel/service/lock_helper.py,sha256=SJEbaj2-qKNYcu0oboEw1SSRYnqsE_l2CypFkQNL5EE,901
|
26
28
|
watchmen_collector_kernel/service/task_housekeeping.py,sha256=i1lnZ4jo-RLjLQD0Z7HSLQqjXuSqdL3zqHDfFVaNbe8,1673
|
27
|
-
watchmen_collector_kernel/service/task_service.py,sha256=
|
28
|
-
watchmen_collector_kernel/service/trigger_collector.py,sha256=
|
29
|
-
watchmen_collector_kernel/storage/__init__.py,sha256=
|
29
|
+
watchmen_collector_kernel/service/task_service.py,sha256=pcJODNYAjxesuymSgedDuPSMaDxzpee-KcnpWk4ktHI,3779
|
30
|
+
watchmen_collector_kernel/service/trigger_collector.py,sha256=Aq7YCuAkJ2qZixCYjhmG0FWFtm2zng7g6QTmX1Oii10,10348
|
31
|
+
watchmen_collector_kernel/storage/__init__.py,sha256=064rAoXd3IkhPL6aVisW4BGYImKItD6h3btXsHkrBZo,1369
|
30
32
|
watchmen_collector_kernel/storage/change_data_json_history_service.py,sha256=8WPdazvG6EPTOtmiAXtb1yAMRwUaBmD-C6S0ZwsCMrw,1774
|
31
|
-
watchmen_collector_kernel/storage/change_data_json_service.py,sha256=
|
33
|
+
watchmen_collector_kernel/storage/change_data_json_service.py,sha256=ERGIKs8j71shpmYnvvie-Hsf8F9ZEX0MF8uy9aGkeDI,9102
|
32
34
|
watchmen_collector_kernel/storage/change_data_record_history_service.py,sha256=q_41H2AQGLf_XD2W6ZsATLWvxpdK50swOWt5IMCTWjg,1845
|
33
|
-
watchmen_collector_kernel/storage/change_data_record_service.py,sha256=
|
34
|
-
watchmen_collector_kernel/storage/collector_model_config_service.py,sha256=
|
35
|
+
watchmen_collector_kernel/storage/change_data_record_service.py,sha256=trmvO8KwuECC5nFKBLMPX_LE_gtbdXGV5JWLcWz2Lmw,8621
|
36
|
+
watchmen_collector_kernel/storage/collector_model_config_service.py,sha256=vl04Wm-PBl-qePGhNYVAqfW6Rq513lDGwikK_tGyPOs,4245
|
37
|
+
watchmen_collector_kernel/storage/collector_module_config_service.py,sha256=iHWYlOlzTn4iomtKu0e3SCxV1ubbdxak0bOm9tFjcBo,3711
|
35
38
|
watchmen_collector_kernel/storage/collector_table_config_service.py,sha256=GX8zCReNd7xM07dnBEQal7NeFUgpZAWQInjdW8awmvY,5882
|
36
39
|
watchmen_collector_kernel/storage/competitive_lock_service.py,sha256=jjxxHb4Dr0DIDX_g26wtCa8vGLGLnc4BJQGl0d3J31M,2534
|
37
40
|
watchmen_collector_kernel/storage/scheduled_task_history_service.py,sha256=f-JXZ5G87oy7FdYPkbbfTKhI_oRm4wauWNvTw9hxGjM,1586
|
38
41
|
watchmen_collector_kernel/storage/scheduled_task_service.py,sha256=gMv3jxAYJg_sqV4pD5WmV4LXF9Wz8-41DnbkEgwoW8o,6825
|
39
42
|
watchmen_collector_kernel/storage/trigger_event_service.py,sha256=DKSCQ0sYSH3uAtGmokvncD9FIYvjoVsk7QtqdRMQGhM,3099
|
40
|
-
watchmen_collector_kernel/storage/trigger_model_service.py,sha256=
|
41
|
-
watchmen_collector_kernel/storage/
|
42
|
-
watchmen_collector_kernel
|
43
|
-
watchmen_collector_kernel-16.5.
|
44
|
-
watchmen_collector_kernel-16.5.
|
45
|
-
watchmen_collector_kernel-16.5.
|
43
|
+
watchmen_collector_kernel/storage/trigger_model_service.py,sha256=FE_88sYzh9ibUS1bOyDmGvryfPQraqkMbZc3BKtzfpI,3760
|
44
|
+
watchmen_collector_kernel/storage/trigger_module_service.py,sha256=Ca4J8vnBzS90qP3ljwDJ7lt6MzaOushGjoFRwsSKfHI,3377
|
45
|
+
watchmen_collector_kernel/storage/trigger_table_service.py,sha256=sQXHyszSqUxYcstnc59r7fTIrGknyDsX3qivDOymZ4A,3876
|
46
|
+
watchmen_collector_kernel-16.5.9.dist-info/LICENSE,sha256=iuuG7ErblOdcEZi5u89VXS0VIUiTb4flerGp_PAS9E4,1061
|
47
|
+
watchmen_collector_kernel-16.5.9.dist-info/METADATA,sha256=ThU7GXuAHSAKbbxo0qujl1g5fO1r6kJQzq0PTspSwMI,1174
|
48
|
+
watchmen_collector_kernel-16.5.9.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
49
|
+
watchmen_collector_kernel-16.5.9.dist-info/RECORD,,
|
{watchmen_collector_kernel-16.5.8.dist-info → watchmen_collector_kernel-16.5.9.dist-info}/LICENSE
RENAMED
File without changes
|
{watchmen_collector_kernel-16.5.8.dist-info → watchmen_collector_kernel-16.5.9.dist-info}/WHEEL
RENAMED
File without changes
|