Skip to content

Commit cfb7aa0

Browse files
Remove set expiry from blob client (Azure#19626)
* Moving set expiry to block and append blob * Removing set expiry from blob client
1 parent 2649fde commit cfb7aa0

File tree

16 files changed

+141
-91
lines changed

16 files changed

+141
-91
lines changed

sdk/storage/azblob/appendblob/client.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,11 @@ func (ab *Client) generated() *generated.AppendBlobClient {
104104
return appendBlob
105105
}
106106

107+
func (ab *Client) innerBlobGenerated() *generated.BlobClient {
108+
b := ab.BlobClient()
109+
return base.InnerClient((*base.Client[generated.BlobClient])(b))
110+
}
111+
107112
// URL returns the URL endpoint used by the Client object.
108113
func (ab *Client) URL() string {
109114
return ab.generated().Endpoint()
@@ -221,8 +226,13 @@ func (ab *Client) SetTier(ctx context.Context, tier blob.AccessTier, o *blob.Set
221226

222227
// SetExpiry operation sets an expiry time on an existing blob. This operation is only allowed on Hierarchical Namespace enabled accounts.
223228
// For more information, see https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-expiry
224-
func (ab *Client) SetExpiry(ctx context.Context, expiryType blob.ExpiryType, o *blob.SetExpiryOptions) (blob.SetExpiryResponse, error) {
225-
return ab.BlobClient().SetExpiry(ctx, expiryType, o)
229+
func (ab *Client) SetExpiry(ctx context.Context, expiryType ExpiryType, o *SetExpiryOptions) (SetExpiryResponse, error) {
230+
if expiryType == nil {
231+
expiryType = ExpiryTypeNever{}
232+
}
233+
et, opts := expiryType.Format(o)
234+
resp, err := ab.innerBlobGenerated().SetExpiry(ctx, et, opts)
235+
return resp, err
226236
}
227237

228238
// GetProperties returns the blob's properties.

sdk/storage/azblob/appendblob/client_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2187,7 +2187,7 @@ func (s *AppendBlobRecordedTestsSuite) TestAppendBlobSetExpiryToNeverExpire() {
21872187
_require.Nil(err)
21882188
_require.Nil(resp.ExpiresOn)
21892189

2190-
_, err = abClient.SetExpiry(context.Background(), blob.ExpiryTypeNever{}, nil)
2190+
_, err = abClient.SetExpiry(context.Background(), appendblob.ExpiryTypeNever{}, nil)
21912191
_require.Nil(err)
21922192

21932193
resp, err = abClient.GetProperties(context.Background(), nil)
@@ -2215,7 +2215,7 @@ func (s *AppendBlobRecordedTestsSuite) TestAppendBlobSetExpiryRelativeToNow() {
22152215
_require.Nil(err)
22162216
_require.Nil(resp.ExpiresOn)
22172217

2218-
_, err = abClient.SetExpiry(context.Background(), blob.ExpiryTypeRelativeToNow(8*time.Second), nil)
2218+
_, err = abClient.SetExpiry(context.Background(), appendblob.ExpiryTypeRelativeToNow(8*time.Second), nil)
22192219
_require.Nil(err)
22202220

22212221
resp, err = abClient.GetProperties(context.Background(), nil)
@@ -2248,7 +2248,7 @@ func (s *AppendBlobRecordedTestsSuite) TestAppendBlobSetExpiryRelativeToCreation
22482248
_require.Nil(err)
22492249
_require.Nil(resp.ExpiresOn)
22502250

2251-
_, err = abClient.SetExpiry(context.Background(), blob.ExpiryTypeRelativeToCreation(8*time.Second), nil)
2251+
_, err = abClient.SetExpiry(context.Background(), appendblob.ExpiryTypeRelativeToCreation(8*time.Second), nil)
22522252
_require.Nil(err)
22532253

22542254
resp, err = abClient.GetProperties(context.Background(), nil)
@@ -2282,7 +2282,7 @@ func (s *AppendBlobUnrecordedTestsSuite) TestAppendBlobSetExpiryToAbsolute() {
22822282
_require.Nil(resp.ExpiresOn)
22832283

22842284
expiryTimeAbsolute := time.Now().Add(8 * time.Second)
2285-
_, err = abClient.SetExpiry(context.Background(), blob.ExpiryTypeAbsolute(expiryTimeAbsolute), nil)
2285+
_, err = abClient.SetExpiry(context.Background(), appendblob.ExpiryTypeAbsolute(expiryTimeAbsolute), nil)
22862286
_require.Nil(err)
22872287

22882288
resp, err = abClient.GetProperties(context.Background(), nil)

sdk/storage/azblob/appendblob/examples_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
"bytes"
1111
"context"
1212
"fmt"
13-
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/blob"
1413
"log"
1514
"net/http"
1615
"os"
@@ -89,7 +88,7 @@ func Example_appendblob_SetExpiry() {
8988

9089
// set expiry on append blob to an absolute time
9190
expiryTimeAbsolute := time.Now().Add(8 * time.Hour)
92-
_, err = appendBlobClient.SetExpiry(context.TODO(), blob.ExpiryTypeAbsolute(expiryTimeAbsolute), nil)
91+
_, err = appendBlobClient.SetExpiry(context.TODO(), appendblob.ExpiryTypeAbsolute(expiryTimeAbsolute), nil)
9392
handleError(err)
9493

9594
// validate set expiry operation

sdk/storage/azblob/appendblob/models.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,3 +164,21 @@ func (o *SealOptions) format() (*generated.LeaseAccessConditions,
164164
}
165165

166166
// ---------------------------------------------------------------------------------------------------------------------
167+
168+
// ExpiryType defines values for ExpiryType
169+
type ExpiryType = exported.ExpiryType
170+
171+
// ExpiryTypeAbsolute defines the absolute time for the blob expiry
172+
type ExpiryTypeAbsolute = exported.ExpiryTypeAbsolute
173+
174+
// ExpiryTypeRelativeToNow defines the duration relative to now for the blob expiry
175+
type ExpiryTypeRelativeToNow = exported.ExpiryTypeRelativeToNow
176+
177+
// ExpiryTypeRelativeToCreation defines the duration relative to creation for the blob expiry
178+
type ExpiryTypeRelativeToCreation = exported.ExpiryTypeRelativeToCreation
179+
180+
// ExpiryTypeNever defines that the blob will be set to never expire
181+
type ExpiryTypeNever = exported.ExpiryTypeNever
182+
183+
// SetExpiryOptions contains the optional parameters for the Client.SetExpiry method.
184+
type SetExpiryOptions = exported.SetExpiryOptions

sdk/storage/azblob/appendblob/responses.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,6 @@ type AppendBlockFromURLResponse = generated.AppendBlobClientAppendBlockFromURLRe
2121

2222
// SealResponse contains the response from method Client.Seal.
2323
type SealResponse = generated.AppendBlobClientSealResponse
24+
25+
// SetExpiryResponse contains the response from method BlobClient.SetExpiry.
26+
type SetExpiryResponse = generated.BlobClientSetExpiryResponse

sdk/storage/azblob/blob/client.go

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -158,17 +158,6 @@ func (b *Client) SetTier(ctx context.Context, tier AccessTier, o *SetTierOptions
158158
return resp, err
159159
}
160160

161-
// SetExpiry operation sets an expiry time on an existing blob. This operation is only allowed on Hierarchical Namespace enabled accounts.
162-
// For more information, see https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-expiry
163-
func (b *Client) SetExpiry(ctx context.Context, expiryType ExpiryType, o *SetExpiryOptions) (SetExpiryResponse, error) {
164-
if expiryType == nil {
165-
expiryType = ExpiryTypeNever{}
166-
}
167-
et, opts := expiryType.format(o)
168-
resp, err := b.generated().SetExpiry(ctx, et, opts)
169-
return resp, err
170-
}
171-
172161
// GetProperties returns the blob's properties.
173162
// For more information, see https://docs.microsoft.com/rest/api/storageservices/get-blob-properties.
174163
func (b *Client) GetProperties(ctx context.Context, options *GetPropertiesOptions) (GetPropertiesResponse, error) {

sdk/storage/azblob/blob/client_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3420,7 +3420,7 @@ func (s *BlobRecordedTestsSuite) TestBlobSetExpiry() {
34203420
_require.Nil(err)
34213421
_require.Nil(resp.ExpiresOn)
34223422

3423-
_, err = bbClient.SetExpiry(context.Background(), blob.ExpiryTypeRelativeToNow(8*time.Second), nil)
3423+
_, err = bbClient.SetExpiry(context.Background(), blockblob.ExpiryTypeRelativeToNow(8*time.Second), nil)
34243424
_require.Nil(err)
34253425

34263426
resp, err = bbClient.GetProperties(context.Background(), nil)

sdk/storage/azblob/blob/constants.go

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ package blob
99
import (
1010
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/exported"
1111
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/generated"
12-
"time"
1312
)
1413

1514
const (
@@ -169,33 +168,6 @@ func PossibleDeleteTypeValues() []DeleteType {
169168
return generated.PossibleDeleteTypeValues()
170169
}
171170

172-
// ExpiryOptions defines values for ExpiryOptions
173-
type ExpiryOptions = generated.ExpiryOptions
174-
175-
// ExpiryType defines values for ExpiryType
176-
type ExpiryType interface {
177-
format(o *SetExpiryOptions) (generated.ExpiryOptions, *generated.BlobClientSetExpiryOptions)
178-
}
179-
180-
// ExpiryTypeAbsolute defines the absolute time for the blob expiry
181-
type ExpiryTypeAbsolute time.Time
182-
183-
// ExpiryTypeRelativeToNow defines the duration relative to now for the blob expiry
184-
type ExpiryTypeRelativeToNow time.Duration
185-
186-
// ExpiryTypeRelativeToCreation defines the duration relative to creation for the blob expiry
187-
type ExpiryTypeRelativeToCreation time.Duration
188-
189-
// ExpiryTypeNever defines that the blob will be set to never expire
190-
type ExpiryTypeNever struct {
191-
// empty struct since NeverExpire expiry type does not require expiry time
192-
}
193-
194-
// PossibleExpiryOptionsValues returns the possible values for the ExpiryOptions const type.
195-
func PossibleExpiryOptionsValues() []ExpiryOptions {
196-
return generated.PossibleExpiryOptionsValues()
197-
}
198-
199171
// QueryFormatType - The quick query format type.
200172
type QueryFormatType = generated.QueryFormatType
201173

sdk/storage/azblob/blob/models.go

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@
77
package blob
88

99
import (
10-
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
11-
"net/http"
12-
"strconv"
1310
"time"
1411

1512
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/exported"
@@ -253,35 +250,6 @@ func (o *SetTierOptions) format() (*generated.BlobClientSetTierOptions, *generat
253250

254251
// ---------------------------------------------------------------------------------------------------------------------
255252

256-
// SetExpiryOptions contains the optional parameters for the Client.SetExpiry method.
257-
type SetExpiryOptions struct {
258-
// placeholder for future options
259-
}
260-
261-
func (e ExpiryTypeAbsolute) format(o *SetExpiryOptions) (generated.ExpiryOptions, *generated.BlobClientSetExpiryOptions) {
262-
return generated.ExpiryOptionsAbsolute, &generated.BlobClientSetExpiryOptions{
263-
ExpiresOn: to.Ptr(time.Time(e).UTC().Format(http.TimeFormat)),
264-
}
265-
}
266-
267-
func (e ExpiryTypeRelativeToNow) format(o *SetExpiryOptions) (generated.ExpiryOptions, *generated.BlobClientSetExpiryOptions) {
268-
return generated.ExpiryOptionsRelativeToNow, &generated.BlobClientSetExpiryOptions{
269-
ExpiresOn: to.Ptr(strconv.FormatInt(time.Duration(e).Milliseconds(), 10)),
270-
}
271-
}
272-
273-
func (e ExpiryTypeRelativeToCreation) format(o *SetExpiryOptions) (generated.ExpiryOptions, *generated.BlobClientSetExpiryOptions) {
274-
return generated.ExpiryOptionsRelativeToCreation, &generated.BlobClientSetExpiryOptions{
275-
ExpiresOn: to.Ptr(strconv.FormatInt(time.Duration(e).Milliseconds(), 10)),
276-
}
277-
}
278-
279-
func (e ExpiryTypeNever) format(o *SetExpiryOptions) (generated.ExpiryOptions, *generated.BlobClientSetExpiryOptions) {
280-
return generated.ExpiryOptionsNeverExpire, nil
281-
}
282-
283-
// ---------------------------------------------------------------------------------------------------------------------
284-
285253
// GetPropertiesOptions contains the optional parameters for the Client.GetProperties method
286254
type GetPropertiesOptions struct {
287255
AccessConditions *AccessConditions

sdk/storage/azblob/blob/responses.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,6 @@ type UndeleteResponse = generated.BlobClientUndeleteResponse
6161
// SetTierResponse contains the response from method BlobClient.SetTier.
6262
type SetTierResponse = generated.BlobClientSetTierResponse
6363

64-
// SetExpiryResponse contains the response from method BlobClient.SetExpiry.
65-
type SetExpiryResponse = generated.BlobClientSetExpiryResponse
66-
6764
// GetPropertiesResponse contains the response from method BlobClient.GetProperties.
6865
type GetPropertiesResponse = generated.BlobClientGetPropertiesResponse
6966

0 commit comments

Comments
 (0)