ceph-csi/e2e/ceph_user.go
Humble Chirammal 4ca19ad2ff e2e: reformat error message with consistent formatting
To make the error return consistent across e2e tests we have decided
 to remove with error presence from the logs and this commit
 does that for e2e/ceph_user.go.

Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
2021-11-22 11:07:15 +00:00

102 lines
2.8 KiB
Go

package e2e
import (
"fmt"
"strings"
"k8s.io/kubernetes/test/e2e/framework"
)
// #nosec because of the word `Secret`
const (
// ceph user names.
keyringRBDProvisionerUsername = "cephcsi-rbd-provisioner"
keyringRBDNodePluginUsername = "cephcsi-rbd-node"
keyringRBDNamespaceProvisionerUsername = "cephcsi-rbd-ns-provisioner"
keyringRBDNamespaceNodePluginUsername = "cephcsi-rbd-ns-node"
keyringCephFSProvisionerUsername = "cephcsi-cephfs-provisioner"
keyringCephFSNodePluginUsername = "cephcsi-cephfs-node"
// secret names.
rbdNodePluginSecretName = "cephcsi-rbd-node"
rbdProvisionerSecretName = "cephcsi-rbd-provisioner"
rbdNamespaceNodePluginSecretName = "cephcsi-rbd-ns-node"
rbdNamespaceProvisionerSecretName = "cephcsi-rbd-ns-provisioner"
rbdMigrationNodePluginSecretName = "cephcsi-rbd-mig-node"
rbdMigrationProvisionerSecretName = "cephcsi-rbd-mig-provisioner"
cephFSNodePluginSecretName = "cephcsi-cephfs-node"
cephFSProvisionerSecretName = "cephcsi-cephfs-provisioner"
)
// refer https://github.com/ceph/ceph-csi/blob/devel/docs/capabilities.md#rbd
// for RBD caps.
func rbdNodePluginCaps(pool, rbdNamespace string) []string {
caps := []string{
"mon", "'profile rbd'",
"mgr", "'allow rw'",
}
if rbdNamespace == "" {
caps = append(caps, "osd", "'profile rbd'")
} else {
caps = append(caps, fmt.Sprintf("osd 'profile rbd pool=%s namespace=%s'", pool, rbdNamespace))
}
return caps
}
func rbdProvisionerCaps(pool, rbdNamespace string) []string {
caps := []string{
"mon", "'profile rbd'",
"mgr", "'allow rw'",
}
if rbdNamespace == "" {
caps = append(caps, "osd", "'profile rbd'")
} else {
caps = append(caps, fmt.Sprintf("osd 'profile rbd pool=%s namespace=%s'", pool, rbdNamespace))
}
return caps
}
// refer https://github.com/ceph/ceph-csi/blob/devel/docs/capabilities.md#rbd
// for cephFS caps.
func cephFSNodePluginCaps() []string {
caps := []string{
"mon", "'allow r'",
"mgr", "'allow rw'",
"osd", "'allow rw tag cephfs *=*'",
"mds", "'allow rw'",
}
return caps
}
func cephFSProvisionerCaps() []string {
caps := []string{
"mon", "'allow r'",
"mgr", "'allow rw'",
"osd", "'allow rw tag cephfs metadata=*'",
}
return caps
}
func createCephUser(f *framework.Framework, user string, caps []string) (string, error) {
cmd := fmt.Sprintf("ceph auth get-or-create-key client.%s %s", user, strings.Join(caps, " "))
stdOut, stdErr, err := execCommandInToolBoxPod(f, cmd, rookNamespace)
if err != nil {
return "", err
}
if stdErr != "" {
return "", fmt.Errorf("failed to create user %s: %v", cmd, stdErr)
}
return strings.TrimSpace(stdOut), nil
}
func deleteCephUser(f *framework.Framework, user string) error {
cmd := fmt.Sprintf("ceph auth del client.%s", user)
_, _, err := execCommandInToolBoxPod(f, cmd, rookNamespace)
return err
}