AccessConditions as a member (#996)
This commit is contained in:
parent
c6da8da8c7
commit
980f858676
@ -43,6 +43,15 @@ namespace Azure { namespace Storage { namespace Blobs {
|
||||
{
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Specifies access conditions for blob lease operations.
|
||||
*/
|
||||
struct LeaseBlobAccessConditions : public ModifiedTimeConditions,
|
||||
public ETagAccessConditions,
|
||||
public TagAccessConditions
|
||||
{
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Specifies access conditions for a append blob.
|
||||
*/
|
||||
@ -437,51 +446,71 @@ namespace Azure { namespace Storage { namespace Blobs {
|
||||
/**
|
||||
* @brief Optional parameters for BlobContainerClient::AcquireLease.
|
||||
*/
|
||||
struct AcquireContainerLeaseOptions : public ModifiedTimeConditions
|
||||
struct AcquireContainerLeaseOptions
|
||||
{
|
||||
/**
|
||||
* @brief Context for cancelling long running operations.
|
||||
*/
|
||||
Azure::Core::Context Context;
|
||||
|
||||
/**
|
||||
* @brief Optional conditions that must be met to perform this operation.
|
||||
*/
|
||||
ModifiedTimeConditions AccessConditions;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Optional parameters for BlobContainerClient::RenewLease.
|
||||
*/
|
||||
struct RenewContainerLeaseOptions : public ModifiedTimeConditions
|
||||
struct RenewContainerLeaseOptions
|
||||
{
|
||||
/**
|
||||
* @brief Context for cancelling long running operations.
|
||||
*/
|
||||
Azure::Core::Context Context;
|
||||
|
||||
/**
|
||||
* @brief Optional conditions that must be met to perform this operation.
|
||||
*/
|
||||
ModifiedTimeConditions AccessConditions;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Optional parameters for BlobContainerClient::ChangeLease.
|
||||
*/
|
||||
struct ChangeContainerLeaseOptions : public ModifiedTimeConditions
|
||||
struct ChangeContainerLeaseOptions
|
||||
{
|
||||
/**
|
||||
* @brief Context for cancelling long running operations.
|
||||
*/
|
||||
Azure::Core::Context Context;
|
||||
|
||||
/**
|
||||
* @brief Optional conditions that must be met to perform this operation.
|
||||
*/
|
||||
ModifiedTimeConditions AccessConditions;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Optional parameters for BlobContainerClient::ReleaseLease.
|
||||
*/
|
||||
struct ReleaseContainerLeaseOptions : public ModifiedTimeConditions
|
||||
struct ReleaseContainerLeaseOptions
|
||||
{
|
||||
/**
|
||||
* @brief Context for cancelling long running operations.
|
||||
*/
|
||||
Azure::Core::Context Context;
|
||||
|
||||
/**
|
||||
* @brief Optional conditions that must be met to perform this operation.
|
||||
*/
|
||||
ModifiedTimeConditions AccessConditions;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Optional parameters for BlobContainerClient::BreakLease.
|
||||
*/
|
||||
struct BreakContainerLeaseOptions : public ModifiedTimeConditions
|
||||
struct BreakContainerLeaseOptions
|
||||
{
|
||||
/**
|
||||
* @brief Context for cancelling long running operations.
|
||||
@ -496,6 +525,11 @@ namespace Azure { namespace Storage { namespace Blobs {
|
||||
* break period.
|
||||
*/
|
||||
Azure::Core::Nullable<int32_t> BreakPeriod;
|
||||
|
||||
/**
|
||||
* @brief Optional conditions that must be met to perform this operation.
|
||||
*/
|
||||
ModifiedTimeConditions AccessConditions;
|
||||
};
|
||||
|
||||
/**
|
||||
@ -754,61 +788,71 @@ namespace Azure { namespace Storage { namespace Blobs {
|
||||
/**
|
||||
* @brief Optional parameters for BlobClient::AcquireLease.
|
||||
*/
|
||||
struct AcquireBlobLeaseOptions : public ModifiedTimeConditions,
|
||||
public ETagAccessConditions,
|
||||
public TagAccessConditions
|
||||
struct AcquireBlobLeaseOptions
|
||||
{
|
||||
/**
|
||||
* @brief Context for cancelling long running operations.
|
||||
*/
|
||||
Azure::Core::Context Context;
|
||||
|
||||
/**
|
||||
* @brief Optional conditions that must be met to perform this operation.
|
||||
*/
|
||||
LeaseBlobAccessConditions AccessConditions;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Optional parameters for BlobClient::RenewLease.
|
||||
*/
|
||||
struct RenewBlobLeaseOptions : public ModifiedTimeConditions,
|
||||
public ETagAccessConditions,
|
||||
public TagAccessConditions
|
||||
struct RenewBlobLeaseOptions
|
||||
{
|
||||
/**
|
||||
* @brief Context for cancelling long running operations.
|
||||
*/
|
||||
Azure::Core::Context Context;
|
||||
|
||||
/**
|
||||
* @brief Optional conditions that must be met to perform this operation.
|
||||
*/
|
||||
LeaseBlobAccessConditions AccessConditions;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Optional parameters for BlobClient::ChangeLease.
|
||||
*/
|
||||
struct ChangeBlobLeaseOptions : public ModifiedTimeConditions,
|
||||
public ETagAccessConditions,
|
||||
public TagAccessConditions
|
||||
struct ChangeBlobLeaseOptions
|
||||
{
|
||||
/**
|
||||
* @brief Context for cancelling long running operations.
|
||||
*/
|
||||
Azure::Core::Context Context;
|
||||
|
||||
/**
|
||||
* @brief Optional conditions that must be met to perform this operation.
|
||||
*/
|
||||
LeaseBlobAccessConditions AccessConditions;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Optional parameters for BlobClient::ReleaseLease.
|
||||
*/
|
||||
struct ReleaseBlobLeaseOptions : public ModifiedTimeConditions,
|
||||
public ETagAccessConditions,
|
||||
public TagAccessConditions
|
||||
struct ReleaseBlobLeaseOptions
|
||||
{
|
||||
/**
|
||||
* @brief Context for cancelling long running operations.
|
||||
*/
|
||||
Azure::Core::Context Context;
|
||||
|
||||
/**
|
||||
* @brief Optional conditions that must be met to perform this operation.
|
||||
*/
|
||||
LeaseBlobAccessConditions AccessConditions;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Optional parameters for BlobClient::BreakLease.
|
||||
*/
|
||||
struct BreakBlobLeaseOptions : public ModifiedTimeConditions,
|
||||
public ETagAccessConditions,
|
||||
public TagAccessConditions
|
||||
struct BreakBlobLeaseOptions
|
||||
{
|
||||
/**
|
||||
* @brief Context for cancelling long running operations.
|
||||
@ -823,28 +867,43 @@ namespace Azure { namespace Storage { namespace Blobs {
|
||||
* break period.
|
||||
*/
|
||||
Azure::Core::Nullable<int32_t> BreakPeriod;
|
||||
|
||||
/**
|
||||
* @brief Optional conditions that must be met to perform this operation.
|
||||
*/
|
||||
LeaseBlobAccessConditions AccessConditions;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Optional parameters for BlobClient::SetTags.
|
||||
*/
|
||||
struct SetBlobTagsOptions : public TagAccessConditions
|
||||
struct SetBlobTagsOptions
|
||||
{
|
||||
/**
|
||||
* @brief Context for cancelling long running operations.
|
||||
*/
|
||||
Azure::Core::Context Context;
|
||||
|
||||
/**
|
||||
* @brief Optional conditions that must be met to perform this operation.
|
||||
*/
|
||||
TagAccessConditions AccessConditions;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Optional parameters for BlobClient::GetTags.
|
||||
*/
|
||||
struct GetBlobTagsOptions : public TagAccessConditions
|
||||
struct GetBlobTagsOptions
|
||||
{
|
||||
/**
|
||||
* @brief Context for cancelling long running operations.
|
||||
*/
|
||||
Azure::Core::Context Context;
|
||||
|
||||
/**
|
||||
* @brief Optional conditions that must be met to perform this operation.
|
||||
*/
|
||||
TagAccessConditions AccessConditions;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@ -644,11 +644,11 @@ namespace Azure { namespace Storage { namespace Blobs {
|
||||
Details::BlobRestClient::Blob::AcquireBlobLeaseOptions protocolLayerOptions;
|
||||
protocolLayerOptions.ProposedLeaseId = proposedLeaseId;
|
||||
protocolLayerOptions.LeaseDuration = duration;
|
||||
protocolLayerOptions.IfModifiedSince = options.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.IfUnmodifiedSince;
|
||||
protocolLayerOptions.IfMatch = options.IfMatch;
|
||||
protocolLayerOptions.IfNoneMatch = options.IfNoneMatch;
|
||||
protocolLayerOptions.IfTags = options.TagConditions;
|
||||
protocolLayerOptions.IfModifiedSince = options.AccessConditions.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.AccessConditions.IfUnmodifiedSince;
|
||||
protocolLayerOptions.IfMatch = options.AccessConditions.IfMatch;
|
||||
protocolLayerOptions.IfNoneMatch = options.AccessConditions.IfNoneMatch;
|
||||
protocolLayerOptions.IfTags = options.AccessConditions.TagConditions;
|
||||
return Details::BlobRestClient::Blob::AcquireLease(
|
||||
options.Context, *m_pipeline, m_blobUrl, protocolLayerOptions);
|
||||
}
|
||||
@ -659,11 +659,11 @@ namespace Azure { namespace Storage { namespace Blobs {
|
||||
{
|
||||
Details::BlobRestClient::Blob::RenewBlobLeaseOptions protocolLayerOptions;
|
||||
protocolLayerOptions.LeaseId = leaseId;
|
||||
protocolLayerOptions.IfModifiedSince = options.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.IfUnmodifiedSince;
|
||||
protocolLayerOptions.IfMatch = options.IfMatch;
|
||||
protocolLayerOptions.IfNoneMatch = options.IfNoneMatch;
|
||||
protocolLayerOptions.IfTags = options.TagConditions;
|
||||
protocolLayerOptions.IfModifiedSince = options.AccessConditions.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.AccessConditions.IfUnmodifiedSince;
|
||||
protocolLayerOptions.IfMatch = options.AccessConditions.IfMatch;
|
||||
protocolLayerOptions.IfNoneMatch = options.AccessConditions.IfNoneMatch;
|
||||
protocolLayerOptions.IfTags = options.AccessConditions.TagConditions;
|
||||
return Details::BlobRestClient::Blob::RenewLease(
|
||||
options.Context, *m_pipeline, m_blobUrl, protocolLayerOptions);
|
||||
}
|
||||
@ -674,11 +674,11 @@ namespace Azure { namespace Storage { namespace Blobs {
|
||||
{
|
||||
Details::BlobRestClient::Blob::ReleaseBlobLeaseOptions protocolLayerOptions;
|
||||
protocolLayerOptions.LeaseId = leaseId;
|
||||
protocolLayerOptions.IfModifiedSince = options.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.IfUnmodifiedSince;
|
||||
protocolLayerOptions.IfMatch = options.IfMatch;
|
||||
protocolLayerOptions.IfNoneMatch = options.IfNoneMatch;
|
||||
protocolLayerOptions.IfTags = options.TagConditions;
|
||||
protocolLayerOptions.IfModifiedSince = options.AccessConditions.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.AccessConditions.IfUnmodifiedSince;
|
||||
protocolLayerOptions.IfMatch = options.AccessConditions.IfMatch;
|
||||
protocolLayerOptions.IfNoneMatch = options.AccessConditions.IfNoneMatch;
|
||||
protocolLayerOptions.IfTags = options.AccessConditions.TagConditions;
|
||||
return Details::BlobRestClient::Blob::ReleaseLease(
|
||||
options.Context, *m_pipeline, m_blobUrl, protocolLayerOptions);
|
||||
}
|
||||
@ -691,11 +691,11 @@ namespace Azure { namespace Storage { namespace Blobs {
|
||||
Details::BlobRestClient::Blob::ChangeBlobLeaseOptions protocolLayerOptions;
|
||||
protocolLayerOptions.LeaseId = leaseId;
|
||||
protocolLayerOptions.ProposedLeaseId = proposedLeaseId;
|
||||
protocolLayerOptions.IfModifiedSince = options.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.IfUnmodifiedSince;
|
||||
protocolLayerOptions.IfMatch = options.IfMatch;
|
||||
protocolLayerOptions.IfNoneMatch = options.IfNoneMatch;
|
||||
protocolLayerOptions.IfTags = options.TagConditions;
|
||||
protocolLayerOptions.IfModifiedSince = options.AccessConditions.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.AccessConditions.IfUnmodifiedSince;
|
||||
protocolLayerOptions.IfMatch = options.AccessConditions.IfMatch;
|
||||
protocolLayerOptions.IfNoneMatch = options.AccessConditions.IfNoneMatch;
|
||||
protocolLayerOptions.IfTags = options.AccessConditions.TagConditions;
|
||||
return Details::BlobRestClient::Blob::ChangeLease(
|
||||
options.Context, *m_pipeline, m_blobUrl, protocolLayerOptions);
|
||||
}
|
||||
@ -705,11 +705,11 @@ namespace Azure { namespace Storage { namespace Blobs {
|
||||
{
|
||||
Details::BlobRestClient::Blob::BreakBlobLeaseOptions protocolLayerOptions;
|
||||
protocolLayerOptions.BreakPeriod = options.BreakPeriod;
|
||||
protocolLayerOptions.IfModifiedSince = options.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.IfUnmodifiedSince;
|
||||
protocolLayerOptions.IfMatch = options.IfMatch;
|
||||
protocolLayerOptions.IfNoneMatch = options.IfNoneMatch;
|
||||
protocolLayerOptions.IfTags = options.TagConditions;
|
||||
protocolLayerOptions.IfModifiedSince = options.AccessConditions.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.AccessConditions.IfUnmodifiedSince;
|
||||
protocolLayerOptions.IfMatch = options.AccessConditions.IfMatch;
|
||||
protocolLayerOptions.IfNoneMatch = options.AccessConditions.IfNoneMatch;
|
||||
protocolLayerOptions.IfTags = options.AccessConditions.TagConditions;
|
||||
return Details::BlobRestClient::Blob::BreakLease(
|
||||
options.Context, *m_pipeline, m_blobUrl, protocolLayerOptions);
|
||||
}
|
||||
@ -720,7 +720,7 @@ namespace Azure { namespace Storage { namespace Blobs {
|
||||
{
|
||||
Details::BlobRestClient::Blob::SetBlobTagsOptions protocolLayerOptions;
|
||||
protocolLayerOptions.Tags = std::move(tags);
|
||||
protocolLayerOptions.IfTags = options.TagConditions;
|
||||
protocolLayerOptions.IfTags = options.AccessConditions.TagConditions;
|
||||
return Details::BlobRestClient::Blob::SetTags(
|
||||
options.Context, *m_pipeline, m_blobUrl, protocolLayerOptions);
|
||||
}
|
||||
@ -729,7 +729,7 @@ namespace Azure { namespace Storage { namespace Blobs {
|
||||
const GetBlobTagsOptions& options) const
|
||||
{
|
||||
Details::BlobRestClient::Blob::GetBlobTagsOptions protocolLayerOptions;
|
||||
protocolLayerOptions.IfTags = options.TagConditions;
|
||||
protocolLayerOptions.IfTags = options.AccessConditions.TagConditions;
|
||||
return Details::BlobRestClient::Blob::GetTags(
|
||||
options.Context, *m_pipeline, m_blobUrl, protocolLayerOptions);
|
||||
}
|
||||
|
||||
@ -271,8 +271,8 @@ namespace Azure { namespace Storage { namespace Blobs {
|
||||
Details::BlobRestClient::Container::AcquireContainerLeaseOptions protocolLayerOptions;
|
||||
protocolLayerOptions.ProposedLeaseId = proposedLeaseId;
|
||||
protocolLayerOptions.LeaseDuration = duration;
|
||||
protocolLayerOptions.IfModifiedSince = options.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.IfUnmodifiedSince;
|
||||
protocolLayerOptions.IfModifiedSince = options.AccessConditions.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.AccessConditions.IfUnmodifiedSince;
|
||||
return Details::BlobRestClient::Container::AcquireLease(
|
||||
options.Context, *m_pipeline, m_containerUrl, protocolLayerOptions);
|
||||
}
|
||||
@ -283,8 +283,8 @@ namespace Azure { namespace Storage { namespace Blobs {
|
||||
{
|
||||
Details::BlobRestClient::Container::RenewContainerLeaseOptions protocolLayerOptions;
|
||||
protocolLayerOptions.LeaseId = leaseId;
|
||||
protocolLayerOptions.IfModifiedSince = options.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.IfUnmodifiedSince;
|
||||
protocolLayerOptions.IfModifiedSince = options.AccessConditions.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.AccessConditions.IfUnmodifiedSince;
|
||||
return Details::BlobRestClient::Container::RenewLease(
|
||||
options.Context, *m_pipeline, m_containerUrl, protocolLayerOptions);
|
||||
}
|
||||
@ -295,8 +295,8 @@ namespace Azure { namespace Storage { namespace Blobs {
|
||||
{
|
||||
Details::BlobRestClient::Container::ReleaseContainerLeaseOptions protocolLayerOptions;
|
||||
protocolLayerOptions.LeaseId = leaseId;
|
||||
protocolLayerOptions.IfModifiedSince = options.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.IfUnmodifiedSince;
|
||||
protocolLayerOptions.IfModifiedSince = options.AccessConditions.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.AccessConditions.IfUnmodifiedSince;
|
||||
return Details::BlobRestClient::Container::ReleaseLease(
|
||||
options.Context, *m_pipeline, m_containerUrl, protocolLayerOptions);
|
||||
}
|
||||
@ -309,8 +309,8 @@ namespace Azure { namespace Storage { namespace Blobs {
|
||||
Details::BlobRestClient::Container::ChangeContainerLeaseOptions protocolLayerOptions;
|
||||
protocolLayerOptions.LeaseId = leaseId;
|
||||
protocolLayerOptions.ProposedLeaseId = proposedLeaseId;
|
||||
protocolLayerOptions.IfModifiedSince = options.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.IfUnmodifiedSince;
|
||||
protocolLayerOptions.IfModifiedSince = options.AccessConditions.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.AccessConditions.IfUnmodifiedSince;
|
||||
return Details::BlobRestClient::Container::ChangeLease(
|
||||
options.Context, *m_pipeline, m_containerUrl, protocolLayerOptions);
|
||||
}
|
||||
@ -320,8 +320,8 @@ namespace Azure { namespace Storage { namespace Blobs {
|
||||
{
|
||||
Details::BlobRestClient::Container::BreakContainerLeaseOptions protocolLayerOptions;
|
||||
protocolLayerOptions.BreakPeriod = options.BreakPeriod;
|
||||
protocolLayerOptions.IfModifiedSince = options.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.IfUnmodifiedSince;
|
||||
protocolLayerOptions.IfModifiedSince = options.AccessConditions.IfModifiedSince;
|
||||
protocolLayerOptions.IfUnmodifiedSince = options.AccessConditions.IfUnmodifiedSince;
|
||||
return Details::BlobRestClient::Container::BreakLease(
|
||||
options.Context, *m_pipeline, m_containerUrl, protocolLayerOptions);
|
||||
}
|
||||
|
||||
@ -930,15 +930,15 @@ namespace Azure { namespace Storage { namespace Test {
|
||||
{
|
||||
std::string leaseId = CreateUniqueLeaseId();
|
||||
Blobs::AcquireBlobLeaseOptions options;
|
||||
options.TagConditions = failWhereExpression;
|
||||
options.AccessConditions.TagConditions = failWhereExpression;
|
||||
EXPECT_THROW(appendBlobClient.AcquireLease(leaseId, 60, options), StorageException);
|
||||
options.TagConditions = successWhereExpression;
|
||||
options.AccessConditions.TagConditions = successWhereExpression;
|
||||
EXPECT_NO_THROW(appendBlobClient.AcquireLease(leaseId, 60, options));
|
||||
|
||||
Blobs::BreakBlobLeaseOptions options2;
|
||||
options2.TagConditions = failWhereExpression;
|
||||
options2.AccessConditions.TagConditions = failWhereExpression;
|
||||
EXPECT_THROW(appendBlobClient.BreakLease(options2), StorageException);
|
||||
options2.TagConditions = successWhereExpression;
|
||||
options2.AccessConditions.TagConditions = successWhereExpression;
|
||||
EXPECT_NO_THROW(appendBlobClient.BreakLease(options2));
|
||||
|
||||
Blobs::DeleteBlobOptions options3;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user