From bb4157ffee3637916b6b7fd977c4e5f9ea2f2fca Mon Sep 17 00:00:00 2001 From: Troy Dai Date: Thu, 13 Apr 2017 15:45:01 -0700 Subject: [PATCH] Make block blob upload change block size base on uploading file size. (#2850) * Only increase block size when the uploading size is larger than 200GB * Update tests * Update test * Update storage command module history --- .../azure-cli-storage/HISTORY.rst | 1 + .../cli/command_modules/storage/custom.py | 8 +- .../test_storage_blob_incremental_copy.yaml | 686 +++++++++--------- .../test_storage_blob_upload_128mb_file.yaml | 351 --------- .../test_storage_blob_upload_64mb_file.yaml | 351 --------- ...test_storage_blob_upload_midsize_file.yaml | 106 +-- .../test_storage_blob_upload_small_file.yaml | 106 +-- .../tests/test_storage_blob_live_scenarios.py | 16 + .../tests/test_storage_blob_scenarios.py | 12 - 9 files changed, 472 insertions(+), 1165 deletions(-) delete mode 100644 src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_upload_128mb_file.yaml delete mode 100644 src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_upload_64mb_file.yaml diff --git a/src/command_modules/azure-cli-storage/HISTORY.rst b/src/command_modules/azure-cli-storage/HISTORY.rst index c6c276eda..8cdafebe2 100644 --- a/src/command_modules/azure-cli-storage/HISTORY.rst +++ b/src/command_modules/azure-cli-storage/HISTORY.rst @@ -8,6 +8,7 @@ unreleased * Add support for incremental blob copy * Add support for large block blob upload +* Change block size to 100MB when file to upload is larger than 200GB 2.0.2 (2017-04-03) ++++++++++++++++++ diff --git a/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/custom.py b/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/custom.py index a53bc4768..2112364d2 100644 --- a/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/custom.py +++ b/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/custom.py @@ -159,8 +159,12 @@ def upload_blob( # pylint: disable=too-many-locals timeout=timeout) def upload_block_blob(): - client.MAX_BLOCK_SIZE = 100 * 1024 * 1024 - client.MAX_SINGLE_PUT_SIZE = 256 * 1024 * 1024 + import os + + # increase the block size to 100MB when the file is larger than 200GB + if os.path.isfile(file_path) and os.stat(file_path).st_size > 200 * 1024 * 1024 * 1024: + client.MAX_BLOCK_SIZE = 100 * 1024 * 1024 + client.MAX_SINGLE_PUT_SIZE = 256 * 1024 * 1024 return client.create_blob_from_path( container_name=container_name, diff --git a/src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_incremental_copy.yaml b/src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_incremental_copy.yaml index 1d578462f..62be038ef 100644 --- a/src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_incremental_copy.yaml +++ b/src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_incremental_copy.yaml @@ -20,14 +20,14 @@ interactions: cache-control: [no-cache] content-length: ['326'] content-type: [application/json; charset=utf-8] - date: ['Thu, 06 Apr 2017 22:40:24 GMT'] + date: ['Wed, 12 Apr 2017 22:12:19 GMT'] expires: ['-1'] pragma: [no-cache] strict-transport-security: [max-age=31536000; includeSubDomains] - x-ms-ratelimit-remaining-subscription-writes: ['1184'] + x-ms-ratelimit-remaining-subscription-writes: ['1197'] status: {code: 201, message: Created} - request: - body: '{"kind": "Storage", "location": "westus", "sku": {"name": "Standard_LRS"}}' + body: '{"location": "westus", "sku": {"name": "Standard_LRS"}, "kind": "Storage"}' headers: Accept: [application/json] Accept-Encoding: ['gzip, deflate'] @@ -45,14 +45,14 @@ interactions: headers: cache-control: [no-cache] content-length: ['0'] - date: ['Thu, 06 Apr 2017 22:40:26 GMT'] + date: ['Wed, 12 Apr 2017 22:12:20 GMT'] expires: ['-1'] - location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/0891fe6d-2432-41ba-bf8a-98b073e1bc54?monitor=true&api-version=2016-12-01'] + location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/99810cb4-a74e-43db-a520-b4971d661c2f?monitor=true&api-version=2016-12-01'] pragma: [no-cache] retry-after: ['17'] server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0] strict-transport-security: [max-age=31536000; includeSubDomains] - x-ms-ratelimit-remaining-subscription-writes: ['1188'] + x-ms-ratelimit-remaining-subscription-writes: ['1197'] status: {code: 202, message: Accepted} - request: body: null @@ -66,16 +66,16 @@ interactions: msrest_azure/0.4.7 storagemanagementclient/0.31.0 Azure-SDK-For-Python AZURECLI/2.0.2+dev] accept-language: [en-US] method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/0891fe6d-2432-41ba-bf8a-98b073e1bc54?monitor=true&api-version=2016-12-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/99810cb4-a74e-43db-a520-b4971d661c2f?monitor=true&api-version=2016-12-01 response: - body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002","kind":"Storage","location":"westus","name":"clitest000002","properties":{"creationTime":"2017-04-06T22:40:27.0299114Z","primaryEndpoints":{"blob":"https://clitest000002.blob.core.windows.net/","file":"https://clitest000002.file.core.windows.net/","queue":"https://clitest000002.queue.core.windows.net/","table":"https://clitest000002.table.core.windows.net/"},"primaryLocation":"westus","provisioningState":"Succeeded","statusOfPrimary":"available"},"sku":{"name":"Standard_LRS","tier":"Standard"},"tags":{},"type":"Microsoft.Storage/storageAccounts"} + body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002","kind":"Storage","location":"westus","name":"clitest000002","properties":{"creationTime":"2017-04-12T22:12:21.7125705Z","primaryEndpoints":{"blob":"https://clitest000002.blob.core.windows.net/","file":"https://clitest000002.file.core.windows.net/","queue":"https://clitest000002.queue.core.windows.net/","table":"https://clitest000002.table.core.windows.net/"},"primaryLocation":"westus","provisioningState":"Succeeded","statusOfPrimary":"available","supportsHttpsTrafficOnly":false},"sku":{"name":"Standard_LRS","tier":"Standard"},"tags":{},"type":"Microsoft.Storage/storageAccounts"} '} headers: cache-control: [no-cache] - content-length: ['827'] + content-length: ['860'] content-type: [application/json] - date: ['Thu, 06 Apr 2017 22:40:44 GMT'] + date: ['Wed, 12 Apr 2017 22:12:38 GMT'] expires: ['-1'] pragma: [no-cache] server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0] @@ -84,7 +84,7 @@ interactions: vary: [Accept-Encoding] status: {code: 200, message: OK} - request: - body: '{"kind": "Storage", "location": "westus", "sku": {"name": "Standard_LRS"}}' + body: '{"location": "westus", "sku": {"name": "Standard_LRS"}, "kind": "Storage"}' headers: Accept: [application/json] Accept-Encoding: ['gzip, deflate'] @@ -102,14 +102,14 @@ interactions: headers: cache-control: [no-cache] content-length: ['0'] - date: ['Thu, 06 Apr 2017 22:40:47 GMT'] + date: ['Wed, 12 Apr 2017 22:12:40 GMT'] expires: ['-1'] - location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/6b4305b0-148a-43af-95f4-0527309e4d07?monitor=true&api-version=2016-12-01'] + location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/ca5d20d7-f15a-4c8a-b226-37323119c256?monitor=true&api-version=2016-12-01'] pragma: [no-cache] retry-after: ['17'] server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0] strict-transport-security: [max-age=31536000; includeSubDomains] - x-ms-ratelimit-remaining-subscription-writes: ['1190'] + x-ms-ratelimit-remaining-subscription-writes: ['1197'] status: {code: 202, message: Accepted} - request: body: null @@ -123,16 +123,16 @@ interactions: msrest_azure/0.4.7 storagemanagementclient/0.31.0 Azure-SDK-For-Python AZURECLI/2.0.2+dev] accept-language: [en-US] method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/6b4305b0-148a-43af-95f4-0527309e4d07?monitor=true&api-version=2016-12-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/ca5d20d7-f15a-4c8a-b226-37323119c256?monitor=true&api-version=2016-12-01 response: - body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000003","kind":"Storage","location":"westus","name":"clitest000003","properties":{"creationTime":"2017-04-06T22:40:47.0158525Z","primaryEndpoints":{"blob":"https://clitest000003.blob.core.windows.net/","file":"https://clitest000003.file.core.windows.net/","queue":"https://clitest000003.queue.core.windows.net/","table":"https://clitest000003.table.core.windows.net/"},"primaryLocation":"westus","provisioningState":"Succeeded","statusOfPrimary":"available"},"sku":{"name":"Standard_LRS","tier":"Standard"},"tags":{},"type":"Microsoft.Storage/storageAccounts"} + body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000003","kind":"Storage","location":"westus","name":"clitest000003","properties":{"creationTime":"2017-04-12T22:12:41.2601109Z","primaryEndpoints":{"blob":"https://clitest000003.blob.core.windows.net/","file":"https://clitest000003.file.core.windows.net/","queue":"https://clitest000003.queue.core.windows.net/","table":"https://clitest000003.table.core.windows.net/"},"primaryLocation":"westus","provisioningState":"Succeeded","statusOfPrimary":"available","supportsHttpsTrafficOnly":false},"sku":{"name":"Standard_LRS","tier":"Standard"},"tags":{},"type":"Microsoft.Storage/storageAccounts"} '} headers: cache-control: [no-cache] - content-length: ['827'] + content-length: ['860'] content-type: [application/json] - date: ['Thu, 06 Apr 2017 22:41:04 GMT'] + date: ['Wed, 12 Apr 2017 22:12:58 GMT'] expires: ['-1'] pragma: [no-cache] server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0] @@ -155,21 +155,21 @@ interactions: method: POST uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/listKeys?api-version=2016-12-01 response: - body: {string: '{"keys":[{"keyName":"key1","permissions":"Full","value":"p/AsPPY/AicsAogSVQCUdW7OuiEUxgBG7xJjB3zTLEL+ZBrvDalXPjH/ut1wkVx7Cr3TOquonrBwJT1SoTTemw=="},{"keyName":"key2","permissions":"Full","value":"ANubYfSFZdUC5pf4S7B30Sa6FoJJ3MtvyuKgmVqSam3Ij+nSi9Fvhmfln/sMlummD45C6MbLHDxDDteKgwUYFA=="}]} + body: {string: '{"keys":[{"keyName":"key1","permissions":"Full","value":"9aIDc0LzW7P+KRagZSGleWuAMHjfrhjlFrqyj/GFQ4GZdYq3DQ6Onfq4bupoDVGL/2m7Qdli8Na6FToKi43JVA=="},{"keyName":"key2","permissions":"Full","value":"zKYsL5mgKc/Vl2my//3QnKJRLpf337WJrC1s+rYkylXWiceEZPbkg8nLknhW6KkHin5cL/gYfS+8HADD82YK0w=="}]} '} headers: cache-control: [no-cache] content-length: ['289'] content-type: [application/json] - date: ['Thu, 06 Apr 2017 22:41:06 GMT'] + date: ['Wed, 12 Apr 2017 22:12:59 GMT'] expires: ['-1'] pragma: [no-cache] server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0] strict-transport-security: [max-age=31536000; includeSubDomains] transfer-encoding: [chunked] vary: [Accept-Encoding] - x-ms-ratelimit-remaining-subscription-writes: ['1187'] + x-ms-ratelimit-remaining-subscription-writes: ['1198'] status: {code: 200, message: OK} - request: body: null @@ -177,16 +177,16 @@ interactions: Connection: [keep-alive] Content-Length: ['0'] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:41:07 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:13:00 GMT'] x-ms-version: ['2016-05-31'] method: PUT uri: https://clitest000002.blob.core.windows.net/cont000004?restype=container response: body: {string: ''} headers: - date: ['Thu, 06 Apr 2017 22:41:08 GMT'] - etag: ['"0x8D47D3E04B170E5"'] - last-modified: ['Thu, 06 Apr 2017 22:41:08 GMT'] + date: ['Wed, 12 Apr 2017 22:12:59 GMT'] + etag: ['"0x8D481F114ADCE66"'] + last-modified: ['Wed, 12 Apr 2017 22:13:00 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] transfer-encoding: [chunked] x-ms-version: ['2016-05-31'] @@ -199,16 +199,16 @@ interactions: User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] x-ms-blob-content-length: ['16384'] x-ms-blob-type: [PageBlob] - x-ms-date: ['Thu, 06 Apr 2017 22:41:09 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:13:00 GMT'] x-ms-version: ['2016-05-31'] method: PUT uri: https://clitest000002.blob.core.windows.net/cont000004/src response: body: {string: ''} headers: - date: ['Thu, 06 Apr 2017 22:41:09 GMT'] - etag: ['"0x8D47D3E05B3E901"'] - last-modified: ['Thu, 06 Apr 2017 22:41:10 GMT'] + date: ['Wed, 12 Apr 2017 22:12:59 GMT'] + etag: ['"0x8D481F114D382BB"'] + last-modified: ['Wed, 12 Apr 2017 22:13:00 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] transfer-encoding: [chunked] x-ms-request-server-encrypted: ['false'] @@ -216,299 +216,299 @@ interactions: status: {code: 201, message: Created} - request: body: !!binary | - 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 - E4M+Xp9Lxn3YBlCIyTyYlyScH+i+u8oNWA== + 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 + sS5xHKecr9Qnn6Oe11rdTuNRgasV34x/dw== headers: Connection: [keep-alive] Content-Length: ['16384'] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:41:09 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:13:00 GMT'] x-ms-page-write: [update] x-ms-range: [bytes=0-16383] x-ms-version: ['2016-05-31'] @@ -517,10 +517,10 @@ interactions: response: body: {string: ''} headers: - content-md5: [71212ZcXDrGBmRBIrrNMgA==] - date: ['Thu, 06 Apr 2017 22:41:09 GMT'] - etag: ['"0x8D47D3E05C35750"'] - last-modified: ['Thu, 06 Apr 2017 22:41:10 GMT'] + content-md5: [TznEKWD3lo9Y/VSPHc5e0A==] + date: ['Wed, 12 Apr 2017 22:12:59 GMT'] + etag: ['"0x8D481F114E3D971"'] + last-modified: ['Wed, 12 Apr 2017 22:13:00 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] transfer-encoding: [chunked] x-ms-blob-sequence-number: ['0'] @@ -533,19 +533,19 @@ interactions: Connection: [keep-alive] Content-Length: ['0'] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:41:10 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:13:00 GMT'] x-ms-version: ['2016-05-31'] method: PUT uri: https://clitest000002.blob.core.windows.net/cont000004/src?comp=snapshot response: body: {string: ''} headers: - date: ['Thu, 06 Apr 2017 22:41:11 GMT'] - etag: ['"0x8D47D3E05C35750"'] - last-modified: ['Thu, 06 Apr 2017 22:41:10 GMT'] + date: ['Wed, 12 Apr 2017 22:12:59 GMT'] + etag: ['"0x8D481F114E3D971"'] + last-modified: ['Wed, 12 Apr 2017 22:13:00 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] transfer-encoding: [chunked] - x-ms-snapshot: ['2017-04-06T22:41:11.5369091Z'] + x-ms-snapshot: ['2017-04-12T22:13:00.5842235Z'] x-ms-version: ['2016-05-31'] status: {code: 201, message: Created} - request: @@ -563,21 +563,21 @@ interactions: method: POST uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000003/listKeys?api-version=2016-12-01 response: - body: {string: '{"keys":[{"keyName":"key1","permissions":"Full","value":"gpSgSBWlHX/W2AKQf6z/D9yuTs6q5AflgHeYw9NjD/60Zxk0ZQrstuEJXoWFttC2y/GVGKvLM77gYrMaCBnIGQ=="},{"keyName":"key2","permissions":"Full","value":"i3Eblsf9CR1HNA0RyXk9moWn0ghu9f+IBrbdjAkfRTJRU8wr4uqSFclaXMmN6XDtvwXNjr2q7ZdjdbefzcLpRQ=="}]} + body: {string: '{"keys":[{"keyName":"key1","permissions":"Full","value":"hTTQxF4kJ0D0ucRe+LMFmrfBYZARvI7cI736ZnD0p0AHtL1ZKgX68hzoDKD7Le6ddicmlPUOCFDOQwFwrQBRWg=="},{"keyName":"key2","permissions":"Full","value":"4rsovx/+GuEf5BJcJHb8laowbwOcS6gLSt5YYDABx1VohxJ11ZYbKZRdjHx6yEnjG0eyZwLmsUsUemjN682uZw=="}]} '} headers: cache-control: [no-cache] content-length: ['289'] content-type: [application/json] - date: ['Thu, 06 Apr 2017 22:41:11 GMT'] + date: ['Wed, 12 Apr 2017 22:13:00 GMT'] expires: ['-1'] pragma: [no-cache] server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0] strict-transport-security: [max-age=31536000; includeSubDomains] transfer-encoding: [chunked] vary: [Accept-Encoding] - x-ms-ratelimit-remaining-subscription-writes: ['1186'] + x-ms-ratelimit-remaining-subscription-writes: ['1196'] status: {code: 200, message: OK} - request: body: null @@ -585,16 +585,16 @@ interactions: Connection: [keep-alive] Content-Length: ['0'] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:41:13 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:13:01 GMT'] x-ms-version: ['2016-05-31'] method: PUT uri: https://clitest000003.blob.core.windows.net/cont000005?restype=container response: body: {string: ''} headers: - date: ['Thu, 06 Apr 2017 22:41:13 GMT'] - etag: ['"0x8D47D3E08040EEC"'] - last-modified: ['Thu, 06 Apr 2017 22:41:14 GMT'] + date: ['Wed, 12 Apr 2017 22:13:00 GMT'] + etag: ['"0x8D481F1154AC9A0"'] + last-modified: ['Wed, 12 Apr 2017 22:13:01 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] transfer-encoding: [chunked] x-ms-version: ['2016-05-31'] @@ -605,20 +605,20 @@ interactions: Connection: [keep-alive] Content-Length: ['0'] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-copy-source: ['https://clitestf105c35141cb73bea.blob.core.windows.net/cont2d67157800ffb23db087/src?se=2017-04-07T22%3A41%3A14Z&sp=r&sr=b&spr=https&sig=g%2BfElhZ0Qt3BLq0apk%2BUiq1iL0ar6lBQJ0zICXlI46E%3D&sv=2016-05-31&snapshot=2017-04-06T22:41:11.5369091Z'] - x-ms-date: ['Thu, 06 Apr 2017 22:41:14 GMT'] + x-ms-copy-source: ['https://clitest7be129dfe129f0b2a.blob.core.windows.net/cont69b7b8fcc383730aab1d/src?sig=%2B9zu6NWsR56lPFwrjotGrHwbTRZKY5KishcxPAwUwNg%3D&sp=r&se=2017-04-13T22%3A13%3A01Z&sr=b&sv=2016-05-31&spr=https&snapshot=2017-04-12T22:13:00.5842235Z'] + x-ms-date: ['Wed, 12 Apr 2017 22:13:01 GMT'] x-ms-version: ['2016-05-31'] method: PUT uri: https://clitest000003.blob.core.windows.net/cont000005/backup?comp=incrementalcopy response: body: {string: ''} headers: - date: ['Thu, 06 Apr 2017 22:41:12 GMT'] - etag: ['"0x8D47D3E08897F5B"'] - last-modified: ['Thu, 06 Apr 2017 22:41:15 GMT'] + date: ['Wed, 12 Apr 2017 22:13:00 GMT'] + etag: ['"0x8D481F115738A8E"'] + last-modified: ['Wed, 12 Apr 2017 22:13:01 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] transfer-encoding: [chunked] - x-ms-copy-id: [91c626bc-37a5-4177-8b23-fdc9c83602b8] + x-ms-copy-id: [dbbb4467-2f88-40e0-a0a9-5495d04229be] x-ms-copy-status: [pending] x-ms-version: ['2016-05-31'] status: {code: 202, message: Accepted} @@ -642,12 +642,12 @@ interactions: headers: cache-control: [no-cache] content-length: ['0'] - date: ['Thu, 06 Apr 2017 22:41:16 GMT'] + date: ['Wed, 12 Apr 2017 22:13:02 GMT'] expires: ['-1'] - location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkcyQ0IwMzM0RUQwQ0EwMTkzREQ5OTQ3QzNDNjc2ODU2OTUwRXwxMTZEMkNFNkRBNDQ2N0U3LVdFU1RVUyIsImpvYkxvY2F0aW9uIjoid2VzdHVzIn0?api-version=2016-09-01'] + location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkc2OTY3NjU2QkI4NDU3NzlEQzAwMkE2Q0I1NUVCMDFCQTg4OXwxN0JBRkM2REUyMTc4RDUzLVdFU1RVUyIsImpvYkxvY2F0aW9uIjoid2VzdHVzIn0?api-version=2016-09-01'] pragma: [no-cache] retry-after: ['15'] strict-transport-security: [max-age=31536000; includeSubDomains] - x-ms-ratelimit-remaining-subscription-writes: ['1187'] + x-ms-ratelimit-remaining-subscription-writes: ['1198'] status: {code: 202, message: Accepted} version: 1 diff --git a/src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_upload_128mb_file.yaml b/src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_upload_128mb_file.yaml deleted file mode 100644 index 931b80f41..000000000 --- a/src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_upload_128mb_file.yaml +++ /dev/null @@ -1,351 +0,0 @@ -interactions: -- request: - body: '{"tags": {"use": "az-test"}, "location": "westus"}' - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [group create] - Connection: [keep-alive] - Content-Length: ['50'] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/3.5.3 (Darwin-16.5.0-x86_64-i386-64bit) requests/2.9.1 msrest/0.4.6 - msrest_azure/0.4.7 resourcemanagementclient/0.30.2 Azure-SDK-For-Python - AZURECLI/2.0.2+dev] - accept-language: [en-US] - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2016-09-01 - response: - body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"westus","tags":{"use":"az-test"},"properties":{"provisioningState":"Succeeded"}}'} - headers: - cache-control: [no-cache] - content-length: ['326'] - content-type: [application/json; charset=utf-8] - date: ['Thu, 06 Apr 2017 22:46:44 GMT'] - expires: ['-1'] - pragma: [no-cache] - strict-transport-security: [max-age=31536000; includeSubDomains] - x-ms-ratelimit-remaining-subscription-writes: ['1181'] - status: {code: 201, message: Created} -- request: - body: '{"location": "westus", "kind": "Storage", "sku": {"name": "Standard_LRS"}}' - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [storage account create] - Connection: [keep-alive] - Content-Length: ['74'] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/3.5.3 (Darwin-16.5.0-x86_64-i386-64bit) requests/2.9.1 msrest/0.4.6 - msrest_azure/0.4.7 storagemanagementclient/0.31.0 Azure-SDK-For-Python AZURECLI/2.0.2+dev] - accept-language: [en-US] - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002?api-version=2016-12-01 - response: - body: {string: ''} - headers: - cache-control: [no-cache] - content-length: ['0'] - date: ['Thu, 06 Apr 2017 22:46:47 GMT'] - expires: ['-1'] - location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/02c80b8f-45b5-4f91-a1dc-b69e1631c9a5?monitor=true&api-version=2016-12-01'] - pragma: [no-cache] - retry-after: ['17'] - server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0] - strict-transport-security: [max-age=31536000; includeSubDomains] - x-ms-ratelimit-remaining-subscription-writes: ['1191'] - status: {code: 202, message: Accepted} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [storage account create] - Connection: [keep-alive] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/3.5.3 (Darwin-16.5.0-x86_64-i386-64bit) requests/2.9.1 msrest/0.4.6 - msrest_azure/0.4.7 storagemanagementclient/0.31.0 Azure-SDK-For-Python AZURECLI/2.0.2+dev] - accept-language: [en-US] - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/02c80b8f-45b5-4f91-a1dc-b69e1631c9a5?monitor=true&api-version=2016-12-01 - response: - body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002","kind":"Storage","location":"westus","name":"clitest000002","properties":{"creationTime":"2017-04-06T22:46:46.8788086Z","primaryEndpoints":{"blob":"https://clitest000002.blob.core.windows.net/","file":"https://clitest000002.file.core.windows.net/","queue":"https://clitest000002.queue.core.windows.net/","table":"https://clitest000002.table.core.windows.net/"},"primaryLocation":"westus","provisioningState":"Succeeded","statusOfPrimary":"available"},"sku":{"name":"Standard_LRS","tier":"Standard"},"tags":{},"type":"Microsoft.Storage/storageAccounts"} - -'} - headers: - cache-control: [no-cache] - content-length: ['827'] - content-type: [application/json] - date: ['Thu, 06 Apr 2017 22:47:04 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [storage account keys list] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/3.5.3 (Darwin-16.5.0-x86_64-i386-64bit) requests/2.9.1 msrest/0.4.6 - msrest_azure/0.4.7 storagemanagementclient/0.31.0 Azure-SDK-For-Python AZURECLI/2.0.2+dev] - accept-language: [en-US] - method: POST - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/listKeys?api-version=2016-12-01 - response: - body: {string: '{"keys":[{"keyName":"key1","permissions":"Full","value":"2UCmHQHGlxjqa0ZdRpNzmV6p3ke+tZtcg6NN/HaPPolupQTZdCmda98vn+Gs1sOp/ZwQYL6y8OA5DkfjVYlniQ=="},{"keyName":"key2","permissions":"Full","value":"rTsk5ORp9aKR7Yis5xwKuOsKq3SmFtAFa2c9ASV14lTT3AZ5g2pm/kIvPnO3Y03DyqGG2iYYeAbQQjjtPlFlkA=="}]} - -'} - headers: - cache-control: [no-cache] - content-length: ['289'] - content-type: [application/json] - date: ['Thu, 06 Apr 2017 22:47:07 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-ms-ratelimit-remaining-subscription-writes: ['1185'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Connection: [keep-alive] - Content-Length: ['0'] - User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:47:08 GMT'] - x-ms-version: ['2016-05-31'] - method: PUT - uri: https://clitest000002.blob.core.windows.net/cont000004?restype=container - response: - body: {string: ''} - headers: - date: ['Thu, 06 Apr 2017 22:47:12 GMT'] - etag: ['"0x8D47D3EDD76D0D9"'] - last-modified: ['Thu, 06 Apr 2017 22:47:12 GMT'] - server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] - transfer-encoding: [chunked] - x-ms-version: ['2016-05-31'] - status: {code: 201, message: Created} -- request: - body: null - headers: - Connection: [keep-alive] - User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:47:09 GMT'] - x-ms-version: ['2016-05-31'] - method: HEAD - uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 - response: - body: {string: ''} - headers: - date: ['Thu, 06 Apr 2017 22:47:09 GMT'] - server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] - transfer-encoding: [chunked] - x-ms-version: ['2016-05-31'] - status: {code: 404, message: The specified blob does not exist.} -- request: - body: '!!! The request body has been omitted from the recording because its size - 134217728 is larger than 128KB. !!!' - headers: - Connection: [keep-alive] - Content-Length: ['134217728'] - User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-blob-type: [BlockBlob] - x-ms-date: ['Thu, 06 Apr 2017 22:47:10 GMT'] - x-ms-version: ['2016-05-31'] - method: PUT - uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 - response: - body: {string: ''} - headers: - content-md5: [/enggYKBg25PwO3+3iuHYg==] - date: ['Thu, 06 Apr 2017 22:47:16 GMT'] - etag: ['"0x8D47D3EE03A5159"'] - last-modified: ['Thu, 06 Apr 2017 22:47:16 GMT'] - server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] - transfer-encoding: [chunked] - x-ms-request-server-encrypted: ['false'] - x-ms-version: ['2016-05-31'] - status: {code: 201, message: Created} -- request: - body: null - headers: - Connection: [keep-alive] - User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:47:17 GMT'] - x-ms-version: ['2016-05-31'] - method: HEAD - uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 - response: - body: {string: ''} - headers: - accept-ranges: [bytes] - content-length: ['134217728'] - content-md5: [/enggYKBg25PwO3+3iuHYg==] - content-type: [application/octet-stream] - date: ['Thu, 06 Apr 2017 22:47:17 GMT'] - etag: ['"0x8D47D3EE03A5159"'] - last-modified: ['Thu, 06 Apr 2017 22:47:16 GMT'] - server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] - x-ms-blob-type: [BlockBlob] - x-ms-lease-state: [available] - x-ms-lease-status: [unlocked] - x-ms-server-encrypted: ['false'] - x-ms-version: ['2016-05-31'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Connection: [keep-alive] - User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:47:19 GMT'] - x-ms-version: ['2016-05-31'] - method: HEAD - uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 - response: - body: {string: ''} - headers: - accept-ranges: [bytes] - content-length: ['134217728'] - content-md5: [/enggYKBg25PwO3+3iuHYg==] - content-type: [application/octet-stream] - date: ['Thu, 06 Apr 2017 22:47:18 GMT'] - etag: ['"0x8D47D3EE03A5159"'] - last-modified: ['Thu, 06 Apr 2017 22:47:16 GMT'] - server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] - x-ms-blob-type: [BlockBlob] - x-ms-lease-state: [available] - x-ms-lease-status: [unlocked] - x-ms-server-encrypted: ['false'] - x-ms-version: ['2016-05-31'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Connection: [keep-alive] - User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:47:21 GMT'] - x-ms-version: ['2016-05-31'] - method: HEAD - uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 - response: - body: {string: ''} - headers: - accept-ranges: [bytes] - content-length: ['134217728'] - content-md5: [/enggYKBg25PwO3+3iuHYg==] - content-type: [application/octet-stream] - date: ['Thu, 06 Apr 2017 22:47:21 GMT'] - etag: ['"0x8D47D3EE03A5159"'] - last-modified: ['Thu, 06 Apr 2017 22:47:16 GMT'] - server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] - x-ms-blob-type: [BlockBlob] - x-ms-lease-state: [available] - x-ms-lease-status: [unlocked] - x-ms-server-encrypted: ['false'] - x-ms-version: ['2016-05-31'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Connection: [keep-alive] - Content-Length: ['0'] - User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-blob-content-md5: [/enggYKBg25PwO3+3iuHYg==] - x-ms-blob-content-type: [application/test-content] - x-ms-date: ['Thu, 06 Apr 2017 22:47:21 GMT'] - x-ms-version: ['2016-05-31'] - method: PUT - uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003?comp=properties - response: - body: {string: ''} - headers: - date: ['Thu, 06 Apr 2017 22:47:21 GMT'] - etag: ['"0x8D47D3EE2DCEC27"'] - last-modified: ['Thu, 06 Apr 2017 22:47:21 GMT'] - server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] - transfer-encoding: [chunked] - x-ms-version: ['2016-05-31'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Connection: [keep-alive] - User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:47:22 GMT'] - x-ms-version: ['2016-05-31'] - method: HEAD - uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 - response: - body: {string: ''} - headers: - accept-ranges: [bytes] - content-length: ['134217728'] - content-md5: [/enggYKBg25PwO3+3iuHYg==] - content-type: [application/test-content] - date: ['Thu, 06 Apr 2017 22:47:22 GMT'] - etag: ['"0x8D47D3EE2DCEC27"'] - last-modified: ['Thu, 06 Apr 2017 22:47:21 GMT'] - server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] - x-ms-blob-type: [BlockBlob] - x-ms-lease-state: [available] - x-ms-lease-status: [unlocked] - x-ms-server-encrypted: ['false'] - x-ms-version: ['2016-05-31'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Connection: [keep-alive] - User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:47:23 GMT'] - x-ms-version: ['2016-05-31'] - method: GET - uri: https://clitest000002.blob.core.windows.net/?comp=properties&restype=service - response: - body: {string: "\uFEFF1.0falsefalsefalsefalse1.0truetruetrue71.0falsefalse"} - headers: - content-type: [application/xml] - date: ['Thu, 06 Apr 2017 22:47:23 GMT'] - server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] - transfer-encoding: [chunked] - x-ms-version: ['2016-05-31'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [group delete] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/3.5.3 (Darwin-16.5.0-x86_64-i386-64bit) requests/2.9.1 msrest/0.4.6 - msrest_azure/0.4.7 resourcemanagementclient/0.30.2 Azure-SDK-For-Python - AZURECLI/2.0.2+dev] - accept-language: [en-US] - method: DELETE - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2016-09-01 - response: - body: {string: ''} - headers: - cache-control: [no-cache] - content-length: ['0'] - date: ['Thu, 06 Apr 2017 22:47:26 GMT'] - expires: ['-1'] - location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkc3RTJDQ0M5QTA1RTY3NjE0MzE3QzVCOTI2NUE4Q0I3MUREMnw1OUQ5QzI4MDlBRENCQUZFLVdFU1RVUyIsImpvYkxvY2F0aW9uIjoid2VzdHVzIn0?api-version=2016-09-01'] - pragma: [no-cache] - retry-after: ['15'] - strict-transport-security: [max-age=31536000; includeSubDomains] - x-ms-ratelimit-remaining-subscription-writes: ['1185'] - status: {code: 202, message: Accepted} -version: 1 diff --git a/src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_upload_64mb_file.yaml b/src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_upload_64mb_file.yaml deleted file mode 100644 index 4ec52fda7..000000000 --- a/src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_upload_64mb_file.yaml +++ /dev/null @@ -1,351 +0,0 @@ -interactions: -- request: - body: '{"location": "westus", "tags": {"use": "az-test"}}' - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [group create] - Connection: [keep-alive] - Content-Length: ['50'] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/3.5.3 (Darwin-16.5.0-x86_64-i386-64bit) requests/2.9.1 msrest/0.4.6 - msrest_azure/0.4.7 resourcemanagementclient/0.30.2 Azure-SDK-For-Python - AZURECLI/2.0.2+dev] - accept-language: [en-US] - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2016-09-01 - response: - body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"westus","tags":{"use":"az-test"},"properties":{"provisioningState":"Succeeded"}}'} - headers: - cache-control: [no-cache] - content-length: ['326'] - content-type: [application/json; charset=utf-8] - date: ['Thu, 06 Apr 2017 22:43:56 GMT'] - expires: ['-1'] - pragma: [no-cache] - strict-transport-security: [max-age=31536000; includeSubDomains] - x-ms-ratelimit-remaining-subscription-writes: ['1190'] - status: {code: 201, message: Created} -- request: - body: '{"kind": "Storage", "location": "westus", "sku": {"name": "Standard_LRS"}}' - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [storage account create] - Connection: [keep-alive] - Content-Length: ['74'] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/3.5.3 (Darwin-16.5.0-x86_64-i386-64bit) requests/2.9.1 msrest/0.4.6 - msrest_azure/0.4.7 storagemanagementclient/0.31.0 Azure-SDK-For-Python AZURECLI/2.0.2+dev] - accept-language: [en-US] - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002?api-version=2016-12-01 - response: - body: {string: ''} - headers: - cache-control: [no-cache] - content-length: ['0'] - date: ['Thu, 06 Apr 2017 22:43:59 GMT'] - expires: ['-1'] - location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/df5367e4-1db8-4020-8de4-06eb2698559b?monitor=true&api-version=2016-12-01'] - pragma: [no-cache] - retry-after: ['17'] - server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0] - strict-transport-security: [max-age=31536000; includeSubDomains] - x-ms-ratelimit-remaining-subscription-writes: ['1182'] - status: {code: 202, message: Accepted} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [storage account create] - Connection: [keep-alive] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/3.5.3 (Darwin-16.5.0-x86_64-i386-64bit) requests/2.9.1 msrest/0.4.6 - msrest_azure/0.4.7 storagemanagementclient/0.31.0 Azure-SDK-For-Python AZURECLI/2.0.2+dev] - accept-language: [en-US] - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/df5367e4-1db8-4020-8de4-06eb2698559b?monitor=true&api-version=2016-12-01 - response: - body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002","kind":"Storage","location":"westus","name":"clitest000002","properties":{"creationTime":"2017-04-06T22:43:58.9753235Z","primaryEndpoints":{"blob":"https://clitest000002.blob.core.windows.net/","file":"https://clitest000002.file.core.windows.net/","queue":"https://clitest000002.queue.core.windows.net/","table":"https://clitest000002.table.core.windows.net/"},"primaryLocation":"westus","provisioningState":"Succeeded","statusOfPrimary":"available"},"sku":{"name":"Standard_LRS","tier":"Standard"},"tags":{},"type":"Microsoft.Storage/storageAccounts"} - -'} - headers: - cache-control: [no-cache] - content-length: ['827'] - content-type: [application/json] - date: ['Thu, 06 Apr 2017 22:44:16 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [storage account keys list] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/3.5.3 (Darwin-16.5.0-x86_64-i386-64bit) requests/2.9.1 msrest/0.4.6 - msrest_azure/0.4.7 storagemanagementclient/0.31.0 Azure-SDK-For-Python AZURECLI/2.0.2+dev] - accept-language: [en-US] - method: POST - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/listKeys?api-version=2016-12-01 - response: - body: {string: '{"keys":[{"keyName":"key1","permissions":"Full","value":"ogRvE9w5ti+Vk6stnGl7ffm0ULeZPDEHyIEv2n6DhCdo5WRtiQpYst67ES6Mot5h3kyPK9lQTbbUgWUeuIeCgg=="},{"keyName":"key2","permissions":"Full","value":"0Dlsomo6g2XHyR1ooW+N2WqSnd2U4rEVn4Ew2UVTNrzR3EfsQcYoWVwigfr44VyimgBd7YGoqZMtAoiLEq4wEw=="}]} - -'} - headers: - cache-control: [no-cache] - content-length: ['289'] - content-type: [application/json] - date: ['Thu, 06 Apr 2017 22:44:18 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-ms-ratelimit-remaining-subscription-writes: ['1185'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Connection: [keep-alive] - Content-Length: ['0'] - User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:44:19 GMT'] - x-ms-version: ['2016-05-31'] - method: PUT - uri: https://clitest000002.blob.core.windows.net/cont000004?restype=container - response: - body: {string: ''} - headers: - date: ['Thu, 06 Apr 2017 22:44:22 GMT'] - etag: ['"0x8D47D3E7871D125"'] - last-modified: ['Thu, 06 Apr 2017 22:44:22 GMT'] - server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] - transfer-encoding: [chunked] - x-ms-version: ['2016-05-31'] - status: {code: 201, message: Created} -- request: - body: null - headers: - Connection: [keep-alive] - User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:44:21 GMT'] - x-ms-version: ['2016-05-31'] - method: HEAD - uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 - response: - body: {string: ''} - headers: - date: ['Thu, 06 Apr 2017 22:44:21 GMT'] - server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] - transfer-encoding: [chunked] - x-ms-version: ['2016-05-31'] - status: {code: 404, message: The specified blob does not exist.} -- request: - body: '!!! The request body has been omitted from the recording because its size - 67108864 is larger than 128KB. !!!' - headers: - Connection: [keep-alive] - Content-Length: ['67108864'] - User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-blob-type: [BlockBlob] - x-ms-date: ['Thu, 06 Apr 2017 22:44:22 GMT'] - x-ms-version: ['2016-05-31'] - method: PUT - uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 - response: - body: {string: ''} - headers: - content-md5: [f2FNqTKc066/WbkarcML8A==] - date: ['Thu, 06 Apr 2017 22:44:27 GMT'] - etag: ['"0x8D47D3E7BCF55F3"'] - last-modified: ['Thu, 06 Apr 2017 22:44:28 GMT'] - server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] - transfer-encoding: [chunked] - x-ms-request-server-encrypted: ['false'] - x-ms-version: ['2016-05-31'] - status: {code: 201, message: Created} -- request: - body: null - headers: - Connection: [keep-alive] - User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:44:29 GMT'] - x-ms-version: ['2016-05-31'] - method: HEAD - uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 - response: - body: {string: ''} - headers: - accept-ranges: [bytes] - content-length: ['67108864'] - content-md5: [f2FNqTKc066/WbkarcML8A==] - content-type: [application/octet-stream] - date: ['Thu, 06 Apr 2017 22:44:29 GMT'] - etag: ['"0x8D47D3E7BCF55F3"'] - last-modified: ['Thu, 06 Apr 2017 22:44:28 GMT'] - server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] - x-ms-blob-type: [BlockBlob] - x-ms-lease-state: [available] - x-ms-lease-status: [unlocked] - x-ms-server-encrypted: ['false'] - x-ms-version: ['2016-05-31'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Connection: [keep-alive] - User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:44:30 GMT'] - x-ms-version: ['2016-05-31'] - method: HEAD - uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 - response: - body: {string: ''} - headers: - accept-ranges: [bytes] - content-length: ['67108864'] - content-md5: [f2FNqTKc066/WbkarcML8A==] - content-type: [application/octet-stream] - date: ['Thu, 06 Apr 2017 22:44:30 GMT'] - etag: ['"0x8D47D3E7BCF55F3"'] - last-modified: ['Thu, 06 Apr 2017 22:44:28 GMT'] - server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] - x-ms-blob-type: [BlockBlob] - x-ms-lease-state: [available] - x-ms-lease-status: [unlocked] - x-ms-server-encrypted: ['false'] - x-ms-version: ['2016-05-31'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Connection: [keep-alive] - User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:44:32 GMT'] - x-ms-version: ['2016-05-31'] - method: HEAD - uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 - response: - body: {string: ''} - headers: - accept-ranges: [bytes] - content-length: ['67108864'] - content-md5: [f2FNqTKc066/WbkarcML8A==] - content-type: [application/octet-stream] - date: ['Thu, 06 Apr 2017 22:44:32 GMT'] - etag: ['"0x8D47D3E7BCF55F3"'] - last-modified: ['Thu, 06 Apr 2017 22:44:28 GMT'] - server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] - x-ms-blob-type: [BlockBlob] - x-ms-lease-state: [available] - x-ms-lease-status: [unlocked] - x-ms-server-encrypted: ['false'] - x-ms-version: ['2016-05-31'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Connection: [keep-alive] - Content-Length: ['0'] - User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-blob-content-md5: [f2FNqTKc066/WbkarcML8A==] - x-ms-blob-content-type: [application/test-content] - x-ms-date: ['Thu, 06 Apr 2017 22:44:32 GMT'] - x-ms-version: ['2016-05-31'] - method: PUT - uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003?comp=properties - response: - body: {string: ''} - headers: - date: ['Thu, 06 Apr 2017 22:44:31 GMT'] - etag: ['"0x8D47D3E7E473169"'] - last-modified: ['Thu, 06 Apr 2017 22:44:32 GMT'] - server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] - transfer-encoding: [chunked] - x-ms-version: ['2016-05-31'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Connection: [keep-alive] - User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:44:33 GMT'] - x-ms-version: ['2016-05-31'] - method: HEAD - uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 - response: - body: {string: ''} - headers: - accept-ranges: [bytes] - content-length: ['67108864'] - content-md5: [f2FNqTKc066/WbkarcML8A==] - content-type: [application/test-content] - date: ['Thu, 06 Apr 2017 22:44:33 GMT'] - etag: ['"0x8D47D3E7E473169"'] - last-modified: ['Thu, 06 Apr 2017 22:44:32 GMT'] - server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] - x-ms-blob-type: [BlockBlob] - x-ms-lease-state: [available] - x-ms-lease-status: [unlocked] - x-ms-server-encrypted: ['false'] - x-ms-version: ['2016-05-31'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Connection: [keep-alive] - User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:44:35 GMT'] - x-ms-version: ['2016-05-31'] - method: GET - uri: https://clitest000002.blob.core.windows.net/?restype=service&comp=properties - response: - body: {string: "\uFEFF1.0falsefalsefalsefalse1.0truetruetrue71.0falsefalse"} - headers: - content-type: [application/xml] - date: ['Thu, 06 Apr 2017 22:44:35 GMT'] - server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] - transfer-encoding: [chunked] - x-ms-version: ['2016-05-31'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [group delete] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/3.5.3 (Darwin-16.5.0-x86_64-i386-64bit) requests/2.9.1 msrest/0.4.6 - msrest_azure/0.4.7 resourcemanagementclient/0.30.2 Azure-SDK-For-Python - AZURECLI/2.0.2+dev] - accept-language: [en-US] - method: DELETE - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2016-09-01 - response: - body: {string: ''} - headers: - cache-control: [no-cache] - content-length: ['0'] - date: ['Thu, 06 Apr 2017 22:44:36 GMT'] - expires: ['-1'] - location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkc3NkJCODZENDVBODc1QkUxM0I4Q0IwMDhEMkQ2N0YxNDVGRnxFOTk2Q0YyMzBCMDQ0NzE2LVdFU1RVUyIsImpvYkxvY2F0aW9uIjoid2VzdHVzIn0?api-version=2016-09-01'] - pragma: [no-cache] - retry-after: ['15'] - strict-transport-security: [max-age=31536000; includeSubDomains] - x-ms-ratelimit-remaining-subscription-writes: ['1186'] - status: {code: 202, message: Accepted} -version: 1 diff --git a/src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_upload_midsize_file.yaml b/src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_upload_midsize_file.yaml index 42e4259aa..d8a0e50bb 100644 --- a/src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_upload_midsize_file.yaml +++ b/src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_upload_midsize_file.yaml @@ -20,14 +20,14 @@ interactions: cache-control: [no-cache] content-length: ['326'] content-type: [application/json; charset=utf-8] - date: ['Thu, 06 Apr 2017 22:44:39 GMT'] + date: ['Wed, 12 Apr 2017 22:13:56 GMT'] expires: ['-1'] pragma: [no-cache] strict-transport-security: [max-age=31536000; includeSubDomains] - x-ms-ratelimit-remaining-subscription-writes: ['1185'] + x-ms-ratelimit-remaining-subscription-writes: ['1197'] status: {code: 201, message: Created} - request: - body: '{"kind": "Storage", "location": "westus", "sku": {"name": "Standard_LRS"}}' + body: '{"location": "westus", "sku": {"name": "Standard_LRS"}, "kind": "Storage"}' headers: Accept: [application/json] Accept-Encoding: ['gzip, deflate'] @@ -45,14 +45,14 @@ interactions: headers: cache-control: [no-cache] content-length: ['0'] - date: ['Thu, 06 Apr 2017 22:44:41 GMT'] + date: ['Wed, 12 Apr 2017 22:13:56 GMT'] expires: ['-1'] - location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/e91d335e-1e2e-4560-86e2-bfa423120338?monitor=true&api-version=2016-12-01'] + location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/361b2822-3b5f-4c27-80c4-d44e2e4f9940?monitor=true&api-version=2016-12-01'] pragma: [no-cache] retry-after: ['17'] server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0] strict-transport-security: [max-age=31536000; includeSubDomains] - x-ms-ratelimit-remaining-subscription-writes: ['1192'] + x-ms-ratelimit-remaining-subscription-writes: ['1196'] status: {code: 202, message: Accepted} - request: body: null @@ -66,16 +66,16 @@ interactions: msrest_azure/0.4.7 storagemanagementclient/0.31.0 Azure-SDK-For-Python AZURECLI/2.0.2+dev] accept-language: [en-US] method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/e91d335e-1e2e-4560-86e2-bfa423120338?monitor=true&api-version=2016-12-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/361b2822-3b5f-4c27-80c4-d44e2e4f9940?monitor=true&api-version=2016-12-01 response: - body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002","kind":"Storage","location":"westus","name":"clitest000002","properties":{"creationTime":"2017-04-06T22:44:40.9213297Z","primaryEndpoints":{"blob":"https://clitest000002.blob.core.windows.net/","file":"https://clitest000002.file.core.windows.net/","queue":"https://clitest000002.queue.core.windows.net/","table":"https://clitest000002.table.core.windows.net/"},"primaryLocation":"westus","provisioningState":"Succeeded","statusOfPrimary":"available"},"sku":{"name":"Standard_LRS","tier":"Standard"},"tags":{},"type":"Microsoft.Storage/storageAccounts"} + body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002","kind":"Storage","location":"westus","name":"clitest000002","properties":{"creationTime":"2017-04-12T22:13:57.8690089Z","primaryEndpoints":{"blob":"https://clitest000002.blob.core.windows.net/","file":"https://clitest000002.file.core.windows.net/","queue":"https://clitest000002.queue.core.windows.net/","table":"https://clitest000002.table.core.windows.net/"},"primaryLocation":"westus","provisioningState":"Succeeded","statusOfPrimary":"available","supportsHttpsTrafficOnly":false},"sku":{"name":"Standard_LRS","tier":"Standard"},"tags":{},"type":"Microsoft.Storage/storageAccounts"} '} headers: cache-control: [no-cache] - content-length: ['827'] + content-length: ['860'] content-type: [application/json] - date: ['Thu, 06 Apr 2017 22:44:58 GMT'] + date: ['Wed, 12 Apr 2017 22:14:14 GMT'] expires: ['-1'] pragma: [no-cache] server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0] @@ -98,21 +98,21 @@ interactions: method: POST uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/listKeys?api-version=2016-12-01 response: - body: {string: '{"keys":[{"keyName":"key1","permissions":"Full","value":"EjGK+f1lj+o4ljNHNzEUHxyzIJb1INLw0AqOtbRbJnwx+2fYQ21BG30wnhoSxb7m0pHhg6VSpCQihjEV8060dA=="},{"keyName":"key2","permissions":"Full","value":"+Cvkf3KUgHtymLEw9wS4Wo7lprPpwxFBFiBanJPa/c76AQpks7rnzONir4CaE4zCdLMEmW3BJK+PVmCGf+qtpA=="}]} + body: {string: '{"keys":[{"keyName":"key1","permissions":"Full","value":"75a8Lh7bM693G2p3nooMLeAz0vCZFHMoTCceiwKJxksq9sPsSNZVK0x0vt9VhwO2uBI45Jidp5x/mqlKBZVGtQ=="},{"keyName":"key2","permissions":"Full","value":"Ks03dk48FUn6PJyV7wHOckUrxj2rzxQwN5fH0htbsNDj1fLonFA3Eim33J2gAcea8QGibv0d1Uk0Jsg3ZijODA=="}]} '} headers: cache-control: [no-cache] content-length: ['289'] content-type: [application/json] - date: ['Thu, 06 Apr 2017 22:44:59 GMT'] + date: ['Wed, 12 Apr 2017 22:14:15 GMT'] expires: ['-1'] pragma: [no-cache] server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0] strict-transport-security: [max-age=31536000; includeSubDomains] transfer-encoding: [chunked] vary: [Accept-Encoding] - x-ms-ratelimit-remaining-subscription-writes: ['1185'] + x-ms-ratelimit-remaining-subscription-writes: ['1196'] status: {code: 200, message: OK} - request: body: null @@ -120,16 +120,16 @@ interactions: Connection: [keep-alive] Content-Length: ['0'] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:45:01 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:15 GMT'] x-ms-version: ['2016-05-31'] method: PUT uri: https://clitest000002.blob.core.windows.net/cont000004?restype=container response: body: {string: ''} headers: - date: ['Thu, 06 Apr 2017 22:45:03 GMT'] - etag: ['"0x8D47D3E916C8947"'] - last-modified: ['Thu, 06 Apr 2017 22:45:04 GMT'] + date: ['Wed, 12 Apr 2017 22:14:14 GMT'] + etag: ['"0x8D481F141A0A86B"'] + last-modified: ['Wed, 12 Apr 2017 22:14:15 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] transfer-encoding: [chunked] x-ms-version: ['2016-05-31'] @@ -139,14 +139,14 @@ interactions: headers: Connection: [keep-alive] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:45:02 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:15 GMT'] x-ms-version: ['2016-05-31'] method: HEAD uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 response: body: {string: ''} headers: - date: ['Thu, 06 Apr 2017 22:45:07 GMT'] + date: ['Wed, 12 Apr 2017 22:14:15 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] transfer-encoding: [chunked] x-ms-version: ['2016-05-31'] @@ -159,7 +159,7 @@ interactions: Content-Length: ['4194304'] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] x-ms-blob-type: [BlockBlob] - x-ms-date: ['Thu, 06 Apr 2017 22:45:03 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:16 GMT'] x-ms-version: ['2016-05-31'] method: PUT uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 @@ -167,9 +167,9 @@ interactions: body: {string: ''} headers: content-md5: [tc+p1sj+vWGPkawoQ9UKHA==] - date: ['Thu, 06 Apr 2017 22:45:07 GMT'] - etag: ['"0x8D47D3E90F7F713"'] - last-modified: ['Thu, 06 Apr 2017 22:45:03 GMT'] + date: ['Wed, 12 Apr 2017 22:14:16 GMT'] + etag: ['"0x8D481F1424F0EC7"'] + last-modified: ['Wed, 12 Apr 2017 22:14:16 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] transfer-encoding: [chunked] x-ms-request-server-encrypted: ['false'] @@ -180,7 +180,7 @@ interactions: headers: Connection: [keep-alive] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:45:05 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:16 GMT'] x-ms-version: ['2016-05-31'] method: HEAD uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 @@ -191,9 +191,9 @@ interactions: content-length: ['4194304'] content-md5: [tc+p1sj+vWGPkawoQ9UKHA==] content-type: [application/octet-stream] - date: ['Thu, 06 Apr 2017 22:45:05 GMT'] - etag: ['"0x8D47D3E90F7F713"'] - last-modified: ['Thu, 06 Apr 2017 22:45:03 GMT'] + date: ['Wed, 12 Apr 2017 22:14:16 GMT'] + etag: ['"0x8D481F1424F0EC7"'] + last-modified: ['Wed, 12 Apr 2017 22:14:16 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] x-ms-blob-type: [BlockBlob] x-ms-lease-state: [available] @@ -206,7 +206,7 @@ interactions: headers: Connection: [keep-alive] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:45:06 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:16 GMT'] x-ms-version: ['2016-05-31'] method: HEAD uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 @@ -217,9 +217,9 @@ interactions: content-length: ['4194304'] content-md5: [tc+p1sj+vWGPkawoQ9UKHA==] content-type: [application/octet-stream] - date: ['Thu, 06 Apr 2017 22:45:08 GMT'] - etag: ['"0x8D47D3E90F7F713"'] - last-modified: ['Thu, 06 Apr 2017 22:45:03 GMT'] + date: ['Wed, 12 Apr 2017 22:14:16 GMT'] + etag: ['"0x8D481F1424F0EC7"'] + last-modified: ['Wed, 12 Apr 2017 22:14:16 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] x-ms-blob-type: [BlockBlob] x-ms-lease-state: [available] @@ -232,7 +232,7 @@ interactions: headers: Connection: [keep-alive] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:45:08 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:17 GMT'] x-ms-version: ['2016-05-31'] method: HEAD uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 @@ -243,9 +243,9 @@ interactions: content-length: ['4194304'] content-md5: [tc+p1sj+vWGPkawoQ9UKHA==] content-type: [application/octet-stream] - date: ['Thu, 06 Apr 2017 22:45:08 GMT'] - etag: ['"0x8D47D3E90F7F713"'] - last-modified: ['Thu, 06 Apr 2017 22:45:03 GMT'] + date: ['Wed, 12 Apr 2017 22:14:16 GMT'] + etag: ['"0x8D481F1424F0EC7"'] + last-modified: ['Wed, 12 Apr 2017 22:14:16 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] x-ms-blob-type: [BlockBlob] x-ms-lease-state: [available] @@ -261,16 +261,16 @@ interactions: User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] x-ms-blob-content-md5: [tc+p1sj+vWGPkawoQ9UKHA==] x-ms-blob-content-type: [application/test-content] - x-ms-date: ['Thu, 06 Apr 2017 22:45:08 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:17 GMT'] x-ms-version: ['2016-05-31'] method: PUT uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003?comp=properties response: body: {string: ''} headers: - date: ['Thu, 06 Apr 2017 22:45:08 GMT'] - etag: ['"0x8D47D3E93C26C3A"'] - last-modified: ['Thu, 06 Apr 2017 22:45:08 GMT'] + date: ['Wed, 12 Apr 2017 22:14:16 GMT'] + etag: ['"0x8D481F142BE38E4"'] + last-modified: ['Wed, 12 Apr 2017 22:14:17 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] transfer-encoding: [chunked] x-ms-version: ['2016-05-31'] @@ -280,7 +280,7 @@ interactions: headers: Connection: [keep-alive] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:45:09 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:17 GMT'] x-ms-version: ['2016-05-31'] method: HEAD uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 @@ -291,9 +291,9 @@ interactions: content-length: ['4194304'] content-md5: [tc+p1sj+vWGPkawoQ9UKHA==] content-type: [application/test-content] - date: ['Thu, 06 Apr 2017 22:45:09 GMT'] - etag: ['"0x8D47D3E93C26C3A"'] - last-modified: ['Thu, 06 Apr 2017 22:45:08 GMT'] + date: ['Wed, 12 Apr 2017 22:14:16 GMT'] + etag: ['"0x8D481F142BE38E4"'] + last-modified: ['Wed, 12 Apr 2017 22:14:17 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] x-ms-blob-type: [BlockBlob] x-ms-lease-state: [available] @@ -306,16 +306,16 @@ interactions: headers: Connection: [keep-alive] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:45:10 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:17 GMT'] x-ms-version: ['2016-05-31'] method: GET - uri: https://clitest000002.blob.core.windows.net/?restype=service&comp=properties + uri: https://clitest000002.blob.core.windows.net/?comp=properties&restype=service response: body: {string: "\uFEFF1.0falsefalsefalsefalse1.0truetruetrue71.0falsefalse"} headers: content-type: [application/xml] - date: ['Thu, 06 Apr 2017 22:45:09 GMT'] + date: ['Wed, 12 Apr 2017 22:14:16 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] transfer-encoding: [chunked] x-ms-version: ['2016-05-31'] @@ -325,7 +325,7 @@ interactions: headers: Connection: [keep-alive] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:45:11 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:17 GMT'] x-ms-range: [bytes=0-33554431] x-ms-version: ['2016-05-31'] method: GET @@ -339,9 +339,9 @@ interactions: content-length: ['4194304'] content-range: [bytes 0-4194303/4194304] content-type: [application/test-content] - date: ['Thu, 06 Apr 2017 22:45:11 GMT'] - etag: ['"0x8D47D3E93C26C3A"'] - last-modified: ['Thu, 06 Apr 2017 22:45:08 GMT'] + date: ['Wed, 12 Apr 2017 22:14:17 GMT'] + etag: ['"0x8D481F142BE38E4"'] + last-modified: ['Wed, 12 Apr 2017 22:14:17 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] x-ms-blob-content-md5: [tc+p1sj+vWGPkawoQ9UKHA==] x-ms-blob-type: [BlockBlob] @@ -370,12 +370,12 @@ interactions: headers: cache-control: [no-cache] content-length: ['0'] - date: ['Thu, 06 Apr 2017 22:45:12 GMT'] + date: ['Wed, 12 Apr 2017 22:14:18 GMT'] expires: ['-1'] - location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkdDREZBQkYzRkY0RTE3MTA4ODc0ODBDQTM1M0E0RjdCOUI3MnxCMTREQjEzN0Y1NDQ5ODA0LVdFU1RVUyIsImpvYkxvY2F0aW9uIjoid2VzdHVzIn0?api-version=2016-09-01'] + location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkc3NDRDRTYzOENEREMwRTMyQThBRjVCMzM3ODVCMTk3MDI1QXw4NDZGMzhFM0M3NDY2N0IyLVdFU1RVUyIsImpvYkxvY2F0aW9uIjoid2VzdHVzIn0?api-version=2016-09-01'] pragma: [no-cache] retry-after: ['15'] strict-transport-security: [max-age=31536000; includeSubDomains] - x-ms-ratelimit-remaining-subscription-writes: ['1189'] + x-ms-ratelimit-remaining-subscription-writes: ['1194'] status: {code: 202, message: Accepted} version: 1 diff --git a/src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_upload_small_file.yaml b/src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_upload_small_file.yaml index 60723f3ff..3370c920a 100644 --- a/src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_upload_small_file.yaml +++ b/src/command_modules/azure-cli-storage/tests/recordings/test_storage_blob_upload_small_file.yaml @@ -20,14 +20,14 @@ interactions: cache-control: [no-cache] content-length: ['326'] content-type: [application/json; charset=utf-8] - date: ['Thu, 06 Apr 2017 22:45:14 GMT'] + date: ['Wed, 12 Apr 2017 22:14:18 GMT'] expires: ['-1'] pragma: [no-cache] strict-transport-security: [max-age=31536000; includeSubDomains] - x-ms-ratelimit-remaining-subscription-writes: ['1186'] + x-ms-ratelimit-remaining-subscription-writes: ['1197'] status: {code: 201, message: Created} - request: - body: '{"kind": "Storage", "location": "westus", "sku": {"name": "Standard_LRS"}}' + body: '{"location": "westus", "sku": {"name": "Standard_LRS"}, "kind": "Storage"}' headers: Accept: [application/json] Accept-Encoding: ['gzip, deflate'] @@ -45,14 +45,14 @@ interactions: headers: cache-control: [no-cache] content-length: ['0'] - date: ['Thu, 06 Apr 2017 22:45:16 GMT'] + date: ['Wed, 12 Apr 2017 22:14:20 GMT'] expires: ['-1'] - location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/cacb4d03-f169-48bd-9b7c-30959e2f100b?monitor=true&api-version=2016-12-01'] + location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/969b87f9-c3b0-4f26-bf5a-26311b394d15?monitor=true&api-version=2016-12-01'] pragma: [no-cache] retry-after: ['17'] server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0] strict-transport-security: [max-age=31536000; includeSubDomains] - x-ms-ratelimit-remaining-subscription-writes: ['1186'] + x-ms-ratelimit-remaining-subscription-writes: ['1197'] status: {code: 202, message: Accepted} - request: body: null @@ -66,16 +66,16 @@ interactions: msrest_azure/0.4.7 storagemanagementclient/0.31.0 Azure-SDK-For-Python AZURECLI/2.0.2+dev] accept-language: [en-US] method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/cacb4d03-f169-48bd-9b7c-30959e2f100b?monitor=true&api-version=2016-12-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/operations/969b87f9-c3b0-4f26-bf5a-26311b394d15?monitor=true&api-version=2016-12-01 response: - body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002","kind":"Storage","location":"westus","name":"clitest000002","properties":{"creationTime":"2017-04-06T22:45:17.0967551Z","primaryEndpoints":{"blob":"https://clitest000002.blob.core.windows.net/","file":"https://clitest000002.file.core.windows.net/","queue":"https://clitest000002.queue.core.windows.net/","table":"https://clitest000002.table.core.windows.net/"},"primaryLocation":"westus","provisioningState":"Succeeded","statusOfPrimary":"available"},"sku":{"name":"Standard_LRS","tier":"Standard"},"tags":{},"type":"Microsoft.Storage/storageAccounts"} + body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002","kind":"Storage","location":"westus","name":"clitest000002","properties":{"creationTime":"2017-04-12T22:14:21.4416624Z","primaryEndpoints":{"blob":"https://clitest000002.blob.core.windows.net/","file":"https://clitest000002.file.core.windows.net/","queue":"https://clitest000002.queue.core.windows.net/","table":"https://clitest000002.table.core.windows.net/"},"primaryLocation":"westus","provisioningState":"Succeeded","statusOfPrimary":"available","supportsHttpsTrafficOnly":false},"sku":{"name":"Standard_LRS","tier":"Standard"},"tags":{},"type":"Microsoft.Storage/storageAccounts"} '} headers: cache-control: [no-cache] - content-length: ['827'] + content-length: ['860'] content-type: [application/json] - date: ['Thu, 06 Apr 2017 22:45:35 GMT'] + date: ['Wed, 12 Apr 2017 22:14:37 GMT'] expires: ['-1'] pragma: [no-cache] server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0] @@ -98,21 +98,21 @@ interactions: method: POST uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/listKeys?api-version=2016-12-01 response: - body: {string: '{"keys":[{"keyName":"key1","permissions":"Full","value":"UXisWf37/CDrYBrhPpTKKAyHovkaX26uavXLyHieAziJteJOKI5BFwx/0tIhjQlhKY3vmoN3k+DJeQNcRQA2Ow=="},{"keyName":"key2","permissions":"Full","value":"sk020K2UGZGiCEFC+KqQBA88DOStcOFKkZxGhI1+m+h1UKYkZnP8BcAADzkR42oprCyXkuWt7h/004auiN272A=="}]} + body: {string: '{"keys":[{"keyName":"key1","permissions":"Full","value":"Hu3psNcsLEMA5Go/VAORIe4nTLdZcTNRJ9kPR/O3pBHersv8ts1iVUMu/cnGON2c2SplGp3reTjwmucRkbqFKQ=="},{"keyName":"key2","permissions":"Full","value":"8ltpLE/M1rW0wNFjjRBMc72SJGhpHIWsFGk6hlhdy8Bss8KuBsEC3wMiXvqNpTrQvTfnlHblr6vtvnQD2ixLvw=="}]} '} headers: cache-control: [no-cache] content-length: ['289'] content-type: [application/json] - date: ['Thu, 06 Apr 2017 22:45:38 GMT'] + date: ['Wed, 12 Apr 2017 22:14:38 GMT'] expires: ['-1'] pragma: [no-cache] server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0] strict-transport-security: [max-age=31536000; includeSubDomains] transfer-encoding: [chunked] vary: [Accept-Encoding] - x-ms-ratelimit-remaining-subscription-writes: ['1185'] + x-ms-ratelimit-remaining-subscription-writes: ['1199'] status: {code: 200, message: OK} - request: body: null @@ -120,16 +120,16 @@ interactions: Connection: [keep-alive] Content-Length: ['0'] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:45:40 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:39 GMT'] x-ms-version: ['2016-05-31'] method: PUT uri: https://clitest000002.blob.core.windows.net/cont000004?restype=container response: body: {string: ''} headers: - date: ['Thu, 06 Apr 2017 22:45:39 GMT'] - etag: ['"0x8D47D3EA66D6C9C"'] - last-modified: ['Thu, 06 Apr 2017 22:45:39 GMT'] + date: ['Wed, 12 Apr 2017 22:14:38 GMT'] + etag: ['"0x8D481F14FCA553D"'] + last-modified: ['Wed, 12 Apr 2017 22:14:39 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] transfer-encoding: [chunked] x-ms-version: ['2016-05-31'] @@ -139,14 +139,14 @@ interactions: headers: Connection: [keep-alive] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:45:41 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:39 GMT'] x-ms-version: ['2016-05-31'] method: HEAD uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 response: body: {string: ''} headers: - date: ['Thu, 06 Apr 2017 22:45:40 GMT'] + date: ['Wed, 12 Apr 2017 22:14:39 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] transfer-encoding: [chunked] x-ms-version: ['2016-05-31'] @@ -158,7 +158,7 @@ interactions: Content-Length: ['1024'] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] x-ms-blob-type: [BlockBlob] - x-ms-date: ['Thu, 06 Apr 2017 22:45:42 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:39 GMT'] x-ms-version: ['2016-05-31'] method: PUT uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 @@ -166,9 +166,9 @@ interactions: body: {string: ''} headers: content-md5: [DzQ7CTESaiDxM9Z8KwGKOw==] - date: ['Thu, 06 Apr 2017 22:45:41 GMT'] - etag: ['"0x8D47D3EA7AB33DB"'] - last-modified: ['Thu, 06 Apr 2017 22:45:42 GMT'] + date: ['Wed, 12 Apr 2017 22:14:38 GMT'] + etag: ['"0x8D481F15043BE98"'] + last-modified: ['Wed, 12 Apr 2017 22:14:39 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] transfer-encoding: [chunked] x-ms-request-server-encrypted: ['false'] @@ -179,7 +179,7 @@ interactions: headers: Connection: [keep-alive] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:45:43 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:40 GMT'] x-ms-version: ['2016-05-31'] method: HEAD uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 @@ -190,9 +190,9 @@ interactions: content-length: ['1024'] content-md5: [DzQ7CTESaiDxM9Z8KwGKOw==] content-type: [application/octet-stream] - date: ['Thu, 06 Apr 2017 22:45:42 GMT'] - etag: ['"0x8D47D3EA7AB33DB"'] - last-modified: ['Thu, 06 Apr 2017 22:45:42 GMT'] + date: ['Wed, 12 Apr 2017 22:14:39 GMT'] + etag: ['"0x8D481F15043BE98"'] + last-modified: ['Wed, 12 Apr 2017 22:14:39 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] x-ms-blob-type: [BlockBlob] x-ms-lease-state: [available] @@ -205,7 +205,7 @@ interactions: headers: Connection: [keep-alive] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:45:44 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:40 GMT'] x-ms-version: ['2016-05-31'] method: HEAD uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 @@ -216,9 +216,9 @@ interactions: content-length: ['1024'] content-md5: [DzQ7CTESaiDxM9Z8KwGKOw==] content-type: [application/octet-stream] - date: ['Thu, 06 Apr 2017 22:45:44 GMT'] - etag: ['"0x8D47D3EA7AB33DB"'] - last-modified: ['Thu, 06 Apr 2017 22:45:42 GMT'] + date: ['Wed, 12 Apr 2017 22:14:39 GMT'] + etag: ['"0x8D481F15043BE98"'] + last-modified: ['Wed, 12 Apr 2017 22:14:39 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] x-ms-blob-type: [BlockBlob] x-ms-lease-state: [available] @@ -231,7 +231,7 @@ interactions: headers: Connection: [keep-alive] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:45:46 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:40 GMT'] x-ms-version: ['2016-05-31'] method: HEAD uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 @@ -242,9 +242,9 @@ interactions: content-length: ['1024'] content-md5: [DzQ7CTESaiDxM9Z8KwGKOw==] content-type: [application/octet-stream] - date: ['Thu, 06 Apr 2017 22:45:46 GMT'] - etag: ['"0x8D47D3EA7AB33DB"'] - last-modified: ['Thu, 06 Apr 2017 22:45:42 GMT'] + date: ['Wed, 12 Apr 2017 22:14:40 GMT'] + etag: ['"0x8D481F15043BE98"'] + last-modified: ['Wed, 12 Apr 2017 22:14:39 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] x-ms-blob-type: [BlockBlob] x-ms-lease-state: [available] @@ -260,16 +260,16 @@ interactions: User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] x-ms-blob-content-md5: [DzQ7CTESaiDxM9Z8KwGKOw==] x-ms-blob-content-type: [application/test-content] - x-ms-date: ['Thu, 06 Apr 2017 22:45:46 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:40 GMT'] x-ms-version: ['2016-05-31'] method: PUT uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003?comp=properties response: body: {string: ''} headers: - date: ['Thu, 06 Apr 2017 22:45:46 GMT'] - etag: ['"0x8D47D3EAA6A62DB"'] - last-modified: ['Thu, 06 Apr 2017 22:45:46 GMT'] + date: ['Wed, 12 Apr 2017 22:14:40 GMT'] + etag: ['"0x8D481F150B77D6F"'] + last-modified: ['Wed, 12 Apr 2017 22:14:40 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] transfer-encoding: [chunked] x-ms-version: ['2016-05-31'] @@ -279,7 +279,7 @@ interactions: headers: Connection: [keep-alive] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:45:47 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:40 GMT'] x-ms-version: ['2016-05-31'] method: HEAD uri: https://clitest000002.blob.core.windows.net/cont000004/blob000003 @@ -290,9 +290,9 @@ interactions: content-length: ['1024'] content-md5: [DzQ7CTESaiDxM9Z8KwGKOw==] content-type: [application/test-content] - date: ['Thu, 06 Apr 2017 22:45:47 GMT'] - etag: ['"0x8D47D3EAA6A62DB"'] - last-modified: ['Thu, 06 Apr 2017 22:45:46 GMT'] + date: ['Wed, 12 Apr 2017 22:14:40 GMT'] + etag: ['"0x8D481F150B77D6F"'] + last-modified: ['Wed, 12 Apr 2017 22:14:40 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] x-ms-blob-type: [BlockBlob] x-ms-lease-state: [available] @@ -305,16 +305,16 @@ interactions: headers: Connection: [keep-alive] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:45:49 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:41 GMT'] x-ms-version: ['2016-05-31'] method: GET - uri: https://clitest000002.blob.core.windows.net/?restype=service&comp=properties + uri: https://clitest000002.blob.core.windows.net/?comp=properties&restype=service response: body: {string: "\uFEFF1.0falsefalsefalsefalse1.0truetruetrue71.0falsefalse"} headers: content-type: [application/xml] - date: ['Thu, 06 Apr 2017 22:45:49 GMT'] + date: ['Wed, 12 Apr 2017 22:14:40 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] transfer-encoding: [chunked] x-ms-version: ['2016-05-31'] @@ -324,7 +324,7 @@ interactions: headers: Connection: [keep-alive] User-Agent: [Azure-Storage/0.34.0 (Python CPython 3.5.3; Darwin 16.5.0) AZURECLI/2.0.2+dev] - x-ms-date: ['Thu, 06 Apr 2017 22:45:50 GMT'] + x-ms-date: ['Wed, 12 Apr 2017 22:14:41 GMT'] x-ms-range: [bytes=0-33554431] x-ms-version: ['2016-05-31'] method: GET @@ -336,9 +336,9 @@ interactions: content-length: ['1024'] content-range: [bytes 0-1023/1024] content-type: [application/test-content] - date: ['Thu, 06 Apr 2017 22:45:49 GMT'] - etag: ['"0x8D47D3EAA6A62DB"'] - last-modified: ['Thu, 06 Apr 2017 22:45:46 GMT'] + date: ['Wed, 12 Apr 2017 22:14:40 GMT'] + etag: ['"0x8D481F150B77D6F"'] + last-modified: ['Wed, 12 Apr 2017 22:14:40 GMT'] server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0] x-ms-blob-content-md5: [DzQ7CTESaiDxM9Z8KwGKOw==] x-ms-blob-type: [BlockBlob] @@ -367,12 +367,12 @@ interactions: headers: cache-control: [no-cache] content-length: ['0'] - date: ['Thu, 06 Apr 2017 22:45:51 GMT'] + date: ['Wed, 12 Apr 2017 22:14:41 GMT'] expires: ['-1'] - location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkdBNUU3NTAxMDM3ODExM0QyM0MyNTdBMTBEOTUwMEE4NzMzNnwwNzA4MTkyODE2RDA2QzExLVdFU1RVUyIsImpvYkxvY2F0aW9uIjoid2VzdHVzIn0?api-version=2016-09-01'] + location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkc3Njk4RTIwMDZBMTkxMjY2QTUwODUwQUU3NzRDQ0ZFN0ZEN3w3OEQ3MTgwQkRDRUFBQzZBLVdFU1RVUyIsImpvYkxvY2F0aW9uIjoid2VzdHVzIn0?api-version=2016-09-01'] pragma: [no-cache] retry-after: ['15'] strict-transport-security: [max-age=31536000; includeSubDomains] - x-ms-ratelimit-remaining-subscription-writes: ['1185'] + x-ms-ratelimit-remaining-subscription-writes: ['1197'] status: {code: 202, message: Accepted} version: 1 diff --git a/src/command_modules/azure-cli-storage/tests/test_storage_blob_live_scenarios.py b/src/command_modules/azure-cli-storage/tests/test_storage_blob_live_scenarios.py index 29c5870eb..59b0e057f 100644 --- a/src/command_modules/azure-cli-storage/tests/test_storage_blob_live_scenarios.py +++ b/src/command_modules/azure-cli-storage/tests/test_storage_blob_live_scenarios.py @@ -9,6 +9,16 @@ from azure.cli.testsdk import (LiveTest, ResourceGroupPreparer, StorageAccountPr class StorageBlobUploadLiveTests(LiveTest): + @ResourceGroupPreparer() + @StorageAccountPreparer() + def test_storage_blob_upload_128mb_file(self, resource_group, storage_account): + self.verify_blob_upload_and_download(resource_group, storage_account, 128 * 1024, 'block') + + @ResourceGroupPreparer() + @StorageAccountPreparer() + def test_storage_blob_upload_64mb_file(self, resource_group, storage_account): + self.verify_blob_upload_and_download(resource_group, storage_account, 64 * 1024, 'block') + @ResourceGroupPreparer() @StorageAccountPreparer() def test_storage_blob_upload_256mb_file(self, resource_group, storage_account): @@ -31,6 +41,12 @@ class StorageBlobUploadLiveTests(LiveTest): self.verify_blob_upload_and_download(resource_group, storage_account, 10 * 1024 * 1024, 'block') + @ResourceGroupPreparer() + @StorageAccountPreparer() + def test_storage_page_blob_upload_10G_file(self, resource_group, storage_account): + self.verify_blob_upload_and_download(resource_group, storage_account, 10 * 1024 * 1024, + 'page') + def verify_blob_upload_and_download(self, group, account, file_size_kb, blob_type): container = self.create_random_name(prefix='cont', length=24) local_dir = self.create_temp_dir() diff --git a/src/command_modules/azure-cli-storage/tests/test_storage_blob_scenarios.py b/src/command_modules/azure-cli-storage/tests/test_storage_blob_scenarios.py index 3662be9ba..2bf3452e2 100644 --- a/src/command_modules/azure-cli-storage/tests/test_storage_blob_scenarios.py +++ b/src/command_modules/azure-cli-storage/tests/test_storage_blob_scenarios.py @@ -51,18 +51,6 @@ class StorageBlobUploadTests(StorageScenarioMixin, ScenarioTest): def test_storage_blob_upload_midsize_file(self, resource_group, storage_account): self.verify_blob_upload_and_download(resource_group, storage_account, 4096, 'block', 0) - @ResourceGroupPreparer() - @StorageAccountPreparer() - def test_storage_blob_upload_128mb_file(self, resource_group, storage_account): - self.verify_blob_upload_and_download(resource_group, storage_account, 128 * 1024, 'block', - 0, skip_download=True) - - @ResourceGroupPreparer() - @StorageAccountPreparer() - def test_storage_blob_upload_64mb_file(self, resource_group, storage_account): - self.verify_blob_upload_and_download(resource_group, storage_account, 64 * 1024, 'block', - 0, skip_download=True) - def verify_blob_upload_and_download(self, group, account, file_size_kb, blob_type, block_count=0, skip_download=False): local_dir = self.create_temp_dir()