Skip to content

[WIP]Changing naming from tier to SSP #1307

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions api/pkg/backend/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,15 @@ func RegisterRouter(ws *restful.WebService) {
ws.Route(ws.POST("/{tenantId}/encrypt").To(handler.EncryptData)).
Doc("Encrypt the data")

ws.Route(ws.GET("/{tenantId}/tiers/{id}").To(handler.GetTier)).
Doc("Show tier details")
ws.Route(ws.GET("/{tenantId}/tiers").To(handler.ListTiers)).
Doc("list tiers")
ws.Route(ws.POST("/{tenantId}/tiers").To(handler.CreateTier)).
Doc("Create tier")
ws.Route(ws.PUT("/{tenantId}/tiers/{id}").To(handler.UpdateTier)).
Doc("Update tier")
ws.Route(ws.DELETE("/{tenantId}/tiers/{id}").To(handler.DeleteTier)).
Doc("Delete tier")
ws.Route(ws.GET("/{tenantId}/ssps/{id}").To(handler.GetSsp)).
Doc("Show ssp details")
ws.Route(ws.GET("/{tenantId}/ssps").To(handler.ListSsps)).
Doc("list ssps")
ws.Route(ws.POST("/{tenantId}/ssps").To(handler.CreateSsp)).
Doc("Create ssp")
ws.Route(ws.PUT("/{tenantId}/ssps/{id}").To(handler.UpdateSsp)).
Doc("Update ssp")
ws.Route(ws.DELETE("/{tenantId}/ssps/{id}").To(handler.DeleteSsp)).
Doc("Delete ssp")

}
164 changes: 82 additions & 82 deletions api/pkg/backend/service.go

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions api/pkg/examples/policy.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
"AkSk:get": "",
"AkSk:create": "",
"AkSk:delete": "",
"tier:create": "role:admin",
"tier:update": "role:admin",
"tier:get": "role:admin",
"tier:delete": "role:admin",
"tier:list": "is_admin:True or (role:admin and is_admin_project:True) or tenant_id:%(tenant_id)s",
"ssp:create": "role:admin",
"ssp:update": "role:admin",
"ssp:get": "role:admin",
"ssp:delete": "role:admin",
"ssp:list": "is_admin:True or (role:admin and is_admin_project:True) or tenant_id:%(tenant_id)s",
"backend:get":"",
"backend:list":"",
"backend:create":"",
Expand Down
12 changes: 6 additions & 6 deletions api/pkg/s3/bucketput.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ const (

func (s *APIService) BucketPut(request *restful.Request, response *restful.Response) {
log.Info("Create bucket request received")
var isTier string
var isSsp string

isTier = request.HeaderParameter("tier")
isSsp = request.HeaderParameter("ssp")
bucketName := strings.ToLower(request.PathParameter(common.REQUEST_PATH_BUCKET_NAME))
if !isValidBucketName(bucketName) {
WriteErrorResponse(response, request, s3error.ErrInvalidBucketName)
Expand Down Expand Up @@ -84,12 +84,12 @@ func (s *APIService) BucketPut(request *restful.Request, response *restful.Respo
}

var backendName string
if strings.EqualFold(isTier, TrueValue) {
backendName = s.getBackendFromTier(ctx, createBucketConf.LocationConstraint)
if strings.EqualFold(isSsp, TrueValue) {
backendName = s.getBackendFromSsp(ctx, createBucketConf.LocationConstraint)
if backendName != "" {
bucket.DefaultLocation = backendName
ctx = common.GetAdminContext()
bucket.Tiers = createBucketConf.LocationConstraint
bucket.Ssps = createBucketConf.LocationConstraint
flag = true
}

Expand All @@ -110,7 +110,7 @@ func (s *APIService) BucketPut(request *restful.Request, response *restful.Respo

rsp, err := s.s3Client.CreateBucket(ctx, &bucket)
if HandleS3Error(response, request, err, rsp.GetErrorCode()) != nil {
log.Errorf("delete bucket[%s] failed, err=%v, errCode=%d\n", bucketName, err, rsp.GetErrorCode())
log.Errorf("create bucket[%s] failed, err=%v, errCode=%d\n", bucketName, err, rsp.GetErrorCode())
return
}

Expand Down
2 changes: 1 addition & 1 deletion api/pkg/s3/objectput.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ func (s *APIService) ObjectPut(request *restful.Request, response *restful.Respo
return
}

if isArchive == "Archive" && bucketMeta.Tiers != "" {
if isArchive == "Archive" && bucketMeta.Ssps != "" {
adminCtx := common.GetAdminContext()
backendMeta, backendErr := s.backendClient.ListBackend(adminCtx, &backend.ListBackendRequest{
Offset: 0,
Expand Down
8 changes: 4 additions & 4 deletions api/pkg/s3/objectrestore.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ func (s *APIService) RestoreObject(request *restful.Request, response *restful.R
return
}

// if tier is enabled, get the bucketMeta data to get all the details
// if ssp is enabled, get the bucketMeta data to get all the details
// like backend, backend type, storageClass etc.
bucketMeta, err := s.getBucketMeta(ctx, bucketName)
if err != nil {
Expand All @@ -79,12 +79,12 @@ func (s *APIService) RestoreObject(request *restful.Request, response *restful.R
return
}

if bucketMeta.Tiers != "" {
if bucketMeta.Ssps != "" {
adminCtx := common.GetAdminContext()
backendId := s.GetBackendIdFromTier(adminCtx, bucketMeta.Tiers)
backendId := s.GetBackendIdFromSsp(adminCtx, bucketMeta.Ssps)
backendMeta, err := s.backendClient.GetBackend(adminCtx, &backend.GetBackendRequest{Id: backendId})
if err != nil {
log.Error("the selected backends from tier doesn't exists.")
log.Error("the selected backends from ssp doesn't exists.")
response.WriteError(http.StatusInternalServerError, err)
}
if backendMeta != nil {
Expand Down
22 changes: 11 additions & 11 deletions api/pkg/s3/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -165,39 +165,39 @@ func HandleS3Error(response *restful.Response, request *restful.Request, err err
return nil
}

func (s *APIService) GetBackendIdFromTier(ctx context.Context, tierName string) string {
log.Info("Request for GetBackendIdFromTier received", tierName)
func (s *APIService) GetBackendIdFromSsp(ctx context.Context, sspName string) string {
log.Info("Request for GetBackendIdFromTier received", sspName)
var response *restful.Response
var backendId string
res, err := s.backendClient.ListTiers(common.GetAdminContext(), &backend.ListTierRequest{
res, err := s.backendClient.ListSsps(common.GetAdminContext(), &backend.ListSspRequest{
Limit: common.MaxPaginationLimit,
Offset: common.DefaultPaginationOffset,
Filter: map[string]string{"name": tierName},
Filter: map[string]string{"name": sspName},
})

if err != nil {
log.Error("list tier failed during getting backends from tier")
log.Error("list ssp failed during getting backends from ssp")
response.WriteError(http.StatusInternalServerError, err)
return ""
}
backendId = res.Tiers[0].Backends[rand.Intn(len(res.Tiers[0].Backends))]
backendId = res.Ssps[0].Backends[rand.Intn(len(res.Ssps[0].Backends))]

return backendId
}

// this method is basically for getting the backends name from tier
func (s *APIService) getBackendFromTier(ctx context.Context, tierName string) string {
log.Info("The received tier name for getting backend name:", tierName)
// this method is basically for getting the backends name from ssp
func (s *APIService) getBackendFromSsp(ctx context.Context, sspName string) string {
log.Info("The received ssp name for getting backend name:", sspName)
var backendId, backendName string
var response *restful.Response

backendId = s.GetBackendIdFromTier(ctx, tierName)
backendId = s.GetBackendIdFromSsp(ctx, sspName)

adminCtx := common.GetAdminContext()
if backendId != "" {
backendRep, err := s.backendClient.GetBackend(adminCtx, &backend.GetBackendRequest{Id: backendId})
if err != nil {
log.Error("the selected backends from tier doesn't exists.")
log.Error("the selected backends from ssp doesn't exists.")
response.WriteError(http.StatusInternalServerError, err)
return ""
}
Expand Down
10 changes: 5 additions & 5 deletions backend/pkg/db/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ type Repository interface {
UpdateBackend(ctx context.Context, backend *model.Backend) (*model.Backend, error)
GetBackend(ctx context.Context, id string) (*model.Backend, error)
ListBackend(ctx context.Context, limit, offset int, query interface{}) ([]*model.Backend, error)
CreateTier(ctx context.Context, tier *model.Tier) (*model.Tier, error)
DeleteTier(ctx context.Context, id string) error
UpdateTier(ctx context.Context, tier *model.Tier) (*model.Tier, error)
GetTier(ctx context.Context, id string) (*model.Tier, error)
ListTiers(ctx context.Context, limit, offset int, query interface{}) ([]*model.Tier, error)
CreateSsp(ctx context.Context, ssp *model.Ssp) (*model.Ssp, error)
DeleteSsp(ctx context.Context, id string) error
UpdateSsp(ctx context.Context, ssp *model.Ssp) (*model.Ssp, error)
GetSsp(ctx context.Context, id string) (*model.Ssp, error)
ListSsps(ctx context.Context, limit, offset int, query interface{}) ([]*model.Ssp, error)
Close()
}

Expand Down
54 changes: 27 additions & 27 deletions backend/pkg/db/drivers/mongo/mongo.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ type mongoRepository struct {

var defaultDBName = "multi-cloud"
var defaultCollection = "backends"
var defaultTierCollection = "tiers"
var defaultSspCollection = "ssps"
var mutex sync.Mutex
var mongoRepo = &mongoRepository{}

Expand Down Expand Up @@ -183,24 +183,24 @@ func (repo *mongoRepository) ListBackend(ctx context.Context, limit, offset int,
return backends, nil
}

func (repo *mongoRepository) CreateTier(ctx context.Context, tier *model.Tier) (*model.Tier, error) {
log.Debug("received request to create tier in db")
func (repo *mongoRepository) CreateSsp(ctx context.Context, ssp *model.Ssp) (*model.Ssp, error) {
log.Debug("received request to create ssp in db")
session := repo.session.Copy()
defer session.Close()

if tier.Id == "" {
tier.Id = bson.NewObjectId()
if ssp.Id == "" {
ssp.Id = bson.NewObjectId()
}
err := session.DB(defaultDBName).C(defaultTierCollection).Insert(tier)
err := session.DB(defaultDBName).C(defaultSspCollection).Insert(ssp)
if err != nil {
return nil, err
}
return tier, nil
return ssp, nil

}

func (repo *mongoRepository) DeleteTier(ctx context.Context, id string) error {
log.Debug("received request to delete tier from db")
func (repo *mongoRepository) DeleteSsp(ctx context.Context, id string) error {
log.Debug("received request to delete ssp from db")

session := repo.session.Copy()
defer session.Close()
Expand All @@ -212,51 +212,51 @@ func (repo *mongoRepository) DeleteTier(ctx context.Context, id string) error {
return err
}

return session.DB(defaultDBName).C(defaultTierCollection).Remove(m)
return session.DB(defaultDBName).C(defaultSspCollection).Remove(m)
}

func (repo *mongoRepository) UpdateTier(ctx context.Context, tier *model.Tier) (*model.Tier, error) {
log.Debug("received request to update tier")
func (repo *mongoRepository) UpdateSsp(ctx context.Context, ssp *model.Ssp) (*model.Ssp, error) {
log.Debug("received request to update ssp")
session := repo.session.Copy()
defer session.Close()
m := bson.M{"_id": tier.Id}
m := bson.M{"_id": ssp.Id}
err := UpdateContextFilter(ctx, m)
if err != nil {
return nil, err
}
err = session.DB(defaultDBName).C(defaultTierCollection).Update(m, tier)
err = session.DB(defaultDBName).C(defaultSspCollection).Update(m, ssp)
if err != nil {
return nil, err
}
return tier, nil
return ssp, nil
}

func (repo *mongoRepository) ListTiers(ctx context.Context, limit, offset int, query interface{}) ([]*model.Tier, error) {
log.Debug("received request to list tiers")
func (repo *mongoRepository) ListSsps(ctx context.Context, limit, offset int, query interface{}) ([]*model.Ssp, error) {
log.Debug("received request to list ssps")
session := repo.session.Copy()
defer session.Close()
if limit == 0 {
limit = math.MinInt32
}
var tiers []*model.Tier
var ssps []*model.Ssp
m := bson.M{}
UpdateFilter(m, query.(map[string]string))
err := UpdateContextFilter(ctx, m)
if err != nil {
return nil, err
}
log.Infof("ListTiers, limit=%d, offset=%d, m=%+v\n", limit, offset, m)
err = session.DB(defaultDBName).C(defaultTierCollection).Find(m).Skip(offset).Limit(limit).All(&tiers)
log.Infof("ListSsps, limit=%d, offset=%d, m=%+v\n", limit, offset, m)
err = session.DB(defaultDBName).C(defaultSspCollection).Find(m).Skip(offset).Limit(limit).All(&ssps)

if err != nil {
return nil, err
}
return tiers, nil
return ssps, nil
}

func (repo *mongoRepository) GetTier(ctx context.Context, id string) (*model.Tier,
func (repo *mongoRepository) GetSsp(ctx context.Context, id string) (*model.Ssp,
error) {
log.Debug("received request to get tier details")
log.Debug("received request to get ssp details")
session := repo.session.Copy()
defer session.Close()

Expand All @@ -265,13 +265,13 @@ func (repo *mongoRepository) GetTier(ctx context.Context, id string) (*model.Tie
if err != nil {
return nil, err
}
var tier = &model.Tier{}
collection := session.DB(defaultDBName).C(defaultTierCollection)
err = collection.Find(m).One(tier)
var ssp = &model.Ssp{}
collection := session.DB(defaultDBName).C(defaultSspCollection)
err = collection.Find(m).One(ssp)
if err != nil {
return nil, err
}
return tier, nil
return ssp, nil
}

func (repo *mongoRepository) Close() {
Expand Down
2 changes: 1 addition & 1 deletion backend/pkg/model/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ type Backend struct {
Security string `json:"security,omitempty" bson:"security,omitempty"`
}

type Tier struct {
type Ssp struct {
Id bson.ObjectId `json:"id,omitempty" bson:"_id,omitempty"`
TenantId string `json:"tenantId,omitempty" bson:"tenantId,omitempty"`
Name string `json:"name,omitempty" bson:"name,omitempty"`
Expand Down
Loading