|
1 | 1 | Changelog |
2 | 2 | ========= |
3 | 3 |
|
| 4 | +Improvements |
| 5 | +^^^^^^^^^^^^ |
| 6 | + |
| 7 | +* Refactored the CTERA Direct I/O module to reduce duplicate code and improve exception handling. |
| 8 | +* Added support for configuring Cloud Drive folders with Global File Locking. |
| 9 | +* Improved authentication error handling by catching HTTP exceptions and raising :py:class:`cterasdk.exceptions.auth.AuthenticationError`. |
| 10 | +* Added an attribute to indicate whether deduplication is enabled when retrieving the deduplication status. |
| 11 | +* Raise an exception when uploading a file with invalid characters in its name. |
| 12 | +* Raise an exception when attempting to upload files to the Cloud Drive root directory. |
| 13 | +* Added support for exporting data discovery and migration jobs to CSV format. |
| 14 | +* Introduced an asynchronous task management module for operations such as copying, moving, renaming, deleting, or undeleting files. |
| 15 | +* Background tasks now return awaitable objects: :py:class:`cterasdk.lib.tasks.AwaitableEdgeTask`, |
| 16 | +:py:class:`cterasdk.lib.tasks.AwaitablePortalTask`. |
| 17 | + |
| 18 | +Bug Fixes |
| 19 | +^^^^^^^^^ |
| 20 | + |
| 21 | +* Fixed an `AttributeError` when a connection error occurs while waiting for an Edge Filer to reboot. |
| 22 | + |
| 23 | +Related issues and pull requests on GitHub: `#315 <https://github.com/ctera/ctera-python-sdk/pull/315>`_ |
| 24 | + |
| 25 | +.. code:: python |
| 26 | +
|
| 27 | + # Background task: 'Apply Provisioning Changes' |
| 28 | + result = admin.users.apply_changes(wait=True) # Wait for provisioning changes to complete and return the result |
| 29 | +
|
| 30 | + awaitable_task = admin.users.apply_changes() # Return an awaitable task object without waiting |
| 31 | + result = awaitable_task.status() # Get the current status of the task |
| 32 | + result = awaitable_task.wait() # Wait for task completion |
| 33 | + result = awaitable_task.wait(timeout=5) # Wait up to 5 seconds for the task to complete |
| 34 | +
|
| 35 | + # Moving files and folders |
| 36 | + result = user.files.move(('My Files/doc.docx', 'Documents/Guide.docx')) # Move a file and wait for completion |
| 37 | +
|
| 38 | + awaitable_task = user.files.move(('My Files/doc.docx', 'Documents/Guide.docx'), wait=False) # Return an awaitable task object |
| 39 | + result = awaitable_task.wait() # Wait for the move operation to complete |
| 40 | +
|
| 41 | +.. |
| 42 | +
|
4 | 43 | 2.20.18 |
5 | 44 | ------- |
6 | 45 |
|
|
0 commit comments