Skip to content

Commit 7851929

Browse files
author
Matthew Wong
committed
Re-implement AWS test driver interfaces
1 parent 44c0f64 commit 7851929

File tree

1 file changed

+33
-21
lines changed

1 file changed

+33
-21
lines changed

test/e2e/storage/drivers/in_tree.go

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1503,17 +1503,18 @@ func (v *azureVolume) DeleteVolume() {
15031503

15041504
// AWS
15051505
type awsDriver struct {
1506-
volumeName string
1507-
15081506
driverInfo testsuites.DriverInfo
15091507
}
15101508

1509+
type awsVolume struct {
1510+
volumeName string
1511+
}
1512+
15111513
var _ testsuites.TestDriver = &awsDriver{}
15121514

1513-
// TODO: Fix authorization error in attach operation and uncomment below
1514-
//var _ testsuites.PreprovisionedVolumeTestDriver = &awsDriver{}
1515-
//var _ testsuites.InlineVolumeTestDriver = &awsDriver{}
1516-
//var _ testsuites.PreprovisionedPVTestDriver = &awsDriver{}
1515+
var _ testsuites.PreprovisionedVolumeTestDriver = &awsDriver{}
1516+
var _ testsuites.InlineVolumeTestDriver = &awsDriver{}
1517+
var _ testsuites.PreprovisionedPVTestDriver = &awsDriver{}
15171518
var _ testsuites.DynamicPVTestDriver = &awsDriver{}
15181519

15191520
// InitAwsDriver returns awsDriver that implements TestDriver interface
@@ -1525,7 +1526,10 @@ func InitAwsDriver() testsuites.TestDriver {
15251526
MaxFileSize: testpatterns.FileSizeMedium,
15261527
SupportedFsType: sets.NewString(
15271528
"", // Default fsType
1529+
"ext2",
15281530
"ext3",
1531+
"ext4",
1532+
"xfs",
15291533
"ntfs",
15301534
),
15311535
SupportedMountOption: sets.NewString("debug", "nouid32"),
@@ -1550,12 +1554,12 @@ func (a *awsDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
15501554
framework.SkipUnlessProviderIs("aws")
15511555
}
15521556

1553-
// TODO: Fix authorization error in attach operation and uncomment below
1554-
/*
15551557
func (a *awsDriver) GetVolumeSource(readOnly bool, fsType string, volume testsuites.TestVolume) *v1.VolumeSource {
1558+
av, ok := volume.(*awsVolume)
1559+
gomega.Expect(ok).To(gomega.BeTrue(), "Failed to cast test volume to AWS test volume")
15561560
volSource := v1.VolumeSource{
15571561
AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{
1558-
VolumeID: a.volumeName,
1562+
VolumeID: av.volumeName,
15591563
ReadOnly: readOnly,
15601564
},
15611565
}
@@ -1566,18 +1570,19 @@ func (a *awsDriver) GetVolumeSource(readOnly bool, fsType string, volume testsui
15661570
}
15671571

15681572
func (a *awsDriver) GetPersistentVolumeSource(readOnly bool, fsType string, volume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
1573+
av, ok := volume.(*awsVolume)
1574+
gomega.Expect(ok).To(gomega.BeTrue(), "Failed to cast test volume to AWS test volume")
15691575
pvSource := v1.PersistentVolumeSource{
15701576
AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{
1571-
VolumeID: a.volumeName,
1577+
VolumeID: av.volumeName,
15721578
ReadOnly: readOnly,
15731579
},
15741580
}
15751581
if fsType != "" {
15761582
pvSource.AWSElasticBlockStore.FSType = fsType
15771583
}
1578-
return &pvSource
1584+
return &pvSource, nil
15791585
}
1580-
*/
15811586

15821587
func (a *awsDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
15831588
provisioner := "kubernetes.io/aws-ebs"
@@ -1587,8 +1592,9 @@ func (a *awsDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestCo
15871592
}
15881593
ns := config.Framework.Namespace.Name
15891594
suffix := fmt.Sprintf("%s-sc", a.driverInfo.Name)
1595+
delayedBinding := storagev1.VolumeBindingWaitForFirstConsumer
15901596

1591-
return testsuites.GetStorageClass(provisioner, parameters, nil, ns, suffix)
1597+
return testsuites.GetStorageClass(provisioner, parameters, &delayedBinding, ns, suffix)
15921598
}
15931599

15941600
func (a *awsDriver) GetClaimSize() string {
@@ -1609,19 +1615,25 @@ func (a *awsDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConf
16091615
return config, func() {}
16101616
}
16111617

1612-
// TODO: Fix authorization error in attach operation and uncomment below
1613-
/*
16141618
func (a *awsDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
1619+
if volType == testpatterns.InlineVolume {
1620+
// PD will be created in framework.TestContext.CloudConfig.Zone zone,
1621+
// so pods should be also scheduled there.
1622+
config.ClientNodeSelector = map[string]string{
1623+
v1.LabelZoneFailureDomain: framework.TestContext.CloudConfig.Zone,
1624+
}
1625+
}
16151626
ginkgo.By("creating a test aws volume")
1616-
var err error
1617-
a.volumeName, err = framework.CreatePDWithRetry()
1618-
framework.ExpectNoError(err))
1627+
vname, err := framework.CreatePDWithRetry()
1628+
framework.ExpectNoError(err)
1629+
return &awsVolume{
1630+
volumeName: vname,
1631+
}
16191632
}
16201633

1621-
DeleteVolume() {
1622-
framework.DeletePDWithRetry(a.volumeName)
1634+
func (v *awsVolume) DeleteVolume() {
1635+
framework.DeletePDWithRetry(v.volumeName)
16231636
}
1624-
*/
16251637

16261638
// local
16271639
type localDriver struct {

0 commit comments

Comments
 (0)