From 024a1e7e2b987aa72200a9da753789af9db02205 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Fri, 25 Sep 2020 22:32:46 +0800 Subject: [PATCH 1/9] wip --- sdk/storage/storage-blob/src/BlobServiceClient.ts | 5 +++-- sdk/storage/storage-file-datalake/src/models.ts | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/sdk/storage/storage-blob/src/BlobServiceClient.ts b/sdk/storage/storage-blob/src/BlobServiceClient.ts index eb236ff53740..14066f229a38 100644 --- a/sdk/storage/storage-blob/src/BlobServiceClient.ts +++ b/sdk/storage/storage-blob/src/BlobServiceClient.ts @@ -596,8 +596,9 @@ export class BlobServiceClient extends StorageClient { const containerClient = this.getContainerClient( destinationContainerName || deletedContainerName ); - const container = new Container((containerClient as any).storageClientContext); - const containerUndeleteResponse = await container.restore({ + // Hack to access a protected member. + const containerContext = new Container(containerClient["storageClientContext"]); + const containerUndeleteResponse = await containerContext.restore({ deletedContainerName, ...options, tracingOptions: { ...options!.tracingOptions, spanOptions } diff --git a/sdk/storage/storage-file-datalake/src/models.ts b/sdk/storage/storage-file-datalake/src/models.ts index 542ebbd88606..c904c9eec059 100644 --- a/sdk/storage/storage-file-datalake/src/models.ts +++ b/sdk/storage/storage-file-datalake/src/models.ts @@ -10,6 +10,7 @@ import { BlobQueryArrowField } from "@azure/storage-blob"; export type ModifiedAccessConditions = Omit; +export type FileQueryArrowField = BlobQueryArrowField; import { FileSystemListPathsHeaders, From 415fbe33cc995aff98a5fc399f7c9868e2a7cf7d Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Sun, 27 Sep 2020 17:22:39 +0800 Subject: [PATCH 2/9] overload SASQueryParameters constructor --- ...ct_sasqueryparameters_with_a_option_bag.js | 5 + ...ory_should_work_for_permissions_m_e_o_p.js | 161 ++++++++++ ...gentobjectid_preauthorizedagentobjectid.js | 199 ++++++++++++ ...ationsas_should_work_with_correlationid.js | 129 ++++++++ ...ameters_could_calculate_directory_depth.js | 137 +++++++++ ...ory_should_work_for_permissions_m_e_o_p.js | 141 +++++++++ ...ile_should_work_for_permissions_m_e_o_p.js | 141 +++++++++ ...tem_should_work_for_permissions_m_e_o_p.js | 141 +++++++++ .../src/sas/DataLakeSASPermissions.ts | 19 +- .../src/sas/DataLakeSASSignatureValues.ts | 41 ++- .../src/sas/FileSystemSASPermissions.ts | 19 +- .../src/sas/SASQueryParameters.ts | 284 ++++++++++++++--- .../test/node/sas.spec.ts | 289 +++++++++++------- 13 files changed, 1524 insertions(+), 182 deletions(-) create mode 100644 sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only/recording_construct_sasqueryparameters_with_a_option_bag.js create mode 100644 sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_delegation_sas/recording_generateuserdelegationsas_for_directory_should_work_for_permissions_m_e_o_p.js create mode 100644 sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_delegation_sas/recording_generateuserdelegationsas_should_work_with_agentobjectid_preauthorizedagentobjectid.js create mode 100644 sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_delegation_sas/recording_generateuserdelegationsas_should_work_with_correlationid.js create mode 100644 sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_directory_sas/recording_generatedatalakesasqueryparameters_could_calculate_directory_depth.js create mode 100644 sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_directory_sas/recording_generatedatalakesasqueryparameters_for_directory_should_work_for_permissions_m_e_o_p.js create mode 100644 sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_directory_sas/recording_generatedatalakesasqueryparameters_for_file_should_work_for_permissions_m_e_o_p.js create mode 100644 sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_directory_sas/recording_generatedatalakesasqueryparameters_for_filesystem_should_work_for_permissions_m_e_o_p.js diff --git a/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only/recording_construct_sasqueryparameters_with_a_option_bag.js b/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only/recording_construct_sasqueryparameters_with_a_option_bag.js new file mode 100644 index 000000000000..c7b887426215 --- /dev/null +++ b/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only/recording_construct_sasqueryparameters_with_a_option_bag.js @@ -0,0 +1,5 @@ +let nock = require('nock'); + +module.exports.hash = "dfb5256fbffeadfe6df18dddf4c3fc5b"; + +module.exports.testInfo = {"uniqueName":{},"newDate":{}} diff --git a/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_delegation_sas/recording_generateuserdelegationsas_for_directory_should_work_for_permissions_m_e_o_p.js b/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_delegation_sas/recording_generateuserdelegationsas_for_directory_should_work_for_permissions_m_e_o_p.js new file mode 100644 index 000000000000..b08cd0020c6c --- /dev/null +++ b/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_delegation_sas/recording_generateuserdelegationsas_for_directory_should_work_for_permissions_m_e_o_p.js @@ -0,0 +1,161 @@ +let nock = require('nock'); + +module.exports.hash = "c632b8f565a1f09ddd0d399c60fc04aa"; + +module.exports.testInfo = {"uniqueName":{"filesystem":"filesystem160119116256900728","directory":"directory160119116309402910","file":"file160119116449005138"},"newDate":{"now":"2020-09-27T07:19:21.139Z","tmr":"2020-09-27T07:19:21.140Z"}} + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .post('/', "2020-09-27T06:19:21Z2020-10-02T07:19:21Z") + .query(true) + .reply(200, "1ce13278-a083-4d15-8796-de39717793e172f988bf-86f1-41af-91ab-2d7cd011db472020-09-27T06:19:21Z2020-10-02T07:19:21Zb2020-02-10l4kTXsRyr0o+LQCeJFCYgeIHfdbKrPqfwDeQzdtzjtw=", [ + 'Transfer-Encoding', + 'chunked', + 'Content-Type', + 'application/xml', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '01da158f-b01e-0095-069e-94a515000000', + 'x-ms-client-request-id', + '37bb5e48-dd76-4402-b71a-19ef6c02c364', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 07:19:21 GMT' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119116256900728') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 07:19:22 GMT', + 'ETag', + '"0x8D862B5A87340F9"', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '01da15ac-b01e-0095-1b9e-94a515000000', + 'x-ms-client-request-id', + '0922c281-181c-460c-9a85-9df62e3479c5', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 07:19:22 GMT' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119116256900728/directory160119116309402910') + .query(true) + .reply(201, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 07:19:24 GMT', + 'ETag', + '"0x8D862B5A965E89F"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '6168ec27-901f-0082-239e-940c1e000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '9b4b8f35-60d0-45ad-837b-424cf18e27fc', + 'Date', + 'Sun, 27 Sep 2020 07:19:24 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119116256900728/directory160119116309402910/file160119116449005138') + .query(true) + .reply(201, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 07:19:24 GMT', + 'ETag', + '"0x8D862B5A9950CAE"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '6168ec33-901f-0082-2e9e-940c1e000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + 'f8dbc4ca-1d77-466f-bf4b-49de6aec966e', + 'Date', + 'Sun, 27 Sep 2020 07:19:24 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .head('/filesystem160119116256900728/directory160119116309402910') + .query(true) + .reply(200, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 07:19:24 GMT', + 'ETag', + '"0x8D862B5A965E89F"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-owner', + '1ce13278-a083-4d15-8796-de39717793e1', + 'x-ms-group', + '1ce13278-a083-4d15-8796-de39717793e1', + 'x-ms-permissions', + 'rwxr-x---', + 'x-ms-acl', + 'user::rwx,group::r-x,other::---', + 'x-ms-request-id', + '6168ec34-901f-0082-2f9e-940c1e000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + 'c253ee46-9f26-450a-bb48-0b3b7958fdf0', + 'Date', + 'Sun, 27 Sep 2020 07:19:24 GMT' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .patch('/filesystem160119116256900728/directory160119116309402910') + .query(true) + .reply(200, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 07:19:24 GMT', + 'ETag', + '"0x8D862B5A965E89F"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-namespace-enabled', + 'true', + 'x-ms-request-id', + '549fca7e-301f-0040-509e-944a98000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + 'dff76112-3a80-46cf-81b6-973d7d21ddb1', + 'Date', + 'Sun, 27 Sep 2020 07:19:25 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/filesystem160119116256900728') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '01da173b-b01e-0095-389e-94a515000000', + 'x-ms-client-request-id', + '63894e3c-0bd7-4be0-ab5a-37b4b4ea38c4', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 07:19:25 GMT' +]); diff --git a/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_delegation_sas/recording_generateuserdelegationsas_should_work_with_agentobjectid_preauthorizedagentobjectid.js b/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_delegation_sas/recording_generateuserdelegationsas_should_work_with_agentobjectid_preauthorizedagentobjectid.js new file mode 100644 index 000000000000..b53f123829d8 --- /dev/null +++ b/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_delegation_sas/recording_generateuserdelegationsas_should_work_with_agentobjectid_preauthorizedagentobjectid.js @@ -0,0 +1,199 @@ +let nock = require('nock'); + +module.exports.hash = "3989fdb0b96130e65077bdaf1ec162cc"; + +module.exports.testInfo = {"uniqueName":{"filesystem":"filesystem160119534928207862","directory":"directory160119535006806265","file":"file160119535129300958","newFile":"newFile160119535219701256"},"newDate":{"now":"2020-09-27T08:29:07.896Z","tmr":"2020-09-27T08:29:07.899Z"}} + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .post('/', "2020-09-27T07:29:07Z2020-10-02T08:29:07Z") + .query(true) + .reply(200, "1ce13278-a083-4d15-8796-de39717793e172f988bf-86f1-41af-91ab-2d7cd011db472020-09-27T07:29:07Z2020-10-02T08:29:07Zb2020-02-10n7l+WyBU729HYlmsyySs+b1doLOdUjpiyNGwih71kdA=", [ + 'Transfer-Encoding', + 'chunked', + 'Content-Type', + 'application/xml', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '3a8db1f9-e01e-0088-4ba8-94a8a9000000', + 'x-ms-client-request-id', + '94edd8a1-7450-4b2f-b1f4-a9f3b9972568', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 08:29:09 GMT' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119534928207862') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 08:29:09 GMT', + 'ETag', + '"0x8D862BF680168AD"', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '3a8db24b-e01e-0088-7ba8-94a8a9000000', + 'x-ms-client-request-id', + '116e3845-066b-48f9-8860-015fd152ec8f', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 08:29:09 GMT' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119534928207862/directory160119535006806265') + .query(true) + .reply(201, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 08:29:11 GMT', + 'ETag', + '"0x8D862BF68EA46EC"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '4e38adcf-201f-0001-80a8-94127c000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + 'b9e61ccd-859d-4ac2-8e77-373c75e355e0', + 'Date', + 'Sun, 27 Sep 2020 08:29:10 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119534928207862/directory160119535006806265/file160119535129300958') + .query(true) + .reply(201, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 08:29:11 GMT', + 'ETag', + '"0x8D862BF692346C1"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '4e38add0-201f-0001-01a8-94127c000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '13bc96e3-4e77-4654-aafc-f4410bcb5eb3', + 'Date', + 'Sun, 27 Sep 2020 08:29:10 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .patch('/filesystem160119534928207862/%2F') + .query(true) + .reply(200, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 08:29:09 GMT', + 'ETag', + '"0x8D862BF682FEFE2"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-namespace-enabled', + 'true', + 'x-ms-request-id', + '4e38add2-201f-0001-03a8-94127c000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + 'b3bc8ae1-c329-4c40-972a-8344e7638b0c', + 'Date', + 'Sun, 27 Sep 2020 08:29:11 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119534928207862/newFile160119535219701256') + .query(true) + .reply(201, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 08:29:12 GMT', + 'ETag', + '"0x8D862BF69C60FD2"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '4e38add4-201f-0001-05a8-94127c000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '8ad6f1e6-ebc3-490a-a66c-43a44547afe3', + 'Date', + 'Sun, 27 Sep 2020 08:29:11 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119534928207862/newFile160119535219701256') + .query(true) + .reply(403, {"error":{"code":"AuthorizationPermissionMismatch","message":"This request is not authorized to perform this operation using this permission.\nRequestId:4e38add5-201f-0001-06a8-94127c000000\nTime:2020-09-27T08:29:12.9183732Z"}}, [ + 'Content-Length', + '227', + 'Content-Type', + 'application/json;charset=utf-8', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-error-code', + 'AuthorizationPermissionMismatch', + 'x-ms-request-id', + '4e38add5-201f-0001-06a8-94127c000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '081286cf-8a72-4c92-8ae4-ca8c9a2b7891', + 'Date', + 'Sun, 27 Sep 2020 08:29:12 GMT' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119534928207862/newFile160119535219701256') + .query(true) + .reply(409, {"error":{"code":"PathAlreadyExists","message":"The specified path already exists.\nRequestId:4e38add6-201f-0001-07a8-94127c000000\nTime:2020-09-27T08:29:13.2576143Z"}}, [ + 'Content-Length', + '168', + 'Content-Type', + 'application/json;charset=utf-8', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-error-code', + 'PathAlreadyExists', + 'x-ms-request-id', + '4e38add6-201f-0001-07a8-94127c000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '0dbc702c-fb99-41c3-bbda-16eddd89e264', + 'Date', + 'Sun, 27 Sep 2020 08:29:12 GMT' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/filesystem160119534928207862') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '3a8db511-e01e-0088-44a8-94a8a9000000', + 'x-ms-client-request-id', + 'b0b4dd4a-93cd-4dde-88e7-d15c2271455d', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 08:29:13 GMT' +]); diff --git a/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_delegation_sas/recording_generateuserdelegationsas_should_work_with_correlationid.js b/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_delegation_sas/recording_generateuserdelegationsas_should_work_with_correlationid.js new file mode 100644 index 000000000000..acd90fb18815 --- /dev/null +++ b/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_delegation_sas/recording_generateuserdelegationsas_should_work_with_correlationid.js @@ -0,0 +1,129 @@ +let nock = require('nock'); + +module.exports.hash = "9bcada1e1c90bd5e6d1bdb8e5fa637b4"; + +module.exports.testInfo = {"uniqueName":{"filesystem":"filesystem160119597598007601","directory":"directory160119597641207244","file":"file160119597792806566"},"newDate":{"now":"2020-09-27T08:39:34.507Z","tmr":"2020-09-27T08:39:34.508Z"}} + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .post('/', "2020-09-27T07:39:34Z2020-10-02T08:39:34Z") + .query(true) + .reply(200, "1ce13278-a083-4d15-8796-de39717793e172f988bf-86f1-41af-91ab-2d7cd011db472020-09-27T07:39:34Z2020-10-02T08:39:34Zb2020-02-10UqyKLG9BCI93ihy03vAzqHDOf1yE/ljQ1+SobVbO1tU=", [ + 'Transfer-Encoding', + 'chunked', + 'Content-Type', + 'application/xml', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '1b1d61a4-f01e-003d-51a9-943bbb000000', + 'x-ms-client-request-id', + '710bf4c1-4023-48b0-8e8f-9f39ae2eae92', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 08:39:35 GMT' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119597598007601') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 08:39:36 GMT', + 'ETag', + '"0x8D862C0DD7905C7"', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '1b1d61e0-f01e-003d-7da9-943bbb000000', + 'x-ms-client-request-id', + '4c8b5dfc-bcee-4c71-aca0-d260c0287314', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 08:39:36 GMT' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119597598007601/directory160119597641207244') + .query(true) + .reply(201, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 08:39:37 GMT', + 'ETag', + '"0x8D862C0DE67DAFD"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '33e3a1f6-101f-0057-7ca9-94e393000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '7b67d1f1-cc31-4e36-8336-939bc3908800', + 'Date', + 'Sun, 27 Sep 2020 08:39:37 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119597598007601/directory160119597641207244/file160119597792806566') + .query(true) + .reply(201, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 08:39:38 GMT', + 'ETag', + '"0x8D862C0DEA4F54D"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '33e3a1f7-101f-0057-7da9-94e393000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '56895691-579b-4230-8ab3-a58f39b4c9ef', + 'Date', + 'Sun, 27 Sep 2020 08:39:37 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .get('/filesystem160119597598007601') + .query(true) + .reply(200, {"paths":[{"contentLength":"0","creationTime":"132456695777516285","etag":"0x8D862C0DE67DAFD","group":"1ce13278-a083-4d15-8796-de39717793e1","isDirectory":"true","lastModified":"Sun, 27 Sep 2020 08:39:37 GMT","name":"directory160119597641207244","owner":"1ce13278-a083-4d15-8796-de39717793e1","permissions":"rwxr-x---"}]}, [ + 'Transfer-Encoding', + 'chunked', + 'Content-Type', + 'application/json;charset=utf-8', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '33e3a1f9-101f-0057-7fa9-94e393000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + 'fa21bb63-ab4b-478c-bb08-fc778074b83c', + 'Date', + 'Sun, 27 Sep 2020 08:39:38 GMT' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/filesystem160119597598007601') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '1b1d63e6-f01e-003d-77a9-943bbb000000', + 'x-ms-client-request-id', + 'a00f26d0-3f9c-4325-a614-29826a2ef10f', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 08:39:39 GMT' +]); diff --git a/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_directory_sas/recording_generatedatalakesasqueryparameters_could_calculate_directory_depth.js b/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_directory_sas/recording_generatedatalakesasqueryparameters_could_calculate_directory_depth.js new file mode 100644 index 000000000000..2d970261877f --- /dev/null +++ b/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_directory_sas/recording_generatedatalakesasqueryparameters_could_calculate_directory_depth.js @@ -0,0 +1,137 @@ +let nock = require('nock'); + +module.exports.hash = "f5618eb4b00f99d8fbe537045b47c869"; + +module.exports.testInfo = {"uniqueName":{"filesystem":"filesystem160119778328205800","directory":"directory160119778601405130","file":"file160119778728208354"},"newDate":{"now":"2020-09-27T09:09:47.683Z","tmr":"2020-09-27T09:09:47.686Z"}} + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119778328205800') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 09:09:44 GMT', + 'ETag', + '"0x8D862C51351C59F"', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '775dc43f-001e-0090-22ad-9477ce000000', + 'x-ms-client-request-id', + '88f199dc-4197-4239-acd4-3077c0bb23ac', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 09:09:44 GMT' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119778328205800/directory160119778601405130') + .query(true) + .reply(201, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 09:09:47 GMT', + 'ETag', + '"0x8D862C514DB4881"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '595272f6-901f-0049-09ad-940f4b000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '81d7508e-5e3a-4e29-814b-43ac0e185692', + 'Date', + 'Sun, 27 Sep 2020 09:09:46 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119778328205800/directory160119778601405130/file160119778728208354') + .query(true) + .reply(201, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 09:09:47 GMT', + 'ETag', + '"0x8D862C51518BDA4"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '595272f7-901f-0049-0aad-940f4b000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '5aa3b393-c51d-46ea-a66c-6479eaecd67d', + 'Date', + 'Sun, 27 Sep 2020 09:09:46 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .patch('/filesystem160119778328205800/directory160119778601405130') + .query(true) + .reply(200, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 09:09:47 GMT', + 'ETag', + '"0x8D862C514DB4881"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-namespace-enabled', + 'true', + 'x-ms-request-id', + '595272fb-901f-0049-0ead-940f4b000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + 'bb4eee24-07df-44b9-b8bf-952c6f662436', + 'Date', + 'Sun, 27 Sep 2020 09:09:47 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .patch('/filesystem160119778328205800/directory160119778601405130') + .query(true) + .reply(200, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 09:09:47 GMT', + 'ETag', + '"0x8D862C514DB4881"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-namespace-enabled', + 'true', + 'x-ms-request-id', + '595272fd-901f-0049-10ad-940f4b000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '10b5e382-4343-40e1-a2de-e8759b15b9df', + 'Date', + 'Sun, 27 Sep 2020 09:09:47 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/filesystem160119778328205800') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '775dc555-001e-0090-7aad-9477ce000000', + 'x-ms-client-request-id', + 'e3082b9f-9edc-482a-bb90-feeeeb405588', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 09:09:47 GMT' +]); diff --git a/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_directory_sas/recording_generatedatalakesasqueryparameters_for_directory_should_work_for_permissions_m_e_o_p.js b/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_directory_sas/recording_generatedatalakesasqueryparameters_for_directory_should_work_for_permissions_m_e_o_p.js new file mode 100644 index 000000000000..4dd8bcc83825 --- /dev/null +++ b/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_directory_sas/recording_generatedatalakesasqueryparameters_for_directory_should_work_for_permissions_m_e_o_p.js @@ -0,0 +1,141 @@ +let nock = require('nock'); + +module.exports.hash = "d63dd630beb0486fd25c48dc18b61be9"; + +module.exports.testInfo = {"uniqueName":{"filesystem":"filesystem160119085691006060","directory":"directory160119085896407057","file":"file160119086034900504"},"newDate":{"now":"2020-09-27T07:14:20.727Z","tmr":"2020-09-27T07:14:20.729Z"}} + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119085691006060') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 07:14:18 GMT', + 'ETag', + '"0x8D862B4F30F7910"', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '3950febe-a01e-001f-369d-94fea4000000', + 'x-ms-client-request-id', + '60045a93-3c91-4eca-954b-0128d8c130e2', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 07:14:18 GMT' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119085691006060/directory160119085896407057') + .query(true) + .reply(201, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 07:14:20 GMT', + 'ETag', + '"0x8D862B4F41BA203"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '73d0580c-e01f-0043-5c9d-94abfc000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '2ff267b5-f5a7-44c6-b69c-cdae4e496db1', + 'Date', + 'Sun, 27 Sep 2020 07:14:20 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119085691006060/directory160119085896407057/file160119086034900504') + .query(true) + .reply(201, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 07:14:20 GMT', + 'ETag', + '"0x8D862B4F454A259"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '73d0580d-e01f-0043-5d9d-94abfc000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + 'cb719bb9-762e-4bd6-aaed-b504714d9214', + 'Date', + 'Sun, 27 Sep 2020 07:14:20 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .head('/filesystem160119085691006060/directory160119085896407057') + .query(true) + .reply(200, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 07:14:20 GMT', + 'ETag', + '"0x8D862B4F41BA203"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-owner', + '$superuser', + 'x-ms-group', + '$superuser', + 'x-ms-permissions', + 'rwxr-x---', + 'x-ms-acl', + 'user::rwx,group::r-x,other::---', + 'x-ms-request-id', + '73d0580e-e01f-0043-5e9d-94abfc000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + 'f56a21b5-94c5-42a0-bcf4-17145b4ce706', + 'Date', + 'Sun, 27 Sep 2020 07:14:20 GMT' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .patch('/filesystem160119085691006060/directory160119085896407057') + .query(true) + .reply(200, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 07:14:20 GMT', + 'ETag', + '"0x8D862B4F41BA203"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-namespace-enabled', + 'true', + 'x-ms-request-id', + 'd79f91d8-401f-005a-6c9d-942b47000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '6f3969ba-0dfd-4376-b42f-51c5dba576cd', + 'Date', + 'Sun, 27 Sep 2020 07:14:21 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/filesystem160119085691006060') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '3951014c-a01e-001f-3a9d-94fea4000000', + 'x-ms-client-request-id', + 'c894f05d-5ed9-4657-8957-5ab62459e5cd', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 07:14:21 GMT' +]); diff --git a/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_directory_sas/recording_generatedatalakesasqueryparameters_for_file_should_work_for_permissions_m_e_o_p.js b/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_directory_sas/recording_generatedatalakesasqueryparameters_for_file_should_work_for_permissions_m_e_o_p.js new file mode 100644 index 000000000000..71abec903441 --- /dev/null +++ b/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_directory_sas/recording_generatedatalakesasqueryparameters_for_file_should_work_for_permissions_m_e_o_p.js @@ -0,0 +1,141 @@ +let nock = require('nock'); + +module.exports.hash = "39f7c5fcace29f8de1b67dc28f7ed4f6"; + +module.exports.testInfo = {"uniqueName":{"filesystem":"filesystem160119086295008444","directory":"directory160119086329007780","file":"file160119086365704236"},"newDate":{"now":"2020-09-27T07:14:24.025Z","tmr":"2020-09-27T07:14:24.026Z"}} + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119086295008444') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 07:14:23 GMT', + 'ETag', + '"0x8D862B4F5DADB98"', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '3951018b-a01e-001f-6c9d-94fea4000000', + 'x-ms-client-request-id', + 'a006ad22-f730-44d0-b9c1-2a22121094ac', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 07:14:22 GMT' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119086295008444/directory160119086329007780') + .query(true) + .reply(201, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 07:14:23 GMT', + 'ETag', + '"0x8D862B4F613F1CD"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'd79f91db-401f-005a-6e9d-942b47000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '52ce7a5d-fca8-4500-a2fb-29ef5dc5656d', + 'Date', + 'Sun, 27 Sep 2020 07:14:22 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119086295008444/directory160119086329007780/file160119086365704236') + .query(true) + .reply(201, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 07:14:23 GMT', + 'ETag', + '"0x8D862B4F64C2D26"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'd79f91e0-401f-005a-739d-942b47000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '47de2d9a-cacd-4beb-b7d6-5361d535a1bc', + 'Date', + 'Sun, 27 Sep 2020 07:14:22 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .head('/filesystem160119086295008444/directory160119086329007780/file160119086365704236') + .query(true) + .reply(200, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 07:14:23 GMT', + 'ETag', + '"0x8D862B4F64C2D26"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-owner', + '$superuser', + 'x-ms-group', + '$superuser', + 'x-ms-permissions', + 'rw-r-----', + 'x-ms-acl', + 'user::rw-,group::r--,other::---', + 'x-ms-request-id', + 'd79f91e2-401f-005a-759d-942b47000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + 'e2dd6f54-a0ad-426c-b0ee-c950f2ee5767', + 'Date', + 'Sun, 27 Sep 2020 07:14:23 GMT' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .patch('/filesystem160119086295008444/directory160119086329007780/file160119086365704236') + .query(true) + .reply(200, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 07:14:23 GMT', + 'ETag', + '"0x8D862B4F64C2D26"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-namespace-enabled', + 'true', + 'x-ms-request-id', + '0453a43a-301f-007f-389d-94823b000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '26bd1ab0-8b60-4188-bfa4-25b45030e1b4', + 'Date', + 'Sun, 27 Sep 2020 07:14:25 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/filesystem160119086295008444') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '395102a8-a01e-001f-499d-94fea4000000', + 'x-ms-client-request-id', + '43c13ad8-62bd-415f-a6d8-1456e23c2c28', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 07:14:25 GMT' +]); diff --git a/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_directory_sas/recording_generatedatalakesasqueryparameters_for_filesystem_should_work_for_permissions_m_e_o_p.js b/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_directory_sas/recording_generatedatalakesasqueryparameters_for_filesystem_should_work_for_permissions_m_e_o_p.js new file mode 100644 index 000000000000..c0b4f9905e10 --- /dev/null +++ b/sdk/storage/storage-file-datalake/recordings/node/shared_access_signature_sas_generation_nodejs_only_for_directory_sas/recording_generatedatalakesasqueryparameters_for_filesystem_should_work_for_permissions_m_e_o_p.js @@ -0,0 +1,141 @@ +let nock = require('nock'); + +module.exports.hash = "b38b2cb51a8273c8fbf7c281a4514192"; + +module.exports.testInfo = {"uniqueName":{"filesystem":"filesystem160119086619304249","directory":"directory160119086654005398","file":"file160119086686203124"},"newDate":{"now":"2020-09-27T07:14:27.215Z","tmr":"2020-09-27T07:14:27.215Z"}} + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119086619304249') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 07:14:26 GMT', + 'ETag', + '"0x8D862B4F7CA5BF6"', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '395102c5-a01e-001f-5d9d-94fea4000000', + 'x-ms-client-request-id', + '0a372421-a47f-49fa-9b6c-a17cf51ab37f', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 07:14:25 GMT' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119086619304249/directory160119086654005398') + .query(true) + .reply(201, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 07:14:26 GMT', + 'ETag', + '"0x8D862B4F7FE0B9B"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '0453a43d-301f-007f-3b9d-94823b000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '67f96a25-8d78-469a-87f9-6147181d946a', + 'Date', + 'Sun, 27 Sep 2020 07:14:26 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .put('/filesystem160119086619304249/directory160119086654005398/file160119086686203124') + .query(true) + .reply(201, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 07:14:27 GMT', + 'ETag', + '"0x8D862B4F83324D1"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '0453a43e-301f-007f-3c9d-94823b000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + 'a09969f8-9da0-4d70-bcb7-bbc1a51716f2', + 'Date', + 'Sun, 27 Sep 2020 07:14:26 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .head('/filesystem160119086619304249/directory160119086654005398') + .query(true) + .reply(200, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 07:14:26 GMT', + 'ETag', + '"0x8D862B4F7FE0B9B"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-owner', + '$superuser', + 'x-ms-group', + '$superuser', + 'x-ms-permissions', + 'rwxr-x---', + 'x-ms-acl', + 'user::rwx,group::r-x,other::---', + 'x-ms-request-id', + '0453a43f-301f-007f-3d9d-94823b000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '40936cc9-fcf3-49ae-aee3-79380df3249f', + 'Date', + 'Sun, 27 Sep 2020 07:14:26 GMT' +]); + +nock('https://fakestorageaccount.dfs.core.windows.net:443', {"encodedQueryParams":true}) + .patch('/filesystem160119086619304249/directory160119086654005398') + .query(true) + .reply(200, "", [ + 'Last-Modified', + 'Sun, 27 Sep 2020 07:14:26 GMT', + 'ETag', + '"0x8D862B4F7FE0B9B"', + 'Server', + 'Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-namespace-enabled', + 'true', + 'x-ms-request-id', + '8545d695-c01f-008f-809d-94c4ca000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + 'd22fbe54-4abf-4a01-83bd-3464357fbc97', + 'Date', + 'Sun, 27 Sep 2020 07:14:28 GMT', + 'Content-Length', + '0' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/filesystem160119086619304249') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '39510413-a01e-001f-699d-94fea4000000', + 'x-ms-client-request-id', + '1dfe0bb7-613d-419b-924c-a76c8b0d9d97', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 07:14:28 GMT' +]); diff --git a/sdk/storage/storage-file-datalake/src/sas/DataLakeSASPermissions.ts b/sdk/storage/storage-file-datalake/src/sas/DataLakeSASPermissions.ts index fbb7a25b3775..146d7806abd8 100644 --- a/sdk/storage/storage-file-datalake/src/sas/DataLakeSASPermissions.ts +++ b/sdk/storage/storage-file-datalake/src/sas/DataLakeSASPermissions.ts @@ -50,10 +50,10 @@ export class DataLakeSASPermissions { blobSASPermissions.execute = true; break; case "o": - blobSASPermissions.ownership = true; + blobSASPermissions.manageOwnership = true; break; case "p": - blobSASPermissions.permission = true; + blobSASPermissions.manageAccessControl = true; break; default: throw new RangeError(`Invalid permission: ${char}`); @@ -120,20 +120,23 @@ export class DataLakeSASPermissions { public execute: boolean = false; /** - * Specifies Ownership access granted. + * Specifies Ownership access granted, which allows the caller to set owner, owning group, + * or act as the owner when renaming or deleting a blob (file or directory) within a folder + * that has the sticky bit set. * * @type {boolean} * @memberof DirectorySASPermissions */ - public ownership: boolean = false; + public manageOwnership: boolean = false; /** - * Specifies Permission access granted. + * Specifies Permission access granted, which allows the caller to set permissions and + * POSIX ACLs on blobs (files and directories). * * @type {boolean} * @memberof DirectorySASPermissions */ - public permission: boolean = false; + public manageAccessControl: boolean = false; /** * Converts the given permissions to a string. Using this method will guarantee the permissions are in an @@ -165,10 +168,10 @@ export class DataLakeSASPermissions { if (this.execute) { permissions.push("e"); } - if (this.ownership) { + if (this.manageOwnership) { permissions.push("o"); } - if (this.permission) { + if (this.manageAccessControl) { permissions.push("p"); } return permissions.join(""); diff --git a/sdk/storage/storage-file-datalake/src/sas/DataLakeSASSignatureValues.ts b/sdk/storage/storage-file-datalake/src/sas/DataLakeSASSignatureValues.ts index b3858df08803..e986051cad7e 100644 --- a/sdk/storage/storage-file-datalake/src/sas/DataLakeSASSignatureValues.ts +++ b/sdk/storage/storage-file-datalake/src/sas/DataLakeSASSignatureValues.ts @@ -98,9 +98,8 @@ export interface DataLakeSASSignatureValues { isDirectory?: boolean; /** - * Optional. Beginning in version 2020-02-10, indicate the depth of the directory - * specified in the canonicalizedresource field of the string-to-sign. The depth of the directory is the number of directories - * beneath the root folder. + * Optional. Beginning in version 2020-02-10, indicate the depth of the directory specified in the canonicalizedresource field of the string-to-sign. + * The depth of the directory is the number of directories beneath the root folder. * * @type {number} * @memberof DataLakeSASSignatureValues @@ -109,26 +108,26 @@ export interface DataLakeSASSignatureValues { /** * Optional. Beginning in version 2020-02-10, specifies the Authorized AAD Object Id in GUID format. The AAD Object ID of a user - * authorized by the owner of the User Delegation Key to perform the action granted by the SAS. The Azure Storage service will + * authorized by the owner of the user delegation key to perform the action granted by the SAS. The Azure Storage service will * ensure that the owner of the user delegation key has the required permissions before granting access but no additional permission - * check for the user specified in this value will be performed. This cannot be used in conjuction with {@link unauthorizedUserObjectId}. + * check for the user specified in this value will be performed. This cannot be used in conjuction with {@link agentObjectId}. * This is only used for User Delegation SAS. * * @type {string} * @memberof DataLakeSASSignatureValues */ - authorizedUserObjectId?: string; + preauthorizedAgentObjectId?: string; /** * Optional. Beginning in version 2020-02-10, specifies the Unauthorized AAD Object Id in GUID format. The AAD Object Id of a user that is assumed - * to be unauthorized by the owner of the User Delegation Key. The Azure Storage Service will perform an additional POSIX ACL check to determine - * if the user is authorized to perform the requested operation. This cannot be used in conjuction with {@link authorizedUserObjectId}. + * to be unauthorized by the owner of the user delegation key. The Azure Storage Service will perform an additional POSIX ACL check to determine + * if the user is authorized to perform the requested operation. This cannot be used in conjuction with {@link preauthorizedAgentObjectId}. * This is only used for User Delegation SAS. * * @type {string} * @memberof DataLakeSASSignatureValues */ - unauthorizedUserObjectId?: string; + agentObjectId?: string; /** * Optional. Beginning in version 2020-02-10, this is a GUID value that will be logged in the storage diagnostic logs and can be used to @@ -680,8 +679,8 @@ function generateBlobSASQueryParametersUDK20181109( : "", userDelegationKeyCredential.userDelegationKey.signedService, userDelegationKeyCredential.userDelegationKey.signedVersion, - dataLakeSASSignatureValues.authorizedUserObjectId, - dataLakeSASSignatureValues.unauthorizedUserObjectId, + dataLakeSASSignatureValues.preauthorizedAgentObjectId, + dataLakeSASSignatureValues.agentObjectId, dataLakeSASSignatureValues.correlationId, dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : "", dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : "", @@ -716,8 +715,8 @@ function generateBlobSASQueryParametersUDK20181109( dataLakeSASSignatureValues.contentType, userDelegationKeyCredential.userDelegationKey, dataLakeSASSignatureValues.directoryDepth, - dataLakeSASSignatureValues.authorizedUserObjectId, - dataLakeSASSignatureValues.unauthorizedUserObjectId, + dataLakeSASSignatureValues.preauthorizedAgentObjectId, + dataLakeSASSignatureValues.agentObjectId, dataLakeSASSignatureValues.correlationId ); } @@ -771,28 +770,28 @@ function SASSignatureValuesSanityCheckAndAutofill( dataLakeSASSignatureValues.permissions && (dataLakeSASSignatureValues.permissions.move || dataLakeSASSignatureValues.permissions.execute || - dataLakeSASSignatureValues.permissions.ownership || - dataLakeSASSignatureValues.permissions.permission) + dataLakeSASSignatureValues.permissions.manageOwnership || + dataLakeSASSignatureValues.permissions.manageAccessControl) ) { throw RangeError("'version' must be >= '2020-02-10' when providing m, e, o or p permission."); } if ( version < "2020-02-10" && - (dataLakeSASSignatureValues.authorizedUserObjectId || - dataLakeSASSignatureValues.unauthorizedUserObjectId || + (dataLakeSASSignatureValues.preauthorizedAgentObjectId || + dataLakeSASSignatureValues.agentObjectId || dataLakeSASSignatureValues.correlationId) ) { throw RangeError( - "'version' must be >= '2020-02-10' when providing 'authorizedUserObjectId', 'unauthorizedUserObjectId' or 'correlationId'." + "'version' must be >= '2020-02-10' when providing 'preauthorizedAgentObjectId', 'agentObjectId' or 'correlationId'." ); } if ( - dataLakeSASSignatureValues.authorizedUserObjectId && - dataLakeSASSignatureValues.unauthorizedUserObjectId + dataLakeSASSignatureValues.preauthorizedAgentObjectId && + dataLakeSASSignatureValues.agentObjectId ) { throw RangeError( - "'authorizedUserObjectId' or 'unauthorizedUserObjectId' shouldn't be specified at the same time." + "'preauthorizedAgentObjectId' or 'agentObjectId' shouldn't be specified at the same time." ); } diff --git a/sdk/storage/storage-file-datalake/src/sas/FileSystemSASPermissions.ts b/sdk/storage/storage-file-datalake/src/sas/FileSystemSASPermissions.ts index 44fc86deafa5..2a97878c5443 100644 --- a/sdk/storage/storage-file-datalake/src/sas/FileSystemSASPermissions.ts +++ b/sdk/storage/storage-file-datalake/src/sas/FileSystemSASPermissions.ts @@ -51,10 +51,10 @@ export class FileSystemSASPermissions { containerSASPermissions.execute = true; break; case "o": - containerSASPermissions.ownership = true; + containerSASPermissions.manageOwnership = true; break; case "p": - containerSASPermissions.permission = true; + containerSASPermissions.manageAccessControl = true; break; default: throw new RangeError(`Invalid permission ${char}`); @@ -129,20 +129,23 @@ export class FileSystemSASPermissions { public execute: boolean = false; /** - * Specifies Ownership access granted. + * Specifies Ownership access granted, which allows the caller to set owner, owning group, + * or act as the owner when renaming or deleting a blob (file or directory) within a folder + * that has the sticky bit set. * * @type {boolean} * @memberof DirectorySASPermissions */ - public ownership: boolean = false; + public manageOwnership: boolean = false; /** - * Specifies Permission access granted. + * Specifies Permission access granted, which allows the caller to set permissions and + * POSIX ACLs on blobs (files and directories). * * @type {boolean} * @memberof DirectorySASPermissions */ - public permission: boolean = false; + public manageAccessControl: boolean = false; /** * Converts the given permissions to a string. Using this method will guarantee the permissions are in an @@ -180,10 +183,10 @@ export class FileSystemSASPermissions { if (this.execute) { permissions.push("e"); } - if (this.ownership) { + if (this.manageOwnership) { permissions.push("o"); } - if (this.permission) { + if (this.manageAccessControl) { permissions.push("p"); } return permissions.join(""); diff --git a/sdk/storage/storage-file-datalake/src/sas/SASQueryParameters.ts b/sdk/storage/storage-file-datalake/src/sas/SASQueryParameters.ts index 30df58d80009..b481c32a4f04 100644 --- a/sdk/storage/storage-file-datalake/src/sas/SASQueryParameters.ts +++ b/sdk/storage/storage-file-datalake/src/sas/SASQueryParameters.ts @@ -22,6 +22,160 @@ export enum SASProtocol { HttpsAndHttp = "https,http" } +/** + * Options interfac to construct {@link SASQueryParameters}. + * + * @export + * @interface SASQueryParametersOptions + */ +export interface SASQueryParametersOptions { + /** + * Optional only when identifier is provided. + * Please refer to {@link AccountSASPermissions}, {@link BlobSASPermissions}, or {@link ContainerSASPermissions} for + * more details. + * + * @type {string} + * @memberof SASQueryParametersOptions + */ + permissions?: string; + /** + * Optional. The storage services being accessed (only for Account SAS). Please refer to {@link AccountSASServices} + * for more details. + * + * @type {string} + * @memberof SASQueryParametersOptions + */ + services?: string; + /** + * Optional. The storage resource types being accessed (only for Account SAS). Please refer to + * {@link AccountSASResourceTypes} for more details. + * + * @type {string} + * @memberof SASQueryParametersOptions + */ + resourceTypes?: string; + /** + * Optional. The allowed HTTP protocol(s). + * + * @type {SASProtocol} + * @memberof SASQueryParametersOptions + */ + protocol?: SASProtocol; + /** + * Optional. The start time for this SAS token. + * + * @type {Date} + * @memberof SASQueryParametersOptions + */ + startsOn?: Date; + /** + * Optional only when identifier is provided. The expiry time for this SAS token. + * + * @type {Date} + * @memberof SASQueryParametersOptions + */ + expiresOn?: Date; + /** + * Optional. IP ranges allowed in this SAS. + * + * @type {SasIPRange} + * @memberof SASQueryParametersOptions + */ + ipRange?: SasIPRange; + /** + * Optional. The signed identifier (only for {@link BlobSASSignatureValues}). + * + * @see https://docs.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy + * + * @type {string} + * @memberof SASQueryParametersOptions + */ + identifier?: string; + /** + * Optional. The storage container or blob (only for {@link BlobSASSignatureValues}). + * + * @type {string} + * @memberof SASQueryParametersOptions + */ + resource?: string; + /** + * Value for cache-control header in Blob/File Service SAS. + * + * @type {string} + * @memberof SASQueryParametersOptions + */ + cacheControl?: string; + /** + * Value for content-disposition header in Blob/File Service SAS. + * + * @type {string} + * @memberof SASQueryParametersOptions + */ + contentDisposition?: string; + /** + * Value for content-encoding header in Blob/File Service SAS. + * + * @type {string} + * @memberof SASQueryParametersOptions + */ + contentEncoding?: string; + /** + * Value for content-length header in Blob/File Service SAS. + * + * @type {string} + * @memberof SASQueryParametersOptions + */ + contentLanguage?: string; + /** + * Value for content-type header in Blob/File Service SAS. + * + * @type {string} + * @memberof SASQueryParametersOptions + */ + contentType?: string; + /** + * User delegation key properties. + * + * @type {UserDelegationKey} + * @memberof SASQueryParametersOptions + */ + userDelegationKey?: UserDelegationKey; + /** + * Indicate the depth of the directory specified in the canonicalizedresource field of the string-to-sign. + * The depth of the directory is the number of directories beneath the root folder. + * + * @type {number} + * @memberof SASQueryParametersOptions + */ + directoryDepth?: number; + /** + * Authorized AAD Object Id in GUID format. The AAD Object ID of a user authorized by the owner of the User Delegation Key + * to perform the action granted by the SAS. The Azure Storage service will ensure that the owner of the user delegation key + * has the required permissions before granting access but no additional permission check for the user specified in + * this value will be performed. This cannot be used in conjuction with {@link signedUnauthorizedUserObjectId}. + * + * @type {string} + * @memberof SASQueryParametersOptions + */ + preauthorizedAgentObjectId?: string; + /** + * Unauthorized AAD Object Id in GUID format. The AAD Object Id of a user that is assumed to be unauthorized by the owner of the User Delegation Key. + * The Azure Storage Service will perform an additional POSIX ACL check to determine if the user is authorized to perform the requested operation. + * This cannot be used in conjuction with {@link signedAuthorizedUserObjectId}. + * + * @type {string} + * @memberof SASQueryParametersOptions + */ + agentObjectId?: string; + /** + * A GUID value that will be logged in the storage diagnostic logs and can be used to correlate SAS generation with storage resource access. + * + * @type {string} + * @memberof SASQueryParametersOptions + */ + correlationId?: string; +} + /** * Represents the components that make up an Azure Storage SAS' query parameters. This type is not constructed directly * by the user; it is only generated by the {@link AccountSASSignatureValues} and {@link BlobSASSignatureValues} @@ -234,11 +388,10 @@ export class SASQueryParameters { * Indicate the depth of the directory specified in the canonicalizedresource field of the string-to-sign. * The depth of the directory is the number of directories beneath the root folder. * - * @private * @type {number} * @memberof SASQueryParameters */ - private readonly directoryDepth?: number; + public readonly directoryDepth?: number; /** * Authorized AAD Object Id in GUID format. The AAD Object ID of a user authorized by the owner of the User Delegation Key @@ -246,22 +399,20 @@ export class SASQueryParameters { * has the required permissions before granting access but no additional permission check for the user specified in * this value will be performed. This cannot be used in conjuction with {@link signedUnauthorizedUserObjectId}. * - * @private * @type {string} * @memberof SASQueryParameters */ - private readonly authorizedUserObjectId?: string; + public readonly preauthorizedAgentObjectId?: string; /** * Unauthorized AAD Object Id in GUID format. The AAD Object Id of a user that is assumed to be unauthorized by the owner of the User Delegation Key. * The Azure Storage Service will perform an additional POSIX ACL check to determine if the user is authorized to perform the requested operation. * This cannot be used in conjuction with {@link signedAuthorizedUserObjectId}. * - * @private * @type {string} * @memberof SASQueryParameters */ - private readonly unauthorizedUserObjectId?: string; + public readonly agentObjectId?: string; /** * A GUID value that will be logged in the storage diagnostic logs and can be used to correlate SAS generation with storage resource access. @@ -269,7 +420,7 @@ export class SASQueryParameters { * @type {string} * @memberof SASQueryParameters */ - private readonly correlationId?: string; + public readonly correlationId?: string; /** * Optional. IP range allowed for this SAS. @@ -329,38 +480,97 @@ export class SASQueryParameters { contentType?: string, userDelegationKey?: UserDelegationKey, directoryDepth?: number, - authorizedUserObjectId?: string, - unauthorizedUserObjectId?: string, + preauthorizedAgentObjectId?: string, + agentObjectId?: string, + correlationId?: string + ); + + constructor(version: string, signature: string, options: SASQueryParametersOptions); + + constructor( + version: string, + signature: string, + permissionsOrOptions?: string | SASQueryParametersOptions, + services?: string, + resourceTypes?: string, + protocol?: SASProtocol, + startsOn?: Date, + expiresOn?: Date, + ipRange?: SasIPRange, + identifier?: string, + resource?: string, + cacheControl?: string, + contentDisposition?: string, + contentEncoding?: string, + contentLanguage?: string, + contentType?: string, + userDelegationKey?: UserDelegationKey, + directoryDepth?: number, + preauthorizedAgentObjectId?: string, + agentObjectId?: string, correlationId?: string ) { this.version = version; - this.services = services; - this.resourceTypes = resourceTypes; - this.expiresOn = expiresOn; - this.permissions = permissions; - this.protocol = protocol; - this.startsOn = startsOn; - this.ipRangeInner = ipRange; - this.identifier = identifier; - this.resource = resource; this.signature = signature; - this.cacheControl = cacheControl; - this.contentDisposition = contentDisposition; - this.contentEncoding = contentEncoding; - this.contentLanguage = contentLanguage; - this.contentType = contentType; - this.directoryDepth = directoryDepth; - this.authorizedUserObjectId = authorizedUserObjectId; - this.unauthorizedUserObjectId = unauthorizedUserObjectId; - this.correlationId = correlationId; - - if (userDelegationKey) { - this.signedOid = userDelegationKey.signedObjectId; - this.signedTenantId = userDelegationKey.signedTenantId; - this.signedStartsOn = userDelegationKey.signedStartsOn; - this.signedExpiresOn = userDelegationKey.signedExpiresOn; - this.signedService = userDelegationKey.signedService; - this.signedVersion = userDelegationKey.signedVersion; + + if (permissionsOrOptions !== undefined && typeof permissionsOrOptions !== "string") { + // SASQueryParametersOptions + const options = permissionsOrOptions; + this.services = options.services; + this.resourceTypes = options.resourceTypes; + this.expiresOn = options.expiresOn; + this.permissions = options.permissions; + this.protocol = options.protocol; + this.startsOn = options.startsOn; + this.ipRangeInner = options.ipRange; + this.identifier = options.identifier; + this.resource = options.resource; + this.cacheControl = options.cacheControl; + this.contentDisposition = options.contentDisposition; + this.contentEncoding = options.contentEncoding; + this.contentLanguage = options.contentLanguage; + this.contentType = options.contentType; + this.directoryDepth = options.directoryDepth; + this.preauthorizedAgentObjectId = options.preauthorizedAgentObjectId; + this.agentObjectId = options.agentObjectId; + this.correlationId = options.correlationId; + + if (options.userDelegationKey) { + this.signedOid = options.userDelegationKey.signedObjectId; + this.signedTenantId = options.userDelegationKey.signedTenantId; + this.signedStartsOn = options.userDelegationKey.signedStartsOn; + this.signedExpiresOn = options.userDelegationKey.signedExpiresOn; + this.signedService = options.userDelegationKey.signedService; + this.signedVersion = options.userDelegationKey.signedVersion; + } + } else { + this.services = services; + this.resourceTypes = resourceTypes; + this.expiresOn = expiresOn; + this.permissions = permissionsOrOptions; + this.protocol = protocol; + this.startsOn = startsOn; + this.ipRangeInner = ipRange; + this.identifier = identifier; + this.resource = resource; + this.cacheControl = cacheControl; + this.contentDisposition = contentDisposition; + this.contentEncoding = contentEncoding; + this.contentLanguage = contentLanguage; + this.contentType = contentType; + this.directoryDepth = directoryDepth; + this.preauthorizedAgentObjectId = preauthorizedAgentObjectId; + this.agentObjectId = agentObjectId; + this.correlationId = correlationId; + + if (userDelegationKey) { + this.signedOid = userDelegationKey.signedObjectId; + this.signedTenantId = userDelegationKey.signedTenantId; + this.signedStartsOn = userDelegationKey.signedStartsOn; + this.signedExpiresOn = userDelegationKey.signedExpiresOn; + this.signedService = userDelegationKey.signedService; + this.signedVersion = userDelegationKey.signedVersion; + } } } @@ -493,10 +703,10 @@ export class SASQueryParameters { this.tryAppendQueryParameter(queries, param, this.directoryDepth?.toString()); break; case "saoid": - this.tryAppendQueryParameter(queries, param, this.authorizedUserObjectId); + this.tryAppendQueryParameter(queries, param, this.preauthorizedAgentObjectId); break; case "suoid": - this.tryAppendQueryParameter(queries, param, this.unauthorizedUserObjectId); + this.tryAppendQueryParameter(queries, param, this.agentObjectId); break; case "scid": this.tryAppendQueryParameter(queries, param, this.correlationId); diff --git a/sdk/storage/storage-file-datalake/test/node/sas.spec.ts b/sdk/storage/storage-file-datalake/test/node/sas.spec.ts index a9a755834001..548f61031b34 100644 --- a/sdk/storage/storage-file-datalake/test/node/sas.spec.ts +++ b/sdk/storage/storage-file-datalake/test/node/sas.spec.ts @@ -17,20 +17,17 @@ import { newPipeline, PathAccessControlItem, PathPermissions, - StorageSharedKeyCredential + StorageSharedKeyCredential, + SASQueryParameters } from "../../src"; import { DataLakeFileClient } from "../../src/"; import { SASProtocol } from "../../src/sas/SASQueryParameters"; import { getDataLakeServiceClient, - // getDataLakeServiceClientWithDefualtCredential, getTokenDataLakeServiceClient, recorderEnvSetup } from "../utils"; -import { setLogLevel } from "@azure/logger"; -setLogLevel("info"); - describe("Shared Access Signature (SAS) generation Node.js only", () => { let recorder: Recorder; let serviceClient: DataLakeServiceClient; @@ -629,9 +626,54 @@ describe("Shared Access Signature (SAS) generation Node.js only", () => { await fileSystemClient.delete(); }); + + it("construct SASQueryParameters with a option bag", async () => { + // no option and optional parameters + const sasQP = new SASQueryParameters("2020-02-10", "signature"); + assert.equal(sasQP.toString(), "sv=2020-02-10&sig=signature"); + + const sasQP2 = new SASQueryParameters("2020-02-10", "signature", { + permissions: "permissions", + correlationId: "correlationId", + directoryDepth: 2, + preauthorizedAgentObjectId: "preauthorizedAgentObjectId" + }); + assert.equal( + sasQP2.toString(), + "sv=2020-02-10&sp=permissions&sig=signature&sdd=2&saoid=preauthorizedAgentObjectId&scid=correlationId" + ); + + const sasQP3 = new SASQueryParameters( + "2020-02-10", + "signature", + "permissions", + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + 2, + "preauthorizedAgentObjectId", + undefined, + "correlationId" + ); + assert.equal( + sasQP3.toString(), + "sv=2020-02-10&sp=permissions&sig=signature&sdd=2&saoid=preauthorizedAgentObjectId&scid=correlationId" + ); + }); }); -describe("Shared Access Signature (SAS) generation Node.js only for permissions m, e, o, p", () => { +describe("Shared Access Signature (SAS) generation Node.js only for directory SAS", () => { let recorder: Recorder; let serviceClient: DataLakeServiceClient; let fileSystemClient: DataLakeFileSystemClient; @@ -661,39 +703,6 @@ describe("Shared Access Signature (SAS) generation Node.js only for permissions } }; - // const acl: PathAccessControlItem[] = [ - // { - // accessControlType: "user", - // entityId: "", - // defaultScope: false, - // permissions: { - // read: true, - // write: true, - // execute: true - // } - // }, - // { - // accessControlType: "group", - // entityId: "", - // defaultScope: false, - // permissions: { - // read: true, - // write: false, - // execute: true - // } - // }, - // { - // accessControlType: "other", - // entityId: "", - // defaultScope: false, - // permissions: { - // read: false, - // write: true, - // execute: false - // } - // } - // ]; - beforeEach(async function() { recorder = record(this, recorderEnvSetup); serviceClient = getDataLakeServiceClient(); @@ -747,15 +756,6 @@ describe("Shared Access Signature (SAS) generation Node.js only for permissions newPipeline(new AnonymousCredential()) ); - // Does not work yet. - // m - // const newFileName = recorder.getUniqueName("newfile"); - // await directoryClientwithSAS.move(newFileName); - - // o - // const guid = "ca761232ed4211cebacd00aa0057b223"; - // await directoryClientwithSAS.setAccessControl(acl, { owner: guid }); - // e await directoryClientwithSAS.getAccessControl(); @@ -763,6 +763,49 @@ describe("Shared Access Signature (SAS) generation Node.js only for permissions await directoryClientwithSAS.setPermissions(permissions); }); + function getDefualtDirctorySAS(directoryName: string): SASQueryParameters { + return generateDataLakeSASQueryParameters( + { + fileSystemName: fileSystemClient.name, + pathName: directoryName, + isDirectory: true, + expiresOn: tmr, + permissions: FileSystemSASPermissions.parse("racwdlmeop"), + protocol: SASProtocol.HttpsAndHttp, + startsOn: now, + version: "2020-02-10" + }, + sharedKeyCredential as StorageSharedKeyCredential + ); + } + + it("generateDataLakeSASQueryParameters could calculate directory depth", async () => { + const directorySAS = getDefualtDirctorySAS(directoryClient.name); + assert.equal(directorySAS.directoryDepth, 1); + const directoryClientwithSAS = new DataLakeDirectoryClient( + `${directoryClient.url}?${directorySAS}` + ); + await directoryClientwithSAS.setPermissions(permissions); + + // root directory, depth = 0 + const directorySAS2 = getDefualtDirctorySAS(""); + assert.equal(directorySAS2.directoryDepth, 0); + const directoryClientwithSAS2 = new DataLakeDirectoryClient( + `${directoryClient.url}?${directorySAS2}` + ); + await directoryClientwithSAS2.setPermissions(permissions); + + // "/d1/d2/", "d1/d2", "/d1/d2" depth = 2 + const directorySAS3 = getDefualtDirctorySAS("/d1/d2/"); + assert.equal(directorySAS3.directoryDepth, 2); + + const directorySAS4 = getDefualtDirctorySAS("d1/d2"); + assert.equal(directorySAS4.directoryDepth, 2); + + const directorySAS5 = getDefualtDirctorySAS("/d1/d2"); + assert.equal(directorySAS5.directoryDepth, 2); + }); + it("generateDataLakeSASQueryParameters for file should work for permissions m, e, o, p", async () => { const fileSAS = generateDataLakeSASQueryParameters( { @@ -783,15 +826,6 @@ describe("Shared Access Signature (SAS) generation Node.js only for permissions newPipeline(new AnonymousCredential()) ); - // Does not work yet. - // m - // const newFileName = recorder.getUniqueName("newfile"); - // await fileClientWithSAS.move(newFileName); - - // o - // const guid = "ca761232ed4211cebacd00aa0057b223"; - // await fileClientWithSAS.setAccessControl(acl, { owner: guid }); - // e await fileClientWithSAS.getAccessControl(); @@ -818,15 +852,6 @@ describe("Shared Access Signature (SAS) generation Node.js only for permissions newPipeline(new AnonymousCredential()) ); - // Does not work yet. - // m - // const newFileName = recorder.getUniqueName("newfile"); - // await directoryClientwithSAS.move(newFileName); - - // o - // const guid = "ca761232ed4211cebacd00aa0057b223"; - // await directoryClientwithSAS.setAccessControl(acl, { owner: guid }); - // e await directoryClientwithSAS.getAccessControl(); @@ -837,7 +862,7 @@ describe("Shared Access Signature (SAS) generation Node.js only for permissions describe("Shared Access Signature (SAS) generation Node.js only for delegation SAS", () => { let recorder: Recorder; - let serviceClient: DataLakeServiceClient; + let oauthServiceClient: DataLakeServiceClient; let fileSystemClient: DataLakeFileSystemClient; let directoryClient: DataLakeDirectoryClient; let fileClient: DataLakeFileClient; @@ -870,8 +895,9 @@ describe("Shared Access Signature (SAS) generation Node.js only for delegation S recorder = record(this, recorderEnvSetup); accountName = process.env["DFS_ACCOUNT_NAME"] || ""; try { - serviceClient = getTokenDataLakeServiceClient(); + oauthServiceClient = getTokenDataLakeServiceClient(); } catch (err) { + console.log(err); this.skip(); } @@ -879,10 +905,10 @@ describe("Shared Access Signature (SAS) generation Node.js only for delegation S now.setHours(now.getHours() - 1); tmr = recorder.newDate("tmr"); tmr.setDate(tmr.getDate() + 5); - userDelegationKey = await serviceClient.getUserDelegationKey(now, tmr); + userDelegationKey = await oauthServiceClient.getUserDelegationKey(now, tmr); const fileSystemName = recorder.getUniqueName("filesystem"); - fileSystemClient = serviceClient.getFileSystemClient(fileSystemName); + fileSystemClient = oauthServiceClient.getFileSystemClient(fileSystemName); await fileSystemClient.create(); const directoryName = recorder.getUniqueName("directory"); @@ -901,10 +927,12 @@ describe("Shared Access Signature (SAS) generation Node.js only for delegation S await recorder.stop(); }); - it.only("GenerateUserDelegationSAS for directory should work for permissions m, e, o, p", async () => { + it("GenerateUserDelegationSAS for directory should work for permissions m, e, o, p", async () => { const fileSystemSAS = generateDataLakeSASQueryParameters( { fileSystemName: fileSystemClient.name, + pathName: directoryClient.name, + isDirectory: true, expiresOn: tmr, permissions: FileSystemSASPermissions.parse("racwdlmeop") }, @@ -914,16 +942,6 @@ describe("Shared Access Signature (SAS) generation Node.js only for delegation S const sasURL = `${directoryClient.url}?${fileSystemSAS}`; const directoryClientwithSAS = new DataLakeDirectoryClient(sasURL); - - // Does not work yet. - // // m - // const newFileName = recorder.getUniqueName("newfile"); - // await directoryClientwithSAS.move(newFileName); - - // // o - // const guid = "ca761232ed4211cebacd00aa0057b223"; - // await directoryClientwithSAS.setAccessControl([], { owner: guid }); - // e await directoryClientwithSAS.getAccessControl(); @@ -931,46 +949,101 @@ describe("Shared Access Signature (SAS) generation Node.js only for delegation S await directoryClientwithSAS.setPermissions(permissions); }); - it("GenerateUserDelegationSAS should work with unauthorizedUserObjectId", async () => { - const guid = "b77d5205-ddb5-42e1-80ee-26c74a5e9333"; + it("GenerateUserDelegationSAS should work with agentObjectId, preauthorizedAgentObjectId", async () => { + const authorizedGuid = "b77d5205-ddb5-42e1-80ee-26c74a5e9333"; + const rootDirectoryClient = fileSystemClient.getDirectoryClient("/"); + const acl: PathAccessControlItem[] = [ + { + accessControlType: "user", + entityId: authorizedGuid, + defaultScope: false, + permissions: { + read: true, + write: true, + execute: true + } + } + ]; + await rootDirectoryClient.setAccessControl(acl); + const fileSystemSAS = generateDataLakeSASQueryParameters( { fileSystemName: fileSystemClient.name, expiresOn: tmr, permissions: FileSystemSASPermissions.parse("racwdlmeop"), - unauthorizedUserObjectId: guid + agentObjectId: authorizedGuid }, userDelegationKey, accountName ); - // const sasURL = `${fileClient.url}?${fileSystemSAS}`; - // const fileClientWithSAS = new DataLakeDirectoryClient(sasURL); + const newFileName = recorder.getUniqueName("newFile"); + const newFileClient = fileSystemClient.getFileClient(newFileName); + const newFileClientWithSAS = new DataLakeDirectoryClient( + `${newFileClient.url}?${fileSystemSAS}` + ); + await newFileClientWithSAS.createIfNotExists(); - // try { - // await fileClientWithSAS.exists(); - // } catch (err) { - // assert.deepStrictEqual(err.details.errorCode, "AuthorizationPermissionMismatch"); - // } + const unauthoriziedGuid = "7d53815c-1b73-49ab-b44d-002bfb890633"; - const acl: PathAccessControlItem[] = [ + // suoid for an unauthoriziedGuid + const fileSystemSAS2 = generateDataLakeSASQueryParameters( { - accessControlType: "user", - entityId: guid, - defaultScope: false, - permissions: { - read: true, - write: true, - execute: true - } - } - ]; - await directoryClient.setAccessControl(acl); + fileSystemName: fileSystemClient.name, + expiresOn: tmr, + permissions: FileSystemSASPermissions.parse("racwdlmeop"), + agentObjectId: unauthoriziedGuid + }, + userDelegationKey, + accountName + ); - console.log(await directoryClient.getAccessControl()); - const newfileClient = directoryClient.getFileClient(recorder.getUniqueName("newfile")); - const SASURL = `${newfileClient.url}?${fileSystemSAS}`; - const newFileClientWithSAS = new DataLakeFileClient(SASURL); - await newFileClientWithSAS.createIfNotExists(); + const newFileClientWithSAS2 = new DataLakeDirectoryClient( + `${newFileClient.url}?${fileSystemSAS2}` + ); + try { + await newFileClientWithSAS2.createIfNotExists(); + } catch (err) { + assert.deepStrictEqual(err.details.errorCode, "AuthorizationPermissionMismatch"); + } + + // saoid for an unauthoriziedGuid + const fileSystemSAS3 = generateDataLakeSASQueryParameters( + { + fileSystemName: fileSystemClient.name, + expiresOn: tmr, + permissions: FileSystemSASPermissions.parse("racwdlmeop"), + preauthorizedAgentObjectId: unauthoriziedGuid + }, + userDelegationKey, + accountName + ); + const newFileClientWithSAS3 = new DataLakeDirectoryClient( + `${newFileClient.url}?${fileSystemSAS3}` + ); + await newFileClientWithSAS3.createIfNotExists(); + }); + + it("GenerateUserDelegationSAS should work with correlationId", async () => { + const guid = "b77d5205-ddb5-42e1-80ee-26c74a5e9333"; + const fileSystemSAS = generateDataLakeSASQueryParameters( + { + fileSystemName: fileSystemClient.name, + expiresOn: tmr, + permissions: FileSystemSASPermissions.parse("racwdlmeop"), + correlationId: guid + }, + userDelegationKey, + accountName + ); + + const fileSystemClientWithSAS = new DataLakeFileSystemClient( + `${fileSystemClient.url}?${fileSystemSAS}` + ); + + await fileSystemClientWithSAS + .listPaths() + .byPage() + .next(); }); }); From 6330ad4ddb01f5e9e4651593f4baf142d19de6a8 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Sun, 27 Sep 2020 17:37:24 +0800 Subject: [PATCH 3/9] api extract --- .../review/storage-file-datalake.api.md | 49 ++++++++++++++----- .../storage-file-datalake/src/models.ts | 35 ++++--------- 2 files changed, 46 insertions(+), 38 deletions(-) diff --git a/sdk/storage/storage-file-datalake/review/storage-file-datalake.api.md b/sdk/storage/storage-file-datalake/review/storage-file-datalake.api.md index ce14785ab425..1160f38286b2 100644 --- a/sdk/storage/storage-file-datalake/review/storage-file-datalake.api.md +++ b/sdk/storage/storage-file-datalake/review/storage-file-datalake.api.md @@ -7,7 +7,7 @@ import { AbortSignalLike } from '@azure/abort-controller'; import { BaseRequestPolicy } from '@azure/core-http'; import { BlobLeaseClient } from '@azure/storage-blob'; -import { BlobQueryArrowField } from '@azure/storage-blob'; +import { BlobQueryArrowConfiguration } from '@azure/storage-blob'; import * as coreHttp from '@azure/core-http'; import { deserializationPolicy } from '@azure/core-http'; import { HttpHeaders } from '@azure/core-http'; @@ -261,10 +261,10 @@ export class DataLakeSASPermissions { create: boolean; delete: boolean; execute: boolean; + manageAccessControl: boolean; + manageOwnership: boolean; move: boolean; - ownership: boolean; static parse(permissions: string): DataLakeSASPermissions; - permission: boolean; read: boolean; toString(): string; write: boolean; @@ -272,7 +272,7 @@ export class DataLakeSASPermissions { // @public export interface DataLakeSASSignatureValues { - authorizedUserObjectId?: string; + agentObjectId?: string; cacheControl?: string; contentDisposition?: string; contentEncoding?: string; @@ -287,10 +287,10 @@ export interface DataLakeSASSignatureValues { isDirectory?: boolean; pathName?: string; permissions?: DataLakeSASPermissions; + preauthorizedAgentObjectId?: string; protocol?: SASProtocol; snapshotTime?: string; startsOn?: Date; - unauthorizedUserObjectId?: string; version?: string; } @@ -389,10 +389,7 @@ export interface FileParallelUploadOptions extends CommonOptions { } // @public -export interface FileQueryArrowConfiguration { - kind: "arrow"; - schema: BlobQueryArrowField[]; -} +export type FileQueryArrowConfiguration = BlobQueryArrowConfiguration; // @public export interface FileQueryCsvTextConfiguration { @@ -766,10 +763,10 @@ export class FileSystemSASPermissions { delete: boolean; execute: boolean; list: boolean; + manageAccessControl: boolean; + manageOwnership: boolean; move: boolean; - ownership: boolean; static parse(permissions: string): FileSystemSASPermissions; - permission: boolean; read: boolean; toString(): string; write: boolean; @@ -1598,16 +1595,21 @@ export enum SASProtocol { // @public export class SASQueryParameters { - constructor(version: string, signature: string, permissions?: string, services?: string, resourceTypes?: string, protocol?: SASProtocol, startsOn?: Date, expiresOn?: Date, ipRange?: SasIPRange, identifier?: string, resource?: string, cacheControl?: string, contentDisposition?: string, contentEncoding?: string, contentLanguage?: string, contentType?: string, userDelegationKey?: UserDelegationKey, directoryDepth?: number, authorizedUserObjectId?: string, unauthorizedUserObjectId?: string, correlationId?: string); + constructor(version: string, signature: string, permissions?: string, services?: string, resourceTypes?: string, protocol?: SASProtocol, startsOn?: Date, expiresOn?: Date, ipRange?: SasIPRange, identifier?: string, resource?: string, cacheControl?: string, contentDisposition?: string, contentEncoding?: string, contentLanguage?: string, contentType?: string, userDelegationKey?: UserDelegationKey, directoryDepth?: number, preauthorizedAgentObjectId?: string, agentObjectId?: string, correlationId?: string); + constructor(version: string, signature: string, options: SASQueryParametersOptions); + readonly agentObjectId?: string; readonly cacheControl?: string; readonly contentDisposition?: string; readonly contentEncoding?: string; readonly contentLanguage?: string; readonly contentType?: string; + readonly correlationId?: string; + readonly directoryDepth?: number; readonly expiresOn?: Date; readonly identifier?: string; get ipRange(): SasIPRange | undefined; readonly permissions?: string; + readonly preauthorizedAgentObjectId?: string; readonly protocol?: SASProtocol; readonly resource?: string; readonly resourceTypes?: string; @@ -1618,6 +1620,29 @@ export class SASQueryParameters { readonly version: string; } +// @public +export interface SASQueryParametersOptions { + agentObjectId?: string; + cacheControl?: string; + contentDisposition?: string; + contentEncoding?: string; + contentLanguage?: string; + contentType?: string; + correlationId?: string; + directoryDepth?: number; + expiresOn?: Date; + identifier?: string; + ipRange?: SasIPRange; + permissions?: string; + preauthorizedAgentObjectId?: string; + protocol?: SASProtocol; + resource?: string; + resourceTypes?: string; + services?: string; + startsOn?: Date; + userDelegationKey?: UserDelegationKey; +} + // @public (undocumented) export interface ServiceGetUserDelegationKeyHeaders { // (undocumented) diff --git a/sdk/storage/storage-file-datalake/src/models.ts b/sdk/storage/storage-file-datalake/src/models.ts index c904c9eec059..b4348cfcd647 100644 --- a/sdk/storage/storage-file-datalake/src/models.ts +++ b/sdk/storage/storage-file-datalake/src/models.ts @@ -7,10 +7,17 @@ import { LeaseAccessConditions, ModifiedAccessConditions as ModifiedAccessConditionsModel, UserDelegationKeyModel, - BlobQueryArrowField + BlobQueryArrowConfiguration } from "@azure/storage-blob"; export type ModifiedAccessConditions = Omit; -export type FileQueryArrowField = BlobQueryArrowField; + +/** + * Options to query file with Apache Arrow format. Only valid for {@link FileQueryOptions.outputTextConfiguration}. + * + * @export + * @interface FileQueryArrowConfiguration + */ +export type FileQueryArrowConfiguration = BlobQueryArrowConfiguration; import { FileSystemListPathsHeaders, @@ -1281,30 +1288,6 @@ export interface FileQueryCsvTextConfiguration { hasHeaders?: boolean; } -/** - * Options to query file with Apache Arrow format. Only valid for {@link FileQueryOptions.outputTextConfiguration}. - * - * @export - * @interface FileQueryArrowConfiguration - */ -export interface FileQueryArrowConfiguration { - /** - * Kind. - * - * @type {"arrow"} - * @memberof FileQueryArrowConfiguration - */ - kind: "arrow"; - - /** - * List of {@link BlobQueryArrowField} describing the schema of the data. - * - * @type {BlobQueryArrowField[]} - * @memberof FileQueryArrowConfiguration - */ - schema: BlobQueryArrowField[]; -} - /** * File query error type. * From 9b3154aa0f9d938862f630dd2f45a473c5bc42fc Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Sun, 27 Sep 2020 18:11:01 +0800 Subject: [PATCH 4/9] Rename leaseTime -> leaseTimeInSeconds --- .../review/storage-file-share.api.md | 2 +- sdk/storage/storage-file-share/src/Clients.ts | 2 +- .../src/generated/src/models/index.ts | 2 +- .../src/generated/src/models/mappers.ts | 2 +- sdk/storage/storage-file-share/swagger/README.md | 10 ++++++++++ 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/sdk/storage/storage-file-share/review/storage-file-share.api.md b/sdk/storage/storage-file-share/review/storage-file-share.api.md index a530227db490..08200fa88502 100644 --- a/sdk/storage/storage-file-share/review/storage-file-share.api.md +++ b/sdk/storage/storage-file-share/review/storage-file-share.api.md @@ -1089,7 +1089,7 @@ export interface LeaseOperationResponseHeaders { etag?: string; lastModified?: Date; leaseId?: string; - leaseTime?: number; + leaseTimeInSeconds?: number; requestId?: string; version?: string; } diff --git a/sdk/storage/storage-file-share/src/Clients.ts b/sdk/storage/storage-file-share/src/Clients.ts index 176fd39e789a..d4fe1ce02010 100644 --- a/sdk/storage/storage-file-share/src/Clients.ts +++ b/sdk/storage/storage-file-share/src/Clients.ts @@ -5682,7 +5682,7 @@ export interface LeaseOperationResponseHeaders { /** * Approximate time remaining in the lease period, in seconds. Only availabe for {@link ShareLeaseClient.breakLease} for share lease. */ - leaseTime?: number; + leaseTimeInSeconds?: number; /** * Uniquely identifies a file's lease, won't be set when returned by releaseLease. */ diff --git a/sdk/storage/storage-file-share/src/generated/src/models/index.ts b/sdk/storage/storage-file-share/src/generated/src/models/index.ts index 064a9230c003..f38fc0e12f46 100644 --- a/sdk/storage/storage-file-share/src/generated/src/models/index.ts +++ b/sdk/storage/storage-file-share/src/generated/src/models/index.ts @@ -1861,7 +1861,7 @@ export interface ShareBreakLeaseHeaders { /** * Approximate time remaining in the lease period, in seconds. */ - leaseTime?: number; + leaseTimeInSeconds?: number; /** * Uniquely identifies a share's lease */ diff --git a/sdk/storage/storage-file-share/src/generated/src/models/mappers.ts b/sdk/storage/storage-file-share/src/generated/src/models/mappers.ts index 2c5d0a850a62..84f565862f88 100644 --- a/sdk/storage/storage-file-share/src/generated/src/models/mappers.ts +++ b/sdk/storage/storage-file-share/src/generated/src/models/mappers.ts @@ -1635,7 +1635,7 @@ export const ShareBreakLeaseHeaders: coreHttp.CompositeMapper = { name: "DateTimeRfc1123" } }, - leaseTime: { + leaseTimeInSeconds: { serializedName: "x-ms-lease-time", type: { name: "Number" diff --git a/sdk/storage/storage-file-share/swagger/README.md b/sdk/storage/storage-file-share/swagger/README.md index 1af9d439ec00..c64f40ad2f33 100644 --- a/sdk/storage/storage-file-share/swagger/README.md +++ b/sdk/storage/storage-file-share/swagger/README.md @@ -282,4 +282,14 @@ directive: $["x-ms-client-name"] = "body"; ``` +### Rename leaseTime -> leaseTimeInSeconds + +```yaml +directive: + - from: swagger-document + where: $["x-ms-paths"]["/{shareName}?restype=share&comp=lease&break"]..responses..headers["x-ms-lease-time"] + transform: > + $["x-ms-client-name"] = "LeaseTimeInSeconds"; +``` + ![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-js%2Fsdk%2Fstorage%2Fstorage-file-share%2Fswagger%2FREADME.png) From 62466e16cbc4c80f4bc31e559aaf65acacba6322 Mon Sep 17 00:00:00 2001 From: ljian3377 <1215122919@qq.com> Date: Sun, 27 Sep 2020 23:08:51 +0800 Subject: [PATCH 5/9] share lease tests --- .../recording_acquire_a_broken_lease.json | 192 ++++++++++++ .../recording_acquirelease.json | 121 ++++++++ ...uirelease_again_with_another_lease_id.json | 114 +++++++ ...acquirelease_again_with_same_lease_id.json | 115 +++++++ .../recording_acquirelease_for_snapshot.json | 150 +++++++++ ...posed_lease_id_with_a_finite_duration.json | 121 ++++++++ .../recording_break_a_broken_lease.json | 137 +++++++++ ...rding_break_lease_and_then_release_it.json | 170 ++++++++++ .../recording_changelease.json | 115 +++++++ ..._changelease_before_acquiring_a_lease.json | 70 +++++ ...ing_invalid_duration_for_acquirelease.json | 70 +++++ .../recording_lease_condition_for_delete.json | 109 +++++++ ...ng_lease_condition_for_get_operations.json | 169 ++++++++++ ..._lease_condition_for_write_operations.json | 156 ++++++++++ ...ng_lease_properties_properly_returned.json | 140 +++++++++ .../recording_release_lease.json | 120 ++++++++ .../recording_renew_a_lease.json | 115 +++++++ .../recording_acquire_a_broken_lease.js | 223 ++++++++++++++ .../recording_acquirelease.js | 135 ++++++++ ...cquirelease_again_with_another_lease_id.js | 115 +++++++ ...g_acquirelease_again_with_same_lease_id.js | 117 +++++++ .../recording_acquirelease_for_snapshot.js | 175 +++++++++++ ...roposed_lease_id_with_a_finite_duration.js | 135 ++++++++ .../recording_break_a_broken_lease.js | 141 +++++++++ ...cording_break_lease_and_then_release_it.js | 199 ++++++++++++ .../recording_changelease.js | 117 +++++++ ...ng_changelease_before_acquiring_a_lease.js | 67 ++++ ...rding_invalid_duration_for_acquirelease.js | 67 ++++ .../recording_lease_condition_for_delete.js | 109 +++++++ ...ding_lease_condition_for_get_operations.js | 203 ++++++++++++ ...ng_lease_condition_for_write_operations.js | 159 ++++++++++ ...ding_lease_properties_properly_returned.js | 159 ++++++++++ .../recording_release_lease.js | 133 ++++++++ .../recording_renew_a_lease.js | 117 +++++++ sdk/storage/storage-file-share/src/Clients.ts | 4 +- .../test/leaseclient.spec.ts | 291 +++++++++++++++++- 36 files changed, 4833 insertions(+), 17 deletions(-) create mode 100644 sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquire_a_broken_lease.json create mode 100644 sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease.json create mode 100644 sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease_again_with_another_lease_id.json create mode 100644 sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease_again_with_same_lease_id.json create mode 100644 sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease_for_snapshot.json create mode 100644 sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease_without_proposed_lease_id_with_a_finite_duration.json create mode 100644 sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_break_a_broken_lease.json create mode 100644 sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_break_lease_and_then_release_it.json create mode 100644 sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_changelease.json create mode 100644 sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_changelease_before_acquiring_a_lease.json create mode 100644 sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_invalid_duration_for_acquirelease.json create mode 100644 sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_lease_condition_for_delete.json create mode 100644 sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_lease_condition_for_get_operations.json create mode 100644 sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_lease_condition_for_write_operations.json create mode 100644 sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_lease_properties_properly_returned.json create mode 100644 sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_release_lease.json create mode 100644 sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_renew_a_lease.json create mode 100644 sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquire_a_broken_lease.js create mode 100644 sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease.js create mode 100644 sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease_again_with_another_lease_id.js create mode 100644 sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease_again_with_same_lease_id.js create mode 100644 sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease_for_snapshot.js create mode 100644 sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease_without_proposed_lease_id_with_a_finite_duration.js create mode 100644 sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_break_a_broken_lease.js create mode 100644 sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_break_lease_and_then_release_it.js create mode 100644 sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_changelease.js create mode 100644 sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_changelease_before_acquiring_a_lease.js create mode 100644 sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_invalid_duration_for_acquirelease.js create mode 100644 sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_lease_condition_for_delete.js create mode 100644 sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_lease_condition_for_get_operations.js create mode 100644 sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_lease_condition_for_write_operations.js create mode 100644 sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_lease_properties_properly_returned.js create mode 100644 sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_release_lease.js create mode 100644 sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_renew_a_lease.js diff --git a/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquire_a_broken_lease.json b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquire_a_broken_lease.json new file mode 100644 index 000000000000..1637fe87c53a --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquire_a_broken_lease.json @@ -0,0 +1,192 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121923329702973", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:12 GMT", + "etag": "\"0x8D862F704189B36\"", + "last-modified": "Sun, 27 Sep 2020 15:07:13 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "078a80d8-07a4-4dbf-bf0c-221adaf2daf6", + "x-ms-request-id": "0ce68c4a-701a-0026-46df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121923329702973", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:13 GMT", + "etag": "\"0x8D862F704189B36\"", + "last-modified": "Sun, 27 Sep 2020 15:07:13 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "bac6af8c-e891-42ee-8cde-765720e45bb5", + "x-ms-lease-id": "a951739b-fdf4-4e2b-bb24-ce9d3ea40580", + "x-ms-request-id": "0ce68c4f-701a-0026-48df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121923329702973", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:14 GMT", + "etag": "\"0x8D862F704189B36\"", + "last-modified": "Sun, 27 Sep 2020 15:07:13 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "8a4df4f7-952e-4fb8-95c2-932db5d74a06", + "x-ms-lease-time": "0", + "x-ms-request-id": "0ce68c51-701a-0026-49df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/share160121923329702973", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:14 GMT", + "etag": "\"0x8D862F704189B36\"", + "last-modified": "Sun, 27 Sep 2020 15:07:13 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-access-tier": "TransactionOptimized", + "x-ms-access-tier-change-time": "Sun, 27 Sep 2020 15:07:13 GMT", + "x-ms-client-request-id": "63c66d0c-17f2-4f44-b5c5-c96d94ad98c7", + "x-ms-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", + "x-ms-lease-state": "broken", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "0ce68c55-701a-0026-4cdf-9426be000000", + "x-ms-share-quota": "5120", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121923329702973", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:15 GMT", + "etag": "\"0x8D862F704189B36\"", + "last-modified": "Sun, 27 Sep 2020 15:07:13 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "28454f99-57b2-4ee4-8b17-0f871c08ef33", + "x-ms-lease-id": "a951739b-fdf4-4e2b-bb24-ce9d3ea40580", + "x-ms-request-id": "0ce68c57-701a-0026-4ddf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/share160121923329702973", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:16 GMT", + "etag": "\"0x8D862F704189B36\"", + "last-modified": "Sun, 27 Sep 2020 15:07:13 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-access-tier": "TransactionOptimized", + "x-ms-access-tier-change-time": "Sun, 27 Sep 2020 15:07:13 GMT", + "x-ms-client-request-id": "02ac1d5d-a6ca-41ed-9129-f07bb42e24c1", + "x-ms-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", + "x-ms-lease-duration": "infinite", + "x-ms-lease-state": "leased", + "x-ms-lease-status": "locked", + "x-ms-request-id": "0ce68c5a-701a-0026-4fdf-9426be000000", + "x-ms-share-quota": "5120", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121923329702973", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:16 GMT", + "etag": "\"0x8D862F704189B36\"", + "last-modified": "Sun, 27 Sep 2020 15:07:13 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "5fcf8cbc-0f2a-491f-a18f-361cf605f255", + "x-ms-lease-time": "0", + "x-ms-request-id": "0ce68c5d-701a-0026-52df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121923329702973", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:17 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "0df6a693-f351-4c58-8ba7-b8f56c20e883", + "x-ms-request-id": "0ce68c60-701a-0026-54df-9426be000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share160121923329702973" + }, + "newDate": {} + }, + "hash": "9bb9ff27d1a7596192f2543142fdec37" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease.json b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease.json new file mode 100644 index 000000000000..93411a9329bd --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease.json @@ -0,0 +1,121 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121919298303771", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:33 GMT", + "etag": "\"0x8D862F6ECACACD9\"", + "last-modified": "Sun, 27 Sep 2020 15:06:34 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "0e3a51c7-54b6-4c50-8a95-6d90f0e6e9ff", + "x-ms-request-id": "0ce68b9d-701a-0026-4edf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121919298303771", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:34 GMT", + "etag": "\"0x8D862F6ECACACD9\"", + "last-modified": "Sun, 27 Sep 2020 15:06:34 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "3350fd53-37f3-4473-b543-52357d4e2edf", + "x-ms-lease-id": "e9890485-bf47-4d9a-b3d0-aceb18506124", + "x-ms-request-id": "0ce68ba1-701a-0026-50df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/share160121919298303771", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:35 GMT", + "etag": "\"0x8D862F6ECACACD9\"", + "last-modified": "Sun, 27 Sep 2020 15:06:34 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-access-tier": "TransactionOptimized", + "x-ms-access-tier-change-time": "Sun, 27 Sep 2020 15:06:34 GMT", + "x-ms-client-request-id": "df2e860d-67f8-4859-87d9-95137402b578", + "x-ms-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", + "x-ms-lease-duration": "infinite", + "x-ms-lease-state": "leased", + "x-ms-lease-status": "locked", + "x-ms-request-id": "0ce68ba5-701a-0026-53df-9426be000000", + "x-ms-share-quota": "5120", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121919298303771", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:35 GMT", + "etag": "\"0x8D862F6ECACACD9\"", + "last-modified": "Sun, 27 Sep 2020 15:06:34 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "32df462b-25a8-41c2-b114-2fd3f5cb6b52", + "x-ms-lease-time": "0", + "x-ms-request-id": "0ce68ba9-701a-0026-56df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121919298303771", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:36 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "6be03c71-bc84-43d1-beda-c2284e2fdbb6", + "x-ms-request-id": "0ce68bac-701a-0026-58df-9426be000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share160121919298303771" + }, + "newDate": {} + }, + "hash": "3271dde67c5296103fdf6f626ed60976" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease_again_with_another_lease_id.json b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease_again_with_another_lease_id.json new file mode 100644 index 000000000000..d665c8b10358 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease_again_with_another_lease_id.json @@ -0,0 +1,114 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121920597404062", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:45 GMT", + "etag": "\"0x8D862F6F3CC2D1D\"", + "last-modified": "Sun, 27 Sep 2020 15:06:46 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "fe3cb93c-6151-4719-a3fe-c1c8dc3a7040", + "x-ms-request-id": "0ce68bd4-701a-0026-73df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121920597404062", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:46 GMT", + "etag": "\"0x8D862F6F3CC2D1D\"", + "last-modified": "Sun, 27 Sep 2020 15:06:46 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "2e9a3c89-9e29-4cae-8b41-8c50b684b792", + "x-ms-lease-id": "c8e518e6-713b-4a65-b51b-bf4e611e36cf", + "x-ms-request-id": "0ce68bd7-701a-0026-75df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121920597404062", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 409, + "response": "LeaseAlreadyPresentThere is already a lease present.\nRequestId:0ce68bd8-701a-0026-76df-9426be000000\nTime:2020-09-27T15:06:47.7005210Z", + "responseHeaders": { + "content-length": "221", + "content-type": "application/xml", + "date": "Sun, 27 Sep 2020 15:06:46 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "92e1bd0e-d693-4e90-bbc9-6999816e2d0a", + "x-ms-error-code": "LeaseAlreadyPresent", + "x-ms-request-id": "0ce68bd8-701a-0026-76df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121920597404062", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:47 GMT", + "etag": "\"0x8D862F6F3CC2D1D\"", + "last-modified": "Sun, 27 Sep 2020 15:06:46 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "9525d7f0-d136-4a14-b815-ea5d3f34bb23", + "x-ms-lease-time": "0", + "x-ms-request-id": "0ce68bdd-701a-0026-79df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121920597404062", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:48 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "3c203d19-b865-496e-ab67-42ea5bcdf7b3", + "x-ms-request-id": "0ce68bdf-701a-0026-7bdf-9426be000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share160121920597404062" + }, + "newDate": {} + }, + "hash": "a7662e80063146772c80486996dac996" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease_again_with_same_lease_id.json b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease_again_with_same_lease_id.json new file mode 100644 index 000000000000..62196a34592e --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease_again_with_same_lease_id.json @@ -0,0 +1,115 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121920940207206", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:49 GMT", + "etag": "\"0x8D862F6F5E227CF\"", + "last-modified": "Sun, 27 Sep 2020 15:06:49 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "c87d8d67-9d9c-4bfa-8a1c-556ad1a4bb24", + "x-ms-request-id": "0ce68be2-701a-0026-7ddf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121920940207206", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:49 GMT", + "etag": "\"0x8D862F6F5E227CF\"", + "last-modified": "Sun, 27 Sep 2020 15:06:49 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "5cf1eae1-18af-4cdc-9c35-73e154a823ec", + "x-ms-lease-id": "e9890485-bf47-4d9a-b3d0-aceb18506124", + "x-ms-request-id": "0ce68be6-701a-0026-7fdf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121920940207206", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:50 GMT", + "etag": "\"0x8D862F6F5E227CF\"", + "last-modified": "Sun, 27 Sep 2020 15:06:49 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "dc89bb50-c1e2-4958-8b64-deb0ad3ce3ae", + "x-ms-lease-id": "e9890485-bf47-4d9a-b3d0-aceb18506124", + "x-ms-request-id": "0ce68be8-701a-0026-80df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121920940207206", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:50 GMT", + "etag": "\"0x8D862F6F5E227CF\"", + "last-modified": "Sun, 27 Sep 2020 15:06:49 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "0bdbd7f4-b12e-41b7-b054-fa764a05ba9f", + "x-ms-lease-time": "0", + "x-ms-request-id": "0ce68bec-701a-0026-03df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121920940207206", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:51 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "bff12c07-b9a0-4f2f-af0a-6bc7ac1332ae", + "x-ms-request-id": "0ce68bf0-701a-0026-06df-9426be000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share160121920940207206" + }, + "newDate": {} + }, + "hash": "707c88c66dc0125c8dbd1488ab4ff604" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease_for_snapshot.json b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease_for_snapshot.json new file mode 100644 index 000000000000..3051d8245f1e --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease_for_snapshot.json @@ -0,0 +1,150 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121919772707416", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:37 GMT", + "etag": "\"0x8D862F6EEDB15F8\"", + "last-modified": "Sun, 27 Sep 2020 15:06:38 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "bb9ce5c1-e2dc-45d4-8875-17161012a8db", + "x-ms-request-id": "0ce68bae-701a-0026-5adf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121919772707416", + "query": { + "restype": "share", + "comp": "snapshot" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:38 GMT", + "etag": "\"0x8D862F6EEDB15F8\"", + "last-modified": "Sun, 27 Sep 2020 15:06:38 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "48a681f1-8333-4fe3-ae5a-5674b78890ea", + "x-ms-request-id": "0ce68bb2-701a-0026-5cdf-9426be000000", + "x-ms-snapshot": "2020-09-27T15:06:38.0000000Z", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121919772707416", + "query": { + "sharesnapshot": "2020-09-27T15:06:38.0000000Z", + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:38 GMT", + "etag": "\"0x8D862F6EEDB15F8\"", + "last-modified": "Sun, 27 Sep 2020 15:06:38 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "c87e9430-8bde-45ff-9bff-4ec2520ab3c1", + "x-ms-lease-id": "e9890485-bf47-4d9a-b3d0-aceb18506124", + "x-ms-request-id": "0ce68bb5-701a-0026-5fdf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/share160121919772707416", + "query": { + "sharesnapshot": "2020-09-27T15:06:38.0000000Z", + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:39 GMT", + "etag": "\"0x8D862F6EEDB15F8\"", + "last-modified": "Sun, 27 Sep 2020 15:06:38 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-access-tier": "TransactionOptimized", + "x-ms-access-tier-change-time": "Sun, 27 Sep 2020 15:06:38 GMT", + "x-ms-client-request-id": "1fd5806c-25d7-433e-b5b7-7f62050c5d54", + "x-ms-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", + "x-ms-lease-duration": "infinite", + "x-ms-lease-state": "leased", + "x-ms-lease-status": "locked", + "x-ms-request-id": "0ce68bb7-701a-0026-61df-9426be000000", + "x-ms-share-quota": "5120", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/share160121919772707416", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:40 GMT", + "etag": "\"0x8D862F6EEDB15F8\"", + "last-modified": "Sun, 27 Sep 2020 15:06:38 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-access-tier": "TransactionOptimized", + "x-ms-access-tier-change-time": "Sun, 27 Sep 2020 15:06:38 GMT", + "x-ms-client-request-id": "a9d29e0c-eeb3-4635-883c-1a6e93df3a02", + "x-ms-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "0ce68bbb-701a-0026-63df-9426be000000", + "x-ms-share-quota": "5120", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121919772707416", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:40 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "842dfb16-9844-4777-a9c1-f452d8029413", + "x-ms-request-id": "0ce68bbe-701a-0026-65df-9426be000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share160121919772707416" + }, + "newDate": {} + }, + "hash": "1aaef4f799559d32403e139e0fb00404" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease_without_proposed_lease_id_with_a_finite_duration.json b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease_without_proposed_lease_id_with_a_finite_duration.json new file mode 100644 index 000000000000..829032d865d7 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_acquirelease_without_proposed_lease_id_with_a_finite_duration.json @@ -0,0 +1,121 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121920213300290", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:41 GMT", + "etag": "\"0x8D862F6F17AF32C\"", + "last-modified": "Sun, 27 Sep 2020 15:06:42 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "1409e473-5f20-40cc-bc0d-8f0e17cbe65c", + "x-ms-request-id": "0ce68bc0-701a-0026-67df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121920213300290", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:42 GMT", + "etag": "\"0x8D862F6F17AF32C\"", + "last-modified": "Sun, 27 Sep 2020 15:06:42 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "e11eb253-d103-4001-aea1-685b0f09f519", + "x-ms-lease-id": "7454272a-6a98-4f73-af5c-dad9a63c8afd", + "x-ms-request-id": "0ce68bc4-701a-0026-6adf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/share160121920213300290", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:43 GMT", + "etag": "\"0x8D862F6F17AF32C\"", + "last-modified": "Sun, 27 Sep 2020 15:06:42 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-access-tier": "TransactionOptimized", + "x-ms-access-tier-change-time": "Sun, 27 Sep 2020 15:06:42 GMT", + "x-ms-client-request-id": "16497859-d078-4f59-a745-d353046dd2e4", + "x-ms-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", + "x-ms-lease-duration": "fixed", + "x-ms-lease-state": "leased", + "x-ms-lease-status": "locked", + "x-ms-request-id": "0ce68bc7-701a-0026-6cdf-9426be000000", + "x-ms-share-quota": "5120", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121920213300290", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:43 GMT", + "etag": "\"0x8D862F6F17AF32C\"", + "last-modified": "Sun, 27 Sep 2020 15:06:42 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "171746f7-2fce-42cd-bba0-1b4ed42fa030", + "x-ms-lease-time": "0", + "x-ms-request-id": "0ce68bcd-701a-0026-6fdf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121920213300290", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:44 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "9127337f-5912-4e35-a714-98166845667e", + "x-ms-request-id": "0ce68bd0-701a-0026-71df-9426be000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share160121920213300290" + }, + "newDate": {} + }, + "hash": "421f94daa21c442d8e80b444c7cc0a41" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_break_a_broken_lease.json b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_break_a_broken_lease.json new file mode 100644 index 000000000000..ac159d21444d --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_break_a_broken_lease.json @@ -0,0 +1,137 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121922935309709", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:08 GMT", + "etag": "\"0x8D862F701B77FDD\"", + "last-modified": "Sun, 27 Sep 2020 15:07:09 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "2166a5c5-9e43-4bea-a6ba-3d9f10688acc", + "x-ms-request-id": "0ce68c3a-701a-0026-3adf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121922935309709", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:09 GMT", + "etag": "\"0x8D862F701B77FDD\"", + "last-modified": "Sun, 27 Sep 2020 15:07:09 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "2bec6f90-1e09-4681-a4d9-7add4e6afbed", + "x-ms-lease-id": "59fc8e0d-39a3-4640-ac25-22d3cbcb754b", + "x-ms-request-id": "0ce68c3d-701a-0026-3cdf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121922935309709", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:10 GMT", + "etag": "\"0x8D862F701B77FDD\"", + "last-modified": "Sun, 27 Sep 2020 15:07:09 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "14267976-b466-468a-80a1-0eec36a5e3ec", + "x-ms-lease-time": "14", + "x-ms-request-id": "0ce68c3f-701a-0026-3ddf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121922935309709", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:10 GMT", + "etag": "\"0x8D862F701B77FDD\"", + "last-modified": "Sun, 27 Sep 2020 15:07:09 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "c189f0d3-1f76-476e-9723-652dd1235997", + "x-ms-lease-time": "14", + "x-ms-request-id": "0ce68c43-701a-0026-40df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121922935309709", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:11 GMT", + "etag": "\"0x8D862F701B77FDD\"", + "last-modified": "Sun, 27 Sep 2020 15:07:09 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "d7e37f46-f535-4351-b1dd-55cdeeef5b90", + "x-ms-lease-time": "0", + "x-ms-request-id": "0ce68c45-701a-0026-42df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121922935309709", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:12 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "0e42be6e-74d2-4529-a553-5b90cd452daf", + "x-ms-request-id": "0ce68c47-701a-0026-44df-9426be000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share160121922935309709" + }, + "newDate": {} + }, + "hash": "c354ff97edc6ad0a0a40f332e4643495" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_break_lease_and_then_release_it.json b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_break_lease_and_then_release_it.json new file mode 100644 index 000000000000..d11b910f3811 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_break_lease_and_then_release_it.json @@ -0,0 +1,170 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121922480701270", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:04 GMT", + "etag": "\"0x8D862F6FF083692\"", + "last-modified": "Sun, 27 Sep 2020 15:07:05 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "795d78bf-96f5-405e-a0bf-cfc57d1a4ba9", + "x-ms-request-id": "0ce68c25-701a-0026-2bdf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121922480701270", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:05 GMT", + "etag": "\"0x8D862F6FF083692\"", + "last-modified": "Sun, 27 Sep 2020 15:07:05 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "fbaa7e3d-242b-42f2-840b-6d87d38b4a96", + "x-ms-lease-id": "17c9bae3-a7ca-4e94-84d7-2cf88cdd379d", + "x-ms-request-id": "0ce68c29-701a-0026-2ddf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/share160121922480701270", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:05 GMT", + "etag": "\"0x8D862F6FF083692\"", + "last-modified": "Sun, 27 Sep 2020 15:07:05 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-access-tier": "TransactionOptimized", + "x-ms-access-tier-change-time": "Sun, 27 Sep 2020 15:07:05 GMT", + "x-ms-client-request-id": "ce1927ab-2c32-4e42-a534-d058296d3294", + "x-ms-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", + "x-ms-lease-duration": "infinite", + "x-ms-lease-state": "leased", + "x-ms-lease-status": "locked", + "x-ms-request-id": "0ce68c2d-701a-0026-30df-9426be000000", + "x-ms-share-quota": "5120", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121922480701270", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:06 GMT", + "etag": "\"0x8D862F6FF083692\"", + "last-modified": "Sun, 27 Sep 2020 15:07:05 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "cb8dc2c4-468e-4e3d-b092-14efe72ae550", + "x-ms-lease-time": "0", + "x-ms-request-id": "0ce68c2e-701a-0026-31df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/share160121922480701270", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:07 GMT", + "etag": "\"0x8D862F6FF083692\"", + "last-modified": "Sun, 27 Sep 2020 15:07:05 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-access-tier": "TransactionOptimized", + "x-ms-access-tier-change-time": "Sun, 27 Sep 2020 15:07:05 GMT", + "x-ms-client-request-id": "9866b443-e7ae-4450-96bd-78673de499e5", + "x-ms-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", + "x-ms-lease-state": "broken", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "0ce68c31-701a-0026-33df-9426be000000", + "x-ms-share-quota": "5120", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121922480701270", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:07 GMT", + "etag": "\"0x8D862F6FF083692\"", + "last-modified": "Sun, 27 Sep 2020 15:07:05 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "4a9f0b82-6b3f-4d73-a74b-f93789618c48", + "x-ms-lease-time": "0", + "x-ms-request-id": "0ce68c35-701a-0026-35df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121922480701270", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:08 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "120f6a89-136f-4170-9df7-cbbac8352198", + "x-ms-request-id": "0ce68c37-701a-0026-37df-9426be000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share160121922480701270" + }, + "newDate": {} + }, + "hash": "25b29898d8ae054f8ed43fa992363915" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_changelease.json b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_changelease.json new file mode 100644 index 000000000000..0f5034d4ab8c --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_changelease.json @@ -0,0 +1,115 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121921513409290", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:54 GMT", + "etag": "\"0x8D862F6F93B3D7A\"", + "last-modified": "Sun, 27 Sep 2020 15:06:55 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "e99338e2-ff1c-48c5-9d44-0ccf5e2118fc", + "x-ms-request-id": "0ce68bfd-701a-0026-0fdf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121921513409290", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:55 GMT", + "etag": "\"0x8D862F6F93B3D7A\"", + "last-modified": "Sun, 27 Sep 2020 15:06:55 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "0eeab36b-563d-4638-8a50-3f170d88ebbc", + "x-ms-lease-id": "2e8edae1-2c50-49d1-b968-4b8dcf5cc613", + "x-ms-request-id": "0ce68c02-701a-0026-11df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121921513409290", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:56 GMT", + "etag": "\"0x8D862F6F93B3D7A\"", + "last-modified": "Sun, 27 Sep 2020 15:06:55 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "36feded1-c0ab-44a5-b477-d72b2d467395", + "x-ms-lease-id": "e9890485-bf47-4d9a-b3d0-aceb18506124", + "x-ms-request-id": "0ce68c04-701a-0026-13df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121921513409290", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:56 GMT", + "etag": "\"0x8D862F6F93B3D7A\"", + "last-modified": "Sun, 27 Sep 2020 15:06:55 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "536ed785-c86b-4112-bad3-d26528ab7d24", + "x-ms-lease-time": "0", + "x-ms-request-id": "0ce68c05-701a-0026-14df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121921513409290", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:57 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "ec123509-548f-41c1-ba91-18309d5f6c81", + "x-ms-request-id": "0ce68c08-701a-0026-17df-9426be000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share160121921513409290" + }, + "newDate": {} + }, + "hash": "45257573d2724104a8397c325ec540bf" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_changelease_before_acquiring_a_lease.json b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_changelease_before_acquiring_a_lease.json new file mode 100644 index 000000000000..fad56b6cbaf1 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_changelease_before_acquiring_a_lease.json @@ -0,0 +1,70 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121921841100051", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:58 GMT", + "etag": "\"0x8D862F6FB3F0CA1\"", + "last-modified": "Sun, 27 Sep 2020 15:06:58 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "c194ef08-3e27-4c7b-83a7-b603db4a0948", + "x-ms-request-id": "0ce68c0b-701a-0026-19df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121921841100051", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 409, + "response": "LeaseNotPresentWithLeaseOperationThere is currently no lease on the file share.\nRequestId:0ce68c0e-701a-0026-1bdf-9426be000000\nTime:2020-09-27T15:06:59.7841113Z", + "responseHeaders": { + "content-length": "248", + "content-type": "application/xml", + "date": "Sun, 27 Sep 2020 15:06:58 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "e9fa9b42-8b0f-4afc-b31e-0b20d605f6af", + "x-ms-error-code": "LeaseNotPresentWithLeaseOperation", + "x-ms-request-id": "0ce68c0e-701a-0026-1bdf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121921841100051", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:59 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "dba9455b-e0d7-490f-8ac7-7366c3c9b16b", + "x-ms-request-id": "0ce68c11-701a-0026-1ddf-9426be000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share160121921841100051" + }, + "newDate": {} + }, + "hash": "e186056390a4b2e47a3ff2e84cd1e298" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_invalid_duration_for_acquirelease.json b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_invalid_duration_for_acquirelease.json new file mode 100644 index 000000000000..4e65c4e28e2c --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_invalid_duration_for_acquirelease.json @@ -0,0 +1,70 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121921268005337", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:52 GMT", + "etag": "\"0x8D862F6F7D41925\"", + "last-modified": "Sun, 27 Sep 2020 15:06:53 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "4c677dfe-6b3f-4fa7-8c9d-b7dac98a7a57", + "x-ms-request-id": "0ce68bf2-701a-0026-08df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121921268005337", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 400, + "response": "InvalidHeaderValueThe value for one of the HTTP headers is not in the correct format.\nRequestId:0ce68bf7-701a-0026-0bdf-9426be000000\nTime:2020-09-27T15:06:54.0460284Zx-ms-lease-duration1", + "responseHeaders": { + "content-length": "326", + "content-type": "application/xml", + "date": "Sun, 27 Sep 2020 15:06:53 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "a6804507-25bc-4070-a378-423881b40e5b", + "x-ms-error-code": "InvalidHeaderValue", + "x-ms-request-id": "0ce68bf7-701a-0026-0bdf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121921268005337", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:06:53 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "490509f5-0b48-4ebf-b06b-3c4569ab558f", + "x-ms-request-id": "0ce68bfa-701a-0026-0ddf-9426be000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share160121921268005337" + }, + "newDate": {} + }, + "hash": "3432549bb6395ae678887f738bffbf31" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_lease_condition_for_delete.json b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_lease_condition_for_delete.json new file mode 100644 index 000000000000..e2db0955bbaa --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_lease_condition_for_delete.json @@ -0,0 +1,109 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121924685607584", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:26 GMT", + "etag": "\"0x8D862F70C231B26\"", + "last-modified": "Sun, 27 Sep 2020 15:07:27 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "b3b93e97-de43-4cb8-9379-3f80870962a6", + "x-ms-request-id": "0ce68c87-701a-0026-6fdf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121924685607584", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:27 GMT", + "etag": "\"0x8D862F70C231B26\"", + "last-modified": "Sun, 27 Sep 2020 15:07:27 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "3b02d3fa-d43c-4240-8c58-9c492a52c6ae", + "x-ms-lease-id": "e9890485-bf47-4d9a-b3d0-aceb18506124", + "x-ms-request-id": "0ce68c8b-701a-0026-72df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121924685607584", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 412, + "response": "LeaseIdMissingThere is currently a lease on the file share and no lease ID was specified in the request.\nRequestId:0ce68c8f-701a-0026-74df-9426be000000\nTime:2020-09-27T15:07:28.5575651Z", + "responseHeaders": { + "content-length": "273", + "content-type": "application/xml", + "date": "Sun, 27 Sep 2020 15:07:27 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "e2287af5-d986-4825-b3fd-8ceca39837bc", + "x-ms-error-code": "LeaseIdMissing", + "x-ms-request-id": "0ce68c8f-701a-0026-74df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121924685607584", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:28 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "08bd63de-f978-48d0-b4b7-a74f9d6c46e5", + "x-ms-request-id": "0ce68c91-701a-0026-76df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121924685607584", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:29 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "cbc3a4a9-5411-4d43-919c-c4fcaff588d7", + "x-ms-request-id": "0ce68c95-701a-0026-79df-9426be000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share160121924685607584" + }, + "newDate": {} + }, + "hash": "d8ed60c539fec47123c7a461e5b69736" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_lease_condition_for_get_operations.json b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_lease_condition_for_get_operations.json new file mode 100644 index 000000000000..bd6b9f0bef7e --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_lease_condition_for_get_operations.json @@ -0,0 +1,169 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121925036906348", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:29 GMT", + "etag": "\"0x8D862F70E4A0910\"", + "last-modified": "Sun, 27 Sep 2020 15:07:30 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "0182b204-9e83-46de-b164-7ddf4f66dc62", + "x-ms-request-id": "0ce68c9f-701a-0026-7bdf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121925036906348", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:30 GMT", + "etag": "\"0x8D862F70E4A0910\"", + "last-modified": "Sun, 27 Sep 2020 15:07:30 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "5541b635-9e5f-4131-9fa7-d1dca7f59ef6", + "x-ms-lease-id": "97672963-0e3f-414b-9b2d-8ed7dfce8c7f", + "x-ms-request-id": "0ce68ca4-701a-0026-7ddf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/share160121925036906348", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:31 GMT", + "etag": "\"0x8D862F70E4A0910\"", + "last-modified": "Sun, 27 Sep 2020 15:07:30 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-access-tier": "TransactionOptimized", + "x-ms-access-tier-change-time": "Sun, 27 Sep 2020 15:07:30 GMT", + "x-ms-client-request-id": "fe7dc7ff-2d38-4320-8d0e-a71e773b4c93", + "x-ms-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", + "x-ms-lease-duration": "infinite", + "x-ms-lease-state": "leased", + "x-ms-lease-status": "locked", + "x-ms-request-id": "0ce68ca6-701a-0026-7fdf-9426be000000", + "x-ms-share-quota": "5120", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/share160121925036906348", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 412, + "response": "LeaseIdMismatchWithContainerOperationThe lease ID specified did not match the lease ID for the file share.\nRequestId:0ce68ca8-701a-0026-01df-9426be000000\nTime:2020-09-27T15:07:32.9396773Z", + "responseHeaders": { + "content-length": "275", + "content-type": "application/xml", + "date": "Sun, 27 Sep 2020 15:07:31 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "8b148a8e-cdd1-4386-a309-5857df9168c1", + "x-ms-error-code": "LeaseIdMismatchWithContainerOperation", + "x-ms-request-id": "0ce68ca8-701a-0026-01df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/share160121925036906348", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:32 GMT", + "etag": "\"0x8D862F70E4A0910\"", + "last-modified": "Sun, 27 Sep 2020 15:07:30 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-access-tier": "TransactionOptimized", + "x-ms-access-tier-change-time": "Sun, 27 Sep 2020 15:07:30 GMT", + "x-ms-client-request-id": "3abe6df4-9bc1-4b3a-a13d-7855a24ebe0e", + "x-ms-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", + "x-ms-lease-duration": "infinite", + "x-ms-lease-state": "leased", + "x-ms-lease-status": "locked", + "x-ms-request-id": "0ce68cad-701a-0026-05df-9426be000000", + "x-ms-share-quota": "5120", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121925036906348", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:33 GMT", + "etag": "\"0x8D862F70E4A0910\"", + "last-modified": "Sun, 27 Sep 2020 15:07:30 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "63ef8252-c3c7-492f-818e-22adfab08667", + "x-ms-lease-time": "0", + "x-ms-request-id": "0ce68cb1-701a-0026-07df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121925036906348", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:34 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "77fbd941-c0f7-4e7f-b53a-ee27595ffb7a", + "x-ms-request-id": "0ce68cb4-701a-0026-09df-9426be000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share160121925036906348" + }, + "newDate": {} + }, + "hash": "31d5724934e35915065b43a9b336d2d4" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_lease_condition_for_write_operations.json b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_lease_condition_for_write_operations.json new file mode 100644 index 000000000000..0ce354612a97 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_lease_condition_for_write_operations.json @@ -0,0 +1,156 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121925548103276", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:35 GMT", + "etag": "\"0x8D862F7115761FA\"", + "last-modified": "Sun, 27 Sep 2020 15:07:36 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "48ad6b02-9809-4706-9244-d9353bdae9ec", + "x-ms-request-id": "0ce68cb8-701a-0026-0bdf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121925548103276", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:35 GMT", + "etag": "\"0x8D862F7115761FA\"", + "last-modified": "Sun, 27 Sep 2020 15:07:36 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "281685fa-0fd5-4ed2-b71b-c2f621f7fab7", + "x-ms-lease-id": "f8704852-da74-48b2-b3af-7de0561e6e89", + "x-ms-request-id": "0ce68cbd-701a-0026-0edf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121925548103276", + "query": { + "restype": "share", + "comp": "metadata" + }, + "requestBody": null, + "status": 412, + "response": "LeaseIdMissingThere is currently a lease on the file share and no lease ID was specified in the request.\nRequestId:0ce68cc0-701a-0026-10df-9426be000000\nTime:2020-09-27T15:07:37.6820464Z", + "responseHeaders": { + "content-length": "273", + "content-type": "application/xml", + "date": "Sun, 27 Sep 2020 15:07:36 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "ca9f0b6f-d70f-4483-835c-e5d40f2c3115", + "x-ms-error-code": "LeaseIdMissing", + "x-ms-request-id": "0ce68cc0-701a-0026-10df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121925548103276", + "query": { + "restype": "share", + "comp": "metadata" + }, + "requestBody": null, + "status": 412, + "response": "LeaseIdMismatchWithContainerOperationThe lease ID specified did not match the lease ID for the file share.\nRequestId:0ce68cc2-701a-0026-12df-9426be000000\nTime:2020-09-27T15:07:38.3785407Z", + "responseHeaders": { + "content-length": "275", + "content-type": "application/xml", + "date": "Sun, 27 Sep 2020 15:07:37 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "3fa08946-09b5-48f8-a5f0-c05d1994d5e7", + "x-ms-error-code": "LeaseIdMismatchWithContainerOperation", + "x-ms-request-id": "0ce68cc2-701a-0026-12df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121925548103276", + "query": { + "restype": "share", + "comp": "metadata" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:37 GMT", + "etag": "\"0x8D862F712EE119F\"", + "last-modified": "Sun, 27 Sep 2020 15:07:38 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "d283dfdb-29a9-4f47-ae5f-42fabd1f3ceb", + "x-ms-request-id": "0ce68cc5-701a-0026-14df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121925548103276", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:38 GMT", + "etag": "\"0x8D862F712EE119F\"", + "last-modified": "Sun, 27 Sep 2020 15:07:38 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "cbc40b22-3f4f-4357-8ea6-79c1dcab60d9", + "x-ms-lease-time": "0", + "x-ms-request-id": "0ce68cc7-701a-0026-16df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121925548103276", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:39 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "6682b831-5c79-42fb-9b5c-95561317b39b", + "x-ms-request-id": "0ce68cc9-701a-0026-18df-9426be000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share160121925548103276" + }, + "newDate": {} + }, + "hash": "4549bc2bdde60a476205f5127ea2f637" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_lease_properties_properly_returned.json b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_lease_properties_properly_returned.json new file mode 100644 index 000000000000..d7d4a8836579 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_lease_properties_properly_returned.json @@ -0,0 +1,140 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121924184606440", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:21 GMT", + "etag": "\"0x8D862F7092974DF\"", + "last-modified": "Sun, 27 Sep 2020 15:07:22 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "56c0fd5d-978f-456d-bff6-b76fb424e841", + "x-ms-request-id": "0ce68c74-701a-0026-62df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121924184606440", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:22 GMT", + "etag": "\"0x8D862F7092974DF\"", + "last-modified": "Sun, 27 Sep 2020 15:07:22 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "4d870f36-d5bc-411e-ba82-64d37c605b82", + "x-ms-lease-id": "a193f0c2-30f2-4282-b2cf-1887bbcfcbc7", + "x-ms-request-id": "0ce68c77-701a-0026-64df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/share160121924184606440", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:22 GMT", + "etag": "\"0x8D862F7092974DF\"", + "last-modified": "Sun, 27 Sep 2020 15:07:22 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-access-tier": "TransactionOptimized", + "x-ms-access-tier-change-time": "Sun, 27 Sep 2020 15:07:22 GMT", + "x-ms-client-request-id": "b0541531-9df3-4596-8834-f1f4af4ee063", + "x-ms-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", + "x-ms-lease-duration": "infinite", + "x-ms-lease-state": "leased", + "x-ms-lease-status": "locked", + "x-ms-request-id": "0ce68c7a-701a-0026-66df-9426be000000", + "x-ms-share-quota": "5120", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/", + "query": { + "comp": "list" + }, + "requestBody": null, + "status": 200, + "response": "share160093141210102328Thu, 24 Sep 2020 07:10:13 GMT\"0x8D86058E1C40CB2\"unlockedavailable5120TransactionOptimizedThu, 24 Sep 2020 07:10:13 GMT$account-encryption-keyfalseshare160093176153301093Thu, 24 Sep 2020 07:16:02 GMT\"0x8D86059B206C943\"unlockedavailable5120TransactionOptimizedThu, 24 Sep 2020 07:16:02 GMT$account-encryption-keyfalseshare160093195256704532Thu, 24 Sep 2020 07:19:13 GMT\"0x8D8605A23EB8F85\"unlockedavailable5120TransactionOptimizedThu, 24 Sep 2020 07:19:13 GMT$account-encryption-keyfalseshare160121233635009423Sun, 27 Sep 2020 13:12:16 GMT\"0x8D862E6F4FB4A9C\"unlockedavailable5120TransactionOptimizedSun, 27 Sep 2020 13:12:16 GMT$account-encryption-keyfalseshare160121235006600409Sun, 27 Sep 2020 13:12:30 GMT\"0x8D862E6FD28EA42\"unlockedavailable5120TransactionOptimizedSun, 27 Sep 2020 13:12:30 GMT$account-encryption-keyfalseshare160121310851508050Sun, 27 Sep 2020 13:25:09 GMT\"0x8D862E8C1F3100F\"unlockedexpired5120TransactionOptimizedSun, 27 Sep 2020 13:25:09 GMT$account-encryption-keyfalseshare160121326942502893Sun, 27 Sep 2020 13:27:50 GMT\"0x8D862E921DDD8EC\"lockedleasedinfinite5120TransactionOptimizedSun, 27 Sep 2020 13:27:50 GMT$account-encryption-keyfalseshare160121389438808287Sun, 27 Sep 2020 13:38:15 GMT\"0x8D862EA966D8BBD\"unlockedavailable5120TransactionOptimizedSun, 27 Sep 2020 13:38:15 GMT$account-encryption-keyfalseshare160121491612400623Sun, 27 Sep 2020 13:55:16 GMT\"0x8D862ECF6A57F34\"unlockedexpired5120TransactionOptimizedSun, 27 Sep 2020 13:55:16 GMT$account-encryption-keyfalseshare160121509901107353Sun, 27 Sep 2020 13:58:19 GMT\"0x8D862ED63A7C0E3\"unlockedbroken5120TransactionOptimizedSun, 27 Sep 2020 13:58:19 GMT$account-encryption-keyfalseshare160121551221306317Sun, 27 Sep 2020 14:05:12 GMT\"0x8D862EE59F16DE2\"unlockedavailable5120TransactionOptimizedSun, 27 Sep 2020 14:05:12 GMT$account-encryption-keyfalseshare160121551974009496Sun, 27 Sep 2020 14:05:19 GMT\"0x8D862EE5E6E01B4\"unlockedavailable5120TransactionOptimizedSun, 27 Sep 2020 14:05:19 GMT$account-encryption-keyfalseshare160121870218806337Sun, 27 Sep 2020 14:58:23 GMT\"0x8D862F5C81E89A1\"lockedleasedinfinite5120TransactionOptimizedSun, 27 Sep 2020 14:58:23 GMT$account-encryption-keyfalseshare160121924184606440Sun, 27 Sep 2020 15:07:22 GMT\"0x8D862F7092974DF\"lockedleasedinfinite5120TransactionOptimizedSun, 27 Sep 2020 15:07:22 GMT$account-encryption-keyfalse", + "responseHeaders": { + "content-type": "application/xml", + "date": "Sun, 27 Sep 2020 15:07:23 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "transfer-encoding": "chunked", + "x-ms-client-request-id": "3914bd4c-14dc-468a-8e7f-2e60f4952895", + "x-ms-request-id": "0ce68c7d-701a-0026-69df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121924184606440", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:24 GMT", + "etag": "\"0x8D862F7092974DF\"", + "last-modified": "Sun, 27 Sep 2020 15:07:22 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "00dc6f23-150b-4e9b-9617-957ae3dac618", + "x-ms-lease-time": "0", + "x-ms-request-id": "0ce68c81-701a-0026-6bdf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121924184606440", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "1a79040c-52a3-4c35-ac1d-8c416c5e6c96", + "x-ms-request-id": "0ce68c85-701a-0026-6ddf-9426be000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share160121924184606440" + }, + "newDate": {} + }, + "hash": "215f84098c63269b1f047b6b869ee322" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_release_lease.json b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_release_lease.json new file mode 100644 index 000000000000..316a60d45722 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_release_lease.json @@ -0,0 +1,120 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121922087003562", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:00 GMT", + "etag": "\"0x8D862F6FCB5EB3F\"", + "last-modified": "Sun, 27 Sep 2020 15:07:01 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "c53a7081-55f1-4195-b5f9-2f11caa7b0da", + "x-ms-request-id": "0ce68c16-701a-0026-20df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121922087003562", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:01 GMT", + "etag": "\"0x8D862F6FCB5EB3F\"", + "last-modified": "Sun, 27 Sep 2020 15:07:01 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "d7b22aac-ffdd-4740-a736-e1c63352cce6", + "x-ms-lease-id": "61a1a395-3747-40b3-a62b-6ca026759778", + "x-ms-request-id": "0ce68c19-701a-0026-22df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121922087003562", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:01 GMT", + "etag": "\"0x8D862F6FCB5EB3F\"", + "last-modified": "Sun, 27 Sep 2020 15:07:01 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "e516cc08-36fc-4258-baef-8e0e2c82401b", + "x-ms-lease-time": "0", + "x-ms-request-id": "0ce68c1c-701a-0026-25df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/share160121922087003562", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:02 GMT", + "etag": "\"0x8D862F6FCB5EB3F\"", + "last-modified": "Sun, 27 Sep 2020 15:07:01 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-access-tier": "TransactionOptimized", + "x-ms-access-tier-change-time": "Sun, 27 Sep 2020 15:07:01 GMT", + "x-ms-client-request-id": "85ae4440-efc5-4642-a8d5-4691fdad3b3a", + "x-ms-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "0ce68c1f-701a-0026-27df-9426be000000", + "x-ms-share-quota": "5120", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121922087003562", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:03 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "32d2b28f-5382-4475-925d-198be742580b", + "x-ms-request-id": "0ce68c21-701a-0026-29df-9426be000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share160121922087003562" + }, + "newDate": {} + }, + "hash": "a8a98bf1c54106c991df3607be9a6771" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_renew_a_lease.json b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_renew_a_lease.json new file mode 100644 index 000000000000..71fdb97c94e9 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/leaseclient_for_share/recording_renew_a_lease.json @@ -0,0 +1,115 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121923882600337", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:18 GMT", + "etag": "\"0x8D862F707648F1E\"", + "last-modified": "Sun, 27 Sep 2020 15:07:19 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "2a01a917-daa8-409b-b195-0987713eabb6", + "x-ms-request-id": "0ce68c64-701a-0026-58df-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121923882600337", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:19 GMT", + "etag": "\"0x8D862F707648F1E\"", + "last-modified": "Sun, 27 Sep 2020 15:07:19 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "f968fe04-4d80-4a13-8c58-1406a6ee35d7", + "x-ms-lease-id": "e9890485-bf47-4d9a-b3d0-aceb18506124", + "x-ms-request-id": "0ce68c68-701a-0026-5adf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121923882600337", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:19 GMT", + "etag": "\"0x8D862F707648F1E\"", + "last-modified": "Sun, 27 Sep 2020 15:07:19 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "b61858ac-4418-4e91-928e-5fb00ccc9daa", + "x-ms-lease-id": "e9890485-bf47-4d9a-b3d0-aceb18506124", + "x-ms-request-id": "0ce68c6c-701a-0026-5ddf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share160121923882600337", + "query": { + "comp": "lease", + "restype": "share" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:20 GMT", + "etag": "\"0x8D862F707648F1E\"", + "last-modified": "Sun, 27 Sep 2020 15:07:19 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "48e57c5e-04e8-4a4e-93a4-d4054b25b864", + "x-ms-lease-time": "0", + "x-ms-request-id": "0ce68c6e-701a-0026-5edf-9426be000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share160121923882600337", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Sun, 27 Sep 2020 15:07:20 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "59008915-3e73-48d6-b7f8-5643161cea1c", + "x-ms-request-id": "0ce68c71-701a-0026-60df-9426be000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share160121923882600337" + }, + "newDate": {} + }, + "hash": "b1a585cd2e7ca27eadf2de6c3aaa5eb2" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquire_a_broken_lease.js b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquire_a_broken_lease.js new file mode 100644 index 000000000000..28e06d838557 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquire_a_broken_lease.js @@ -0,0 +1,223 @@ +let nock = require('nock'); + +module.exports.hash = "6d5f59db24f5eaf5cfa76f90ceae5b63"; + +module.exports.testInfo = {"uniqueName":{"share":"share160121915870707782"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915870707782') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:58 GMT', + 'ETag', + '"0x8D862F6D76BBE40"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a02-701a-006b-34df-94e952000000', + 'x-ms-client-request-id', + 'ff0fc7e4-c258-4727-a4cc-05e520da9b77', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:57 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915870707782') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:58 GMT', + 'ETag', + '"0x8D862F6D76BBE40"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293435-d01a-0000-23df-946ea6000000', + 'x-ms-client-request-id', + '919e03e9-f503-4e20-85c9-2dd6b67de9ce', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + '99c58d68-34fa-4a19-b6f6-ed6a85b7bf9a', + 'Date', + 'Sun, 27 Sep 2020 15:05:58 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915870707782') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:58 GMT', + 'ETag', + '"0x8D862F6D76BBE40"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a05-701a-006b-35df-94e952000000', + 'x-ms-client-request-id', + '262b8833-c5e5-4e24-a88e-daef62dfcc25', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-time', + '0', + 'Date', + 'Sun, 27 Sep 2020 15:05:58 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/share160121915870707782') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:58 GMT', + 'ETag', + '"0x8D862F6D76BBE40"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293439-d01a-0000-25df-946ea6000000', + 'x-ms-client-request-id', + '03a8877b-7bde-4bd8-9948-72f6578d59c6', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-status', + 'unlocked', + 'x-ms-lease-state', + 'broken', + 'x-ms-has-immutability-policy', + 'false', + 'x-ms-has-legal-hold', + 'false', + 'x-ms-share-quota', + '5120', + 'x-ms-access-tier', + 'TransactionOptimized', + 'x-ms-access-tier-change-time', + 'Sun, 27 Sep 2020 15:05:58 GMT', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Last-Modified,ETag,x-ms-lease-status,x-ms-lease-state,x-ms-has-immutability-policy,x-ms-has-legal-hold,x-ms-share-quota,x-ms-access-tier,x-ms-access-tier-change-time,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Sun, 27 Sep 2020 15:05:59 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915870707782') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:58 GMT', + 'ETag', + '"0x8D862F6D76BBE40"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a06-701a-006b-36df-94e952000000', + 'x-ms-client-request-id', + '377bc8c4-ffdb-4e25-9495-159b0a4bc567', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + '99c58d68-34fa-4a19-b6f6-ed6a85b7bf9a', + 'Date', + 'Sun, 27 Sep 2020 15:05:59 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/share160121915870707782') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:58 GMT', + 'ETag', + '"0x8D862F6D76BBE40"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '1029343b-d01a-0000-26df-946ea6000000', + 'x-ms-client-request-id', + '2c773a78-2c4e-444c-9e40-cb2606595233', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-status', + 'locked', + 'x-ms-lease-state', + 'leased', + 'x-ms-lease-duration', + 'infinite', + 'x-ms-has-immutability-policy', + 'false', + 'x-ms-has-legal-hold', + 'false', + 'x-ms-share-quota', + '5120', + 'x-ms-access-tier', + 'TransactionOptimized', + 'x-ms-access-tier-change-time', + 'Sun, 27 Sep 2020 15:05:58 GMT', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Last-Modified,ETag,x-ms-lease-status,x-ms-lease-state,x-ms-lease-duration,x-ms-has-immutability-policy,x-ms-has-legal-hold,x-ms-share-quota,x-ms-access-tier,x-ms-access-tier-change-time,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Sun, 27 Sep 2020 15:06:00 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915870707782') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:58 GMT', + 'ETag', + '"0x8D862F6D76BBE40"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a0a-701a-006b-38df-94e952000000', + 'x-ms-client-request-id', + '188634eb-e2e7-4062-ac72-bc6dc0c786dc', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-time', + '0', + 'Date', + 'Sun, 27 Sep 2020 15:06:00 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121915870707782') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '1029343f-d01a-0000-27df-946ea6000000', + 'x-ms-client-request-id', + '1477e25d-d679-4630-aa28-66ff023369f7', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:06:01 GMT' +]); diff --git a/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease.js b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease.js new file mode 100644 index 000000000000..c047d7c7916d --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease.js @@ -0,0 +1,135 @@ +let nock = require('nock'); + +module.exports.hash = "e7c6728c194646a0b741653675f3b017"; + +module.exports.testInfo = {"uniqueName":{"share":"share160121913625009003"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121913625009003') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:37 GMT', + 'ETag', + '"0x8D862F6CACD7503"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19a1-701a-006b-7ddf-94e952000000', + 'x-ms-client-request-id', + 'e03af896-ca88-4ea2-a6c1-9c26c9c3b70d', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:36 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121913625009003') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:37 GMT', + 'ETag', + '"0x8D862F6CACD7503"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19a7-701a-006b-7fdf-94e952000000', + 'x-ms-client-request-id', + '24d20fc5-657b-4412-b319-304b70ef4622', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + 'e9890485-bf47-4d9a-b3d0-aceb18506124', + 'Date', + 'Sun, 27 Sep 2020 15:05:37 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/share160121913625009003') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:37 GMT', + 'ETag', + '"0x8D862F6CACD7503"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19a8-701a-006b-80df-94e952000000', + 'x-ms-client-request-id', + '1f46739f-e596-4bf7-bba9-cf4a2e5952f1', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-status', + 'locked', + 'x-ms-lease-state', + 'leased', + 'x-ms-lease-duration', + 'infinite', + 'x-ms-has-immutability-policy', + 'false', + 'x-ms-has-legal-hold', + 'false', + 'x-ms-share-quota', + '5120', + 'x-ms-access-tier', + 'TransactionOptimized', + 'x-ms-access-tier-change-time', + 'Sun, 27 Sep 2020 15:05:37 GMT', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Last-Modified,ETag,x-ms-lease-status,x-ms-lease-state,x-ms-lease-duration,x-ms-has-immutability-policy,x-ms-has-legal-hold,x-ms-share-quota,x-ms-access-tier,x-ms-access-tier-change-time,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Sun, 27 Sep 2020 15:05:37 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121913625009003') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:37 GMT', + 'ETag', + '"0x8D862F6CACD7503"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19ab-701a-006b-01df-94e952000000', + 'x-ms-client-request-id', + '83ca9df5-68d9-4a20-854b-2367addddfec', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-time', + '0', + 'Date', + 'Sun, 27 Sep 2020 15:05:37 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121913625009003') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19ac-701a-006b-02df-94e952000000', + 'x-ms-client-request-id', + '512f26c8-4153-4710-91d6-c6b880f23fe2', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:38 GMT' +]); diff --git a/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease_again_with_another_lease_id.js b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease_again_with_another_lease_id.js new file mode 100644 index 000000000000..a3122db47543 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease_again_with_another_lease_id.js @@ -0,0 +1,115 @@ +let nock = require('nock'); + +module.exports.hash = "6bc9e6dba00ba7917561b4297b120d2b"; + +module.exports.testInfo = {"uniqueName":{"share":"share160121914334809671"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121914334809671') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:43 GMT', + 'ETag', + '"0x8D862F6CE4450CF"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19c3-701a-006b-10df-94e952000000', + 'x-ms-client-request-id', + '5a751af9-44de-4e5c-9881-33f31c77e379', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:42 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121914334809671') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:43 GMT', + 'ETag', + '"0x8D862F6CE4450CF"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19c6-701a-006b-12df-94e952000000', + 'x-ms-client-request-id', + 'dc7d3aef-9458-4c25-86d5-270e9257c87c', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + 'e04ff2de-d75d-476a-9cb2-3ea66fcb912f', + 'Date', + 'Sun, 27 Sep 2020 15:05:42 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121914334809671') + .query(true) + .reply(409, "LeaseAlreadyPresentThere is already a lease present.\nRequestId:09ab19c8-701a-006b-13df-94e952000000\nTime:2020-09-27T15:05:44.2120727Z", [ + 'Content-Length', + '221', + 'Content-Type', + 'application/xml', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19c8-701a-006b-13df-94e952000000', + 'x-ms-client-request-id', + '0ea6de8e-54d6-4eab-80ec-76e5dec25cb9', + 'x-ms-version', + '2020-02-10', + 'x-ms-error-code', + 'LeaseAlreadyPresent', + 'Date', + 'Sun, 27 Sep 2020 15:05:43 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121914334809671') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:43 GMT', + 'ETag', + '"0x8D862F6CE4450CF"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19c9-701a-006b-14df-94e952000000', + 'x-ms-client-request-id', + '3e903cb4-fc7a-4b30-83df-b5f66cbf2a37', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-time', + '0', + 'Date', + 'Sun, 27 Sep 2020 15:05:43 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121914334809671') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19ca-701a-006b-15df-94e952000000', + 'x-ms-client-request-id', + '66b30245-d215-4f56-a055-a75cea1dfd29', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:44 GMT' +]); diff --git a/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease_again_with_same_lease_id.js b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease_again_with_same_lease_id.js new file mode 100644 index 000000000000..166c7417419e --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease_again_with_same_lease_id.js @@ -0,0 +1,117 @@ +let nock = require('nock'); + +module.exports.hash = "9bb69300bde42a870db6ff1116d04dd1"; + +module.exports.testInfo = {"uniqueName":{"share":"share160121914509202924"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121914509202924') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:45 GMT', + 'ETag', + '"0x8D862F6CF4EC55A"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19cc-701a-006b-16df-94e952000000', + 'x-ms-client-request-id', + 'c98c28ed-9d83-4e19-a967-fed3be225172', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:44 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121914509202924') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:45 GMT', + 'ETag', + '"0x8D862F6CF4EC55A"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19ce-701a-006b-17df-94e952000000', + 'x-ms-client-request-id', + '26938b2b-582a-4369-af7a-8b17a6b58072', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + 'e9890485-bf47-4d9a-b3d0-aceb18506124', + 'Date', + 'Sun, 27 Sep 2020 15:05:44 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121914509202924') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:45 GMT', + 'ETag', + '"0x8D862F6CF4EC55A"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19d0-701a-006b-18df-94e952000000', + 'x-ms-client-request-id', + 'f9ca9d53-824f-4ae7-bc5b-7cc7f0c36fde', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + 'e9890485-bf47-4d9a-b3d0-aceb18506124', + 'Date', + 'Sun, 27 Sep 2020 15:05:45 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121914509202924') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:45 GMT', + 'ETag', + '"0x8D862F6CF4EC55A"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '1029340b-d01a-0000-0bdf-946ea6000000', + 'x-ms-client-request-id', + '8c5511e9-264e-4671-9209-78c5c2b3b5a4', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-time', + '0', + 'Date', + 'Sun, 27 Sep 2020 15:05:46 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121914509202924') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19d9-701a-006b-1cdf-94e952000000', + 'x-ms-client-request-id', + 'c1f93a25-8697-4fe9-a0f8-b2225fe4facf', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:46 GMT' +]); diff --git a/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease_for_snapshot.js b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease_for_snapshot.js new file mode 100644 index 000000000000..49dce7515172 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease_for_snapshot.js @@ -0,0 +1,175 @@ +let nock = require('nock'); + +module.exports.hash = "605aa7c32fc39d9cef1923e874e73573"; + +module.exports.testInfo = {"uniqueName":{"share":"share160121913935406942"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121913935406942') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:39 GMT', + 'ETag', + '"0x8D862F6CBE30EE1"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19ae-701a-006b-03df-94e952000000', + 'x-ms-client-request-id', + '989c429b-eff5-4ad5-b6fa-92bdb27c3fa1', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:38 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121913935406942') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:39 GMT', + 'ETag', + '"0x8D862F6CBE30EE1"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19b0-701a-006b-04df-94e952000000', + 'x-ms-client-request-id', + '8ca972b5-5c7f-4c70-9883-f6ef73c41657', + 'x-ms-version', + '2020-02-10', + 'x-ms-snapshot', + '2020-09-27T15:05:39.0000000Z', + 'Date', + 'Sun, 27 Sep 2020 15:05:39 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121913935406942') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:39 GMT', + 'ETag', + '"0x8D862F6CBE30EE1"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19b1-701a-006b-05df-94e952000000', + 'x-ms-client-request-id', + 'bd6b7325-2e67-4d9e-a523-6c8fc329cae9', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + 'e9890485-bf47-4d9a-b3d0-aceb18506124', + 'Date', + 'Sun, 27 Sep 2020 15:05:39 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/share160121913935406942') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:39 GMT', + 'ETag', + '"0x8D862F6CBE30EE1"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19b3-701a-006b-06df-94e952000000', + 'x-ms-client-request-id', + 'a0782773-a8d9-40d8-9f81-5d1bc9b9a568', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-status', + 'locked', + 'x-ms-lease-state', + 'leased', + 'x-ms-lease-duration', + 'infinite', + 'x-ms-has-immutability-policy', + 'false', + 'x-ms-has-legal-hold', + 'false', + 'x-ms-share-quota', + '5120', + 'x-ms-access-tier', + 'TransactionOptimized', + 'x-ms-access-tier-change-time', + 'Sun, 27 Sep 2020 15:05:39 GMT', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Last-Modified,ETag,x-ms-lease-status,x-ms-lease-state,x-ms-lease-duration,x-ms-has-immutability-policy,x-ms-has-legal-hold,x-ms-share-quota,x-ms-access-tier,x-ms-access-tier-change-time,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Sun, 27 Sep 2020 15:05:39 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/share160121913935406942') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:39 GMT', + 'ETag', + '"0x8D862F6CBE30EE1"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19b6-701a-006b-07df-94e952000000', + 'x-ms-client-request-id', + 'e34ff711-1b5b-4d8b-9876-0d6a0c5d6b4e', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-status', + 'unlocked', + 'x-ms-lease-state', + 'available', + 'x-ms-has-immutability-policy', + 'false', + 'x-ms-has-legal-hold', + 'false', + 'x-ms-share-quota', + '5120', + 'x-ms-access-tier', + 'TransactionOptimized', + 'x-ms-access-tier-change-time', + 'Sun, 27 Sep 2020 15:05:39 GMT', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Last-Modified,ETag,x-ms-lease-status,x-ms-lease-state,x-ms-has-immutability-policy,x-ms-has-legal-hold,x-ms-share-quota,x-ms-access-tier,x-ms-access-tier-change-time,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Sun, 27 Sep 2020 15:05:40 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121913935406942') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19b7-701a-006b-08df-94e952000000', + 'x-ms-client-request-id', + '526d4b18-9d40-4816-b1e2-d47879e50506', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:40 GMT' +]); diff --git a/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease_without_proposed_lease_id_with_a_finite_duration.js b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease_without_proposed_lease_id_with_a_finite_duration.js new file mode 100644 index 000000000000..2cbb851882b6 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_acquirelease_without_proposed_lease_id_with_a_finite_duration.js @@ -0,0 +1,135 @@ +let nock = require('nock'); + +module.exports.hash = "dc5da3094ca5f35040a8e7541cfa5754"; + +module.exports.testInfo = {"uniqueName":{"share":"share160121914170908383"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121914170908383') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:41 GMT', + 'ETag', + '"0x8D862F6CD4A3321"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19b9-701a-006b-09df-94e952000000', + 'x-ms-client-request-id', + '7f0b60d7-9d8a-412c-9565-452c41b0efe7', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:41 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121914170908383') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:41 GMT', + 'ETag', + '"0x8D862F6CD4A3321"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19bb-701a-006b-0adf-94e952000000', + 'x-ms-client-request-id', + '0dfa5371-08c1-4a36-ab85-ced76c0b7bba', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + 'e58a14e2-562c-43af-a486-939fa5ce51a4', + 'Date', + 'Sun, 27 Sep 2020 15:05:41 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/share160121914170908383') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:41 GMT', + 'ETag', + '"0x8D862F6CD4A3321"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19bf-701a-006b-0cdf-94e952000000', + 'x-ms-client-request-id', + '699db084-bcbb-4c61-9349-ac266e352b30', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-status', + 'locked', + 'x-ms-lease-state', + 'leased', + 'x-ms-lease-duration', + 'fixed', + 'x-ms-has-immutability-policy', + 'false', + 'x-ms-has-legal-hold', + 'false', + 'x-ms-share-quota', + '5120', + 'x-ms-access-tier', + 'TransactionOptimized', + 'x-ms-access-tier-change-time', + 'Sun, 27 Sep 2020 15:05:41 GMT', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Last-Modified,ETag,x-ms-lease-status,x-ms-lease-state,x-ms-lease-duration,x-ms-has-immutability-policy,x-ms-has-legal-hold,x-ms-share-quota,x-ms-access-tier,x-ms-access-tier-change-time,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Sun, 27 Sep 2020 15:05:41 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121914170908383') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:41 GMT', + 'ETag', + '"0x8D862F6CD4A3321"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19c1-701a-006b-0edf-94e952000000', + 'x-ms-client-request-id', + '990b4663-d4c0-4db1-bde8-b3785c2b4721', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-time', + '0', + 'Date', + 'Sun, 27 Sep 2020 15:05:42 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121914170908383') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19c2-701a-006b-0fdf-94e952000000', + 'x-ms-client-request-id', + '31daab21-08f5-403d-ac01-bd6c8d40135d', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:42 GMT' +]); diff --git a/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_break_a_broken_lease.js b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_break_a_broken_lease.js new file mode 100644 index 000000000000..a6eae715bda0 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_break_a_broken_lease.js @@ -0,0 +1,141 @@ +let nock = require('nock'); + +module.exports.hash = "493a7c86cc031356282fbce76c3dcfab"; + +module.exports.testInfo = {"uniqueName":{"share":"share160121915624906007"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915624906007') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:56 GMT', + 'ETag', + '"0x8D862F6D5F4DFB1"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19f9-701a-006b-2fdf-94e952000000', + 'x-ms-client-request-id', + 'dba7c700-2c80-4264-baab-6b8ed85a6e25', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:55 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915624906007') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:56 GMT', + 'ETag', + '"0x8D862F6D5F4DFB1"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '1029342e-d01a-0000-1fdf-946ea6000000', + 'x-ms-client-request-id', + 'ef03b1fe-bcc4-42c2-a79b-2a8d6aba56a0', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + '03388176-4f73-4aa8-9fec-4b26cb744063', + 'Date', + 'Sun, 27 Sep 2020 15:05:56 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915624906007') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:56 GMT', + 'ETag', + '"0x8D862F6D5F4DFB1"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19fc-701a-006b-30df-94e952000000', + 'x-ms-client-request-id', + 'a326809d-dcca-4c54-8a81-6af8dbe824e4', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-time', + '14', + 'Date', + 'Sun, 27 Sep 2020 15:05:56 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915624906007') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:56 GMT', + 'ETag', + '"0x8D862F6D5F4DFB1"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293431-d01a-0000-20df-946ea6000000', + 'x-ms-client-request-id', + '8c31cf4f-f0a8-4fb6-98e4-28a06be1f6ed', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-time', + '14', + 'Date', + 'Sun, 27 Sep 2020 15:05:57 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915624906007') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:56 GMT', + 'ETag', + '"0x8D862F6D5F4DFB1"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19ff-701a-006b-32df-94e952000000', + 'x-ms-client-request-id', + 'd8712741-8fd5-42f1-8f62-303ff6fb4951', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-time', + '0', + 'Date', + 'Sun, 27 Sep 2020 15:05:57 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121915624906007') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293434-d01a-0000-22df-946ea6000000', + 'x-ms-client-request-id', + '1f96c557-c69f-49cc-b4e8-34ee8bf5700e', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:58 GMT' +]); diff --git a/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_break_lease_and_then_release_it.js b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_break_lease_and_then_release_it.js new file mode 100644 index 000000000000..4507ccf45d4c --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_break_lease_and_then_release_it.js @@ -0,0 +1,199 @@ +let nock = require('nock'); + +module.exports.hash = "9a059dd3de5d823392423f909fdac826"; + +module.exports.testInfo = {"uniqueName":{"share":"share160121915369200772"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915369200772') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:53 GMT', + 'ETag', + '"0x8D862F6D46E9B2F"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293423-d01a-0000-18df-946ea6000000', + 'x-ms-client-request-id', + '0041fd5b-fc0b-467d-a60f-008c594ee5e3', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:53 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915369200772') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:53 GMT', + 'ETag', + '"0x8D862F6D46E9B2F"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19f2-701a-006b-2bdf-94e952000000', + 'x-ms-client-request-id', + '222b1a4d-8e7b-4414-8f4f-37b5f6773801', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + '79efc86e-c051-4696-9c60-eee1a9f93e2a', + 'Date', + 'Sun, 27 Sep 2020 15:05:53 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/share160121915369200772') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:53 GMT', + 'ETag', + '"0x8D862F6D46E9B2F"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293425-d01a-0000-19df-946ea6000000', + 'x-ms-client-request-id', + '8b02749a-66b9-45a5-8607-1dd50df0e26a', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-status', + 'locked', + 'x-ms-lease-state', + 'leased', + 'x-ms-lease-duration', + 'infinite', + 'x-ms-has-immutability-policy', + 'false', + 'x-ms-has-legal-hold', + 'false', + 'x-ms-share-quota', + '5120', + 'x-ms-access-tier', + 'TransactionOptimized', + 'x-ms-access-tier-change-time', + 'Sun, 27 Sep 2020 15:05:53 GMT', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Last-Modified,ETag,x-ms-lease-status,x-ms-lease-state,x-ms-lease-duration,x-ms-has-immutability-policy,x-ms-has-legal-hold,x-ms-share-quota,x-ms-access-tier,x-ms-access-tier-change-time,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Sun, 27 Sep 2020 15:05:54 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915369200772') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:53 GMT', + 'ETag', + '"0x8D862F6D46E9B2F"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19f5-701a-006b-2cdf-94e952000000', + 'x-ms-client-request-id', + '3f43de1d-caef-4f80-a649-a17addb83668', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-time', + '0', + 'Date', + 'Sun, 27 Sep 2020 15:05:54 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/share160121915369200772') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:53 GMT', + 'ETag', + '"0x8D862F6D46E9B2F"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293428-d01a-0000-1adf-946ea6000000', + 'x-ms-client-request-id', + 'bf08638b-5f88-4f36-8bc8-5d65812fea43', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-status', + 'unlocked', + 'x-ms-lease-state', + 'broken', + 'x-ms-has-immutability-policy', + 'false', + 'x-ms-has-legal-hold', + 'false', + 'x-ms-share-quota', + '5120', + 'x-ms-access-tier', + 'TransactionOptimized', + 'x-ms-access-tier-change-time', + 'Sun, 27 Sep 2020 15:05:53 GMT', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Last-Modified,ETag,x-ms-lease-status,x-ms-lease-state,x-ms-has-immutability-policy,x-ms-has-legal-hold,x-ms-share-quota,x-ms-access-tier,x-ms-access-tier-change-time,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Sun, 27 Sep 2020 15:05:55 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915369200772') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:53 GMT', + 'ETag', + '"0x8D862F6D46E9B2F"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19f7-701a-006b-2edf-94e952000000', + 'x-ms-client-request-id', + '8abe0e10-10f4-4008-9051-40b2c0218664', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-time', + '0', + 'Date', + 'Sun, 27 Sep 2020 15:05:54 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121915369200772') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '1029342b-d01a-0000-1ddf-946ea6000000', + 'x-ms-client-request-id', + '9c8799f3-c8b6-4428-a7e6-ea7324e481e1', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:55 GMT' +]); diff --git a/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_changelease.js b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_changelease.js new file mode 100644 index 000000000000..11e3605e6477 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_changelease.js @@ -0,0 +1,117 @@ +let nock = require('nock'); + +module.exports.hash = "4038737563cbb5fb3335adf53fbfa413"; + +module.exports.testInfo = {"uniqueName":{"share":"share160121914876904135"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121914876904135') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:48 GMT', + 'ETag', + '"0x8D862F6D17F787B"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19dc-701a-006b-1edf-94e952000000', + 'x-ms-client-request-id', + 'ae80488d-3b36-4e8b-9e6d-1c28a0f047ce', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:48 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121914876904135') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:48 GMT', + 'ETag', + '"0x8D862F6D17F787B"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293414-d01a-0000-0fdf-946ea6000000', + 'x-ms-client-request-id', + '1ff85c8e-bf37-4dd6-bddc-036fece28e97', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + '738a5822-ff90-4d03-aab4-136fb410dacc', + 'Date', + 'Sun, 27 Sep 2020 15:05:48 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121914876904135') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:48 GMT', + 'ETag', + '"0x8D862F6D17F787B"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19e0-701a-006b-20df-94e952000000', + 'x-ms-client-request-id', + '68bf8427-ad12-472c-81ac-fddd984d9bd9', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + 'e9890485-bf47-4d9a-b3d0-aceb18506124', + 'Date', + 'Sun, 27 Sep 2020 15:05:48 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121914876904135') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:48 GMT', + 'ETag', + '"0x8D862F6D17F787B"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293418-d01a-0000-11df-946ea6000000', + 'x-ms-client-request-id', + '2903d1bc-f799-46b4-a7d2-535149d3f19d', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-time', + '0', + 'Date', + 'Sun, 27 Sep 2020 15:05:49 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121914876904135') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19e3-701a-006b-22df-94e952000000', + 'x-ms-client-request-id', + '5362f1cd-c428-4409-951a-2620988fc3cd', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:49 GMT' +]); diff --git a/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_changelease_before_acquiring_a_lease.js b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_changelease_before_acquiring_a_lease.js new file mode 100644 index 000000000000..ec6bc8af6e2f --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_changelease_before_acquiring_a_lease.js @@ -0,0 +1,67 @@ +let nock = require('nock'); + +module.exports.hash = "ebfbd5b28ebc766ef7fcc4b5f1e3c195"; + +module.exports.testInfo = {"uniqueName":{"share":"share160121915061801772"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915061801772') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:50 GMT', + 'ETag', + '"0x8D862F6D29A2262"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293419-d01a-0000-12df-946ea6000000', + 'x-ms-client-request-id', + 'f8d1e1d9-9240-4f38-a7b1-9b20fb243fae', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:50 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915061801772') + .query(true) + .reply(409, "LeaseNotPresentWithLeaseOperationThere is currently no lease on the file share.\nRequestId:09ab19e5-701a-006b-23df-94e952000000\nTime:2020-09-27T15:05:51.1790130Z", [ + 'Content-Length', + '248', + 'Content-Type', + 'application/xml', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19e5-701a-006b-23df-94e952000000', + 'x-ms-client-request-id', + 'a9af1e5f-8eb8-4b67-ad8e-8e83dd800ab9', + 'x-ms-version', + '2020-02-10', + 'x-ms-error-code', + 'LeaseNotPresentWithLeaseOperation', + 'Date', + 'Sun, 27 Sep 2020 15:05:50 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121915061801772') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '1029341b-d01a-0000-13df-946ea6000000', + 'x-ms-client-request-id', + '28e6eb70-76d2-4a0e-8bc3-6f0b59f8f3b9', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:51 GMT' +]); diff --git a/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_invalid_duration_for_acquirelease.js b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_invalid_duration_for_acquirelease.js new file mode 100644 index 000000000000..f583e92020cb --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_invalid_duration_for_acquirelease.js @@ -0,0 +1,67 @@ +let nock = require('nock'); + +module.exports.hash = "654caa107adf9e5140aa8bdb81725c8e"; + +module.exports.testInfo = {"uniqueName":{"share":"share160121914775500736"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121914775500736') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:47 GMT', + 'ETag', + '"0x8D862F6D0EC4B5E"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293411-d01a-0000-0ddf-946ea6000000', + 'x-ms-client-request-id', + '17271a22-cdd2-4854-9ffe-4c2b4b99c820', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:47 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121914775500736') + .query(true) + .reply(400, "InvalidHeaderValueThe value for one of the HTTP headers is not in the correct format.\nRequestId:09ab19da-701a-006b-1ddf-94e952000000\nTime:2020-09-27T15:05:48.3009699Zx-ms-lease-duration1", [ + 'Content-Length', + '326', + 'Content-Type', + 'application/xml', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19da-701a-006b-1ddf-94e952000000', + 'x-ms-client-request-id', + '7eeaebe0-d727-4e32-a9f0-cc6673ecbfb5', + 'x-ms-version', + '2020-02-10', + 'x-ms-error-code', + 'InvalidHeaderValue', + 'Date', + 'Sun, 27 Sep 2020 15:05:47 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121914775500736') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293413-d01a-0000-0edf-946ea6000000', + 'x-ms-client-request-id', + '4d1defbc-20c2-4031-87da-9f19e734f42e', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:48 GMT' +]); diff --git a/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_lease_condition_for_delete.js b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_lease_condition_for_delete.js new file mode 100644 index 000000000000..e73f7da589d8 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_lease_condition_for_delete.js @@ -0,0 +1,109 @@ +let nock = require('nock'); + +module.exports.hash = "0c0829efdb2bc6b3a538e1d74362f342"; + +module.exports.testInfo = {"uniqueName":{"share":"share160121916619007218"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121916619007218') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:06 GMT', + 'ETag', + '"0x8D862F6DBE1C8C2"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293451-d01a-0000-2fdf-946ea6000000', + 'x-ms-client-request-id', + '9d1e9520-7dc4-4f1c-871b-bb8009e53ac4', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:06:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121916619007218') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:06 GMT', + 'ETag', + '"0x8D862F6DBE1C8C2"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a20-701a-006b-42df-94e952000000', + 'x-ms-client-request-id', + '8de6c038-0b3a-42b4-8fff-222e5583a978', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + 'e9890485-bf47-4d9a-b3d0-aceb18506124', + 'Date', + 'Sun, 27 Sep 2020 15:06:05 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121916619007218') + .query(true) + .reply(412, "LeaseIdMissingThere is currently a lease on the file share and no lease ID was specified in the request.\nRequestId:10293453-d01a-0000-30df-946ea6000000\nTime:2020-09-27T15:06:07.1545112Z", [ + 'Content-Length', + '273', + 'Content-Type', + 'application/xml', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293453-d01a-0000-30df-946ea6000000', + 'x-ms-client-request-id', + 'db810f91-bf9e-4757-8888-1edecde92635', + 'x-ms-version', + '2020-02-10', + 'x-ms-error-code', + 'LeaseIdMissing', + 'Date', + 'Sun, 27 Sep 2020 15:06:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121916619007218') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a26-701a-006b-44df-94e952000000', + 'x-ms-client-request-id', + '878d5d81-092c-4798-8731-d9e861b67210', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:06:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121916619007218') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293458-d01a-0000-33df-946ea6000000', + 'x-ms-client-request-id', + '41a75a6b-e4cc-42d9-a22a-dd37a8076891', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:06:07 GMT' +]); diff --git a/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_lease_condition_for_get_operations.js b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_lease_condition_for_get_operations.js new file mode 100644 index 000000000000..d800394d8ec8 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_lease_condition_for_get_operations.js @@ -0,0 +1,203 @@ +let nock = require('nock'); + +module.exports.hash = "783b0b97c7720d404070d72ec167933d"; + +module.exports.testInfo = {"uniqueName":{"share":"share160121916823006806"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121916823006806') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:08 GMT', + 'ETag', + '"0x8D862F6DD18CCA0"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a2b-701a-006b-46df-94e952000000', + 'x-ms-client-request-id', + '259a1fed-abfe-4b80-99c8-5d55ab4c597c', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:06:07 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121916823006806') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:08 GMT', + 'ETag', + '"0x8D862F6DD18CCA0"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '1029345a-d01a-0000-34df-946ea6000000', + 'x-ms-client-request-id', + 'c53c9abb-9e04-4bee-a381-f330bb357082', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + '4a962ce7-3efb-4627-a830-05c98b03e95e', + 'Date', + 'Sun, 27 Sep 2020 15:06:08 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/share160121916823006806') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:08 GMT', + 'ETag', + '"0x8D862F6DD18CCA0"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a2f-701a-006b-47df-94e952000000', + 'x-ms-client-request-id', + '7b111603-eabc-46c0-b2c1-808bb3938b8d', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-status', + 'locked', + 'x-ms-lease-state', + 'leased', + 'x-ms-lease-duration', + 'infinite', + 'x-ms-has-immutability-policy', + 'false', + 'x-ms-has-legal-hold', + 'false', + 'x-ms-share-quota', + '5120', + 'x-ms-access-tier', + 'TransactionOptimized', + 'x-ms-access-tier-change-time', + 'Sun, 27 Sep 2020 15:06:08 GMT', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Last-Modified,ETag,x-ms-lease-status,x-ms-lease-state,x-ms-lease-duration,x-ms-has-immutability-policy,x-ms-has-legal-hold,x-ms-share-quota,x-ms-access-tier,x-ms-access-tier-change-time,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Sun, 27 Sep 2020 15:06:08 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/share160121916823006806') + .query(true) + .reply(412, "LeaseIdMismatchWithContainerOperationThe lease ID specified did not match the lease ID for the file share.\nRequestId:1029345c-d01a-0000-35df-946ea6000000\nTime:2020-09-27T15:06:09.6102535Z", [ + 'Content-Length', + '275', + 'Content-Type', + 'application/xml', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '1029345c-d01a-0000-35df-946ea6000000', + 'x-ms-client-request-id', + '004a614b-7d18-4a47-93fe-a79c5cdd034e', + 'x-ms-version', + '2020-02-10', + 'x-ms-error-code', + 'LeaseIdMismatchWithContainerOperation', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-error-code,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Sun, 27 Sep 2020 15:06:09 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/share160121916823006806') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:08 GMT', + 'ETag', + '"0x8D862F6DD18CCA0"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a32-701a-006b-49df-94e952000000', + 'x-ms-client-request-id', + '9154caa5-8dfe-49b6-a841-30b0b02f42bf', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-status', + 'locked', + 'x-ms-lease-state', + 'leased', + 'x-ms-lease-duration', + 'infinite', + 'x-ms-has-immutability-policy', + 'false', + 'x-ms-has-legal-hold', + 'false', + 'x-ms-share-quota', + '5120', + 'x-ms-access-tier', + 'TransactionOptimized', + 'x-ms-access-tier-change-time', + 'Sun, 27 Sep 2020 15:06:08 GMT', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Last-Modified,ETag,x-ms-lease-status,x-ms-lease-state,x-ms-lease-duration,x-ms-has-immutability-policy,x-ms-has-legal-hold,x-ms-share-quota,x-ms-access-tier,x-ms-access-tier-change-time,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Sun, 27 Sep 2020 15:06:09 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121916823006806') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:08 GMT', + 'ETag', + '"0x8D862F6DD18CCA0"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '1029345e-d01a-0000-36df-946ea6000000', + 'x-ms-client-request-id', + 'a518811b-0b6f-4c0a-862c-fc18a5706b78', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-time', + '0', + 'Date', + 'Sun, 27 Sep 2020 15:06:09 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121916823006806') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a33-701a-006b-4adf-94e952000000', + 'x-ms-client-request-id', + '7dcfd868-ccb8-41ae-9ab4-efd70632df39', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:06:09 GMT' +]); diff --git a/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_lease_condition_for_write_operations.js b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_lease_condition_for_write_operations.js new file mode 100644 index 000000000000..f69c68f539e8 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_lease_condition_for_write_operations.js @@ -0,0 +1,159 @@ +let nock = require('nock'); + +module.exports.hash = "44ab307e6c4bc4b593883f54024ed146"; + +module.exports.testInfo = {"uniqueName":{"share":"share160121917079001315"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121917079001315') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:10 GMT', + 'ETag', + '"0x8D862F6DEA02FCD"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293460-d01a-0000-38df-946ea6000000', + 'x-ms-client-request-id', + '8b85d952-4720-4e12-8f77-f67ac1ebb788', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:06:10 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121917079001315') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:10 GMT', + 'ETag', + '"0x8D862F6DEA02FCD"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a36-701a-006b-4cdf-94e952000000', + 'x-ms-client-request-id', + '70c512fb-3dc5-4c2c-99ea-bc254edc6162', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + 'dbb014b6-5de2-4d8f-8c48-ed7b503b7733', + 'Date', + 'Sun, 27 Sep 2020 15:06:10 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121917079001315') + .query(true) + .reply(412, "LeaseIdMissingThere is currently a lease on the file share and no lease ID was specified in the request.\nRequestId:10293463-d01a-0000-39df-946ea6000000\nTime:2020-09-27T15:06:11.7787922Z", [ + 'Content-Length', + '273', + 'Content-Type', + 'application/xml', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293463-d01a-0000-39df-946ea6000000', + 'x-ms-client-request-id', + 'f2da11ba-e110-4fae-b33c-a4d9b84d5226', + 'x-ms-version', + '2020-02-10', + 'x-ms-error-code', + 'LeaseIdMissing', + 'Date', + 'Sun, 27 Sep 2020 15:06:11 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121917079001315') + .query(true) + .reply(412, "LeaseIdMismatchWithContainerOperationThe lease ID specified did not match the lease ID for the file share.\nRequestId:09ab1a39-701a-006b-4ddf-94e952000000\nTime:2020-09-27T15:06:12.1798962Z", [ + 'Content-Length', + '275', + 'Content-Type', + 'application/xml', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a39-701a-006b-4ddf-94e952000000', + 'x-ms-client-request-id', + '4967bca6-47c9-4f66-976d-3ca66d820f49', + 'x-ms-version', + '2020-02-10', + 'x-ms-error-code', + 'LeaseIdMismatchWithContainerOperation', + 'Date', + 'Sun, 27 Sep 2020 15:06:11 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121917079001315') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:12 GMT', + 'ETag', + '"0x8D862F6DF999657"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293465-d01a-0000-3adf-946ea6000000', + 'x-ms-client-request-id', + 'a3149040-0a5c-4076-8bf1-0288f6a2709f', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:06:12 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121917079001315') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:12 GMT', + 'ETag', + '"0x8D862F6DF999657"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a3c-701a-006b-4fdf-94e952000000', + 'x-ms-client-request-id', + '50d3ae0e-d30b-4cf5-9146-acc879fa7011', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-time', + '0', + 'Date', + 'Sun, 27 Sep 2020 15:06:12 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121917079001315') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293467-d01a-0000-3bdf-946ea6000000', + 'x-ms-client-request-id', + '81186509-54c8-415d-94c3-ce811b8cf620', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:06:12 GMT' +]); diff --git a/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_lease_properties_properly_returned.js b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_lease_properties_properly_returned.js new file mode 100644 index 000000000000..d126fec48f3d --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_lease_properties_properly_returned.js @@ -0,0 +1,159 @@ +let nock = require('nock'); + +module.exports.hash = "60d3362fd95e0f8e316ba3469840044f"; + +module.exports.testInfo = {"uniqueName":{"share":"share160121916362104227"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121916362104227') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:03 GMT', + 'ETag', + '"0x8D862F6DA59F6E8"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '1029344a-d01a-0000-2bdf-946ea6000000', + 'x-ms-client-request-id', + '53981182-3d57-4e8a-bf16-1459ecdf02bd', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:06:03 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121916362104227') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:03 GMT', + 'ETag', + '"0x8D862F6DA59F6E8"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a17-701a-006b-3edf-94e952000000', + 'x-ms-client-request-id', + '8f1703cf-5535-404a-928d-83698c189757', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + '409a5c92-4eda-4722-818d-8545d1a6228a', + 'Date', + 'Sun, 27 Sep 2020 15:06:03 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/share160121916362104227') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:03 GMT', + 'ETag', + '"0x8D862F6DA59F6E8"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '1029344d-d01a-0000-2cdf-946ea6000000', + 'x-ms-client-request-id', + 'e5ad7d9c-3aa4-46d7-8da6-8005417d2e18', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-status', + 'locked', + 'x-ms-lease-state', + 'leased', + 'x-ms-lease-duration', + 'infinite', + 'x-ms-has-immutability-policy', + 'false', + 'x-ms-has-legal-hold', + 'false', + 'x-ms-share-quota', + '5120', + 'x-ms-access-tier', + 'TransactionOptimized', + 'x-ms-access-tier-change-time', + 'Sun, 27 Sep 2020 15:06:03 GMT', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Last-Modified,ETag,x-ms-lease-status,x-ms-lease-state,x-ms-lease-duration,x-ms-has-immutability-policy,x-ms-has-legal-hold,x-ms-share-quota,x-ms-access-tier,x-ms-access-tier-change-time,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Sun, 27 Sep 2020 15:06:04 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/') + .query(true) + .reply(200, "share160093141210102328Thu, 24 Sep 2020 07:10:13 GMT\"0x8D86058E1C40CB2\"unlockedavailable5120TransactionOptimizedThu, 24 Sep 2020 07:10:13 GMT$account-encryption-keyfalseshare160093176153301093Thu, 24 Sep 2020 07:16:02 GMT\"0x8D86059B206C943\"unlockedavailable5120TransactionOptimizedThu, 24 Sep 2020 07:16:02 GMT$account-encryption-keyfalseshare160093195256704532Thu, 24 Sep 2020 07:19:13 GMT\"0x8D8605A23EB8F85\"unlockedavailable5120TransactionOptimizedThu, 24 Sep 2020 07:19:13 GMT$account-encryption-keyfalseshare160121233635009423Sun, 27 Sep 2020 13:12:16 GMT\"0x8D862E6F4FB4A9C\"unlockedavailable5120TransactionOptimizedSun, 27 Sep 2020 13:12:16 GMT$account-encryption-keyfalseshare160121235006600409Sun, 27 Sep 2020 13:12:30 GMT\"0x8D862E6FD28EA42\"unlockedavailable5120TransactionOptimizedSun, 27 Sep 2020 13:12:30 GMT$account-encryption-keyfalseshare160121310851508050Sun, 27 Sep 2020 13:25:09 GMT\"0x8D862E8C1F3100F\"unlockedexpired5120TransactionOptimizedSun, 27 Sep 2020 13:25:09 GMT$account-encryption-keyfalseshare160121326942502893Sun, 27 Sep 2020 13:27:50 GMT\"0x8D862E921DDD8EC\"lockedleasedinfinite5120TransactionOptimizedSun, 27 Sep 2020 13:27:50 GMT$account-encryption-keyfalseshare160121389438808287Sun, 27 Sep 2020 13:38:15 GMT\"0x8D862EA966D8BBD\"unlockedavailable5120TransactionOptimizedSun, 27 Sep 2020 13:38:15 GMT$account-encryption-keyfalseshare160121491612400623Sun, 27 Sep 2020 13:55:16 GMT\"0x8D862ECF6A57F34\"unlockedexpired5120TransactionOptimizedSun, 27 Sep 2020 13:55:16 GMT$account-encryption-keyfalseshare160121509901107353Sun, 27 Sep 2020 13:58:19 GMT\"0x8D862ED63A7C0E3\"unlockedbroken5120TransactionOptimizedSun, 27 Sep 2020 13:58:19 GMT$account-encryption-keyfalseshare160121551221306317Sun, 27 Sep 2020 14:05:12 GMT\"0x8D862EE59F16DE2\"unlockedavailable5120TransactionOptimizedSun, 27 Sep 2020 14:05:12 GMT$account-encryption-keyfalseshare160121551974009496Sun, 27 Sep 2020 14:05:19 GMT\"0x8D862EE5E6E01B4\"unlockedavailable5120TransactionOptimizedSun, 27 Sep 2020 14:05:19 GMT$account-encryption-keyfalseshare160121870218806337Sun, 27 Sep 2020 14:58:23 GMT\"0x8D862F5C81E89A1\"lockedleasedinfinite5120TransactionOptimizedSun, 27 Sep 2020 14:58:23 GMT$account-encryption-keyfalseshare160121916362104227Sun, 27 Sep 2020 15:06:03 GMT\"0x8D862F6DA59F6E8\"lockedleasedinfinite5120TransactionOptimizedSun, 27 Sep 2020 15:06:03 GMT$account-encryption-keyfalse", [ + 'Transfer-Encoding', + 'chunked', + 'Content-Type', + 'application/xml', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a1c-701a-006b-40df-94e952000000', + 'x-ms-client-request-id', + 'ed5589be-b7b2-48f5-ba82-13be26968a7e', + 'x-ms-version', + '2020-02-10', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Sun, 27 Sep 2020 15:06:04 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121916362104227') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:03 GMT', + 'ETag', + '"0x8D862F6DA59F6E8"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293450-d01a-0000-2edf-946ea6000000', + 'x-ms-client-request-id', + 'a58cb950-88f9-4298-ae10-574084530956', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-time', + '0', + 'Date', + 'Sun, 27 Sep 2020 15:06:05 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121916362104227') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a1f-701a-006b-41df-94e952000000', + 'x-ms-client-request-id', + 'd5c1978a-4687-4656-bd22-71599aa7d748', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:06:05 GMT' +]); diff --git a/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_release_lease.js b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_release_lease.js new file mode 100644 index 000000000000..8fd623d13ef5 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_release_lease.js @@ -0,0 +1,133 @@ +let nock = require('nock'); + +module.exports.hash = "a65d31233d61e48fa43a445144fb1bd3"; + +module.exports.testInfo = {"uniqueName":{"share":"share160121915174409919"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915174409919') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:51 GMT', + 'ETag', + '"0x8D862F6D34596BD"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19e9-701a-006b-25df-94e952000000', + 'x-ms-client-request-id', + '5df9990a-4985-4c0c-8e89-80eac0e902d6', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:51 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915174409919') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:51 GMT', + 'ETag', + '"0x8D862F6D34596BD"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '1029341e-d01a-0000-15df-946ea6000000', + 'x-ms-client-request-id', + '9cae3085-e564-44d1-8551-9645498da9de', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + '0dbae786-d3e1-44dc-bf8d-b204f15f8798', + 'Date', + 'Sun, 27 Sep 2020 15:05:51 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121915174409919') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:51 GMT', + 'ETag', + '"0x8D862F6D34596BD"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19ef-701a-006b-29df-94e952000000', + 'x-ms-client-request-id', + '0186484b-1d66-4a49-9d1e-ee7c9cd6ab57', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-time', + '0', + 'Date', + 'Sun, 27 Sep 2020 15:05:51 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/share160121915174409919') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:05:51 GMT', + 'ETag', + '"0x8D862F6D34596BD"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293422-d01a-0000-17df-946ea6000000', + 'x-ms-client-request-id', + '12b70c9f-ff6e-4371-bc0b-684279e9a84a', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-status', + 'unlocked', + 'x-ms-lease-state', + 'available', + 'x-ms-has-immutability-policy', + 'false', + 'x-ms-has-legal-hold', + 'false', + 'x-ms-share-quota', + '5120', + 'x-ms-access-tier', + 'TransactionOptimized', + 'x-ms-access-tier-change-time', + 'Sun, 27 Sep 2020 15:05:51 GMT', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Last-Modified,ETag,x-ms-lease-status,x-ms-lease-state,x-ms-has-immutability-policy,x-ms-has-legal-hold,x-ms-share-quota,x-ms-access-tier,x-ms-access-tier-change-time,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Sun, 27 Sep 2020 15:05:52 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121915174409919') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab19f0-701a-006b-2adf-94e952000000', + 'x-ms-client-request-id', + '3bad43e7-1b4d-4963-aac5-20ca9aa74bc0', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:05:52 GMT' +]); diff --git a/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_renew_a_lease.js b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_renew_a_lease.js new file mode 100644 index 000000000000..eb9d32da0a5c --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/leaseclient_for_share/recording_renew_a_lease.js @@ -0,0 +1,117 @@ +let nock = require('nock'); + +module.exports.hash = "c44ff11ca905a9bc01bf763e55c36b6b"; + +module.exports.testInfo = {"uniqueName":{"share":"share160121916168004389"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121916168004389') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:01 GMT', + 'ETag', + '"0x8D862F6D9316731"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a0d-701a-006b-3adf-94e952000000', + 'x-ms-client-request-id', + 'ccb474c2-2540-4dac-a45b-5d97360013aa', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:06:00 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121916168004389') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:01 GMT', + 'ETag', + '"0x8D862F6D9316731"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293444-d01a-0000-29df-946ea6000000', + 'x-ms-client-request-id', + '9d9081c1-1910-4df6-a11f-e47542dfb0d9', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + 'e9890485-bf47-4d9a-b3d0-aceb18506124', + 'Date', + 'Sun, 27 Sep 2020 15:06:01 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121916168004389') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:01 GMT', + 'ETag', + '"0x8D862F6D9316731"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a14-701a-006b-3cdf-94e952000000', + 'x-ms-client-request-id', + '2f91c9e9-d4fc-4ec3-94f4-83fc8e85cd61', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-id', + 'e9890485-bf47-4d9a-b3d0-aceb18506124', + 'Date', + 'Sun, 27 Sep 2020 15:06:01 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share160121916168004389') + .query(true) + .reply(200, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Sun, 27 Sep 2020 15:06:01 GMT', + 'ETag', + '"0x8D862F6D9316731"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '10293448-d01a-0000-2adf-946ea6000000', + 'x-ms-client-request-id', + '7960eb34-b6f4-4248-9617-7c62580717f8', + 'x-ms-version', + '2020-02-10', + 'x-ms-lease-time', + '0', + 'Date', + 'Sun, 27 Sep 2020 15:06:02 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share160121916168004389') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '09ab1a16-701a-006b-3ddf-94e952000000', + 'x-ms-client-request-id', + '32b0d990-b5ed-4dbc-8f37-1ede76caf127', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Sun, 27 Sep 2020 15:06:02 GMT' +]); diff --git a/sdk/storage/storage-file-share/src/Clients.ts b/sdk/storage/storage-file-share/src/Clients.ts index d4fe1ce02010..104d2987fbb8 100644 --- a/sdk/storage/storage-file-share/src/Clients.ts +++ b/sdk/storage/storage-file-share/src/Clients.ts @@ -5938,12 +5938,12 @@ export class ShareLeaseClient { public async renewLease(options: LeaseOperationOptions = {}): Promise { const { span, spanOptions } = createSpan("ShareLeaseClient-renewLease", options.tracingOptions); - if (this.isShare) { + if (!this.isShare) { throw new RangeError("The renewLease operation is not available for lease on file."); } try { - return await this.fileOrShare.releaseLease(this._leaseId, { + return await (this.fileOrShare as Share).renewLease(this._leaseId, { abortSignal: options.abortSignal, spanOptions }); diff --git a/sdk/storage/storage-file-share/test/leaseclient.spec.ts b/sdk/storage/storage-file-share/test/leaseclient.spec.ts index 30aebdce95ab..05f2128276ce 100644 --- a/sdk/storage/storage-file-share/test/leaseclient.spec.ts +++ b/sdk/storage/storage-file-share/test/leaseclient.spec.ts @@ -1,12 +1,17 @@ import * as assert from "assert"; -import * as dotenv from "dotenv"; import { getBSU, recorderEnvSetup, bodyToString } from "./utils"; import { record, Recorder } from "@azure/test-utils-recorder"; -import { ShareClient, ShareDirectoryClient, ShareFileClient } from "../src"; -import { FileSystemAttributes } from "../src/FileSystemAttributes"; - +import { + ShareClient, + ShareDirectoryClient, + ShareFileClient, + ShareLeaseClient, + ShareServiceClient +} from "../src"; +import * as dotenv from "dotenv"; dotenv.config(); +// for file describe("LeaseClient", () => { let shareName: string; let shareClient: ShareClient; @@ -20,16 +25,6 @@ describe("LeaseClient", () => { let recorder: Recorder; - let fullFileAttributes = new FileSystemAttributes(); - fullFileAttributes.readonly = true; - fullFileAttributes.hidden = true; - fullFileAttributes.system = true; - fullFileAttributes.archive = true; - fullFileAttributes.temporary = true; - fullFileAttributes.offline = true; - fullFileAttributes.notContentIndexed = true; - fullFileAttributes.noScrubData = true; - beforeEach(async function() { recorder = record(this, recorderEnvSetup); const serviceClient = getBSU(); @@ -142,7 +137,9 @@ describe("LeaseClient", () => { let result = await fileClient.getProperties(); assert.equal(result.leaseState, "leased"); - await leaseClient.breakLease(); + const res = await leaseClient.breakLease(); + assert.equal(res.leaseTimeInSeconds, undefined); + result = await fileClient.getProperties(); assert.equal(result.leaseState, "broken"); @@ -336,3 +333,267 @@ describe("LeaseClient", () => { await fileClient.getProperties({ leaseAccessConditions: { leaseId: leaseClient.leaseId } }); }); }); + +describe("LeaseClient for share", () => { + let serviceClient: ShareServiceClient; + let shareName: string; + let shareClient: ShareClient; + const infiniteDuration = -1; + const finiteDuration = 15; + const guid = "e9890485-bf47-4d9a-b3d0-aceb18506124"; + + let recorder: Recorder; + beforeEach(async function() { + recorder = record(this, recorderEnvSetup); + serviceClient = getBSU(); + shareName = recorder.getUniqueName("share"); + shareClient = serviceClient.getShareClient(shareName); + await shareClient.create(); + }); + + afterEach(async function() { + await shareClient.deleteIfExists({ deleteSnapshots: "include" }); + await recorder.stop(); + }); + + // lease management: + it("acquireLease", async () => { + const leaseClient = shareClient.getShareLeaseClient(guid); + + const acquireResp = await leaseClient.acquireLease(infiniteDuration); + assert.equal(acquireResp.leaseId, guid); + + const result = await shareClient.getProperties(); + assert.equal(result.leaseDuration, "infinite"); + assert.equal(result.leaseState, "leased"); + assert.equal(result.leaseStatus, "locked"); + + await leaseClient.releaseLease(); + }); + + it("acquireLease for snapshot", async () => { + const snapshotRes = await shareClient.createSnapshot(); + assert.ok(snapshotRes.snapshot); + const snapshotShareClient = shareClient.withSnapshot(snapshotRes.snapshot!); + + const leaseClient = snapshotShareClient.getShareLeaseClient(guid); + const acquireResp = await leaseClient.acquireLease(infiniteDuration); + assert.equal(acquireResp.leaseId, guid); + + const snapshotResult = await snapshotShareClient.getProperties(); + assert.equal(snapshotResult.leaseDuration, "infinite"); + assert.equal(snapshotResult.leaseState, "leased"); + assert.equal(snapshotResult.leaseStatus, "locked"); + + const result = await shareClient.getProperties(); + assert.equal(result.leaseDuration, undefined); + assert.equal(result.leaseState, "available"); + assert.equal(result.leaseStatus, "unlocked"); + }); + + it("acquireLease without proposed lease id, with a finite duration", async () => { + const leaseClient = shareClient.getShareLeaseClient(); + await leaseClient.acquireLease(finiteDuration); + + const result = await shareClient.getProperties(); + assert.equal(result.leaseDuration, "fixed"); + assert.equal(result.leaseState, "leased"); + assert.equal(result.leaseStatus, "locked"); + + await leaseClient.releaseLease(); + }); + + it("acquireLease again with another lease id", async () => { + const leaseClient = shareClient.getShareLeaseClient(); + await leaseClient.acquireLease(infiniteDuration); + + const anotherLeaseClient = shareClient.getShareLeaseClient(guid); + try { + await anotherLeaseClient.acquireLease(infiniteDuration); + assert.fail("acquireLease a leased lease should fail with a different lease id"); + } catch (err) { + assert.equal(err.statusCode, 409); + } + + await leaseClient.releaseLease(); + }); + + it("acquireLease again with same lease id", async () => { + const leaseClient = shareClient.getShareLeaseClient(guid); + await leaseClient.acquireLease(); + leaseClient.acquireLease(infiniteDuration); + + await leaseClient.releaseLease(); + }); + + it("invalid duration for acquireLease", async () => { + // only -1 for infinite is allowed. + const invalidDuration = 1; + const leaseClient = shareClient.getShareLeaseClient(); + try { + await leaseClient.acquireLease(invalidDuration); + assert.fail(`acquireLease should fail for an invalid duration: ${invalidDuration}`); + } catch (err) { + assert.equal(err.statusCode, 400); + } + }); + + it("changeLease", async () => { + const leaseClient = shareClient.getShareLeaseClient(); + await leaseClient.acquireLease(infiniteDuration); + const changeResp = await leaseClient.changeLease(guid); + assert.equal(changeResp.leaseId, guid); + + await leaseClient.releaseLease(); + }); + + it("changeLease before acquiring a lease", async () => { + const leaseClient = shareClient.getShareLeaseClient(); + try { + const changeResp = await leaseClient.changeLease(guid); + assert.equal(changeResp.leaseId, guid); + await leaseClient.releaseLease(); + } catch (err) { + assert.equal(err.statusCode, 409); + } + }); + + it("release lease", async () => { + const leaseClient = shareClient.getShareLeaseClient(); + await leaseClient.acquireLease(); + await leaseClient.releaseLease(); + + const result = await shareClient.getProperties(); + assert.equal(result.leaseDuration, undefined); + assert.equal(result.leaseState, "available"); + assert.equal(result.leaseStatus, "unlocked"); + }); + + it("break lease and then release it", async () => { + const leaseClient = shareClient.getShareLeaseClient(); + await leaseClient.acquireLease(); + let result = await shareClient.getProperties(); + assert.equal(result.leaseState, "leased"); + + const breakRes = await leaseClient.breakLease(); + // infinite lease broken immediately + assert.equal(breakRes.leaseTimeInSeconds, 0); + + result = await shareClient.getProperties(); + assert.equal(result.leaseState, "broken"); + + await leaseClient.releaseLease(); + }); + + it("break a broken lease", async () => { + const leaseClient = shareClient.getShareLeaseClient(); + await leaseClient.acquireLease(finiteDuration); + const breakRes = await leaseClient.breakLease(); + assert.ok(breakRes.leaseTimeInSeconds); + await leaseClient.breakLease(); + + await leaseClient.releaseLease(); + }); + + it("acquire a broken lease", async () => { + const leaseClient = shareClient.getShareLeaseClient(); + await leaseClient.acquireLease(); + await leaseClient.breakLease(); + let result = await shareClient.getProperties(); + assert.equal(result.leaseState, "broken"); + + await leaseClient.acquireLease(); + result = await shareClient.getProperties(); + assert.equal(result.leaseState, "leased"); + + await leaseClient.releaseLease(); + }); + + it("renew a lease", async () => { + const leaseClient = shareClient.getShareLeaseClient(guid); + await leaseClient.acquireLease(); + await leaseClient.renewLease(); + + await leaseClient.releaseLease(); + }); + + it("lease properties properly returned", async () => { + const leaseClient = shareClient.getShareLeaseClient(); + await leaseClient.acquireLease(); + + const getPropertiesRes = await shareClient.getProperties(); + assert.equal(getPropertiesRes.leaseDuration, "infinite"); + assert.equal(getPropertiesRes.leaseState, "leased"); + assert.equal(getPropertiesRes.leaseStatus, "locked"); + + for await (const shareItem of serviceClient.listShares()) { + if (shareItem.name === shareName) { + assert.equal(shareItem.properties.leaseDuration, "infinite"); + assert.equal(shareItem.properties.leaseState, "leased"); + assert.equal(shareItem.properties.leaseStatus, "locked"); + } + } + + await leaseClient.releaseLease(); + }); + + // lease conditions + it("lease condition for delete", async () => { + const leaseClient = new ShareLeaseClient(shareClient, guid); + await leaseClient.acquireLease(); + + try { + await shareClient.delete(); + assert.fail("Delete without lease condition should have failed."); + } catch (err) { + assert.equal(err.details.errorCode, "LeaseIdMissing"); + } + + await shareClient.delete({ leaseAccessConditions: { leaseId: guid } }); + }); + + it("lease condition for get operations", async () => { + const leaseClient = new ShareLeaseClient(shareClient); + await leaseClient.acquireLease(); + + await shareClient.getProperties(); + + try { + await shareClient.getProperties({ leaseAccessConditions: { leaseId: guid } }); + assert.fail("get with miss-match lease ID should have failed."); + } catch (err) { + assert.equal(err.details.errorCode, "LeaseIdMismatchWithContainerOperation"); + } + + await shareClient.getProperties({ leaseAccessConditions: { leaseId: leaseClient.leaseId } }); + + await leaseClient.releaseLease(); + }); + + it("lease condition for write operations", async () => { + const leaseClient = new ShareLeaseClient(shareClient); + await leaseClient.acquireLease(); + + const meta = { key: "val" }; + + try { + await shareClient.setMetadata(meta); + assert.fail("write without lease ID should have failed."); + } catch (err) { + assert.equal(err.details.errorCode, "LeaseIdMissing"); + } + + try { + await shareClient.setMetadata(meta, { leaseAccessConditions: { leaseId: guid } }); + assert.fail("write with miss-match lease ID should have failed."); + } catch (err) { + assert.equal(err.details.errorCode, "LeaseIdMismatchWithContainerOperation"); + } + + await shareClient.setMetadata(meta, { + leaseAccessConditions: { leaseId: leaseClient.leaseId } + }); + + await leaseClient.releaseLease(); + }); +}); From 72be4cdba4f25480e28d1af66e898f97ba1ffebc Mon Sep 17 00:00:00 2001 From: ljian3377 <1215122919@qq.com> Date: Mon, 28 Sep 2020 00:04:42 +0800 Subject: [PATCH 6/9] container restore test wip --- sdk/storage/storage-blob/karma.conf.js | 4 ++- .../storage-blob/review/storage-blob.api.md | 15 ++++++----- sdk/storage/storage-blob/sample.env | 8 +++++- .../storage-blob/src/BlobServiceClient.ts | 25 +++++++++++------- .../test/blobserviceclient.spec.ts | 26 +++++++++++++++++++ .../test/utils/testutils.common.ts | 6 ++++- 6 files changed, 65 insertions(+), 19 deletions(-) diff --git a/sdk/storage/storage-blob/karma.conf.js b/sdk/storage/storage-blob/karma.conf.js index 36b4fbda909a..18e2277dceb2 100644 --- a/sdk/storage/storage-blob/karma.conf.js +++ b/sdk/storage/storage-blob/karma.conf.js @@ -67,7 +67,9 @@ module.exports = function(config) { "ENCRYPTION_SCOPE_1", "ENCRYPTION_SCOPE_2", "ORS_DEST_ACCOUNT_NAME", - "ORS_DEST_ACCOUNT_SAS" + "ORS_DEST_ACCOUNT_SAS", + "CONTAINER_SOFT_DELETE_ACCOUNT_NAME", + "CONTAINER_SOFT_DELETE_ACCOUNT_SAS" ], // test results reporter to use diff --git a/sdk/storage/storage-blob/review/storage-blob.api.md b/sdk/storage/storage-blob/review/storage-blob.api.md index 2fc23eec9775..c75706363fd5 100644 --- a/sdk/storage/storage-blob/review/storage-blob.api.md +++ b/sdk/storage/storage-blob/review/storage-blob.api.md @@ -1045,7 +1045,7 @@ export class BlobServiceClient extends StorageClient { getUserDelegationKey(startsOn: Date, expiresOn: Date, options?: ServiceGetUserDelegationKeyOptions): Promise; listContainers(options?: ServiceListContainersOptions): PagedAsyncIterableIterator; setProperties(properties: BlobServiceProperties, options?: ServiceSetPropertiesOptions): Promise; - undeleteContainer(deletedContainerName: string, destinationContainerName?: string, options?: ContainerUndeleteOptions): Promise<{ + undeleteContainer(deletedContainerName: string, options?: ServiceUndeleteContainerOptions): Promise<{ containerClient: ContainerClient; containerUndeleteResponse: ContainerUndeleteResponse; }>; @@ -1908,12 +1908,6 @@ export interface ContainerUndeleteHeaders { version?: string; } -// @public -export interface ContainerUndeleteOptions extends CommonOptions { - abortSignal?: AbortSignalLike; - deletedContainerVersion?: string; -} - // @public export type ContainerUndeleteResponse = ContainerUndeleteHeaders & { _response: coreHttp.HttpResponse & { @@ -2842,6 +2836,13 @@ export type ServiceSubmitBatchResponseModel = ServiceSubmitBatchHeaders & { }; }; +// @public +export interface ServiceUndeleteContainerOptions extends CommonOptions { + abortSignal?: AbortSignalLike; + deletedContainerVersion?: string; + destinationContainerName?: string; +} + // @public export interface SignedIdentifier { accessPolicy: { diff --git a/sdk/storage/storage-blob/sample.env b/sdk/storage/storage-blob/sample.env index 99294db65c63..4920b5bec3c3 100644 --- a/sdk/storage/storage-blob/sample.env +++ b/sdk/storage/storage-blob/sample.env @@ -21,4 +21,10 @@ AZURE_CLIENT_SECRET= # Our tests assume that TEST_MODE is "playback" by default. You can # change it to "record" to generate new recordings, or "live" to bypass the recorder entirely. -# TEST_MODE=playback \ No newline at end of file +# TEST_MODE=playback + +# Optional, used for testing container soft delete. +CONTAINER_SOFT_DELETE_ACCOUNT_NAME= +CONTAINER_SOFT_DELETE_ACCOUNT_KEY= +CONTAINER_SOFT_DELETE_STORAGE_CONNECTION_STRING= +CONTAINER_SOFT_DELETE_ACCOUNT_SAS= diff --git a/sdk/storage/storage-blob/src/BlobServiceClient.ts b/sdk/storage/storage-blob/src/BlobServiceClient.ts index 14066f229a38..d7f171aef30d 100644 --- a/sdk/storage/storage-blob/src/BlobServiceClient.ts +++ b/sdk/storage/storage-blob/src/BlobServiceClient.ts @@ -326,24 +326,32 @@ export declare type ServiceGetUserDelegationKeyResponse = UserDelegationKey & * Options to configure {@link BlobServiceClient.undeleteContainer} operation. * * @export - * @interface ContainerUndeleteOptions + * @interface ServiceUndeleteContainerOptions */ -export interface ContainerUndeleteOptions extends CommonOptions { +export interface ServiceUndeleteContainerOptions extends CommonOptions { /** * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation. * For example, use the @azure/abort-controller to create an `AbortSignal`. * * @type {AbortSignalLike} - * @memberof ContainerUndeleteOptions + * @memberof ServiceUndeleteContainerOptions */ abortSignal?: AbortSignalLike; /** * Optional. Specifies the version of the deleted container to restore. * * @type {string} - * @memberof ContainerUndeleteOptions + * @memberof ServiceUndeleteContainerOptions */ deletedContainerVersion?: string; + /** + * Optional. Specifies the new name of the restored container. + * Will use its original name if this is not specified. + * + * @type {string} + * @memberof ServiceUndeleteContainerOptions + */ + destinationContainerName?: string; } /** @@ -576,14 +584,13 @@ export class BlobServiceClient extends StorageClient { * This API is only functional if Container Soft Delete is enabled for the storage account associated with the container. * * @param {string} deletedContainerName Name of the previously deleted container. - * @param {ContainerUndeleteOptions} [options] Options to configure Container undelete operation. - * @returns {Promise} Container deletion response. + * @param {ServiceUndeleteContainerOptions} [options] Options to configure Container Undelete operation. + * @returns {Promise} Container deletion response. * @memberof BlobServiceClient */ public async undeleteContainer( deletedContainerName: string, - destinationContainerName?: string, - options: ContainerUndeleteOptions = {} + options: ServiceUndeleteContainerOptions = {} ): Promise<{ containerClient: ContainerClient; containerUndeleteResponse: ContainerUndeleteResponse; @@ -594,7 +601,7 @@ export class BlobServiceClient extends StorageClient { ); try { const containerClient = this.getContainerClient( - destinationContainerName || deletedContainerName + options.destinationContainerName || deletedContainerName ); // Hack to access a protected member. const containerContext = new Container(containerClient["storageClientContext"]); diff --git a/sdk/storage/storage-blob/test/blobserviceclient.spec.ts b/sdk/storage/storage-blob/test/blobserviceclient.spec.ts index 39350c1dc0f9..bb95aef392ac 100644 --- a/sdk/storage/storage-blob/test/blobserviceclient.spec.ts +++ b/sdk/storage/storage-blob/test/blobserviceclient.spec.ts @@ -5,6 +5,7 @@ import { BlobServiceClient } from "../src"; import { getAlternateBSU, getBSU, + getGenericBSU, getSASConnectionStringFromEnvironment, getTokenBSU, recorderEnvSetup, @@ -561,4 +562,29 @@ describe("BlobServiceClient", () => { assert.equal(staticWebsite?.errorDocument404Path, errorDocument404Path); assert.equal(staticWebsite?.defaultIndexDocumentPath, defaultIndexDocumentPath); }); + + it.only("restore container", async function() { + let blobServiceClient: BlobServiceClient; + try { + blobServiceClient = getGenericBSU("CONTAINER_SOFT_DELETE_"); + } catch (err) { + console.log(err); + this.skip(); + } + + const containerName = recorder.getUniqueName("container"); + const containerClient = blobServiceClient.getContainerClient(containerName); + + await containerClient.create(); + await containerClient.delete(); + + const restoreRes = await blobServiceClient.undeleteContainer(containerName); + assert.equal(restoreRes.containerClient.containerName, containerName); + + // const newContainerName = recorder.getUniqueName("newContainerName"); + // const restoreRes2 = await blobServiceClient.undeleteContainer(containerName, { + // destinationContainerName: newContainerName + // }); + // assert.equal(restoreRes2.containerClient.containerName, newContainerName); + }); }); diff --git a/sdk/storage/storage-blob/test/utils/testutils.common.ts b/sdk/storage/storage-blob/test/utils/testutils.common.ts index c93bc94402e9..06c37b34c4d9 100644 --- a/sdk/storage/storage-blob/test/utils/testutils.common.ts +++ b/sdk/storage/storage-blob/test/utils/testutils.common.ts @@ -31,7 +31,11 @@ export const recorderEnvSetup: RecorderEnvironmentSetup = { ORS_DEST_ACCOUNT_NAME: `${mockAccountName1}`, ORS_DEST_ACCOUNT_KEY: `${mockAccountKey}`, ORS_DEST_ACCOUNT_SAS: `${mockAccountKey}`, - ORS_DEST_STORAGE_CONNECTION_STRING: `DefaultEndpointsProtocol=https;AccountName=${mockAccountName1};AccountKey=${mockAccountKey};EndpointSuffix=core.windows.net` + ORS_DEST_STORAGE_CONNECTION_STRING: `DefaultEndpointsProtocol=https;AccountName=${mockAccountName1};AccountKey=${mockAccountKey};EndpointSuffix=core.windows.net`, + CONTAINER_SOFT_DELETE_ACCOUNT_NAME: `${mockAccountName}`, + CONTAINER_SOFT_DELETE_ACCOUNT_KEY: `${mockAccountKey}`, + CONTAINER_SOFT_DELETE_ACCOUNT_SAS: `${mockAccountKey}`, + CONTAINER_SOFT_DELETE_STORAGE_CONNECTION_STRING: `DefaultEndpointsProtocol=https;AccountName=${mockAccountName};AccountKey=${mockAccountKey};EndpointSuffix=core.windows.net` }, customizationsOnRecordings: [ // Used in record mode From c5b94ba1e1b9de3355761e4c66dc39c15e4aee66 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Mon, 28 Sep 2020 11:33:40 +0800 Subject: [PATCH 7/9] restore container test fixed --- .../recording_restore_container.json | 88 ++++++++++++++++++ ...rding_restore_container_to_a_new_name.json | 89 +++++++++++++++++++ .../recording_restore_container.js | 87 ++++++++++++++++++ ...cording_restore_container_to_a_new_name.js | 87 ++++++++++++++++++ .../storage-blob/review/storage-blob.api.md | 3 +- .../storage-blob/src/BlobServiceClient.ts | 11 +-- .../test/blobserviceclient.spec.ts | 63 +++++++++++-- 7 files changed, 409 insertions(+), 19 deletions(-) create mode 100644 sdk/storage/storage-blob/recordings/browsers/blobserviceclient/recording_restore_container.json create mode 100644 sdk/storage/storage-blob/recordings/browsers/blobserviceclient/recording_restore_container_to_a_new_name.json create mode 100644 sdk/storage/storage-blob/recordings/node/blobserviceclient/recording_restore_container.js create mode 100644 sdk/storage/storage-blob/recordings/node/blobserviceclient/recording_restore_container_to_a_new_name.js diff --git a/sdk/storage/storage-blob/recordings/browsers/blobserviceclient/recording_restore_container.json b/sdk/storage/storage-blob/recordings/browsers/blobserviceclient/recording_restore_container.json new file mode 100644 index 000000000000..9a29399a9caf --- /dev/null +++ b/sdk/storage/storage-blob/recordings/browsers/blobserviceclient/recording_restore_container.json @@ -0,0 +1,88 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.blob.core.windows.net/container160126300203004421", + "query": { + "restype": "container" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 28 Sep 2020 03:16:42 GMT", + "etag": "\"0x8D8635CECF434C8\"", + "last-modified": "Mon, 28 Sep 2020 03:16:43 GMT", + "server": "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "7c0f0296-e5ba-4378-94f8-0cd26bf48431", + "x-ms-request-id": "d3d39dc9-a01e-009c-5b45-95c3c0000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.blob.core.windows.net/container160126300203004421", + "query": { + "restype": "container" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 28 Sep 2020 03:16:43 GMT", + "server": "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "7972156d-5f50-4114-9931-567d33ca93f5", + "x-ms-request-id": "d3d39e17-a01e-009c-1c45-95c3c0000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.blob.core.windows.net/", + "query": { + "include": "deleted", + "comp": "list" + }, + "requestBody": null, + "status": 200, + "response": "container160126084293406905true01D69540C360196EMon, 28 Sep 2020 02:40:44 GMT\"0x8D86357E5D6E2D3\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:40:44 GMT6container160126106381401561true01D6954159845195Mon, 28 Sep 2020 02:44:56 GMT\"0x8D863587BFB5C7E\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:45:17 GMT6container160126138854301057Mon, 28 Sep 2020 02:52:20 GMT\"0x8D8635984BFED93\"unlockedavailable$account-encryption-keyfalsefalsefalsecontainer160126156070606689true01D695426F2D1935Mon, 28 Sep 2020 02:52:41 GMT\"0x8D8635991A3D4C3\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:52:42 GMT7container160126163636303463Mon, 28 Sep 2020 02:54:29 GMT\"0x8D86359D1773488\"unlockedavailable$account-encryption-keyfalsefalsefalsecontainer160126189495206143Mon, 28 Sep 2020 02:58:47 GMT\"0x8D8635A6B7F32AC\"unlockedavailable$account-encryption-keyfalsefalsefalsecontainer160126192762308290true01D695434939B1EDMon, 28 Sep 2020 02:58:47 GMT\"0x8D8635A6BB07DB9\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:58:48 GMT7container160126192762308290true01D695435B799FC5Mon, 28 Sep 2020 02:59:18 GMT\"0x8D8635A7DEFF0A5\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:59:18 GMT7container160126214436904243true01D69543CB1B180EMon, 28 Sep 2020 03:02:25 GMT\"0x8D8635AED911531\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 03:02:26 GMT7container160126287722103166Mon, 28 Sep 2020 03:15:09 GMT\"0x8D8635CB50497D2\"unlockedavailable$account-encryption-keyfalsefalsefalsecontainer160126300203004421true01D69545CA7E7E9CMon, 28 Sep 2020 03:16:43 GMT\"0x8D8635CECF434C8\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 03:16:44 GMT7newcontainer160126234811800748Mon, 28 Sep 2020 03:05:48 GMT\"0x8D8635B66537475\"unlockedavailable$account-encryption-keyfalsefalsefalsenewcontainer160126248509809420Mon, 28 Sep 2020 03:08:05 GMT\"0x8D8635BB7F89648\"unlockedavailable$account-encryption-keyfalsefalsefalsenewcontainer160126248544608083Mon, 28 Sep 2020 03:08:05 GMT\"0x8D8635BB82D9242\"unlockedavailable$account-encryption-keyfalsefalsefalsenewcontainer160126294120807116Mon, 28 Sep 2020 03:15:41 GMT\"0x8D8635CC7D518BB\"unlockedavailable$account-encryption-keyfalsefalsefalse", + "responseHeaders": { + "content-type": "application/xml", + "date": "Mon, 28 Sep 2020 03:17:14 GMT", + "server": "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0", + "transfer-encoding": "chunked", + "x-ms-client-request-id": "a3d9a31b-2880-449f-ad69-ae53b649ef29", + "x-ms-request-id": "d3d3c833-a01e-009c-3c45-95c3c0000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.blob.core.windows.net/container160126300203004421", + "query": { + "restype": "container", + "comp": "undelete" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 28 Sep 2020 03:17:15 GMT", + "server": "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "b42ba986-c9c4-4f04-815a-f56eb374bbb1", + "x-ms-request-id": "d3d3c89e-a01e-009c-1845-95c3c0000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "container": "container160126300203004421" + }, + "newDate": {} + }, + "hash": "7d59403e2123de9b95b525b56a0cda54" +} \ No newline at end of file diff --git a/sdk/storage/storage-blob/recordings/browsers/blobserviceclient/recording_restore_container_to_a_new_name.json b/sdk/storage/storage-blob/recordings/browsers/blobserviceclient/recording_restore_container_to_a_new_name.json new file mode 100644 index 000000000000..d2997081c366 --- /dev/null +++ b/sdk/storage/storage-blob/recordings/browsers/blobserviceclient/recording_restore_container_to_a_new_name.json @@ -0,0 +1,89 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.blob.core.windows.net/container160126303601800919", + "query": { + "restype": "container" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 28 Sep 2020 03:17:16 GMT", + "etag": "\"0x8D8635D0084A53B\"", + "last-modified": "Mon, 28 Sep 2020 03:17:16 GMT", + "server": "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "ec494d63-76f5-4b2b-88ec-f61edfed2ce1", + "x-ms-request-id": "d3d3c929-a01e-009c-1645-95c3c0000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.blob.core.windows.net/container160126303601800919", + "query": { + "restype": "container" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 28 Sep 2020 03:17:17 GMT", + "server": "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "712f2145-b924-42c4-8a07-0aea0e1df047", + "x-ms-request-id": "d3d3c98f-a01e-009c-6a45-95c3c0000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.blob.core.windows.net/", + "query": { + "include": "deleted", + "comp": "list" + }, + "requestBody": null, + "status": 200, + "response": "container160126084293406905true01D69540C360196EMon, 28 Sep 2020 02:40:44 GMT\"0x8D86357E5D6E2D3\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:40:44 GMT6container160126106381401561true01D6954159845195Mon, 28 Sep 2020 02:44:56 GMT\"0x8D863587BFB5C7E\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:45:17 GMT6container160126138854301057Mon, 28 Sep 2020 02:52:20 GMT\"0x8D8635984BFED93\"unlockedavailable$account-encryption-keyfalsefalsefalsecontainer160126156070606689true01D695426F2D1935Mon, 28 Sep 2020 02:52:41 GMT\"0x8D8635991A3D4C3\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:52:42 GMT7container160126163636303463Mon, 28 Sep 2020 02:54:29 GMT\"0x8D86359D1773488\"unlockedavailable$account-encryption-keyfalsefalsefalsecontainer160126189495206143Mon, 28 Sep 2020 02:58:47 GMT\"0x8D8635A6B7F32AC\"unlockedavailable$account-encryption-keyfalsefalsefalsecontainer160126192762308290true01D695434939B1EDMon, 28 Sep 2020 02:58:47 GMT\"0x8D8635A6BB07DB9\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:58:48 GMT7container160126192762308290true01D695435B799FC5Mon, 28 Sep 2020 02:59:18 GMT\"0x8D8635A7DEFF0A5\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:59:18 GMT7container160126214436904243true01D69543CB1B180EMon, 28 Sep 2020 03:02:25 GMT\"0x8D8635AED911531\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 03:02:26 GMT7container160126287722103166Mon, 28 Sep 2020 03:15:09 GMT\"0x8D8635CB50497D2\"unlockedavailable$account-encryption-keyfalsefalsefalsecontainer160126300203004421Mon, 28 Sep 2020 03:17:15 GMT\"0x8D8635D00226D98\"unlockedavailable$account-encryption-keyfalsefalsefalsecontainer160126303601800919true01D69545DE0DBF4DMon, 28 Sep 2020 03:17:16 GMT\"0x8D8635D0084A53B\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 03:17:17 GMT7newcontainer160126234811800748Mon, 28 Sep 2020 03:05:48 GMT\"0x8D8635B66537475\"unlockedavailable$account-encryption-keyfalsefalsefalsenewcontainer160126248509809420Mon, 28 Sep 2020 03:08:05 GMT\"0x8D8635BB7F89648\"unlockedavailable$account-encryption-keyfalsefalsefalsenewcontainer160126248544608083Mon, 28 Sep 2020 03:08:05 GMT\"0x8D8635BB82D9242\"unlockedavailable$account-encryption-keyfalsefalsefalsenewcontainer160126294120807116Mon, 28 Sep 2020 03:15:41 GMT\"0x8D8635CC7D518BB\"unlockedavailable$account-encryption-keyfalsefalsefalse", + "responseHeaders": { + "content-type": "application/xml", + "date": "Mon, 28 Sep 2020 03:17:47 GMT", + "server": "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0", + "transfer-encoding": "chunked", + "x-ms-client-request-id": "2ed4e528-ffe1-4c70-8630-ef20d593bdd4", + "x-ms-request-id": "d3d3df0a-a01e-009c-2845-95c3c0000000", + "x-ms-version": "2020-02-10" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.blob.core.windows.net/newcontainer160126306811600750", + "query": { + "restype": "container", + "comp": "undelete" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 28 Sep 2020 03:17:48 GMT", + "server": "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "1b79c00c-fb02-4ad4-a65e-7724075ef673", + "x-ms-request-id": "d3d3df98-a01e-009c-2045-95c3c0000000", + "x-ms-version": "2020-02-10" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "container": "container160126303601800919", + "newcontainer": "newcontainer160126306811600750" + }, + "newDate": {} + }, + "hash": "abb379982ab8a7e39f634206938e3b53" +} \ No newline at end of file diff --git a/sdk/storage/storage-blob/recordings/node/blobserviceclient/recording_restore_container.js b/sdk/storage/storage-blob/recordings/node/blobserviceclient/recording_restore_container.js new file mode 100644 index 000000000000..9f719d617fb1 --- /dev/null +++ b/sdk/storage/storage-blob/recordings/node/blobserviceclient/recording_restore_container.js @@ -0,0 +1,87 @@ +let nock = require('nock'); + +module.exports.hash = "1a05718a0ff21b8797d5b152061afbea"; + +module.exports.testInfo = {"uniqueName":{"container":"container160126287722103166"},"newDate":{}} + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .put('/container160126287722103166') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Mon, 28 Sep 2020 03:14:38 GMT', + 'ETag', + '"0x8D8635CA25BAEF0"', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'bbe6bbe3-e01e-0024-0145-959806000000', + 'x-ms-client-request-id', + '2360d180-02e7-4905-ad11-755ff7bc749f', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Mon, 28 Sep 2020 03:14:37 GMT' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/container160126287722103166') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'bbe6bc0a-e01e-0024-1e45-959806000000', + 'x-ms-client-request-id', + 'c56253b3-3ac8-4eb6-a6a2-05b1b0b68dfd', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Mon, 28 Sep 2020 03:14:38 GMT' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .get('/') + .query(true) + .reply(200, "container160126084293406905true01D69540C360196EMon, 28 Sep 2020 02:40:44 GMT\"0x8D86357E5D6E2D3\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:40:44 GMT6container160126106381401561true01D6954159845195Mon, 28 Sep 2020 02:44:56 GMT\"0x8D863587BFB5C7E\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:45:17 GMT7container160126138854301057Mon, 28 Sep 2020 02:52:20 GMT\"0x8D8635984BFED93\"unlockedavailable$account-encryption-keyfalsefalsefalsecontainer160126156070606689true01D695426F2D1935Mon, 28 Sep 2020 02:52:41 GMT\"0x8D8635991A3D4C3\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:52:42 GMT7container160126163636303463Mon, 28 Sep 2020 02:54:29 GMT\"0x8D86359D1773488\"unlockedavailable$account-encryption-keyfalsefalsefalsecontainer160126189495206143Mon, 28 Sep 2020 02:58:47 GMT\"0x8D8635A6B7F32AC\"unlockedavailable$account-encryption-keyfalsefalsefalsecontainer160126192762308290true01D695434939B1EDMon, 28 Sep 2020 02:58:47 GMT\"0x8D8635A6BB07DB9\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:58:48 GMT7container160126192762308290true01D695435B799FC5Mon, 28 Sep 2020 02:59:18 GMT\"0x8D8635A7DEFF0A5\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:59:18 GMT7container160126214436904243true01D69543CB1B180EMon, 28 Sep 2020 03:02:25 GMT\"0x8D8635AED911531\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 03:02:26 GMT7container160126287722103166true01D695457FE6286FMon, 28 Sep 2020 03:14:38 GMT\"0x8D8635CA25BAEF0\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 03:14:38 GMT7newcontainer160126234811800748Mon, 28 Sep 2020 03:05:48 GMT\"0x8D8635B66537475\"unlockedavailable$account-encryption-keyfalsefalsefalsenewcontainer160126248509809420Mon, 28 Sep 2020 03:08:05 GMT\"0x8D8635BB7F89648\"unlockedavailable$account-encryption-keyfalsefalsefalsenewcontainer160126248544608083Mon, 28 Sep 2020 03:08:05 GMT\"0x8D8635BB82D9242\"unlockedavailable$account-encryption-keyfalsefalsefalse", [ + 'Transfer-Encoding', + 'chunked', + 'Content-Type', + 'application/xml', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'bbe6d002-e01e-0024-4c45-959806000000', + 'x-ms-client-request-id', + 'e670009f-9c91-47e9-ae52-18e3663c0c14', + 'x-ms-version', + '2020-02-10', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Mon, 28 Sep 2020 03:15:08 GMT' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .put('/container160126287722103166') + .query(true) + .reply(201, "", [ + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'bbe6d05e-e01e-0024-1d45-959806000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '3a90c421-d61a-47ba-af6b-2b88ad37b77d', + 'Date', + 'Mon, 28 Sep 2020 03:15:09 GMT', + 'Content-Length', + '0' +]); diff --git a/sdk/storage/storage-blob/recordings/node/blobserviceclient/recording_restore_container_to_a_new_name.js b/sdk/storage/storage-blob/recordings/node/blobserviceclient/recording_restore_container_to_a_new_name.js new file mode 100644 index 000000000000..6ea93ac38201 --- /dev/null +++ b/sdk/storage/storage-blob/recordings/node/blobserviceclient/recording_restore_container_to_a_new_name.js @@ -0,0 +1,87 @@ +let nock = require('nock'); + +module.exports.hash = "5bfeb55e47a68f2fc0cd9636c26ca427"; + +module.exports.testInfo = {"uniqueName":{"container":"container160126290998402953","newcontainer":"newcontainer160126294120807116"},"newDate":{}} + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .put('/container160126290998402953') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Mon, 28 Sep 2020 03:15:10 GMT', + 'ETag', + '"0x8D8635CB538BE26"', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'bbe6d09a-e01e-0024-4e45-959806000000', + 'x-ms-client-request-id', + 'd41f9461-ec86-457f-a59c-d8e160ee0f32', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Mon, 28 Sep 2020 03:15:09 GMT' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/container160126290998402953') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'bbe6d0eb-e01e-0024-1945-959806000000', + 'x-ms-client-request-id', + '76bb088d-9d9a-413b-a6d2-c83beaace12e', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Mon, 28 Sep 2020 03:15:09 GMT' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .get('/') + .query(true) + .reply(200, "container160126084293406905true01D69540C360196EMon, 28 Sep 2020 02:40:44 GMT\"0x8D86357E5D6E2D3\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:40:44 GMT6container160126106381401561true01D6954159845195Mon, 28 Sep 2020 02:44:56 GMT\"0x8D863587BFB5C7E\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:45:17 GMT7container160126138854301057Mon, 28 Sep 2020 02:52:20 GMT\"0x8D8635984BFED93\"unlockedavailable$account-encryption-keyfalsefalsefalsecontainer160126156070606689true01D695426F2D1935Mon, 28 Sep 2020 02:52:41 GMT\"0x8D8635991A3D4C3\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:52:42 GMT7container160126163636303463Mon, 28 Sep 2020 02:54:29 GMT\"0x8D86359D1773488\"unlockedavailable$account-encryption-keyfalsefalsefalsecontainer160126189495206143Mon, 28 Sep 2020 02:58:47 GMT\"0x8D8635A6B7F32AC\"unlockedavailable$account-encryption-keyfalsefalsefalsecontainer160126192762308290true01D695434939B1EDMon, 28 Sep 2020 02:58:47 GMT\"0x8D8635A6BB07DB9\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:58:48 GMT7container160126192762308290true01D695435B799FC5Mon, 28 Sep 2020 02:59:18 GMT\"0x8D8635A7DEFF0A5\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 02:59:18 GMT7container160126214436904243true01D69543CB1B180EMon, 28 Sep 2020 03:02:25 GMT\"0x8D8635AED911531\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 03:02:26 GMT7container160126287722103166Mon, 28 Sep 2020 03:15:09 GMT\"0x8D8635CB50497D2\"unlockedavailable$account-encryption-keyfalsefalsefalsecontainer160126290998402953true01D6954592C1FDF6Mon, 28 Sep 2020 03:15:10 GMT\"0x8D8635CB538BE26\"unlockedexpired$account-encryption-keyfalsefalsefalseMon, 28 Sep 2020 03:15:10 GMT7newcontainer160126234811800748Mon, 28 Sep 2020 03:05:48 GMT\"0x8D8635B66537475\"unlockedavailable$account-encryption-keyfalsefalsefalsenewcontainer160126248509809420Mon, 28 Sep 2020 03:08:05 GMT\"0x8D8635BB7F89648\"unlockedavailable$account-encryption-keyfalsefalsefalsenewcontainer160126248544608083Mon, 28 Sep 2020 03:08:05 GMT\"0x8D8635BB82D9242\"unlockedavailable$account-encryption-keyfalsefalsefalse", [ + 'Transfer-Encoding', + 'chunked', + 'Content-Type', + 'application/xml', + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'bbe6f2ad-e01e-0024-7945-959806000000', + 'x-ms-client-request-id', + '1bad920a-73b3-4dee-809b-849d257e0a1e', + 'x-ms-version', + '2020-02-10', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Mon, 28 Sep 2020 03:15:40 GMT' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .put('/newcontainer160126294120807116') + .query(true) + .reply(201, "", [ + 'Server', + 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'bbe6f33e-e01e-0024-7f45-959806000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '1d198345-d9bb-4447-b270-79afa8f7d6e0', + 'Date', + 'Mon, 28 Sep 2020 03:15:40 GMT', + 'Content-Length', + '0' +]); diff --git a/sdk/storage/storage-blob/review/storage-blob.api.md b/sdk/storage/storage-blob/review/storage-blob.api.md index c75706363fd5..6348bb28591d 100644 --- a/sdk/storage/storage-blob/review/storage-blob.api.md +++ b/sdk/storage/storage-blob/review/storage-blob.api.md @@ -1045,7 +1045,7 @@ export class BlobServiceClient extends StorageClient { getUserDelegationKey(startsOn: Date, expiresOn: Date, options?: ServiceGetUserDelegationKeyOptions): Promise; listContainers(options?: ServiceListContainersOptions): PagedAsyncIterableIterator; setProperties(properties: BlobServiceProperties, options?: ServiceSetPropertiesOptions): Promise; - undeleteContainer(deletedContainerName: string, options?: ServiceUndeleteContainerOptions): Promise<{ + undeleteContainer(deletedContainerName: string, deletedContainerVersion: string, options?: ServiceUndeleteContainerOptions): Promise<{ containerClient: ContainerClient; containerUndeleteResponse: ContainerUndeleteResponse; }>; @@ -2839,7 +2839,6 @@ export type ServiceSubmitBatchResponseModel = ServiceSubmitBatchHeaders & { // @public export interface ServiceUndeleteContainerOptions extends CommonOptions { abortSignal?: AbortSignalLike; - deletedContainerVersion?: string; destinationContainerName?: string; } diff --git a/sdk/storage/storage-blob/src/BlobServiceClient.ts b/sdk/storage/storage-blob/src/BlobServiceClient.ts index d7f171aef30d..160c2804e9cf 100644 --- a/sdk/storage/storage-blob/src/BlobServiceClient.ts +++ b/sdk/storage/storage-blob/src/BlobServiceClient.ts @@ -337,13 +337,6 @@ export interface ServiceUndeleteContainerOptions extends CommonOptions { * @memberof ServiceUndeleteContainerOptions */ abortSignal?: AbortSignalLike; - /** - * Optional. Specifies the version of the deleted container to restore. - * - * @type {string} - * @memberof ServiceUndeleteContainerOptions - */ - deletedContainerVersion?: string; /** * Optional. Specifies the new name of the restored container. * Will use its original name if this is not specified. @@ -584,12 +577,13 @@ export class BlobServiceClient extends StorageClient { * This API is only functional if Container Soft Delete is enabled for the storage account associated with the container. * * @param {string} deletedContainerName Name of the previously deleted container. - * @param {ServiceUndeleteContainerOptions} [options] Options to configure Container Undelete operation. + * @param {string} deletedContainerVersion Version of the previously deleted container, used to uniquely identify the deleted container. * @returns {Promise} Container deletion response. * @memberof BlobServiceClient */ public async undeleteContainer( deletedContainerName: string, + deletedContainerVersion: string, options: ServiceUndeleteContainerOptions = {} ): Promise<{ containerClient: ContainerClient; @@ -607,6 +601,7 @@ export class BlobServiceClient extends StorageClient { const containerContext = new Container(containerClient["storageClientContext"]); const containerUndeleteResponse = await containerContext.restore({ deletedContainerName, + deletedContainerVersion, ...options, tracingOptions: { ...options!.tracingOptions, spanOptions } }); diff --git a/sdk/storage/storage-blob/test/blobserviceclient.spec.ts b/sdk/storage/storage-blob/test/blobserviceclient.spec.ts index bb95aef392ac..73aab11977f1 100644 --- a/sdk/storage/storage-blob/test/blobserviceclient.spec.ts +++ b/sdk/storage/storage-blob/test/blobserviceclient.spec.ts @@ -563,12 +563,11 @@ describe("BlobServiceClient", () => { assert.equal(staticWebsite?.defaultIndexDocumentPath, defaultIndexDocumentPath); }); - it.only("restore container", async function() { + it("restore container", async function() { let blobServiceClient: BlobServiceClient; try { blobServiceClient = getGenericBSU("CONTAINER_SOFT_DELETE_"); } catch (err) { - console.log(err); this.skip(); } @@ -578,13 +577,59 @@ describe("BlobServiceClient", () => { await containerClient.create(); await containerClient.delete(); - const restoreRes = await blobServiceClient.undeleteContainer(containerName); - assert.equal(restoreRes.containerClient.containerName, containerName); + await delay(30 * 1000); + + for await (const containerItem of blobServiceClient.listContainers({ includeDeleted: true })) { + if (containerItem.deleted && containerItem.name === containerName) { + // check list container response + assert.ok(containerItem.version); + assert.ok(containerItem.properties.deletedOn); + assert.ok(containerItem.properties.remainingRetentionDays); + + const restoreRes = await blobServiceClient.undeleteContainer( + containerName, + containerItem.version! + ); + assert.equal(restoreRes.containerClient.containerName, containerName); + break; + } + } + }); - // const newContainerName = recorder.getUniqueName("newContainerName"); - // const restoreRes2 = await blobServiceClient.undeleteContainer(containerName, { - // destinationContainerName: newContainerName - // }); - // assert.equal(restoreRes2.containerClient.containerName, newContainerName); + it("restore container to a new name", async function() { + let blobServiceClient: BlobServiceClient; + try { + blobServiceClient = getGenericBSU("CONTAINER_SOFT_DELETE_"); + } catch (err) { + this.skip(); + } + + const containerName = recorder.getUniqueName("container"); + const containerClient = blobServiceClient.getContainerClient(containerName); + + await containerClient.create(); + await containerClient.delete(); + await delay(30 * 1000); + + for await (const containerItem of blobServiceClient.listContainers({ includeDeleted: true })) { + if (containerItem.deleted && containerItem.name === containerName) { + // check list container response + assert.ok(containerItem.version); + assert.ok(containerItem.properties.deletedOn); + assert.ok(containerItem.properties.remainingRetentionDays); + + const newContainerName = recorder.getUniqueName("newcontainer"); + const restoreRes2 = await blobServiceClient.undeleteContainer( + containerName, + containerItem.version!, + { + destinationContainerName: newContainerName + } + ); + assert.equal(restoreRes2.containerClient.containerName, newContainerName); + + break; + } + } }); }); From 69b0106b2ae23bc8414bf1dca617312470bad65b Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Mon, 28 Sep 2020 14:17:28 +0800 Subject: [PATCH 8/9] fix CI --- ...w_output_configurations_for_timestampms.js | 123 ++++++++++++++++++ .../storage-blob/test/blobclient.spec.ts | 16 +++ .../storage-blob/test/node/blobclient.spec.ts | 16 +++ .../recording_smb_multichannel.json | 20 +-- .../recording_smb_multichannel.js | 36 +++-- .../test/utils/testutils.common.ts | 3 +- sdk/storage/storage-queue/src/QueueClient.ts | 4 +- 7 files changed, 196 insertions(+), 22 deletions(-) create mode 100644 sdk/storage/storage-blob/recordings/node/blobclient_nodejs_only/recording_query_should_work_with_arrow_output_configurations_for_timestampms.js diff --git a/sdk/storage/storage-blob/recordings/node/blobclient_nodejs_only/recording_query_should_work_with_arrow_output_configurations_for_timestampms.js b/sdk/storage/storage-blob/recordings/node/blobclient_nodejs_only/recording_query_should_work_with_arrow_output_configurations_for_timestampms.js new file mode 100644 index 000000000000..b94b3e8afb01 --- /dev/null +++ b/sdk/storage/storage-blob/recordings/node/blobclient_nodejs_only/recording_query_should_work_with_arrow_output_configurations_for_timestampms.js @@ -0,0 +1,123 @@ +let nock = require('nock'); + +module.exports.hash = "6dcc9746edd52180ffb83408ed333065"; + +module.exports.testInfo = {"uniqueName":{"container":"container160126471904604167","blob":"blob160126472072205618"},"newDate":{}} + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .put('/container160126471904604167') + .query(true) + .reply(201, "", [ + 'Transfer-Encoding', + 'chunked', + 'Last-Modified', + 'Mon, 28 Sep 2020 03:45:20 GMT', + 'ETag', + '"0x8D86360EC5038AA"', + 'x-ms-request-id', + '953eed2d-101e-0001-2549-950155000000', + 'x-ms-client-request-id', + '1de26084-09a0-4c10-8095-e322e79e6358', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Mon, 28 Sep 2020 03:45:20 GMT' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .put('/container160126471904604167/blob160126472072205618', "Hello World") + .reply(201, "", [ + 'Transfer-Encoding', + 'chunked', + 'Content-MD5', + 'sQqNsWTgdUEFt6mb5y4/5Q==', + 'Last-Modified', + 'Mon, 28 Sep 2020 03:45:20 GMT', + 'ETag', + '"0x8D86360EC7FF71D"', + 'x-ms-request-id', + '953eed31-101e-0001-2649-950155000000', + 'x-ms-client-request-id', + 'a1be0774-3c6c-4a3f-a34a-7a5105af80e4', + 'x-ms-version', + '2020-02-10', + 'x-ms-content-crc64', + 'YeJLfssylmU=', + 'x-ms-request-server-encrypted', + 'false', + 'Date', + 'Mon, 28 Sep 2020 03:45:20 GMT' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .put('/container160126471904604167/blob160126472072205618', "100,200,300,400\n150,250,350,450\n") + .reply(201, "", [ + 'Transfer-Encoding', + 'chunked', + 'Content-MD5', + 'v9C7YWQTetukQaGSOQcgRQ==', + 'Last-Modified', + 'Mon, 28 Sep 2020 03:45:21 GMT', + 'ETag', + '"0x8D86360ECB02EFC"', + 'x-ms-request-id', + '953eed32-101e-0001-2749-950155000000', + 'x-ms-client-request-id', + '94752325-c8e4-41ac-9924-461ecff2b9a8', + 'x-ms-version', + '2020-02-10', + 'x-ms-content-crc64', + 'gema9E3+zEY=', + 'x-ms-request-server-encrypted', + 'false', + 'Date', + 'Mon, 28 Sep 2020 03:45:20 GMT' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .post('/container160126471904604167/blob160126472072205618', "SQLselect * from BlobStoragearrowtimestamp[ms]") + .query(true) + .reply(200, Buffer.from("4f626a0102166176726f2e736368656d61be1e5b0a20207b0a202020202274797065223a20227265636f7264222c0a20202020226e616d65223a2022636f6d2e6d6963726f736f66742e617a7572652e73746f726167652e7175657279426c6f62436f6e74656e74732e726573756c7444617461222c0a2020202022646f63223a2022486f6c647320726573756c74206461746120696e2074686520666f726d61742073706563696669656420666f72207468697320717565727920284353562c204a534f4e2c206574632e292e222c0a20202020226669656c6473223a205b0a2020202020207b0a2020202020202020226e616d65223a202264617461222c0a20202020202020202274797065223a20226279746573220a2020202020207d0a202020205d0a20207d2c0a20207b0a202020202274797065223a20227265636f7264222c0a20202020226e616d65223a2022636f6d2e6d6963726f736f66742e617a7572652e73746f726167652e7175657279426c6f62436f6e74656e74732e6572726f72222c0a2020202022646f63223a2022416e206572726f722074686174206f63637572726564207768696c652070726f63657373696e67207468652071756572792e222c0a20202020226669656c6473223a205b0a2020202020207b0a2020202020202020226e616d65223a2022666174616c222c0a20202020202020202274797065223a2022626f6f6c65616e222c0a202020202020202022646f63223a2022496620747275652c2074686973206572726f722070726576656e747320667572746865722071756572792070726f63657373696e672e20204d6f726520726573756c742064617461206d61792062652072657475726e65642c20627574207468657265206973206e6f2067756172616e746565207468617420616c6c206f6620746865206f726967696e616c20646174612077696c6c2062652070726f6365737365642e202049662066616c73652c2074686973206572726f7220646f6573206e6f742070726576656e7420667572746865722071756572792070726f63657373696e672e220a2020202020207d2c0a2020202020207b0a2020202020202020226e616d65223a20226e616d65222c0a20202020202020202274797065223a2022737472696e67222c0a202020202020202022646f63223a2022546865206e616d65206f6620746865206572726f72220a2020202020207d2c0a2020202020207b0a2020202020202020226e616d65223a20226465736372697074696f6e222c0a20202020202020202274797065223a2022737472696e67222c0a202020202020202022646f63223a202241206465736372697074696f6e206f6620746865206572726f72220a2020202020207d2c0a2020202020207b0a2020202020202020226e616d65223a2022706f736974696f6e222c0a20202020202020202274797065223a20226c6f6e67222c0a202020202020202022646f63223a202254686520626c6f62206f666673657420617420776869636820746865206572726f72206f63637572726564220a2020202020207d0a202020205d0a20207d2c0a20207b0a202020202274797065223a20227265636f7264222c0a20202020226e616d65223a2022636f6d2e6d6963726f736f66742e617a7572652e73746f726167652e7175657279426c6f62436f6e74656e74732e70726f6772657373222c0a2020202022646f63223a2022496e666f726d6174696f6e2061626f7574207468652070726f6772657373206f6620746865207175657279222c0a20202020226669656c6473223a205b0a2020202020207b0a2020202020202020226e616d65223a202262797465735363616e6e6564222c0a20202020202020202274797065223a20226c6f6e67222c0a202020202020202022646f63223a2022546865206e756d626572206f6620627974657320746861742068617665206265656e207363616e6e6564220a2020202020207d2c0a2020202020207b0a2020202020202020226e616d65223a2022746f74616c4279746573222c0a20202020202020202274797065223a20226c6f6e67222c0a202020202020202022646f63223a202254686520746f74616c206e756d626572206f6620627974657320746f206265207363616e6e656420696e2074686973207175657279220a2020202020207d0a202020205d0a20207d2c0a20207b0a202020202274797065223a20227265636f7264222c0a20202020226e616d65223a2022636f6d2e6d6963726f736f66742e617a7572652e73746f726167652e7175657279426c6f62436f6e74656e74732e656e64222c0a2020202022646f63223a202253656e74206173207468652066696e616c206d657373616765206f662074686520726573706f6e73652c20696e6469636174696e67207468617420616c6c20726573756c74732068617665206265656e2073656e742e222c0a20202020226669656c6473223a205b0a2020202020207b0a2020202020202020226e616d65223a2022746f74616c4279746573222c0a20202020202020202274797065223a20226c6f6e67222c0a202020202020202022646f63223a202254686520746f74616c206e756d626572206f6620627974657320746f206265207363616e6e656420696e2074686973207175657279220a2020202020207d0a202020205d0a20207d0a5d0a00c8de5ff1a9bfc040bace30a29b8861d102f60300f003ffffffff780000001000000000000a000c000600050008000a000000000103000c000000080008000000040008000000040000000100000014000000100014000800060007000c0000001000100000000000010a2000000014000000040000000000000000000600080006000600000000000100010000003100000000000000ffffffff700000001000000000000a000e000600050008000a000000000303001000000000000a000c000000040008000a0000003000000004000000020000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000c8de5ff1a9bfc040bace30a29b8861d102040000c8de5ff1a9bfc040bace30a29b8861d1028e01020116436c69656e744572726f726e4e756d626572206f6620636f6c756d6e7320696e2074686520726f7720646f6573206e6f74206d617463682074686520736368656d612e00c8de5ff1a9bfc040bace30a29b8861d10206044040c8de5ff1a9bfc040bace30a29b8861d102040640c8de5ff1a9bfc040bace30a29b8861d1", "hex"), [ + 'Transfer-Encoding', + 'chunked', + 'Content-Type', + 'avro/binary', + 'Last-Modified', + 'Mon, 28 Sep 2020 03:45:21 GMT', + 'Accept-Ranges', + 'bytes', + 'ETag', + '"0x8D86360ECB02EFC"', + 'x-ms-creation-time', + 'Mon, 28 Sep 2020 03:45:20 GMT', + 'x-ms-lease-state', + 'available', + 'x-ms-lease-status', + 'unlocked', + 'x-ms-blob-type', + 'BlockBlob', + 'x-ms-request-id', + '953eed33-101e-0001-2849-950155000000', + 'x-ms-version', + '2020-02-10', + 'x-ms-client-request-id', + '259e9e32-cca4-403d-b912-59aeb9522db9', + 'Date', + 'Mon, 28 Sep 2020 03:45:21 GMT' +]); + +nock('https://fakestorageaccount.blob.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/container160126471904604167') + .query(true) + .reply(202, "", [ + 'Transfer-Encoding', + 'chunked', + 'x-ms-request-id', + '4e5a5f6e-901e-0002-4e49-95f235000000', + 'x-ms-client-request-id', + '8521c0d3-c4f6-4417-82ab-29dee21f9340', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Mon, 28 Sep 2020 03:45:22 GMT' +]); diff --git a/sdk/storage/storage-blob/test/blobclient.spec.ts b/sdk/storage/storage-blob/test/blobclient.spec.ts index 9e32fff8cb9a..de5319471f2a 100644 --- a/sdk/storage/storage-blob/test/blobclient.spec.ts +++ b/sdk/storage/storage-blob/test/blobclient.spec.ts @@ -828,6 +828,22 @@ describe("BlobClient", () => { await checkRehydratePriority("Standard"); }); + // Preview in STG74, limited regions and customers + it.skip("lastAccessed returned", async () => { + const downloadRes = await blockBlobClient.download(); + // assert.ok(downloadRes.lastAccessed); + console.log(downloadRes.lastAccessed); + + const getPropertiesRes = await blockBlobClient.getProperties(); + // assert.ok(getPropertiesRes.lastAccessed); + console.log(getPropertiesRes); + + for await (const blobItem of containerClient.listBlobsFlat()) { + console.log(blobItem.properties); + // assert.ok(blobItem.properties.lastAccessedOn); + } + }); + describe("conditional tags", () => { const tags = { tag1: "val1", diff --git a/sdk/storage/storage-blob/test/node/blobclient.spec.ts b/sdk/storage/storage-blob/test/node/blobclient.spec.ts index 68f9bfc0b7d5..229dbbad000a 100644 --- a/sdk/storage/storage-blob/test/node/blobclient.spec.ts +++ b/sdk/storage/storage-blob/test/node/blobclient.spec.ts @@ -667,4 +667,20 @@ describe("BlobClient Node.js only", () => { "ffffffff800000001000000000000a000c000600050008000a000000000103000c000000080008000000040008000000040000000100000014000000100014000800060007000c000000100010000000000001072400000014000000040000000000000008000c0004000800080000000400000002000000040000006e616d650000000000000000ffffffff700000001000000000000a000e000600050008000a000000000303001000000000000a000c000000040008000a0000003000000004000000020000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000" ); }); + + it("query should work with arrow output configurations for timestamp[ms]", async function() { + const csvContent = "100,200,300,400\n150,250,350,450\n"; + await blockBlobClient.upload(csvContent, csvContent.length); + + await blockBlobClient.query("select * from BlobStorage", { + outputTextConfiguration: { + kind: "arrow", + schema: [ + { + type: "timestamp[ms]" + } + ] + } + }); + }); }); diff --git a/sdk/storage/storage-file-share/recordings/browsers/fileserviceclient_premium/recording_smb_multichannel.json b/sdk/storage/storage-file-share/recordings/browsers/fileserviceclient_premium/recording_smb_multichannel.json index bbe95845bb91..f4645581f452 100644 --- a/sdk/storage/storage-file-share/recordings/browsers/fileserviceclient_premium/recording_smb_multichannel.json +++ b/sdk/storage/storage-file-share/recordings/browsers/fileserviceclient_premium/recording_smb_multichannel.json @@ -2,7 +2,7 @@ "recordings": [ { "method": "PUT", - "url": "https://pf-fakestorageaccount.file.core.windows.net/", + "url": "https://fakestorageaccount.file.core.windows.net/", "query": { "restype": "service", "comp": "properties" @@ -11,31 +11,31 @@ "status": 202, "response": "", "responseHeaders": { - "date": "Thu, 10 Sep 2020 14:03:06 GMT", + "date": "Mon, 28 Sep 2020 05:37:31 GMT", "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", "transfer-encoding": "chunked", - "x-ms-client-request-id": "934f892e-3e9b-44c9-8407-a50a3c40a43d", - "x-ms-request-id": "8db70106-201a-0042-1b7b-878fcc000000", + "x-ms-client-request-id": "232c2dcc-ff85-4f5e-ab7f-f74f903b46ae", + "x-ms-request-id": "a2efaa50-101a-0059-8059-95b1cf000000", "x-ms-version": "2020-02-10" } }, { "method": "GET", - "url": "https://pf-fakestorageaccount.file.core.windows.net/", + "url": "https://fakestorageaccount.file.core.windows.net/", "query": { "restype": "service", "comp": "properties" }, "requestBody": null, "status": 200, - "response": "1.0truefalsetrue31.0truefalsetrue3DELETE,GET,HEAD,MERGE,POST,OPTIONS,PUT,PATCH***86400DELETE,GET,HEAD,MERGE,POST,OPTIONS,PUT,PATCH***86400true", + "response": "1.0truetruetrue41.0truetruetrue3GET,PUThttp://www.example1.comx-ms-header1,x-ms-header2x-ms-header310DELETEhttp://www.example2.comx-ms-header1x-ms-header2,x-ms-header320DELETE,GET,HEAD,MERGE,POST,OPTIONS,PUT,PATCH***86400true", "responseHeaders": { "content-type": "application/xml", - "date": "Thu, 10 Sep 2020 14:03:07 GMT", + "date": "Mon, 28 Sep 2020 05:37:31 GMT", "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", "transfer-encoding": "chunked", - "x-ms-client-request-id": "d7ce9946-4739-4100-a4f5-8f31e13ebdc9", - "x-ms-request-id": "8db70110-201a-0042-1f7b-878fcc000000", + "x-ms-client-request-id": "d8ba73f8-abdc-4789-be1e-9e3800b647d1", + "x-ms-request-id": "a2efaa5a-101a-0059-0459-95b1cf000000", "x-ms-version": "2020-02-10" } } @@ -44,5 +44,5 @@ "uniqueName": {}, "newDate": {} }, - "hash": "0239648c88b551390876f693c87cb2ae" + "hash": "07d7182d263382fe7ddd0ab3d7ae7c76" } \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/node/fileserviceclient_premium/recording_smb_multichannel.js b/sdk/storage/storage-file-share/recordings/node/fileserviceclient_premium/recording_smb_multichannel.js index 21ae2d494a92..1b323ba15ffd 100644 --- a/sdk/storage/storage-file-share/recordings/node/fileserviceclient_premium/recording_smb_multichannel.js +++ b/sdk/storage/storage-file-share/recordings/node/fileserviceclient_premium/recording_smb_multichannel.js @@ -7,21 +7,41 @@ module.exports.testInfo = {"uniqueName":{},"newDate":{}} nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) .put('/', "true") .query(true) - .reply(400, "FeatureNotSupportedOnStorageAccountFeature cannot be enabled on this storage account.\nRequestId:5e6a9f92-601a-000e-355f-911ffc000000\nTime:2020-09-23T04:11:54.0486223Z", [ - 'Content-Length', - '254', + .reply(202, "", [ + 'Transfer-Encoding', + 'chunked', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '84dc4a50-501a-0067-6059-9526b0000000', + 'x-ms-client-request-id', + '268a12f3-4769-4b6d-b7a8-fe90438b0d2a', + 'x-ms-version', + '2020-02-10', + 'Date', + 'Mon, 28 Sep 2020 05:36:40 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/') + .query(true) + .reply(200, "1.0truetruetrue41.0truetruetrue3GET,PUThttp://www.example1.comx-ms-header1,x-ms-header2x-ms-header310DELETEhttp://www.example2.comx-ms-header1x-ms-header2,x-ms-header320DELETE,GET,HEAD,MERGE,POST,OPTIONS,PUT,PATCH***86400true", [ + 'Transfer-Encoding', + 'chunked', 'Content-Type', 'application/xml', 'Server', 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id', - '5e6a9f92-601a-000e-355f-911ffc000000', + '84dc4a59-501a-0067-6359-9526b0000000', 'x-ms-client-request-id', - '103ea686-cedd-49f9-8146-c0acc382f9dc', + '7e820c94-59fc-4772-8ee0-693f8acae009', 'x-ms-version', '2020-02-10', - 'x-ms-error-code', - 'FeatureNotSupportedOnStorageAccount', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', 'Date', - 'Wed, 23 Sep 2020 04:11:53 GMT' + 'Mon, 28 Sep 2020 05:36:40 GMT' ]); diff --git a/sdk/storage/storage-file-share/test/utils/testutils.common.ts b/sdk/storage/storage-file-share/test/utils/testutils.common.ts index 756bca1ff301..84209f2c11bb 100644 --- a/sdk/storage/storage-file-share/test/utils/testutils.common.ts +++ b/sdk/storage/storage-file-share/test/utils/testutils.common.ts @@ -8,7 +8,6 @@ export function isBrowser(): boolean { const mockAccountName = "fakestorageaccount"; const mockAccountKey = "aaaaa"; const mockSDAccountName = "sd-fakestorageaccount"; -const mockPFAccountName = "pf-fakestorageaccount"; export const recorderEnvSetup: RecorderEnvironmentSetup = { replaceableVariables: { // Used in record and playback modes @@ -25,7 +24,7 @@ export const recorderEnvSetup: RecorderEnvironmentSetup = { SOFT_DELETE_ACCOUNT_KEY: `${mockAccountKey}`, SOFT_DELETE_ACCOUNT_SAS: `${mockAccountKey}`, SOFT_DELETE_STORAGE_CONNECTION_STRING: `DefaultEndpointsProtocol=https;AccountName=${mockSDAccountName};AccountKey=${mockAccountKey};EndpointSuffix=core.windows.net`, - PREMIUM_FILE_ACCOUNT_NAME: `${mockPFAccountName}`, + PREMIUM_FILE_ACCOUNT_NAME: `${mockAccountName}`, PREMIUM_FILE_ACCOUNT_KEY: `${mockAccountKey}`, PREMIUM_FILE_ACCOUNT_SAS: `${mockAccountKey}`, PREMIUM_FILE_STORAGE_CONNECTION_STRING: `DefaultEndpointsProtocol=https;AccountName=${mockSDAccountName};AccountKey=${mockAccountKey};EndpointSuffix=core.windows.net` diff --git a/sdk/storage/storage-queue/src/QueueClient.ts b/sdk/storage/storage-queue/src/QueueClient.ts index 9f19867a8613..57f831a98496 100644 --- a/sdk/storage/storage-queue/src/QueueClient.ts +++ b/sdk/storage/storage-queue/src/QueueClient.ts @@ -1258,7 +1258,7 @@ export class QueueClient extends StorageClient { * * @param {string} messageId Id of the message * @param {string} popReceipt A valid pop receipt value returned from an earlier call to the receive messages or update message operation. - * @param {string} message Message to update. + * @param {string} message Message to update. If this parameter is undefined, then the content of the message won't be updated. * @param {number} visibilityTimeout Specifies the new visibility timeout value, in seconds, * relative to server time. The new value must be larger than or equal to 0, * and cannot be larger than 7 days. The visibility timeout of a message cannot @@ -1277,7 +1277,7 @@ export class QueueClient extends StorageClient { ): Promise { const { span, spanOptions } = createSpan("QueueClient-updateMessage", options.tracingOptions); let queueMessage = undefined; - if (message) { + if (message !== undefined) { queueMessage = { messageText: message }; } From ef30f6e62253cc16529ab2aaad694b0f5d49ec2d Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Fri, 9 Oct 2020 13:51:26 +0800 Subject: [PATCH 9/9] make options optional and add comments --- .../review/storage-file-datalake.api.md | 2 +- .../src/sas/SASQueryParameters.ts | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/sdk/storage/storage-file-datalake/review/storage-file-datalake.api.md b/sdk/storage/storage-file-datalake/review/storage-file-datalake.api.md index 1160f38286b2..a0ffd4bcdf0e 100644 --- a/sdk/storage/storage-file-datalake/review/storage-file-datalake.api.md +++ b/sdk/storage/storage-file-datalake/review/storage-file-datalake.api.md @@ -1596,7 +1596,7 @@ export enum SASProtocol { // @public export class SASQueryParameters { constructor(version: string, signature: string, permissions?: string, services?: string, resourceTypes?: string, protocol?: SASProtocol, startsOn?: Date, expiresOn?: Date, ipRange?: SasIPRange, identifier?: string, resource?: string, cacheControl?: string, contentDisposition?: string, contentEncoding?: string, contentLanguage?: string, contentType?: string, userDelegationKey?: UserDelegationKey, directoryDepth?: number, preauthorizedAgentObjectId?: string, agentObjectId?: string, correlationId?: string); - constructor(version: string, signature: string, options: SASQueryParametersOptions); + constructor(version: string, signature: string, options?: SASQueryParametersOptions); readonly agentObjectId?: string; readonly cacheControl?: string; readonly contentDisposition?: string; diff --git a/sdk/storage/storage-file-datalake/src/sas/SASQueryParameters.ts b/sdk/storage/storage-file-datalake/src/sas/SASQueryParameters.ts index b481c32a4f04..caf69cf81d45 100644 --- a/sdk/storage/storage-file-datalake/src/sas/SASQueryParameters.ts +++ b/sdk/storage/storage-file-datalake/src/sas/SASQueryParameters.ts @@ -485,7 +485,15 @@ export class SASQueryParameters { correlationId?: string ); - constructor(version: string, signature: string, options: SASQueryParametersOptions); + /** + * Creates an instance of SASQueryParameters. + * + * @param {string} version Representing the storage version + * @param {string} signature Representing the signature for the SAS token + * @param {SASQueryParametersOptions} [options] Optional. Options to construct the SASQueryParameters. + * @memberof SASQueryParameters + */ + constructor(version: string, signature: string, options?: SASQueryParametersOptions); constructor( version: string,