fix:dms api
This commit is contained in:
parent
a9ca927ba8
commit
ad5f3b2c52
@ -377,7 +377,7 @@ class DmsCrudScenarioStage(BaseAPIStage):
|
||||
except Exception as e:
|
||||
self.logger.warning(f"LLM数据生成失败: {e},回退到传统数据生成")
|
||||
# 回退到传统数据生成
|
||||
data_generator = DataGenerator(logger_param=self.logger)
|
||||
data_generator = DataGenerator(logger_param=self.logger, well_data_manager=getattr(self.orchestrator, 'well_data_manager', None))
|
||||
generated_data = data_generator.generate_data_from_schema(create_schema, context_name="create_payload", llm_service=self.llm_service)
|
||||
if isinstance(generated_data, dict) and 'data' in generated_data and isinstance(generated_data['data'], list) and len(generated_data['data']) > 0:
|
||||
# 设置所有主键字段
|
||||
@ -392,7 +392,7 @@ class DmsCrudScenarioStage(BaseAPIStage):
|
||||
else:
|
||||
# 使用传统数据生成器(但仍然传递LLM服务以便在内部尝试使用)
|
||||
self.logger.info("LLM服务不可用,使用传统数据生成器")
|
||||
data_generator = DataGenerator(logger_param=self.logger)
|
||||
data_generator = DataGenerator(logger_param=self.logger, well_data_manager=getattr(self.orchestrator, 'well_data_manager', None))
|
||||
generated_data = data_generator.generate_data_from_schema(create_schema, context_name="create_payload", llm_service=None)
|
||||
if isinstance(generated_data, dict) and 'data' in generated_data and isinstance(generated_data['data'], list) and len(generated_data['data']) > 0:
|
||||
# 设置所有主键字段
|
||||
@ -474,8 +474,12 @@ class DmsCrudScenarioStage(BaseAPIStage):
|
||||
name="Step 1: Create Resource",
|
||||
endpoint_spec_lookup_key="CREATE",
|
||||
request_overrides={
|
||||
# We assume the body is an array under 'data' key
|
||||
"body": {"data": ["{{stage_context.current_payload}}"]}
|
||||
# DMS标准格式:包含version、act和data字段
|
||||
"body": {
|
||||
"version": "1.0.0",
|
||||
"act": -1,
|
||||
"data": ["{{stage_context.current_payload}}"]
|
||||
}
|
||||
},
|
||||
response_assertions=[validate_response_is_true],
|
||||
outputs_to_context={}
|
||||
@ -493,7 +497,12 @@ class DmsCrudScenarioStage(BaseAPIStage):
|
||||
name="Step 3: Update Resource",
|
||||
endpoint_spec_lookup_key="UPDATE",
|
||||
request_overrides={
|
||||
"body": {"data": ["{{stage_context.update_payload}}"]},
|
||||
# DMS标准格式:包含version、act和data字段
|
||||
"body": {
|
||||
"version": "1.0.0",
|
||||
"act": -1,
|
||||
"data": ["{{stage_context.update_payload}}"]
|
||||
}
|
||||
},
|
||||
response_assertions=[validate_response_is_true]
|
||||
),
|
||||
@ -669,6 +678,7 @@ class DmsCrudScenarioStage(BaseAPIStage):
|
||||
# 构建LIST请求体,使用固定的简化模式
|
||||
if filter_key and filter_value:
|
||||
list_payload = {
|
||||
"version": "1.0.0",
|
||||
"isSearchCount": True,
|
||||
"query": {
|
||||
"fields": [],
|
||||
@ -691,6 +701,7 @@ class DmsCrudScenarioStage(BaseAPIStage):
|
||||
else:
|
||||
# 没有可用的过滤条件,返回基本查询
|
||||
list_payload = {
|
||||
"version": "1.0.0",
|
||||
"isSearchCount": True,
|
||||
"query": {
|
||||
"fields": [],
|
||||
@ -712,14 +723,14 @@ class DmsCrudScenarioStage(BaseAPIStage):
|
||||
if not delete_op or not isinstance(delete_op, DMSEndpoint):
|
||||
# 回退到简单的主键值列表
|
||||
self.logger.warning("无法获取删除操作信息,使用简单主键值列表")
|
||||
return {"data": [pk_value]}
|
||||
return {"version": "1.0.0", "data": [pk_value]}
|
||||
|
||||
# 获取identityId列表
|
||||
identity_id_list = getattr(delete_op, 'identity_id_list', [])
|
||||
|
||||
if not identity_id_list:
|
||||
self.logger.warning("删除操作没有identityId信息,使用简单主键值列表")
|
||||
return {"data": [pk_value]}
|
||||
return {"version": "1.0.0", "data": [pk_value]}
|
||||
|
||||
# 根据identityId列表长度判断删除格式
|
||||
if len(identity_id_list) > 1:
|
||||
@ -729,7 +740,7 @@ class DmsCrudScenarioStage(BaseAPIStage):
|
||||
else:
|
||||
# 单主键:使用字符串列表
|
||||
self.logger.info(f"检测到单主键删除操作,主键字段: {identity_id_list[0]}")
|
||||
return {"data": [pk_value]}
|
||||
return {"version": "1.0.0", "data": [pk_value]}
|
||||
|
||||
def _build_multi_key_delete_body(self, identity_id_list: List[str], primary_pk_name: str, primary_pk_value: str, create_payload: Dict[str, Any]) -> Dict[str, Any]:
|
||||
"""构建多主键的删除请求体"""
|
||||
|
||||
11486
summary(10).json
Normal file
11486
summary(10).json
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user