Azure / Azure/azure-functions-durable-python
DTS - purge_instance_history_by throws "Exception: The operation failed with an unexpected status code 400"
- Ngôn ngữ chính
- Python
- Star
- 157
- Fork
- 70
- Merge trung bình
- 2 ngày 10 giờ
- Pull request đã merge (30 ngày)
- 2
Mô tả
🐛 **Describe the bug**
If you call purge_instance_history_by when using the DTS backend, you get the following error: Exception: The operation failed with an unexpected status code 400
🤔 **Expected behavior**
purge_instance_history_by should successfully purge instance history based on the input params
☕ **Steps to reproduce**
Function code:
```python
@bp.route(route="PurgeOrchestrationHistory", methods=["GET", "POST"])
@bp.durable_client_input(client_name="client")
async def purge_history(req: func.HttpRequest, client: df.DurableOrchestrationClient):
logging.info("Starting purge all instance history")
try:
# Parse optional query parameters for purgeStartTime and purgeEndTime
purge_start_time: Optional[datetime] = None
purge_end_time: Optional[datetime] = None
if req.params.get("purgeStartTime"):
purge_start_time = datetime.fromisoformat(req.params["purgeStartTime"])
if req.params.get("purgeEndTime"):
purge_end_time = datetime.fromisoformat(req.params["purgeEndTime"])
# Purge orchestration history
result = await client.purge_instance_history_by(
created_time_from=purge_start_time,
created_time_to=purge_end_time,
runtime_status=[
df.OrchestrationRuntimeStatus.Completed,
df.OrchestrationRuntimeStatus.Failed,
df.OrchestrationRuntimeStatus.Terminated,
],
)
logging.info("Finished purge all instance history")
return func.HttpResponse(
f"Purged {result.instances_deleted} records",
status_code=200,
mimetype="text/plain"
)
except Exception as ex:
logging.error("Failed to purge all instance history", exc_info=True)
return func.HttpResponse(
f"Failed to purge all instance history: {str(ex)}",
status_code=500,
mimetype="text/plain"
)
```
⚡**If deployed to Azure**
N/A
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu bằng cách xác định entry point purge_instance_history_by và request đến DTS backend mà nó thực hiện, sau đó tái hiện lời gọi với các trạng thái runtime và các giới hạn thời gian tùy chọn được nêu trong issue. Theo dõi phản hồi 400 và xác minh rằng thao tác thành công cũng như báo cáo đúng số lượng instance bị xóa dự kiến.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- api, backend
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 58/100