Skip to content

Commit

Permalink
Merge pull request #52 from linkernetworks/hwchiu/rename
Browse files Browse the repository at this point in the history
Rename from the StorageProvider to Storage

Former-commit-id: b244824234d00924dbb1445413fa9e0e9e54a8a3 [formerly b244824234d00924dbb1445413fa9e0e9e54a8a3 [formerly 1605d78]]
Former-commit-id: 1790ca887a67e0d971842efe8c38c683fb31e7f1
Former-commit-id: 8e60291
  • Loading branch information
Hung-Wei Chiu authored Jun 28, 2018
2 parents ccf05f5 + 9afb58b commit 896f352
Show file tree
Hide file tree
Showing 7 changed files with 101 additions and 101 deletions.
20 changes: 10 additions & 10 deletions src/entity/storage_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,23 @@ import (
)

const (
StorageProviderCollectionName string = "storage_provider"
StorageCollectionName string = "storage"
)

type NFSStorageProvider struct {
type NFSStorageSetting struct {
IP string `bson:"ip" json:"ip"`
PATH string `bson:"path" json:"path"`
}

type StorageProvider struct {
ID bson.ObjectId `bson:"_id,omitempty" json:"id"`
Type string `bson:"type" json:"type"`
DisplayName string `bson:"displayName" json:"displayName"`
CreatedAt *time.Time `bson:"createdAt,omitempty" json:"createdAt,omitempty"`
NFSStorageProvider
type Storage struct {
ID bson.ObjectId `bson:"_id,omitempty" json:"id"`
Type string `bson:"type" json:"type"`
DisplayName string `bson:"displayName" json:"displayName"`
CreatedAt *time.Time `bson:"createdAt,omitempty" json:"createdAt,omitempty"`
NFSStorageSetting `bson:"nfs" json:"nfs"`
}

//GetCollection - get model mongo collection name.
func (m StorageProvider) GetCollection() string {
return StorageProviderCollectionName
func (m Storage) GetCollection() string {
return StorageCollectionName
}
14 changes: 7 additions & 7 deletions src/entity/volume.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@ const (
So the Volume will create a PVC type and connect to a known StorageClass
*/
type Volume struct {
ID bson.ObjectId `bson:"_id,omitempty" json:"id"`
Name string `bson:"name" json:"name"`
StorageProviderName string `bson:"storageProviderName" json:"storageProviderName"`
AccessMode corev1.PersistentVolumeAccessMode `bson:"accessMode" json:"accessMode"`
Capacity string `bson:"capacity" json:"capacity"`
MetaName string `bson:"metaName" json:"metaName"` //For PVC metaname
CreatedAt *time.Time `bson:"createdAt,omitempty" json:"createdAt,omitempty"`
ID bson.ObjectId `bson:"_id,omitempty" json:"id"`
Name string `bson:"name" json:"name"`
StorageName string `bson:"storageProviderName" json:"storageProviderName"`
AccessMode corev1.PersistentVolumeAccessMode `bson:"accessMode" json:"accessMode"`
Capacity string `bson:"capacity" json:"capacity"`
MetaName string `bson:"metaName" json:"metaName"` //For PVC metaname
CreatedAt *time.Time `bson:"createdAt,omitempty" json:"createdAt,omitempty"`
}

//GetCollection - get model mongo collection name.
Expand Down
20 changes: 10 additions & 10 deletions src/server/handler_storage_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,26 +15,26 @@ import (
"gopkg.in/mgo.v2/bson"
)

func createStorageProvider(ctx *web.Context) {
func createStorage(ctx *web.Context) {
sp, req, resp := ctx.ServiceProvider, ctx.Request, ctx.Response

storageProvider := entity.StorageProvider{}
storageProvider := entity.Storage{}
if err := req.ReadEntity(&storageProvider); err != nil {
logger.Error(err)
response.BadRequest(req.Request, resp.ResponseWriter, err)
return
}

session := sp.Mongo.NewSession()
session.C(entity.StorageProviderCollectionName).EnsureIndex(mgo.Index{
session.C(entity.StorageCollectionName).EnsureIndex(mgo.Index{
Key: []string{"displayName"},
Unique: true,
})
defer session.Close()
// Check whether this displayname has been used
storageProvider.ID = bson.NewObjectId()
storageProvider.CreatedAt = timeutils.Now()
if err := session.Insert(entity.StorageProviderCollectionName, &storageProvider); err != nil {
if err := session.Insert(entity.StorageCollectionName, &storageProvider); err != nil {
if mgo.IsDup(err) {
response.Conflict(req.Request, resp.ResponseWriter, fmt.Errorf("Storage Provider Name: %s already existed", storageProvider.DisplayName))
} else {
Expand All @@ -49,7 +49,7 @@ func createStorageProvider(ctx *web.Context) {
})
}

func listStorageProvider(ctx *web.Context) {
func listStorage(ctx *web.Context) {
sp, req, resp := ctx.ServiceProvider, ctx.Request, ctx.Response

var pageSize = 10
Expand All @@ -69,9 +69,9 @@ func listStorageProvider(ctx *web.Context) {
session := sp.Mongo.NewSession()
defer session.Close()

storageProviders := []entity.StorageProvider{}
storageProviders := []entity.Storage{}

var c = session.C(entity.StorageProviderCollectionName)
var c = session.C(entity.StorageCollectionName)
var q *mgo.Query

selector := bson.M{}
Expand All @@ -86,7 +86,7 @@ func listStorageProvider(ctx *web.Context) {
return
}

count, err := session.Count(entity.StorageProviderCollectionName, bson.M{})
count, err := session.Count(entity.StorageCollectionName, bson.M{})
if err != nil {
response.InternalServerError(req.Request, resp.ResponseWriter, err)
return
Expand All @@ -97,15 +97,15 @@ func listStorageProvider(ctx *web.Context) {
resp.WriteEntity(storageProviders)
}

func deleteStorageProvider(ctx *web.Context) {
func deleteStorage(ctx *web.Context) {
as, req, resp := ctx.ServiceProvider, ctx.Request, ctx.Response

id := req.PathParameter("id")

session := as.Mongo.NewSession()
defer session.Close()

if err := session.Remove(entity.StorageProviderCollectionName, "_id", bson.ObjectIdHex(id)); err != nil {
if err := session.Remove(entity.StorageCollectionName, "_id", bson.ObjectIdHex(id)); err != nil {
if mgo.ErrNotFound == err {
response.NotFound(req.Request, resp.ResponseWriter, err)
} else {
Expand Down
96 changes: 48 additions & 48 deletions src/server/handler_storage_provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,49 +23,49 @@ func init() {
rand.Seed(time.Now().UnixNano())
}

type StorageProviderTestSuite struct {
type StorageTestSuite struct {
suite.Suite
wc *restful.Container
storageProvider entity.NFSStorageProvider
session *mongo.Session
wc *restful.Container
storage entity.NFSStorageSetting
session *mongo.Session
}

func (suite *StorageProviderTestSuite) SetupSuite() {
func (suite *StorageTestSuite) SetupSuite() {
cf := config.MustRead("../../config/testing.json")
sp := serviceprovider.NewForTesting(cf)

//init restful container
suite.wc = restful.NewContainer()
service := newStorageProviderService(sp)
service := newStorageService(sp)
suite.wc.Add(service)

//init session
suite.session = sp.Mongo.NewSession()
}

func (suite *StorageProviderTestSuite) TearDownSuite() {
func (suite *StorageTestSuite) TearDownSuite() {
}

func TestStorageProviderSuite(t *testing.T) {
suite.Run(t, new(StorageProviderTestSuite))
func TestStorageSuite(t *testing.T) {
suite.Run(t, new(StorageTestSuite))
}

func (suite *StorageProviderTestSuite) TestCreateStorageProvider() {
func (suite *StorageTestSuite) TestCreateStorage() {
//Testing parameter
tName := namesgenerator.GetRandomName(0)
tType := "nfs"
tIP := "1.2.3.4"
tPath := "/exports"
storageProvider := entity.StorageProvider{
storage := entity.Storage{
Type: tType,
DisplayName: tName,
NFSStorageProvider: entity.NFSStorageProvider{
NFSStorageSetting: entity.NFSStorageSetting{
IP: tIP,
PATH: tPath,
},
}

bodyBytes, err := json.MarshalIndent(storageProvider, "", " ")
bodyBytes, err := json.MarshalIndent(storage, "", " ")
suite.NoError(err)

bodyReader := strings.NewReader(string(bodyBytes))
Expand All @@ -75,7 +75,7 @@ func (suite *StorageProviderTestSuite) TestCreateStorageProvider() {
httpRequest.Header.Add("Content-Type", "application/json")
httpWriter := httptest.NewRecorder()
suite.wc.Dispatch(httpWriter, httpRequest)
defer suite.session.Remove(entity.StorageProviderCollectionName, "displayName", tName)
defer suite.session.Remove(entity.StorageCollectionName, "displayName", tName)
assertResponseCode(suite.T(), http.StatusOK, httpWriter)
//Empty data
//We use the new write but empty input
Expand All @@ -92,64 +92,64 @@ func (suite *StorageProviderTestSuite) TestCreateStorageProvider() {
assertResponseCode(suite.T(), http.StatusConflict, httpWriter)
}

func (suite *StorageProviderTestSuite) TestDeleteStorageProvider() {
func (suite *StorageTestSuite) TestDeleteStorage() {
//Testing parameter
tName := namesgenerator.GetRandomName(0)
tType := "nfs"
tIP := "1.2.3.4"
tPath := "/exports"
storageProvider := entity.StorageProvider{
storage := entity.Storage{
ID: bson.NewObjectId(),
Type: tType,
DisplayName: tName,
NFSStorageProvider: entity.NFSStorageProvider{
NFSStorageSetting: entity.NFSStorageSetting{
IP: tIP,
PATH: tPath,
},
}

suite.session.C(entity.StorageProviderCollectionName).Insert(storageProvider)
defer suite.session.Remove(entity.StorageProviderCollectionName, "displayName", tName)
suite.session.C(entity.StorageCollectionName).Insert(storage)
defer suite.session.Remove(entity.StorageCollectionName, "displayName", tName)

bodyBytes, err := json.MarshalIndent(suite.storageProvider, "", " ")
bodyBytes, err := json.MarshalIndent(suite.storage, "", " ")
suite.NoError(err)

//Create again and it should fail since the name exist
bodyReader := strings.NewReader(string(bodyBytes))
httpRequest, err := http.NewRequest("DELETE", "http://localhost:7890/v1/storageprovider/"+storageProvider.ID.Hex(), bodyReader)
httpRequest, err := http.NewRequest("DELETE", "http://localhost:7890/v1/storageprovider/"+storage.ID.Hex(), bodyReader)
suite.NoError(err)
httpRequest.Header.Add("Content-Type", "application/json")
httpWriter := httptest.NewRecorder()
suite.wc.Dispatch(httpWriter, httpRequest)
assertResponseCode(suite.T(), http.StatusOK, httpWriter)
}

func (suite *StorageProviderTestSuite) TestInValidDeleteStorageProvider() {
func (suite *StorageTestSuite) TestInValidDeleteStorage() {
httpRequest, err := http.NewRequest("DELETE", "http://localhost:7890/v1/storageprovider/"+bson.NewObjectId().Hex(), nil)
suite.NoError(err)
httpWriter := httptest.NewRecorder()
suite.wc.Dispatch(httpWriter, httpRequest)
assertResponseCode(suite.T(), http.StatusNotFound, httpWriter)
}

func (suite *StorageProviderTestSuite) TestListStorageProvider() {
storageProviders := []entity.StorageProvider{}
func (suite *StorageTestSuite) TestListStorage() {
storages := []entity.Storage{}
for i := 0; i < 3; i++ {
storageProviders = append(storageProviders, entity.StorageProvider{
storages = append(storages, entity.Storage{
ID: bson.NewObjectId(),
DisplayName: namesgenerator.GetRandomName(0),
Type: "nfs",
NFSStorageProvider: entity.NFSStorageProvider{
NFSStorageSetting: entity.NFSStorageSetting{
IP: "1.2.3.4",
PATH: "/expots",
},
})
}

for _, v := range storageProviders {
err := suite.session.C(entity.StorageProviderCollectionName).Insert(v)
for _, v := range storages {
err := suite.session.C(entity.StorageCollectionName).Insert(v)
suite.NoError(err)
defer suite.session.Remove(entity.StorageProviderCollectionName, "_id", v.ID)
defer suite.session.Remove(entity.StorageCollectionName, "_id", v.ID)
}

//default page & page_size
Expand All @@ -160,16 +160,16 @@ func (suite *StorageProviderTestSuite) TestListStorageProvider() {
suite.wc.Dispatch(httpWriter, httpRequest)
assertResponseCode(suite.T(), http.StatusOK, httpWriter)

retStorageProviders := []entity.StorageProvider{}
err = json.Unmarshal(httpWriter.Body.Bytes(), &retStorageProviders)
retStorages := []entity.Storage{}
err = json.Unmarshal(httpWriter.Body.Bytes(), &retStorages)
suite.NoError(err)
suite.Equal(len(storageProviders), len(retStorageProviders))
for i, v := range retStorageProviders {
suite.Equal(storageProviders[i].ID, v.ID)
suite.Equal(storageProviders[i].DisplayName, v.DisplayName)
suite.Equal(storageProviders[i].Type, v.Type)
suite.Equal(storageProviders[i].IP, v.IP)
suite.Equal(storageProviders[i].PATH, v.PATH)
suite.Equal(len(storages), len(retStorages))
for i, v := range retStorages {
suite.Equal(storages[i].ID, v.ID)
suite.Equal(storages[i].DisplayName, v.DisplayName)
suite.Equal(storages[i].Type, v.Type)
suite.Equal(storages[i].IP, v.IP)
suite.Equal(storages[i].PATH, v.PATH)
}

httpRequest, err = http.NewRequest("GET", "http://localhost:7890/v1/storageprovider?page=1&page_size=30", nil)
Expand All @@ -179,20 +179,20 @@ func (suite *StorageProviderTestSuite) TestListStorageProvider() {
suite.wc.Dispatch(httpWriter, httpRequest)
assertResponseCode(suite.T(), http.StatusOK, httpWriter)

retStorageProviders = []entity.StorageProvider{}
err = json.Unmarshal(httpWriter.Body.Bytes(), &retStorageProviders)
retStorages = []entity.Storage{}
err = json.Unmarshal(httpWriter.Body.Bytes(), &retStorages)
suite.NoError(err)
suite.Equal(len(storageProviders), len(retStorageProviders))
for i, v := range retStorageProviders {
suite.Equal(storageProviders[i].ID, v.ID)
suite.Equal(storageProviders[i].DisplayName, v.DisplayName)
suite.Equal(storageProviders[i].Type, v.Type)
suite.Equal(storageProviders[i].IP, v.IP)
suite.Equal(storageProviders[i].PATH, v.PATH)
suite.Equal(len(storages), len(retStorages))
for i, v := range retStorages {
suite.Equal(storages[i].ID, v.ID)
suite.Equal(storages[i].DisplayName, v.DisplayName)
suite.Equal(storages[i].Type, v.Type)
suite.Equal(storages[i].IP, v.IP)
suite.Equal(storages[i].PATH, v.PATH)
}
}

func (suite *StorageProviderTestSuite) TestListInvalidStorageProvider() {
func (suite *StorageTestSuite) TestListInvalidStorage() {
//Invliad page size
httpRequest, err := http.NewRequest("GET", "http://localhost:7890/v1/storageprovider?page=0", nil)
suite.NoError(err)
Expand Down
4 changes: 2 additions & 2 deletions src/server/handler_volume.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@ func createVolume(ctx *web.Context) {
defer session.Close()

// Check the storageClass is existed
couunt, err := session.Count(entity.StorageProviderCollectionName, bson.M{"displayName": volume.StorageProviderName})
couunt, err := session.Count(entity.StorageCollectionName, bson.M{"displayName": volume.StorageName})
if err != nil {
response.InternalServerError(req.Request, resp.ResponseWriter, err)
return
} else if couunt < 1 {
response.BadRequest(req.Request, resp.ResponseWriter, fmt.Errorf("The reference storage provider %s doesn't exist", volume.StorageProviderName))
response.BadRequest(req.Request, resp.ResponseWriter, fmt.Errorf("The reference storage provider %s doesn't exist", volume.StorageName))
return
}

Expand Down
Loading

0 comments on commit 896f352

Please sign in to comment.