Fix volume creation and deletion of Azure File tests

This commit is contained in:
Fabio Bertinatto 2022-03-23 09:34:06 -03:00
parent b5cff9219d
commit dafa0e178d
6 changed files with 42 additions and 20 deletions

View File

@ -97,7 +97,7 @@ type ProviderInterface interface {
CreatePD(zone string) (string, error) CreatePD(zone string) (string, error)
DeletePD(pdName string) error DeletePD(pdName string) error
CreateShare() (string, string, error) CreateShare() (string, string, string, error)
DeleteShare(accountName, shareName string) error DeleteShare(accountName, shareName string) error
CreatePVSource(zone, diskName string) (*v1.PersistentVolumeSource, error) CreatePVSource(zone, diskName string) (*v1.PersistentVolumeSource, error)
@ -140,8 +140,8 @@ func (n NullProvider) DeleteNode(node *v1.Node) error {
return fmt.Errorf("provider does not support DeleteNode") return fmt.Errorf("provider does not support DeleteNode")
} }
func (n NullProvider) CreateShare() (string, string, error) { func (n NullProvider) CreateShare() (string, string, string, error) {
return "", "", fmt.Errorf("provider does not support volume creation") return "", "", "", fmt.Errorf("provider does not support volume creation")
} }
func (n NullProvider) DeleteShare(accountName, shareName string) error { func (n NullProvider) DeleteShare(accountName, shareName string) error {

View File

@ -93,8 +93,8 @@ func (p *Provider) DeleteNode(node *v1.Node) error {
return err return err
} }
func (p *Provider) CreateShare() (string, string, error) { func (p *Provider) CreateShare() (string, string, string, error) {
return "", "", nil return "", "", "", nil
} }
func (p *Provider) DeleteShare(accountName, shareName string) error { func (p *Provider) DeleteShare(accountName, shareName string) error {

View File

@ -86,7 +86,7 @@ func (p *Provider) CreatePD(zone string) (string, error) {
} }
// CreateShare creates a share and return its account name and key. // CreateShare creates a share and return its account name and key.
func (p *Provider) CreateShare() (string, string, error) { func (p *Provider) CreateShare() (string, string, string, error) {
accountOptions := &azure.AccountOptions{ accountOptions := &azure.AccountOptions{
Name: "", Name: "",
Type: string(compute.StandardLRS), Type: string(compute.StandardLRS),
@ -102,13 +102,16 @@ func (p *Provider) CreateShare() (string, string, error) {
RequestGiB: 1, RequestGiB: 1,
} }
a, b, c := p.azureCloud.CreateFileShare(accountOptions, shareOptions) accountName, accountKey, err := p.azureCloud.CreateFileShare(accountOptions, shareOptions)
if err != nil {
return "", "", "", err
}
return a, b, c return accountName, accountKey, shareOptions.Name, nil
} }
func (p *Provider) DeleteShare(accountName, shareName string) error { func (p *Provider) DeleteShare(accountName, shareName string) error {
err := p.azureCloud.DeleteFileShare("", accountName, shareName) err := p.azureCloud.DeleteFileShare(p.azureCloud.ResourceGroup, accountName, shareName)
if err != nil { if err != nil {
framework.Logf("failed to delete Azure File share %q: %v", shareName, err) framework.Logf("failed to delete Azure File share %q: %v", shareName, err)
} }

View File

@ -225,8 +225,8 @@ func (p *Provider) DeleteNode(node *v1.Node) error {
return p.gceCloud.DeleteInstance(project, zone, node.Name) return p.gceCloud.DeleteInstance(project, zone, node.Name)
} }
func (p *Provider) CreateShare() (string, string, error) { func (p *Provider) CreateShare() (string, string, string, error) {
return "", "", nil return "", "", "", nil
} }
func (p *Provider) DeleteShare(accountName, shareName string) error { func (p *Provider) DeleteShare(accountName, shareName string) error {

View File

@ -673,7 +673,7 @@ func createPDWithRetry(zone string) (string, error) {
return "", err return "", err
} }
func CreateShare() (string, string, error) { func CreateShare() (string, string, string, error) {
return framework.TestContext.CloudConfig.Provider.CreateShare() return framework.TestContext.CloudConfig.Provider.CreateShare()
} }

View File

@ -2032,9 +2032,10 @@ type azureFileDriver struct {
} }
type azureFileVolume struct { type azureFileVolume struct {
accountName string accountName string
shareName string shareName string
secretName string secretName string
secretNamespace string
} }
var _ storageframework.TestDriver = &azureFileDriver{} var _ storageframework.TestDriver = &azureFileDriver{}
@ -2096,7 +2097,7 @@ func (a *azureFileDriver) GetPersistentVolumeSource(readOnly bool, fsType string
AzureFile: &v1.AzureFilePersistentVolumeSource{ AzureFile: &v1.AzureFilePersistentVolumeSource{
SecretName: av.secretName, SecretName: av.secretName,
ShareName: av.shareName, ShareName: av.shareName,
SecretNamespace: nil, SecretNamespace: &av.secretNamespace,
ReadOnly: readOnly, ReadOnly: readOnly,
}, },
} }
@ -2121,12 +2122,30 @@ func (a *azureFileDriver) PrepareTest(f *framework.Framework) (*storageframework
func (a *azureFileDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { func (a *azureFileDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume {
ginkgo.By("creating a test azure file volume") ginkgo.By("creating a test azure file volume")
accountName, shareName, err := e2epv.CreateShare() accountName, accountKey, shareName, err := e2epv.CreateShare()
framework.ExpectNoError(err)
secretName := "azure-storage-account-" + accountName + "-secret"
secret := &v1.Secret{
ObjectMeta: metav1.ObjectMeta{
Namespace: config.Framework.Namespace.Name,
Name: secretName,
},
Data: map[string][]byte{
"azurestorageaccountname": []byte(accountName),
"azurestorageaccountkey": []byte(accountKey),
},
Type: "Opaque",
}
_, err = config.Framework.ClientSet.CoreV1().Secrets(config.Framework.Namespace.Name).Create(context.TODO(), secret, metav1.CreateOptions{})
framework.ExpectNoError(err) framework.ExpectNoError(err)
return &azureFileVolume{ return &azureFileVolume{
accountName: accountName, accountName: accountName,
shareName: shareName, shareName: shareName,
secretName: "", secretName: secretName,
secretNamespace: config.Framework.Namespace.Name,
} }
} }