diff --git a/src/entity/volume.go b/src/entity/volume.go index 11a2daab..1bdfa00e 100644 --- a/src/entity/volume.go +++ b/src/entity/volume.go @@ -20,6 +20,7 @@ type Volume struct { ID bson.ObjectId `bson:"_id,omitempty" json:"id" validate:"-"` OwnerID bson.ObjectId `bson:"ownerID,omitempty" json:"ownerID" validate:"-"` Name string `bson:"name" json:"name" validate:"required"` + Namespace string `bson:"namespace" json:"namespace" validate:"required"` StorageName string `bson:"storageName" json:"storageName" validate:"required"` AccessMode corev1.PersistentVolumeAccessMode `bson:"accessMode" json:"accessMode" validate:"required"` Capacity string `bson:"capacity" json:"capacity" validate:"required"` diff --git a/src/server/handler_volume_test.go b/src/server/handler_volume_test.go index b207ecb6..1c7774b0 100644 --- a/src/server/handler_volume_test.go +++ b/src/server/handler_volume_test.go @@ -78,6 +78,7 @@ func (suite *VolumeTestSuite) TestCreateVolume() { volume := entity.Volume{ OwnerID: bson.NewObjectId(), Name: tName, + Namespace: "default", StorageName: suite.storage.Name, Capacity: tCapacity, AccessMode: tAccessMode, @@ -130,6 +131,7 @@ func (suite *VolumeTestSuite) TestCreateVolumeWithInvalidParameter() { volume := entity.Volume{ OwnerID: bson.NewObjectId(), Name: tName, + Namespace: "default", StorageName: namesgenerator.GetRandomName(0), Capacity: tCapacity, AccessMode: tAccessMode, @@ -158,6 +160,7 @@ func (suite *VolumeTestSuite) TestDeleteVolume() { ID: bson.NewObjectId(), OwnerID: bson.NewObjectId(), Name: tName, + Namespace: "default", StorageName: namesgenerator.GetRandomName(0), Capacity: tCapacity, AccessMode: tAccessMode, @@ -212,6 +215,7 @@ func (suite *VolumeTestSuite) TestListVolume() { ID: bson.NewObjectId(), OwnerID: bson.NewObjectId(), Name: namesgenerator.GetRandomName(0), + Namespace: "default", StorageName: namesgenerator.GetRandomName(0), AccessMode: corev1.PersistentVolumeAccessMode("ReadOnlyMany"), Capacity: "250", diff --git a/src/volume/volume.go b/src/volume/volume.go index 502da7a6..0707acc2 100644 --- a/src/volume/volume.go +++ b/src/volume/volume.go @@ -44,7 +44,6 @@ func getStorageClassName(session *mongo.Session, storageName string) (string, er // CreateVolume is a function to create volume func CreateVolume(sp *serviceprovider.Container, volume *entity.Volume) error { - namespace := "default" session := sp.Mongo.NewSession() defer session.Close() //fetch the db to get the storageName @@ -55,13 +54,12 @@ func CreateVolume(sp *serviceprovider.Container, volume *entity.Volume) error { name := volume.GetPVCName() pvc := getPVCInstance(volume, name, storageName) - _, err = sp.KubeCtl.CreatePVC(pvc, namespace) + _, err = sp.KubeCtl.CreatePVC(pvc, volume.Namespace) return err } // DeleteVolume is a function to delete volume func DeleteVolume(sp *serviceprovider.Container, volume *entity.Volume) error { - namespace := "default" //Check the pod session := sp.Mongo.NewSession() defer session.Close() @@ -80,5 +78,5 @@ func DeleteVolume(sp *serviceprovider.Container, volume *entity.Volume) error { return fmt.Errorf("delete the volume [%s] fail, since the followings pods still ust it: %s", volume.Name, podNames) } - return sp.KubeCtl.DeletePVC(volume.GetPVCName(), namespace) + return sp.KubeCtl.DeletePVC(volume.GetPVCName(), volume.Namespace) } diff --git a/src/volume/volume_test.go b/src/volume/volume_test.go index e0c4952f..75b04cc1 100644 --- a/src/volume/volume_test.go +++ b/src/volume/volume_test.go @@ -42,6 +42,7 @@ func (suite *VolumeTestSuite) TestGetPVCInstance() { volume := &entity.Volume{ ID: bson.NewObjectId(), Name: namesgenerator.GetRandomName(0), + Namespace: "default", StorageName: namesgenerator.GetRandomName(0), } @@ -67,7 +68,6 @@ func (suite *VolumeTestSuite) TestGetStorageClassName() { } func (suite *VolumeTestSuite) TestCreateVolume() { - namespace := "default" session := suite.sp.Mongo.NewSession() defer session.Close() storage := entity.Storage{ @@ -82,6 +82,7 @@ func (suite *VolumeTestSuite) TestCreateVolume() { volume := &entity.Volume{ ID: bson.NewObjectId(), Name: namesgenerator.GetRandomName(0), + Namespace: "default", StorageName: storage.Name, } @@ -89,14 +90,14 @@ func (suite *VolumeTestSuite) TestCreateVolume() { suite.NoError(err) name := volume.GetPVCName() - v, err := suite.sp.KubeCtl.GetPVC(name, namespace) + v, err := suite.sp.KubeCtl.GetPVC(name, volume.Namespace) suite.NoError(err) suite.NotNil(v) err = DeleteVolume(suite.sp, volume) suite.NoError(err) - v, err = suite.sp.KubeCtl.GetPVC(name, namespace) + v, err = suite.sp.KubeCtl.GetPVC(name, volume.Namespace) suite.Error(err) suite.Nil(v) } @@ -105,6 +106,7 @@ func (suite *VolumeTestSuite) TestCreateVolumeFail() { volume := &entity.Volume{ ID: bson.NewObjectId(), Name: namesgenerator.GetRandomName(0), + Namespace: "default", StorageName: namesgenerator.GetRandomName(0), } @@ -113,10 +115,10 @@ func (suite *VolumeTestSuite) TestCreateVolumeFail() { } func (suite *VolumeTestSuite) TestDeleteVolumeFail() { - namespace := "default" volume := &entity.Volume{ - ID: bson.NewObjectId(), - Name: namesgenerator.GetRandomName(0), + ID: bson.NewObjectId(), + Name: namesgenerator.GetRandomName(0), + Namespace: "default", } session := suite.sp.Mongo.NewSession() @@ -156,7 +158,7 @@ func (suite *VolumeTestSuite) TestDeleteVolumeFail() { Status: corev1.PodStatus{ Phase: corev1.PodRunning, }, - }, namespace) + }, volume.Namespace) suite.sp.KubeCtl.CreatePod(&corev1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: pods[1].Name, @@ -164,7 +166,7 @@ func (suite *VolumeTestSuite) TestDeleteVolumeFail() { Status: corev1.PodStatus{ Phase: corev1.PodRunning, }, - }, namespace) + }, volume.Namespace) suite.sp.KubeCtl.CreatePod(&corev1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: namesgenerator.GetRandomName(0), @@ -172,7 +174,7 @@ func (suite *VolumeTestSuite) TestDeleteVolumeFail() { Status: corev1.PodStatus{ Phase: corev1.PodRunning, }, - }, namespace) + }, volume.Namespace) err := DeleteVolume(suite.sp, volume) suite.Error(err) diff --git a/tests/04-storage-pod/volume.info b/tests/04-storage-pod/volume.info index d2764201..06f25197 100644 --- a/tests/04-storage-pod/volume.info +++ b/tests/04-storage-pod/volume.info @@ -1,6 +1,7 @@ { "storageName": "@STORAGENAME@", "name": "@VOLUMENAME@", + "namespace": "default", "accessMode":"ReadWriteMany", "capacity":"300Gi" }