Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restructuring of NFSProperties #24238

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions sdk/storage/azfile/directory/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -298,9 +298,11 @@ func (d *DirectoryRecordedTestsSuite) TestDirCreateNfs() {
_require.NoError(err)

cResp, err := dirClient.Create(context.Background(), &directory.CreateOptions{
Owner: to.Ptr(owner),
Group: to.Ptr(group),
FileMode: to.Ptr(mode),
FileNFSProperties: &file.NFSProperties{
Owner: to.Ptr(owner),
Group: to.Ptr(group),
FileMode: to.Ptr(mode),
},
})
_require.NoError(err)
_require.NotNil(cResp.ETag)
Expand Down Expand Up @@ -537,9 +539,11 @@ func (d *DirectoryRecordedTestsSuite) TestDirSetPropertiesNfs() {

// Set the custom permissions
_, err = dirClient.SetProperties(context.Background(), &directory.SetPropertiesOptions{
Owner: to.Ptr(owner),
Group: to.Ptr(group),
FileMode: to.Ptr(mode),
FileNFSProperties: &file.NFSProperties{
Owner: to.Ptr(owner),
Group: to.Ptr(group),
FileMode: to.Ptr(mode),
},
})
_require.NoError(err)

Expand Down
16 changes: 10 additions & 6 deletions sdk/storage/azfile/directory/examples_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -309,9 +309,11 @@ func Example_client_CreateDirectoryNFS() {
dirClient := shareClient.NewDirectoryClient(dirName)

_, err = dirClient.Create(context.Background(), &directory.CreateOptions{
Owner: to.Ptr("123"),
Group: to.Ptr("345"),
FileMode: to.Ptr("7774"),
FileNFSProperties: &file.NFSProperties{
Owner: to.Ptr("123"),
Group: to.Ptr("345"),
FileMode: to.Ptr("7774"),
},
})
handleError(err)
}
Expand Down Expand Up @@ -351,9 +353,11 @@ func Example_client_SetHTTPHeadersNFS() {

// Set the custom permissions
_, err = dirClient.SetProperties(context.Background(), &directory.SetPropertiesOptions{
Owner: to.Ptr(owner),
Group: to.Ptr(group),
FileMode: to.Ptr(mode),
FileNFSProperties: &file.NFSProperties{
Owner: to.Ptr(owner),
Group: to.Ptr(group),
FileMode: to.Ptr(mode),
},
})
handleError(err)
}
117 changes: 68 additions & 49 deletions sdk/storage/azfile/directory/models.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ type DestinationLeaseAccessConditions = generated.DestinationLeaseAccessConditio
type CreateOptions struct {
// The default value is 'Directory' for Attributes and 'now' for CreationTime and LastWriteTime fields in file.SMBProperties.
FileSMBProperties *file.SMBProperties
// NFS only.
FileNFSProperties *file.NFSProperties
// The default value is 'inherit' for Permission field in file.Permissions.
FilePermissions *file.Permissions
// A name-value pair to associate with a file storage object.
Expand All @@ -43,38 +45,46 @@ type CreateOptions struct {
// binary, the permission is returned as a base64 string representing the binary
// encoding of the permission
FilePermissionFormat *FilePermissionFormat
// NFS only. The file mode of the file or directory
FileMode *string
// NFS only. The owner of the file or directory.
Owner *string
// NFS only. The owning group of the file or directory.
Group *string
}

func (o *CreateOptions) format() *generated.DirectoryClientCreateOptions {
if o == nil {
return nil
}

fileAttributes, fileCreationTime, fileLastWriteTime, fileChangeTime := exported.FormatSMBProperties(o.FileSMBProperties, true)
permission, permissionKey := exported.FormatPermissions(o.FilePermissions)
createOptions := &generated.DirectoryClientCreateOptions{
FileAttributes: fileAttributes,
FileChangeTime: fileChangeTime,
FileCreationTime: fileCreationTime,
FileLastWriteTime: fileLastWriteTime,
FilePermission: permission,
FilePermissionKey: permissionKey,
Metadata: o.Metadata,
FileMode: o.FileMode,
Owner: o.Owner,
Group: o.Group,
}

if permissionKey != nil && *permissionKey != shared.DefaultFilePermissionString {
createOptions.FilePermissionFormat = to.Ptr(FilePermissionFormat(shared.DefaultFilePermissionFormat))
} else if o.FilePermissionFormat != nil {
createOptions.FilePermissionFormat = to.Ptr(FilePermissionFormat(*o.FilePermissionFormat))
var createOptions *generated.DirectoryClientCreateOptions

if o.FileNFSProperties != nil {
fileCreationTime, fileLastWriteTime := exported.FormatNFSProperties(o.FileNFSProperties, true)

createOptions = &generated.DirectoryClientCreateOptions{
FileCreationTime: fileCreationTime,
FileLastWriteTime: fileLastWriteTime,
FileMode: o.FileNFSProperties.FileMode,
Group: o.FileNFSProperties.Group,
Owner: o.FileNFSProperties.Owner,
Metadata: o.Metadata,
}

} else {
fileAttributes, fileCreationTime, fileLastWriteTime, fileChangeTime := exported.FormatSMBProperties(o.FileSMBProperties, true)
permission, permissionKey := exported.FormatPermissions(o.FilePermissions)

createOptions = &generated.DirectoryClientCreateOptions{
FileAttributes: fileAttributes,
FileChangeTime: fileChangeTime,
FileCreationTime: fileCreationTime,
FileLastWriteTime: fileLastWriteTime,
FilePermission: permission,
FilePermissionKey: permissionKey,
Metadata: o.Metadata,
}

if permissionKey != nil && *permissionKey != shared.DefaultFilePermissionString {
createOptions.FilePermissionFormat = to.Ptr(FilePermissionFormat(shared.DefaultFilePermissionFormat))
} else if o.FilePermissionFormat != nil {
createOptions.FilePermissionFormat = to.Ptr(FilePermissionFormat(*o.FilePermissionFormat))
}
}

return createOptions
Expand Down Expand Up @@ -171,43 +181,52 @@ func (o *GetPropertiesOptions) format() *generated.DirectoryClientGetPropertiesO
type SetPropertiesOptions struct {
// The default value is 'preserve' for Attributes, CreationTime and LastWriteTime fields in file.SMBProperties.
FileSMBProperties *file.SMBProperties
// NFS only.
FileNFSProperties *file.NFSProperties
// The default value is 'preserve' for Permission field in file.Permissions.
FilePermissions *file.Permissions
// FilePermissionFormat contains the format of the file permissions, Can be sddl (Default) or Binary.
FilePermissionFormat *FilePermissionFormat
// NFS only. The file mode of the file or directory
FileMode *string
// NFS only. The owner of the file or directory.
Owner *string
// NFS only. The owning group of the file or directory.
Group *string
}

func (o *SetPropertiesOptions) format() *generated.DirectoryClientSetPropertiesOptions {
if o == nil {
return nil
}

fileAttributes, fileCreationTime, fileLastWriteTime, fileChangeTime := exported.FormatSMBProperties(o.FileSMBProperties, true)
permission, permissionKey := exported.FormatPermissions(o.FilePermissions)

setPropertiesOptions := &generated.DirectoryClientSetPropertiesOptions{
FileAttributes: fileAttributes,
FileChangeTime: fileChangeTime,
FileCreationTime: fileCreationTime,
FileLastWriteTime: fileLastWriteTime,
FilePermission: permission,
FilePermissionKey: permissionKey,
FileMode: o.FileMode,
Owner: o.Owner,
Group: o.Group,
var setPropertiesOptions *generated.DirectoryClientSetPropertiesOptions

if o.FileNFSProperties != nil {
fileCreationTime, fileLastWriteTime := exported.FormatNFSProperties(o.FileNFSProperties, true)

setPropertiesOptions = &generated.DirectoryClientSetPropertiesOptions{
FileCreationTime: fileCreationTime,
FileLastWriteTime: fileLastWriteTime,
FileMode: o.FileNFSProperties.FileMode,
Owner: o.FileNFSProperties.Owner,
Group: o.FileNFSProperties.Group,
}

} else {
fileAttributes, fileCreationTime, fileLastWriteTime, fileChangeTime := exported.FormatSMBProperties(o.FileSMBProperties, true)
permission, permissionKey := exported.FormatPermissions(o.FilePermissions)

setPropertiesOptions = &generated.DirectoryClientSetPropertiesOptions{
FileAttributes: fileAttributes,
FileChangeTime: fileChangeTime,
FileCreationTime: fileCreationTime,
FileLastWriteTime: fileLastWriteTime,
FilePermission: permission,
FilePermissionKey: permissionKey,
}

if permissionKey != nil && *permissionKey != shared.DefaultPreserveString {
setPropertiesOptions.FilePermissionFormat = to.Ptr(FilePermissionFormat(shared.DefaultFilePermissionFormat))
} else if o.FilePermissionFormat != nil {
setPropertiesOptions.FilePermissionFormat = to.Ptr(FilePermissionFormat(*o.FilePermissionFormat))
}
}

if permissionKey != nil && *permissionKey != shared.DefaultPreserveString {
setPropertiesOptions.FilePermissionFormat = to.Ptr(FilePermissionFormat(shared.DefaultFilePermissionFormat))
} else if o.FilePermissionFormat != nil {
setPropertiesOptions.FilePermissionFormat = to.Ptr(FilePermissionFormat(*o.FilePermissionFormat))
}
return setPropertiesOptions
}

Expand Down
24 changes: 15 additions & 9 deletions sdk/storage/azfile/file/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -445,9 +445,11 @@ func (f *FileRecordedTestsSuite) TestCreateFileNFS() {
_require.NoError(err)
fClient := premiumShareClient.NewRootDirectoryClient().NewFileClient(testcommon.GenerateFileName(testName))
resp, err := fClient.Create(context.Background(), 1024, &file.CreateOptions{
Owner: to.Ptr(owner),
Group: to.Ptr(group),
FileMode: to.Ptr(fileMode),
NFSProperties: &file.NFSProperties{
Owner: to.Ptr(owner),
Group: to.Ptr(group),
FileMode: to.Ptr(fileMode),
},
})
_require.NoError(err)
_require.Equal(*resp.FileMode, fileMode)
Expand Down Expand Up @@ -680,9 +682,11 @@ func (f *FileRecordedTestsSuite) TestFileSetHTTPHeadersNfs() {
CacheControl: to.Ptr("no-transform"),
ContentDisposition: to.Ptr("attachment"),
},
Owner: to.Ptr(owner),
Group: to.Ptr(group),
FileMode: to.Ptr(fileMode),
NFSProperties: &file.NFSProperties{
Owner: to.Ptr(owner),
Group: to.Ptr(group),
FileMode: to.Ptr(fileMode),
},
}
setResp, err := fClient.SetHTTPHeaders(context.Background(), opts)
_require.NoError(err)
Expand Down Expand Up @@ -1736,9 +1740,11 @@ func (f *FileRecordedTestsSuite) TestFileStartCopyModeCopyModeNfs() {
_require.NoError(err)

_, err = copyFClient.StartCopyFromURL(context.Background(), fClient.URL(), &file.StartCopyFromURLOptions{
Owner: to.Ptr(owner),
Group: to.Ptr(group),
FileMode: to.Ptr(mode),
NFSProperties: &file.NFSProperties{
Owner: to.Ptr(owner),
Group: to.Ptr(group),
FileMode: to.Ptr(mode),
},
FileOwnerCopyMode: to.Ptr(file.OwnerCopyModeOverride),
FileModeCopyMode: to.Ptr(file.ModeCopyModeOverride),
})
Expand Down
16 changes: 10 additions & 6 deletions sdk/storage/azfile/file/examples_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -851,9 +851,11 @@ func Example_fileClient_CreateNFSShare() {

fClient := premiumShareClient.NewRootDirectoryClient().NewFileClient(testcommon.GenerateFileName(shareName))
_, err = fClient.Create(context.Background(), 1024, &file.CreateOptions{
Owner: to.Ptr(owner),
Group: to.Ptr(group),
FileMode: to.Ptr(fileMode),
NFSProperties: &file.NFSProperties{
Owner: to.Ptr(owner),
Group: to.Ptr(group),
FileMode: to.Ptr(fileMode),
},
})
handleError(err)
fmt.Println("NFS Share created with given properties")
Expand Down Expand Up @@ -906,9 +908,11 @@ func Example_fileClient_SetHttpHeadersNFS() {
CacheControl: to.Ptr("no-transform"),
ContentDisposition: to.Ptr("attachment"),
},
Owner: to.Ptr(owner),
Group: to.Ptr(group),
FileMode: to.Ptr(fileMode),
NFSProperties: &file.NFSProperties{
Owner: to.Ptr(owner),
Group: to.Ptr(group),
FileMode: to.Ptr(fileMode),
},
}
_, err = fClient.SetHTTPHeaders(context.Background(), opts)

Expand Down
Loading
Loading