Azure / azure-sdk-for-python

This repository is for active development of the Azure SDK for Python. For consumers of the SDK we recommend visiting our public developer docs at https://learn.microsoft.com/python/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-python.
MIT License
4.55k stars 2.77k forks source link

[Storage] StorageManagementClient.storage_task_assignments.begin_create(...) fail with date-time format not aligned with server request. #37406

Open blueww opened 1 week ago

blueww commented 1 week ago

Describe the bug An external customer recently tried to use the Python SDK to create Task assignments and they are running into validation errors and Task assignment creation is not accepted.

This is because they tried to pass in date times with and without padding on "2024-09-22T19:50:32" format, which the Python SDK always Serializes converts to UTC: "2024-09-22T19:50:32.000Z" which looks to be not accepted by backend.

That is, upon calling this:

StorageManagementClient.storage_task_assignments.begin_create(...)

A log line is shown: "Datetime with no tzinfo will be considered UTC."

Customer also shared the root cause might be because the default serializer used converts to the format:

>>> from azure.mgmt.storage._serialization import Serializer
>>> Serializer.serialize_iso("2024-09-22T19:50:32")
Datetime with no tzinfo will be considered UTC.
'2024-09-22T19:50:32.000Z'

Options: Can SDK be updated to sync with what SRP/infra accepts? Possibly update the parameters passed to Serializer?

To Reproduce Steps to reproduce the behavior: see above comment.

Expected behavior The datetime send from python SDK can be accepted by Server.

Screenshots If applicable, add screenshots to help explain your problem.

Additional context Add any other context about the problem here.

github-actions[bot] commented 1 week ago

Thanks for the feedback! We are routing this to the appropriate team for follow-up. cc @jalauzon-msft @vincenttran-msft.

msyyc commented 1 week ago

@blueww Could you show the specific parameter values when calling StorageManagementClient.storage_task_assignments.begin_create?