Merge pull request #2676 from colonwq/pr2660
Deleting CephObjectStoreUser does not delete secret
This commit is contained in:
3 files changed
+27
-8
No files matched your search
@@ -191,9 +191,9 @@ func deleteUser(context *clusterd.Context, u *cephv1.CephObjectStoreUser) error
|
||||
}
|
||||
}
|
||||
|
||||
err = context.Clientset.CoreV1().Secrets(u.Namespace).Delete("rook-ceph-object-user-"+u.Name, &metav1.DeleteOptions{})
|
||||
err = context.Clientset.CoreV1().Secrets(u.Namespace).Delete(fmt.Sprintf("rook-ceph-object-user-%s-%s", u.Spec.Store, u.Name), &metav1.DeleteOptions{})
|
||||
if err != nil {
|
||||
logger.Warningf("failed to delete user %s secret. %+v", u.Name, err)
|
||||
logger.Warningf("failed to delete user %s secret. %+v", fmt.Sprintf("rook-ceph-object-user-%s-%s", u.Spec.Store, u.Name), err)
|
||||
}
|
||||
|
||||
logger.Infof("user %s deleted successfully", u.Name)
|
||||
|
||||
@@ -22,6 +22,7 @@ import (
|
||||
rgw "github.com/rook/rook/pkg/operator/ceph/object"
|
||||
"github.com/rook/rook/tests/framework/installer"
|
||||
"github.com/rook/rook/tests/framework/utils"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// ObjectUserOperation is wrapper for k8s rook object user operations
|
||||
@@ -48,8 +49,12 @@ func (o *ObjectUserOperation) GetUser(namespace string, store string, userid str
|
||||
|
||||
// UserSecretExists Function to check that user secret was created
|
||||
func (o *ObjectUserOperation) UserSecretExists(namespace string, store string, userid string) bool {
|
||||
_, err := o.k8sh.GetResource("-n", namespace, "secrets", "-l", "rook_object_store="+store, "-l", "user="+userid)
|
||||
if err == nil {
|
||||
message, err := o.k8sh.GetResource("-n", namespace, "secrets", "-l", "rook_object_store="+store, "-l", "user="+userid)
|
||||
//GetResource(blah) returns success if blah is or is not found.
|
||||
//err = success and found_sec not "No resources found." means it was found
|
||||
//err = success and found_sec contains "No resources found." means it was not found
|
||||
//err != success is an other error
|
||||
if err == nil && !strings.Contains(message, "No resources found.") {
|
||||
logger.Infof("Object User Secret Exists")
|
||||
return true
|
||||
}
|
||||
@@ -70,7 +75,7 @@ func (o *ObjectUserOperation) Create(namespace string, userid string, displayNam
|
||||
func (o *ObjectUserOperation) Delete(namespace string, userid string) error {
|
||||
|
||||
logger.Infof("Deleting the object store user via CRD")
|
||||
if err := o.k8sh.DeleteResource("-n", namespace, "ObjectStoreUser", userid); err != nil {
|
||||
if err := o.k8sh.DeleteResource("-n", namespace, "CephObjectStoreUser", userid); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
|
||||
@@ -56,13 +56,20 @@ func runObjectE2ETest(helper *clients.TestClient, k8sh *utils.K8sHelper, s suite
|
||||
logger.Infof("Step 1 : Create Object Store User")
|
||||
cosuErr := helper.ObjectUserClient.Create(namespace, userid, userdisplayname, storeName)
|
||||
require.Nil(s.T(), cosuErr)
|
||||
logger.Infof("Waiting 5 seconds to ensure user was created")
|
||||
time.Sleep(5 * time.Second)
|
||||
require.True(s.T(), helper.ObjectUserClient.UserSecretExists(namespace, userid, storeName), "make sure user secret was created")
|
||||
logger.Infof("Waiting 10 seconds to ensure user was created")
|
||||
time.Sleep(10 * time.Second)
|
||||
userInfo, gosuErr := helper.ObjectUserClient.GetUser(namespace, storeName, userid)
|
||||
require.Nil(s.T(), gosuErr)
|
||||
require.Equal(s.T(), userid, userInfo.UserID)
|
||||
require.Equal(s.T(), userdisplayname, *userInfo.DisplayName)
|
||||
logger.Infof("Checking to see if the user secret has been created")
|
||||
i := 0
|
||||
for i = 0; i < 4 && helper.ObjectUserClient.UserSecretExists(namespace, storeName, userid) == false; i++ {
|
||||
logger.Infof("(%d) secret check sleeping for 5 seconds ...", i)
|
||||
time.Sleep(5 * time.Second)
|
||||
}
|
||||
assert.True(s.T(), helper.ObjectUserClient.UserSecretExists(namespace, storeName, userid))
|
||||
|
||||
logger.Infof("Object store user created successfully")
|
||||
|
||||
/* TODO: We need bucket management tests.
|
||||
@@ -123,6 +130,13 @@ func runObjectE2ETest(helper *clients.TestClient, k8sh *utils.K8sHelper, s suite
|
||||
dosuErr := helper.ObjectUserClient.Delete(namespace, userid)
|
||||
require.Nil(s.T(), dosuErr)
|
||||
logger.Infof("Object store user deleted successfully")
|
||||
logger.Infof("Checking to see if the user secret has been deleted")
|
||||
i = 0
|
||||
for i = 0; i < 4 && helper.ObjectUserClient.UserSecretExists(namespace, storeName, userid) == true; i++ {
|
||||
logger.Infof("(%d) secret check sleeping for 5 seconds ...", i)
|
||||
time.Sleep(5 * time.Second)
|
||||
}
|
||||
assert.False(s.T(), helper.ObjectUserClient.UserSecretExists(namespace, storeName, userid))
|
||||
|
||||
logger.Infof("Check that MGRs are not in a crashloop")
|
||||
assert.True(s.T(), k8sh.CheckPodCountAndState("rook-ceph-mgr", namespace, 1, "Running"))
|
||||
|
||||
Reference in new issue
Block a user