mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-22 22:30:23 +00:00
cephfs/volume: fixed arguments for ceph-fuse; assume volume root and cephx user already exist
This commit is contained in:
parent
43c2fb8e26
commit
436bb54262
@ -17,50 +17,17 @@ limitations under the License.
|
|||||||
package cephfs
|
package cephfs
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
// from https://github.com/kubernetes-incubator/external-storage/tree/master/ceph/cephfs/cephfs_provisioner
|
|
||||||
provisionerCmd = "/cephfs_provisioner.py"
|
|
||||||
userPrefix = "user-"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type volume struct {
|
type volume struct {
|
||||||
Root string `json:"path"`
|
RootPath string
|
||||||
User string `json:"user"`
|
User string
|
||||||
Key string `json:"key"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func newVolume(volId *volumeIdentifier, volOpts *volumeOptions) (*volume, error) {
|
|
||||||
cmd := exec.Command(provisionerCmd, "-n", volId.id, "-u", userPrefix+volId.id)
|
|
||||||
cmd.Env = []string{
|
|
||||||
"CEPH_CLUSTER_NAME=" + volOpts.ClusterName,
|
|
||||||
"CEPH_MON=" + volOpts.Monitor,
|
|
||||||
"CEPH_AUTH_ID=" + volOpts.AdminId,
|
|
||||||
"CEPH_AUTH_KEY=" + volOpts.AdminSecret,
|
|
||||||
}
|
|
||||||
|
|
||||||
out, err := cmd.CombinedOutput()
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("cephfs: an error occurred while creating the volume: %v\ncephfs: %s", err, out)
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Printf("\t\tcephfs_provisioner.py: %s\n", out)
|
|
||||||
|
|
||||||
vol := &volume{}
|
|
||||||
if err = json.Unmarshal(out, vol); err != nil {
|
|
||||||
return nil, fmt.Errorf("cephfs: malformed json output: %s", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return vol, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (vol *volume) mount(mountPoint string) error {
|
func (vol *volume) mount(mountPoint string) error {
|
||||||
out, err := execCommand("ceph-fuse", mountPoint, "-n", vol.User, "-r", vol.Root)
|
out, err := execCommand("ceph-fuse", mountPoint, "-n", "client."+vol.User, "-r", vol.RootPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("cephfs: ceph-fuse failed with following error: %s\ncephfs: cephf-fuse output: %s", err, out)
|
return fmt.Errorf("cephfs: ceph-fuse failed with following error: %s\ncephfs: cephf-fuse output: %s", err, out)
|
||||||
}
|
}
|
||||||
@ -69,7 +36,7 @@ func (vol *volume) mount(mountPoint string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (vol *volume) unmount() error {
|
func (vol *volume) unmount() error {
|
||||||
out, err := execCommand("fusermount", "-u", vol.Root)
|
out, err := execCommand("fusermount", "-u", vol.RootPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("cephfs: fusermount failed with following error: %v\ncephfs: fusermount output: %s", err, out)
|
return fmt.Errorf("cephfs: fusermount failed with following error: %v\ncephfs: fusermount output: %s", err, out)
|
||||||
}
|
}
|
||||||
@ -77,13 +44,6 @@ func (vol *volume) unmount() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (vol *volume) makeMap() map[string]string {
|
|
||||||
return map[string]string{
|
|
||||||
"path": vol.Root,
|
|
||||||
"user": vol.User,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func unmountVolume(root string) error {
|
func unmountVolume(root string) error {
|
||||||
out, err := execCommand("fusermount", "-u", root)
|
out, err := execCommand("fusermount", "-u", root)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -93,15 +53,6 @@ func unmountVolume(root string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func deleteVolume(volId, user string) error {
|
|
||||||
out, err := execCommand(provisionerCmd, "--remove", "-n", volId, "-u", user)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("cephfs: failed to delete volume %s following error: %v\ncephfs: output: %s", volId, err, out)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func createMountPoint(root string) error {
|
func createMountPoint(root string) error {
|
||||||
return os.MkdirAll(root, 0750)
|
return os.MkdirAll(root, 0750)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user