Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Storage] Azure blob storage support (#3032)
* first commit * nit * implement fetching bucket * update batch sync * support file name with empty space sync * support blobfuse2 mount/container name validate * support container deletion * support download from container to remote vm * complete download from container to remote vm * update mounting tool blobfuse2 download command * update mounting command * _CREDENTIALS_FILES list update * add smoke test * update storage comment * update download commands to use account key * add account-key for upload * nit * nit fix * data_utils fix * nit * nit * add comments * nit smoke * implement verify_az_bucket * smoke test update and nit mounting_utils * config schema update * support public container usage * nit fix for private bucket test * update _get_bucket to use from_container_url * add _download_file * nit * fix mounting blobfuse2 issues * nit * format * nit * container client fix * smoke test update private_bucket * azure get_client update to use exists() * nit * udpate fetch command for public containers * nit * update fetching command for public containers * silence client logging when used with public containers * az cli and blobfuse installation update * update for faster container client fetch * Handle private container without access * update private container without access smoke test * change due to merging master branch * updates from merging master * update mounting smoke test * mounting smoke test update * remove logger restriction * update comments * update verify_az_bucket to use for both private and public * update comments and formatting * update delete_az_bucket * az cli installation versioning * update logging silence logic for get_client * support azcopy for fetching * update sas token generation with az-cli * propagation hold * merge fix * add support to assign role to access storage account * nit * silence logging from httpx request to get object_id * checks existance of storage account and resource group before creation * create storage account for different regions * fix source name when translating local file mounts for spot sync * smoke test update for storage account names * removing az-cli installation from cloud_stores.py * nit * update sas token generation to use python sdk * nit * Update sky/data/storage.py Co-authored-by: Tian Xia <[email protected]> * move sas token generating functions from data_utils to adaptors.azure * use constant string format to obtain container url * nit * add comment for '/' and azcopy syntax * refactor AzureBlobCloudStorage methods * nit * format * nit * update test storage mount yaml j2 * added rich status message for storage account and resource group creation * update rich status message when creating storage account and resource group * nit * Error handle for when storage account creation did not yet propagate to system * comment update * merge error output into exception message * error comment * additional error handling when creating storage account * nit * update to use raw container url endpoint instead of 'az://' * update config.yaml interface * remove resource group existance check * add more comments for az mount command * nit * add more exception handling for storage account initialization * Remove lru cache decorator from sas token generating functions * nit * nit * Revert back to check if the resource group exists before running command to create. * refactor function to obtain resource group and storage account * nit * add support for storage account under AzureBlobStoreMetadata * set default file permission to be 755 for mounting * Update sky/adaptors/azure.py Co-authored-by: Tian Xia <[email protected]> * nit * nit fixes * format and update error handling * nit fixes * set default storage account and resource group name as string constant * update error handle. * additional error handle for else branch * Additional error handling * nit * update get_az_storage_account_key to replace try-exception with if statement * nit * nit * nit * format * update public container example as not accessible anymore * nit * file_bucket_name update * add StoreType method to retrieve bucket endpoint url * format * add azure storage blob dependency installation for controller * fix fetching methods * nit * additional docstr for _get_storage_account_and_resource_group * nit * update blobfuse2 cache directory * format * refactor get_storage_account_key method * update docker storage mounts smoke test * sleep for storage account creation to propagate * handle externally removed storage account being fetched * format * nit * add logic to retry for role assignment * add comment to _create_storage_account method * additional error handling for role assignment * format * nit * Update sky/adaptors/azure.py Co-authored-by: Zhanghao Wu <[email protected]> * additional installation check for azure blob storage dependencies * format * update step 7 from maybe_translate_local_file_mounts_and_sync_up method to format source correctly for azure * additional comment on container_client.exists() * explicitly check None for match * Update sky/cloud_stores.py Co-authored-by: Zhanghao Wu <[email protected]> * [style] import module instead of class or funcion * nit * docstring nit updates * nit * error handle failure to run list blobs API from cloud_stores.py::is_directory() * nit * nit * Add role assignment logic to handle edge case * format * remove redundant get_az_resource_group method from data_utils * asyncio loop lifecycle manage * update constant values * add logs when resource group and storage account is newly created * Update sky/skylet/constants.py Co-authored-by: Zhanghao Wu <[email protected]> * add comment and move return True within the try except block * reverse the order of two decorators for get_client method to allow cache_clear method * revert error handling at _execute_file_mounts * nit * raise error when non existent storage account or container name is provided. * format * add comment for keeping decorator order --------- Co-authored-by: Romil Bhardwaj <[email protected]> Co-authored-by: Tian Xia <[email protected]> Co-authored-by: Zhanghao Wu <[email protected]>
- Loading branch information