diff --git a/sdk/storage/azure-storage-files-datalake/CHANGELOG.md b/sdk/storage/azure-storage-files-datalake/CHANGELOG.md index 087e75241..9941db0fc 100644 --- a/sdk/storage/azure-storage-files-datalake/CHANGELOG.md +++ b/sdk/storage/azure-storage-files-datalake/CHANGELOG.md @@ -35,6 +35,7 @@ ### Other Changes and Improvements - Changed `DataLakeFileClient::Flush`'s `endingOffset` parameter's name to `position`. +- Removed unused parameters, options, results and functions in protocol layer. ## 12.0.0-beta.6 (2020-01-14) diff --git a/sdk/storage/azure-storage-files-datalake/inc/azure/storage/files/datalake/datalake_responses.hpp b/sdk/storage/azure-storage-files-datalake/inc/azure/storage/files/datalake/datalake_responses.hpp index e5e48e035..38234677a 100644 --- a/sdk/storage/azure-storage-files-datalake/inc/azure/storage/files/datalake/datalake_responses.hpp +++ b/sdk/storage/azure-storage-files-datalake/inc/azure/storage/files/datalake/datalake_responses.hpp @@ -81,7 +81,13 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { nam std::string RequestId; }; - using SetDataLakeFileSystemMetadataResult = Details::FileSystemCreateResult; + struct SetDataLakeFileSystemMetadataResult + { + std::string ETag; + Core::DateTime LastModified; + std::string RequestId; + std::string NamespaceEnabled; + }; // PathClient models: diff --git a/sdk/storage/azure-storage-files-datalake/inc/azure/storage/files/datalake/protocol/datalake_rest_client.hpp b/sdk/storage/azure-storage-files-datalake/inc/azure/storage/files/datalake/protocol/datalake_rest_client.hpp index 78b0a20b2..091adaa3a 100644 --- a/sdk/storage/azure-storage-files-datalake/inc/azure/storage/files/datalake/protocol/datalake_rest_client.hpp +++ b/sdk/storage/azure-storage-files-datalake/inc/azure/storage/files/datalake/protocol/datalake_rest_client.hpp @@ -264,9 +264,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { constexpr static const char* QueryPathGetPropertiesAction = "action"; constexpr static const char* QueryAction = "action"; constexpr static const char* QueryMaxRecords = "maxrecords"; - constexpr static const char* QueryComp = "comp"; constexpr static const char* HeaderVersion = "x-ms-version"; - constexpr static const char* HeaderClientRequestId = "x-ms-client-request-id"; constexpr static const char* HeaderIfMatch = "if-match"; constexpr static const char* HeaderIfModifiedSince = "if-modified-since"; constexpr static const char* HeaderIfNoneMatch = "if-none-match"; @@ -297,12 +295,12 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { constexpr static const char* HeaderExpiryOptions = "x-ms-expiry-option"; constexpr static const char* HeaderExpiresOn = "x-ms-expiry-time"; constexpr static const char* HeaderDate = "date"; + constexpr static const char* HeaderRequestId = "x-ms-request-id"; + constexpr static const char* HeaderClientRequestId = "x-ms-client-request-id"; + constexpr static const char* HeaderContinuationToken = "x-ms-continuation"; + constexpr static const char* HeaderErrorCode = "x-ms-error-code"; constexpr static const char* HeaderETag = "etag"; constexpr static const char* HeaderLastModified = "last-modified"; - constexpr static const char* HeaderRequestId = "x-ms-request-id"; - constexpr static const char* HeaderNamespaceEnabled = "x-ms-namespace-enabled"; - constexpr static const char* HeaderErrorCode = "x-ms-error-code"; - constexpr static const char* HeaderContinuationToken = "x-ms-continuation"; constexpr static const char* HeaderAcceptRanges = "accept-ranges"; constexpr static const char* HeaderResourceType = "x-ms-resource-type"; constexpr static const char* HeaderLeaseDuration = "x-ms-lease-duration"; @@ -323,35 +321,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { std::vector Items; }; - struct FileSystemCreateResult - { - std::string ETag; - Core::DateTime LastModified; - std::string RequestId; - std::string NamespaceEnabled; - }; - - struct FileSystemSetPropertiesResult - { - std::string ETag; - Core::DateTime LastModified; - std::string RequestId; - }; - - struct FileSystemGetPropertiesResult - { - std::string ETag; - Core::DateTime LastModified; - std::string RequestId; - std::string Properties; - std::string NamespaceEnabled; - }; - - struct FileSystemDeleteResult - { - std::string RequestId; - }; - struct FileSystemListPathsResult { std::vector Items; @@ -424,201 +393,13 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { bool IsServerEncrypted = bool(); }; - struct PathSetExpiryResult - { - std::string ETag; - Core::DateTime LastModified; - std::string RequestId; - }; - class DataLakeRestClient { public: class FileSystem { public: - struct CreateOptions - { - FileSystemResourceType Resource; - Azure::Core::Nullable ClientRequestId; - Azure::Core::Nullable Timeout; - std::string ApiVersionParameter = Details::DefaultServiceApiVersion; - Azure::Core::Nullable Properties; - }; - - static Azure::Core::Response Create( - const Azure::Core::Http::Url& url, - Azure::Core::Http::HttpPipeline& pipeline, - Azure::Core::Context context, - const CreateOptions& createOptions) - { - Azure::Core::Http::Request request(Azure::Core::Http::HttpMethod::Put, url); - request.AddHeader(Details::HeaderContentLength, "0"); - request.GetUrl().AppendQueryParameter( - Details::QueryFileSystemResource, - Storage::Details::UrlEncodeQueryParameter((createOptions.Resource.Get()))); - if (createOptions.ClientRequestId.HasValue()) - { - request.AddHeader( - Details::HeaderClientRequestId, createOptions.ClientRequestId.GetValue()); - } - if (createOptions.Timeout.HasValue()) - { - request.GetUrl().AppendQueryParameter( - Details::QueryTimeout, - Storage::Details::UrlEncodeQueryParameter( - std::to_string(createOptions.Timeout.GetValue()))); - } - request.AddHeader(Details::HeaderVersion, createOptions.ApiVersionParameter); - if (createOptions.Properties.HasValue()) - { - request.AddHeader(Details::HeaderProperties, createOptions.Properties.GetValue()); - } - return CreateParseResult(context, pipeline.Send(context, request)); - } - - struct SetPropertiesOptions - { - FileSystemResourceType Resource; - Azure::Core::Nullable ClientRequestId; - Azure::Core::Nullable Timeout; - std::string ApiVersionParameter = Details::DefaultServiceApiVersion; - Azure::Core::Nullable Properties; - Azure::Core::Nullable IfModifiedSince; - Azure::Core::Nullable IfUnmodifiedSince; - }; - - static Azure::Core::Response SetProperties( - const Azure::Core::Http::Url& url, - Azure::Core::Http::HttpPipeline& pipeline, - Azure::Core::Context context, - const SetPropertiesOptions& setPropertiesOptions) - { - Azure::Core::Http::Request request(Azure::Core::Http::HttpMethod::Patch, url); - request.GetUrl().AppendQueryParameter( - Details::QueryFileSystemResource, - Storage::Details::UrlEncodeQueryParameter((setPropertiesOptions.Resource.Get()))); - if (setPropertiesOptions.ClientRequestId.HasValue()) - { - request.AddHeader( - Details::HeaderClientRequestId, setPropertiesOptions.ClientRequestId.GetValue()); - } - if (setPropertiesOptions.Timeout.HasValue()) - { - request.GetUrl().AppendQueryParameter( - Details::QueryTimeout, - Storage::Details::UrlEncodeQueryParameter( - std::to_string(setPropertiesOptions.Timeout.GetValue()))); - } - request.AddHeader(Details::HeaderVersion, setPropertiesOptions.ApiVersionParameter); - if (setPropertiesOptions.Properties.HasValue()) - { - request.AddHeader( - Details::HeaderProperties, setPropertiesOptions.Properties.GetValue()); - } - if (setPropertiesOptions.IfModifiedSince.HasValue()) - { - request.AddHeader( - Details::HeaderIfModifiedSince, - setPropertiesOptions.IfModifiedSince.GetValue().GetString( - Core::DateTime::DateFormat::Rfc1123)); - } - if (setPropertiesOptions.IfUnmodifiedSince.HasValue()) - { - request.AddHeader( - Details::HeaderIfUnmodifiedSince, - setPropertiesOptions.IfUnmodifiedSince.GetValue().GetString( - Core::DateTime::DateFormat::Rfc1123)); - } - return SetPropertiesParseResult(context, pipeline.Send(context, request)); - } - - struct GetPropertiesOptions - { - FileSystemResourceType Resource; - Azure::Core::Nullable ClientRequestId; - Azure::Core::Nullable Timeout; - std::string ApiVersionParameter = Details::DefaultServiceApiVersion; - }; - - static Azure::Core::Response GetProperties( - const Azure::Core::Http::Url& url, - Azure::Core::Http::HttpPipeline& pipeline, - Azure::Core::Context context, - const GetPropertiesOptions& getPropertiesOptions) - { - Azure::Core::Http::Request request(Azure::Core::Http::HttpMethod::Head, url); - request.GetUrl().AppendQueryParameter( - Details::QueryFileSystemResource, - Storage::Details::UrlEncodeQueryParameter((getPropertiesOptions.Resource.Get()))); - if (getPropertiesOptions.ClientRequestId.HasValue()) - { - request.AddHeader( - Details::HeaderClientRequestId, getPropertiesOptions.ClientRequestId.GetValue()); - } - if (getPropertiesOptions.Timeout.HasValue()) - { - request.GetUrl().AppendQueryParameter( - Details::QueryTimeout, - Storage::Details::UrlEncodeQueryParameter( - std::to_string(getPropertiesOptions.Timeout.GetValue()))); - } - request.AddHeader(Details::HeaderVersion, getPropertiesOptions.ApiVersionParameter); - return GetPropertiesParseResult(context, pipeline.Send(context, request)); - } - - struct DeleteOptions - { - FileSystemResourceType Resource; - Azure::Core::Nullable ClientRequestId; - Azure::Core::Nullable Timeout; - std::string ApiVersionParameter = Details::DefaultServiceApiVersion; - Azure::Core::Nullable IfModifiedSince; - Azure::Core::Nullable IfUnmodifiedSince; - }; - - static Azure::Core::Response Delete( - const Azure::Core::Http::Url& url, - Azure::Core::Http::HttpPipeline& pipeline, - Azure::Core::Context context, - const DeleteOptions& deleteOptions) - { - Azure::Core::Http::Request request(Azure::Core::Http::HttpMethod::Delete, url); - request.GetUrl().AppendQueryParameter( - Details::QueryFileSystemResource, - Storage::Details::UrlEncodeQueryParameter((deleteOptions.Resource.Get()))); - if (deleteOptions.ClientRequestId.HasValue()) - { - request.AddHeader( - Details::HeaderClientRequestId, deleteOptions.ClientRequestId.GetValue()); - } - if (deleteOptions.Timeout.HasValue()) - { - request.GetUrl().AppendQueryParameter( - Details::QueryTimeout, - Storage::Details::UrlEncodeQueryParameter( - std::to_string(deleteOptions.Timeout.GetValue()))); - } - request.AddHeader(Details::HeaderVersion, deleteOptions.ApiVersionParameter); - if (deleteOptions.IfModifiedSince.HasValue()) - { - request.AddHeader( - Details::HeaderIfModifiedSince, - deleteOptions.IfModifiedSince.GetValue().GetString( - Core::DateTime::DateFormat::Rfc1123)); - } - if (deleteOptions.IfUnmodifiedSince.HasValue()) - { - request.AddHeader( - Details::HeaderIfUnmodifiedSince, - deleteOptions.IfUnmodifiedSince.GetValue().GetString( - Core::DateTime::DateFormat::Rfc1123)); - } - return DeleteParseResult(context, pipeline.Send(context, request)); - } - struct ListPathsOptions { FileSystemResourceType Resource; - Azure::Core::Nullable ClientRequestId; Azure::Core::Nullable Timeout; std::string ApiVersionParameter = Details::DefaultServiceApiVersion; Azure::Core::Nullable ContinuationToken; @@ -638,11 +419,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { request.GetUrl().AppendQueryParameter( Details::QueryFileSystemResource, Storage::Details::UrlEncodeQueryParameter((listPathsOptions.Resource.Get()))); - if (listPathsOptions.ClientRequestId.HasValue()) - { - request.AddHeader( - Details::HeaderClientRequestId, listPathsOptions.ClientRequestId.GetValue()); - } if (listPathsOptions.Timeout.HasValue()) { request.GetUrl().AppendQueryParameter( @@ -686,101 +462,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { } private: - static Azure::Core::Response CreateParseResult( - Azure::Core::Context context, - std::unique_ptr responsePtr) - { - auto& response = *responsePtr; - if (response.GetStatusCode() == Azure::Core::Http::HttpStatusCode::Created) - { - // Created - FileSystemCreateResult result; - result.ETag = response.GetHeaders().at(Details::HeaderETag); - result.LastModified = Core::DateTime::Parse( - response.GetHeaders().at(Details::HeaderLastModified), - Core::DateTime::DateFormat::Rfc1123); - result.RequestId = response.GetHeaders().at(Details::HeaderRequestId); - result.NamespaceEnabled = response.GetHeaders().at(Details::HeaderNamespaceEnabled); - return Azure::Core::Response( - std::move(result), std::move(responsePtr)); - } - else - { - unused(context); - throw Storage::StorageException::CreateFromResponse(std::move(responsePtr)); - } - } - - static Azure::Core::Response SetPropertiesParseResult( - Azure::Core::Context context, - std::unique_ptr responsePtr) - { - auto& response = *responsePtr; - if (response.GetStatusCode() == Azure::Core::Http::HttpStatusCode::Ok) - { - // Ok - FileSystemSetPropertiesResult result; - result.ETag = response.GetHeaders().at(Details::HeaderETag); - result.LastModified = Core::DateTime::Parse( - response.GetHeaders().at(Details::HeaderLastModified), - Core::DateTime::DateFormat::Rfc1123); - result.RequestId = response.GetHeaders().at(Details::HeaderRequestId); - return Azure::Core::Response( - std::move(result), std::move(responsePtr)); - } - else - { - unused(context); - throw Storage::StorageException::CreateFromResponse(std::move(responsePtr)); - } - } - - static Azure::Core::Response GetPropertiesParseResult( - Azure::Core::Context context, - std::unique_ptr responsePtr) - { - auto& response = *responsePtr; - if (response.GetStatusCode() == Azure::Core::Http::HttpStatusCode::Ok) - { - // Ok - FileSystemGetPropertiesResult result; - result.ETag = response.GetHeaders().at(Details::HeaderETag); - result.LastModified = Core::DateTime::Parse( - response.GetHeaders().at(Details::HeaderLastModified), - Core::DateTime::DateFormat::Rfc1123); - result.RequestId = response.GetHeaders().at(Details::HeaderRequestId); - result.Properties = response.GetHeaders().at(Details::HeaderProperties); - result.NamespaceEnabled = response.GetHeaders().at(Details::HeaderNamespaceEnabled); - return Azure::Core::Response( - std::move(result), std::move(responsePtr)); - } - else - { - unused(context); - throw Storage::StorageException::CreateFromResponse(std::move(responsePtr)); - } - } - - static Azure::Core::Response DeleteParseResult( - Azure::Core::Context context, - std::unique_ptr responsePtr) - { - auto& response = *responsePtr; - if (response.GetStatusCode() == Azure::Core::Http::HttpStatusCode::Accepted) - { - // Accepted - FileSystemDeleteResult result; - result.RequestId = response.GetHeaders().at(Details::HeaderRequestId); - return Azure::Core::Response( - std::move(result), std::move(responsePtr)); - } - else - { - unused(context); - throw Storage::StorageException::CreateFromResponse(std::move(responsePtr)); - } - } - static Azure::Core::Response ListPathsParseResult( Azure::Core::Context context, std::unique_ptr responsePtr) @@ -854,7 +535,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { public: struct CreateOptions { - Azure::Core::Nullable ClientRequestId; Azure::Core::Nullable Timeout; std::string ApiVersionParameter = Details::DefaultServiceApiVersion; Azure::Core::Nullable Resource; @@ -889,11 +569,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { { Azure::Core::Http::Request request(Azure::Core::Http::HttpMethod::Put, url); request.AddHeader(Details::HeaderContentLength, "0"); - if (createOptions.ClientRequestId.HasValue()) - { - request.AddHeader( - Details::HeaderClientRequestId, createOptions.ClientRequestId.GetValue()); - } if (createOptions.Timeout.HasValue()) { request.GetUrl().AppendQueryParameter( @@ -1019,7 +694,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { struct GetPropertiesOptions { - Azure::Core::Nullable ClientRequestId; Azure::Core::Nullable Timeout; std::string ApiVersionParameter = Details::DefaultServiceApiVersion; Azure::Core::Nullable Action; @@ -1038,11 +712,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { const GetPropertiesOptions& getPropertiesOptions) { Azure::Core::Http::Request request(Azure::Core::Http::HttpMethod::Head, url); - if (getPropertiesOptions.ClientRequestId.HasValue()) - { - request.AddHeader( - Details::HeaderClientRequestId, getPropertiesOptions.ClientRequestId.GetValue()); - } if (getPropertiesOptions.Timeout.HasValue()) { request.GetUrl().AppendQueryParameter( @@ -1098,7 +767,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { struct DeleteOptions { - Azure::Core::Nullable ClientRequestId; Azure::Core::Nullable Timeout; std::string ApiVersionParameter = Details::DefaultServiceApiVersion; Azure::Core::Nullable RecursiveOptional; @@ -1117,11 +785,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { const DeleteOptions& deleteOptions) { Azure::Core::Http::Request request(Azure::Core::Http::HttpMethod::Delete, url); - if (deleteOptions.ClientRequestId.HasValue()) - { - request.AddHeader( - Details::HeaderClientRequestId, deleteOptions.ClientRequestId.GetValue()); - } if (deleteOptions.Timeout.HasValue()) { request.GetUrl().AppendQueryParameter( @@ -1185,7 +848,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { Azure::Core::Nullable IfNoneMatch; Azure::Core::Nullable IfModifiedSince; Azure::Core::Nullable IfUnmodifiedSince; - Azure::Core::Nullable ClientRequestId; std::string ApiVersionParameter = Details::DefaultServiceApiVersion; }; @@ -1249,11 +911,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { setAccessControlOptions.IfUnmodifiedSince.GetValue().GetString( Core::DateTime::DateFormat::Rfc1123)); } - if (setAccessControlOptions.ClientRequestId.HasValue()) - { - request.AddHeader( - Details::HeaderClientRequestId, setAccessControlOptions.ClientRequestId.GetValue()); - } request.AddHeader(Details::HeaderVersion, setAccessControlOptions.ApiVersionParameter); return SetAccessControlParseResult(context, pipeline.Send(context, request)); } @@ -1266,7 +923,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { Azure::Core::Nullable ForceFlag; Azure::Core::Nullable MaxRecords; Azure::Core::Nullable Acl; - Azure::Core::Nullable ClientRequestId; std::string ApiVersionParameter = Details::DefaultServiceApiVersion; }; @@ -1314,12 +970,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { { request.AddHeader(Details::HeaderAcl, setAccessControlRecursiveOptions.Acl.GetValue()); } - if (setAccessControlRecursiveOptions.ClientRequestId.HasValue()) - { - request.AddHeader( - Details::HeaderClientRequestId, - setAccessControlRecursiveOptions.ClientRequestId.GetValue()); - } request.AddHeader( Details::HeaderVersion, setAccessControlRecursiveOptions.ApiVersionParameter); return SetAccessControlRecursiveParseResult(context, pipeline.Send(context, request)); @@ -1343,7 +993,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { Azure::Core::Nullable IfNoneMatch; Azure::Core::Nullable IfModifiedSince; Azure::Core::Nullable IfUnmodifiedSince; - Azure::Core::Nullable ClientRequestId; std::string ApiVersionParameter = Details::DefaultServiceApiVersion; }; @@ -1445,11 +1094,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { flushDataOptions.IfUnmodifiedSince.GetValue().GetString( Core::DateTime::DateFormat::Rfc1123)); } - if (flushDataOptions.ClientRequestId.HasValue()) - { - request.AddHeader( - Details::HeaderClientRequestId, flushDataOptions.ClientRequestId.GetValue()); - } request.AddHeader(Details::HeaderVersion, flushDataOptions.ApiVersionParameter); return FlushDataParseResult(context, pipeline.Send(context, request)); } @@ -1462,7 +1106,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { Azure::Core::Nullable TransactionalContentMd5; Azure::Core::Nullable TransactionalContentCrc64; Azure::Core::Nullable LeaseIdOptional; - Azure::Core::Nullable ClientRequestId; std::string ApiVersionParameter = Details::DefaultServiceApiVersion; }; @@ -1514,54 +1157,10 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { { request.AddHeader(Details::HeaderLeaseId, appendDataOptions.LeaseIdOptional.GetValue()); } - if (appendDataOptions.ClientRequestId.HasValue()) - { - request.AddHeader( - Details::HeaderClientRequestId, appendDataOptions.ClientRequestId.GetValue()); - } request.AddHeader(Details::HeaderVersion, appendDataOptions.ApiVersionParameter); return AppendDataParseResult(context, pipeline.Send(context, request)); } - struct SetExpiryOptions - { - Azure::Core::Nullable Timeout; - std::string ApiVersionParameter = Details::DefaultServiceApiVersion; - Azure::Core::Nullable ClientRequestId; - PathExpiryOptions XMsExpiryOption; - Azure::Core::Nullable PathExpiryTime; - }; - - static Azure::Core::Response SetExpiry( - const Azure::Core::Http::Url& url, - Azure::Core::Http::HttpPipeline& pipeline, - Azure::Core::Context context, - const SetExpiryOptions& setExpiryOptions) - { - Azure::Core::Http::Request request(Azure::Core::Http::HttpMethod::Put, url); - request.AddHeader(Details::HeaderContentLength, "0"); - request.GetUrl().AppendQueryParameter(Details::QueryComp, "expiry"); - if (setExpiryOptions.Timeout.HasValue()) - { - request.GetUrl().AppendQueryParameter( - Details::QueryTimeout, - Storage::Details::UrlEncodeQueryParameter( - std::to_string(setExpiryOptions.Timeout.GetValue()))); - } - request.AddHeader(Details::HeaderVersion, setExpiryOptions.ApiVersionParameter); - if (setExpiryOptions.ClientRequestId.HasValue()) - { - request.AddHeader( - Details::HeaderClientRequestId, setExpiryOptions.ClientRequestId.GetValue()); - } - request.AddHeader(Details::HeaderExpiryOptions, (setExpiryOptions.XMsExpiryOption.Get())); - if (setExpiryOptions.PathExpiryTime.HasValue()) - { - request.AddHeader(Details::HeaderExpiresOn, setExpiryOptions.PathExpiryTime.GetValue()); - } - return SetExpiryParseResult(context, pipeline.Send(context, request)); - } - private: static Azure::Core::Response CreateParseResult( Azure::Core::Context context, @@ -1646,10 +1245,17 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { result.HttpHeaders.ContentHash = Storage::Details::FromBase64String( response.GetHeaders().at(Details::HeaderContentHashMd5), HashAlgorithm::Md5); } - result.ETag = response.GetHeaders().at(Details::HeaderETag); - result.LastModified = Core::DateTime::Parse( - response.GetHeaders().at(Details::HeaderLastModified), - Core::DateTime::DateFormat::Rfc1123); + if (response.GetHeaders().find(Details::HeaderETag) != response.GetHeaders().end()) + { + result.ETag = response.GetHeaders().at(Details::HeaderETag); + } + if (response.GetHeaders().find(Details::HeaderLastModified) + != response.GetHeaders().end()) + { + result.LastModified = Core::DateTime::Parse( + response.GetHeaders().at(Details::HeaderLastModified), + Core::DateTime::DateFormat::Rfc1123); + } result.RequestId = response.GetHeaders().at(Details::HeaderRequestId); if (response.GetHeaders().find(Details::HeaderResourceType) != response.GetHeaders().end()) @@ -1740,10 +1346,17 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { { // Set directory access control response. PathSetAccessControlResult result; - result.ETag = response.GetHeaders().at(Details::HeaderETag); - result.LastModified = Core::DateTime::Parse( - response.GetHeaders().at(Details::HeaderLastModified), - Core::DateTime::DateFormat::Rfc1123); + if (response.GetHeaders().find(Details::HeaderETag) != response.GetHeaders().end()) + { + result.ETag = response.GetHeaders().at(Details::HeaderETag); + } + if (response.GetHeaders().find(Details::HeaderLastModified) + != response.GetHeaders().end()) + { + result.LastModified = Core::DateTime::Parse( + response.GetHeaders().at(Details::HeaderLastModified), + Core::DateTime::DateFormat::Rfc1123); + } result.RequestId = response.GetHeaders().at(Details::HeaderRequestId); return Azure::Core::Response( std::move(result), std::move(responsePtr)); @@ -1830,10 +1443,17 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { { // The data was flushed (written) to the file successfully. PathFlushDataResult result; - result.ETag = response.GetHeaders().at(Details::HeaderETag); - result.LastModified = Core::DateTime::Parse( - response.GetHeaders().at(Details::HeaderLastModified), - Core::DateTime::DateFormat::Rfc1123); + if (response.GetHeaders().find(Details::HeaderETag) != response.GetHeaders().end()) + { + result.ETag = response.GetHeaders().at(Details::HeaderETag); + } + if (response.GetHeaders().find(Details::HeaderLastModified) + != response.GetHeaders().end()) + { + result.LastModified = Core::DateTime::Parse( + response.GetHeaders().at(Details::HeaderLastModified), + Core::DateTime::DateFormat::Rfc1123); + } if (response.GetHeaders().find(Details::HeaderContentLength) != response.GetHeaders().end()) { @@ -1885,30 +1505,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { throw Storage::StorageException::CreateFromResponse(std::move(responsePtr)); } } - - static Azure::Core::Response SetExpiryParseResult( - Azure::Core::Context context, - std::unique_ptr responsePtr) - { - auto& response = *responsePtr; - if (response.GetStatusCode() == Azure::Core::Http::HttpStatusCode::Ok) - { - // The blob expiry was set successfully. - PathSetExpiryResult result; - result.ETag = response.GetHeaders().at(Details::HeaderETag); - result.LastModified = Core::DateTime::Parse( - response.GetHeaders().at(Details::HeaderLastModified), - Core::DateTime::DateFormat::Rfc1123); - result.RequestId = response.GetHeaders().at(Details::HeaderRequestId); - return Azure::Core::Response( - std::move(result), std::move(responsePtr)); - } - else - { - unused(context); - throw Storage::StorageException::CreateFromResponse(std::move(responsePtr)); - } - } }; }; // class DataLakeRestClient