Commit 3b1d1c40 authored by Jan Safranek's avatar Jan Safranek

Fix default storage class tests

Name of the default storage class is not "default", it must be discovered dynamically.
parent 223c721d
......@@ -303,11 +303,12 @@ var _ = framework.KubeDescribe("Dynamic provisioning", func() {
// Modifying the default storage class can be disruptive to other tests that depend on it
It("should be disabled by changing the default annotation[Slow] [Serial] [Disruptive] [Volume]", func() {
framework.SkipUnlessProviderIs("openstack", "gce", "aws", "gke", "vsphere")
scName := getDefaultStorageClassName(c)
By("setting the is-default StorageClass annotation to false")
verifyDefaultStorageClass(c, true)
defer updateDefaultStorageClass(c, "true")
updateDefaultStorageClass(c, "false")
verifyDefaultStorageClass(c, scName, true)
defer updateDefaultStorageClass(c, scName, "true")
updateDefaultStorageClass(c, scName, "false")
By("creating a claim with default storageclass and expecting it to timeout")
claim := newClaim(ns)
......@@ -327,11 +328,12 @@ var _ = framework.KubeDescribe("Dynamic provisioning", func() {
// Modifying the default storage class can be disruptive to other tests that depend on it
It("should be disabled by removing the default annotation[Slow] [Serial] [Disruptive] [Volume]", func() {
framework.SkipUnlessProviderIs("openstack", "gce", "aws", "gke", "vsphere")
scName := getDefaultStorageClassName(c)
By("removing the is-default StorageClass annotation")
verifyDefaultStorageClass(c, true)
defer updateDefaultStorageClass(c, "true")
updateDefaultStorageClass(c, "")
verifyDefaultStorageClass(c, scName, true)
defer updateDefaultStorageClass(c, scName, "true")
updateDefaultStorageClass(c, scName, "")
By("creating a claim with default storageclass and expecting it to timeout")
claim := newClaim(ns)
......@@ -350,14 +352,35 @@ var _ = framework.KubeDescribe("Dynamic provisioning", func() {
})
})
func verifyDefaultStorageClass(c clientset.Interface, expectedDefault bool) {
sc, err := c.StorageV1().StorageClasses().Get("default", metav1.GetOptions{})
func getDefaultStorageClassName(c clientset.Interface) string {
list, err := c.StorageV1().StorageClasses().List(metav1.ListOptions{})
if err != nil {
framework.Failf("Error listing storage classes: %v", err)
}
var scName string
for _, sc := range list.Items {
if storageutil.IsDefaultAnnotation(sc.ObjectMeta) {
if len(scName) != 0 {
framework.Failf("Multiple default storage classes found: %q and %q", scName, sc.Name)
}
scName = sc.Name
}
}
if len(scName) == 0 {
framework.Failf("No default storage class found")
}
framework.Logf("Default storage class: %q", scName)
return scName
}
func verifyDefaultStorageClass(c clientset.Interface, scName string, expectedDefault bool) {
sc, err := c.StorageV1().StorageClasses().Get(scName, metav1.GetOptions{})
Expect(err).NotTo(HaveOccurred())
Expect(storageutil.IsDefaultAnnotation(sc.ObjectMeta)).To(Equal(expectedDefault))
}
func updateDefaultStorageClass(c clientset.Interface, defaultStr string) {
sc, err := c.StorageV1().StorageClasses().Get("default", metav1.GetOptions{})
func updateDefaultStorageClass(c clientset.Interface, scName string, defaultStr string) {
sc, err := c.StorageV1().StorageClasses().Get(scName, metav1.GetOptions{})
Expect(err).NotTo(HaveOccurred())
if defaultStr == "" {
......@@ -376,7 +399,7 @@ func updateDefaultStorageClass(c clientset.Interface, defaultStr string) {
if defaultStr == "true" {
expectedDefault = true
}
verifyDefaultStorageClass(c, expectedDefault)
verifyDefaultStorageClass(c, scName, expectedDefault)
}
func newClaim(ns string) *v1.PersistentVolumeClaim {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment