mirror of
https://github.com/paralus/paralus.git
synced 2026-05-07 00:46:52 +00:00
Merge pull request #72 from RafaySystems/consistent-errors
Consistent error handling in services (partner,project,cluster,org)
This commit is contained in:
@@ -114,12 +114,7 @@ func (es *clusterService) Create(ctx context.Context, cluster *infrav3.Cluster)
|
||||
var proj models.Project
|
||||
_, err := pg.GetByName(ctx, es.db, cluster.Metadata.Project, &proj)
|
||||
if err != nil {
|
||||
cluster.Status = &commonv3.Status{
|
||||
ConditionType: "Create",
|
||||
ConditionStatus: commonv3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return cluster, err
|
||||
return &infrav3.Cluster{}, err
|
||||
}
|
||||
|
||||
/*reqAuth, err := c.requestAuth(r, ctx, ps)
|
||||
@@ -129,31 +124,16 @@ func (es *clusterService) Create(ctx context.Context, cluster *infrav3.Cluster)
|
||||
}*/
|
||||
|
||||
if cluster.Metadata.Name == "" {
|
||||
cluster.Status = &commonv3.Status{
|
||||
ConditionType: "Create",
|
||||
ConditionStatus: commonv3.ConditionStatus_StatusFailed,
|
||||
Reason: "Invalid cluster data, Name is missing.",
|
||||
}
|
||||
return cluster, fmt.Errorf("invalid cluster data, name is missing")
|
||||
return &infrav3.Cluster{}, fmt.Errorf("invalid cluster data, name is missing")
|
||||
}
|
||||
|
||||
if cluster.Spec.ClusterType == "" {
|
||||
cluster.Status = &commonv3.Status{
|
||||
ConditionType: "Create",
|
||||
ConditionStatus: commonv3.ConditionStatus_StatusFailed,
|
||||
Reason: "Invalid cluster data, Cluster type is missing.",
|
||||
}
|
||||
return cluster, fmt.Errorf("invalid cluster data, cluster type is missing")
|
||||
return &infrav3.Cluster{}, fmt.Errorf("invalid cluster data, cluster type is missing")
|
||||
}
|
||||
|
||||
clusterGeneration, err := clstrutil.GetClusterGeneration(cluster.Spec.ClusterType)
|
||||
if err != nil {
|
||||
cluster.Status = &commonv3.Status{
|
||||
ConditionType: "Create",
|
||||
ConditionStatus: commonv3.ConditionStatus_StatusFailed,
|
||||
Reason: "Invalid cluster data, Cluster generation is invalid.",
|
||||
}
|
||||
return cluster, fmt.Errorf("invalid cluster data, cluster generation is invalid")
|
||||
return &infrav3.Cluster{}, fmt.Errorf("invalid cluster data, cluster generation is invalid")
|
||||
}
|
||||
|
||||
if !clstrutil.HasValidCharacters(strings.ToLower(cluster.Metadata.Name)) {
|
||||
@@ -181,12 +161,7 @@ func (es *clusterService) Create(ctx context.Context, cluster *infrav3.Cluster)
|
||||
_log.Infof("Skipping as first time cluster create ")
|
||||
} else if clusterPresent != nil {
|
||||
errormsg = "cluster name is already taken. please try another name"
|
||||
cluster.Status = &commonv3.Status{
|
||||
ConditionType: "Create",
|
||||
ConditionStatus: commonv3.ConditionStatus_StatusFailed,
|
||||
Reason: errormsg,
|
||||
}
|
||||
return cluster, fmt.Errorf(errormsg)
|
||||
return &infrav3.Cluster{}, fmt.Errorf(errormsg)
|
||||
}
|
||||
|
||||
metro := &models.Metro{}
|
||||
@@ -264,13 +239,9 @@ func (es *clusterService) Create(ctx context.Context, cluster *infrav3.Cluster)
|
||||
return dao.CreateCluster(ctx, tx, edb)
|
||||
})
|
||||
if err != nil {
|
||||
cluster.Status = &commonv3.Status{
|
||||
ConditionType: "Create",
|
||||
ConditionStatus: commonv3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return cluster, err
|
||||
return &infrav3.Cluster{}, err
|
||||
}
|
||||
|
||||
// if project is set create project cluster
|
||||
var pc *models.ProjectCluster
|
||||
pcList := make([]models.ProjectCluster, 0)
|
||||
@@ -281,12 +252,7 @@ func (es *clusterService) Create(ctx context.Context, cluster *infrav3.Cluster)
|
||||
}
|
||||
err = dao.CreateProjectCluster(ctx, es.db, pc)
|
||||
if err != nil {
|
||||
cluster.Status = &commonv3.Status{
|
||||
ConditionType: "Create",
|
||||
ConditionStatus: commonv3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return cluster, err
|
||||
return &infrav3.Cluster{}, err
|
||||
}
|
||||
pcList = append(pcList, *pc)
|
||||
}
|
||||
@@ -298,12 +264,7 @@ func (es *clusterService) Create(ctx context.Context, cluster *infrav3.Cluster)
|
||||
operatorSpecStr, err := clstrutil.GetClusterOperatorYaml(ctx, &es.downloadData, clusterResp)
|
||||
if err != nil {
|
||||
_log.Errorw("Error downloading v2 cluster operator yaml", "Error", err)
|
||||
cluster.Status = &commonv3.Status{
|
||||
ConditionType: "Create",
|
||||
ConditionStatus: commonv3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return cluster, err
|
||||
return &infrav3.Cluster{}, err
|
||||
}
|
||||
_log.Infow("Creating cluster operator yaml", "clusterid", edb.ID)
|
||||
operatorSpecEncoded := base64.StdEncoding.EncodeToString([]byte(operatorSpecStr))
|
||||
@@ -346,23 +307,14 @@ func (s *clusterService) Select(ctx context.Context, cluster *infrav3.Cluster, i
|
||||
}
|
||||
c, err := dao.GetCluster(ctx, s.db, &models.Cluster{ID: id, Name: cluster.Metadata.Name})
|
||||
if err != nil {
|
||||
clstr.Status = &commonv3.Status{
|
||||
ConditionStatus: commonv3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return clstr, err
|
||||
return &infrav3.Cluster{}, err
|
||||
}
|
||||
|
||||
var projects []models.ProjectCluster
|
||||
if isExtended {
|
||||
projects, err = dao.GetProjectsForCluster(ctx, s.db, c.ID)
|
||||
if err != nil {
|
||||
clstr.Status = &commonv3.Status{
|
||||
ConditionStatus: commonv3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return clstr, err
|
||||
return &infrav3.Cluster{}, err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -398,23 +350,13 @@ func (s *clusterService) Get(ctx context.Context, opts ...query.Option) (*infrav
|
||||
}
|
||||
c, err := dao.GetCluster(ctx, s.db, &models.Cluster{ID: id, Name: queryOptions.Name})
|
||||
if err != nil {
|
||||
clstr.Status = &commonv3.Status{
|
||||
ConditionStatus: commonv3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return clstr, err
|
||||
return &infrav3.Cluster{}, err
|
||||
}
|
||||
var projects []models.ProjectCluster
|
||||
if queryOptions.Extended {
|
||||
projects, err = dao.GetProjectsForCluster(ctx, s.db, c.ID)
|
||||
if err != nil {
|
||||
clstr.Status = &commonv3.Status{
|
||||
ConditionStatus: commonv3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return clstr, err
|
||||
return &infrav3.Cluster{}, err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -508,10 +450,6 @@ func (s *clusterService) prepareClusterResponse(ctx context.Context, clstr *infr
|
||||
Country: metro.Country,
|
||||
}
|
||||
}
|
||||
clstr.Status = &commonv3.Status{
|
||||
ConditionStatus: commonv3.ConditionStatus_StatusOK,
|
||||
LastUpdated: timestamppb.New(c.ModifiedAt),
|
||||
}
|
||||
return clstr
|
||||
}
|
||||
|
||||
@@ -530,12 +468,7 @@ func (cs *clusterService) Update(ctx context.Context, cluster *infrav3.Cluster)
|
||||
|
||||
edb, err := pg.GetByName(ctx, cs.db, cluster.Metadata.Name, &models.Cluster{})
|
||||
if err != nil {
|
||||
cluster.Status = &commonv3.Status{
|
||||
ConditionType: "Update",
|
||||
ConditionStatus: commonv3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return cluster, fmt.Errorf(errormsg)
|
||||
return &infrav3.Cluster{}, fmt.Errorf(errormsg)
|
||||
}
|
||||
cdb := edb.(*models.Cluster)
|
||||
|
||||
@@ -551,12 +484,7 @@ func (cs *clusterService) Update(ctx context.Context, cluster *infrav3.Cluster)
|
||||
|
||||
_, err = clstrutil.GetClusterGeneration(cluster.Spec.ClusterType)
|
||||
if err != nil {
|
||||
cluster.Status = &commonv3.Status{
|
||||
ConditionType: "Update",
|
||||
ConditionStatus: commonv3.ConditionStatus_StatusFailed,
|
||||
Reason: "Invalid cluster data, Cluster generation is invalid.",
|
||||
}
|
||||
return cluster, fmt.Errorf("invalid cluster data, cluster generation is invalid")
|
||||
return &infrav3.Cluster{}, fmt.Errorf("invalid cluster data, cluster generation is invalid")
|
||||
}
|
||||
|
||||
if len(cluster.Metadata.Labels) == 0 {
|
||||
@@ -622,18 +550,7 @@ func (cs *clusterService) Update(ctx context.Context, cluster *infrav3.Cluster)
|
||||
}
|
||||
err = dao.UpdateCluster(ctx, cs.db, cdb)
|
||||
if err != nil {
|
||||
cluster.Status = &commonv3.Status{
|
||||
ConditionStatus: commonv3.ConditionStatus_StatusFailed,
|
||||
ConditionType: "Update",
|
||||
LastUpdated: timestamppb.New(cdb.ModifiedAt),
|
||||
}
|
||||
return cluster, err
|
||||
}
|
||||
|
||||
cluster.Status = &commonv3.Status{
|
||||
ConditionStatus: commonv3.ConditionStatus_StatusOK,
|
||||
ConditionType: "Update",
|
||||
LastUpdated: timestamppb.New(cdb.ModifiedAt),
|
||||
return &infrav3.Cluster{}, err
|
||||
}
|
||||
|
||||
cs.notifyCluster(ctx, cluster)
|
||||
|
||||
@@ -51,7 +51,7 @@ func (s *organizationService) Create(ctx context.Context, org *systemv3.Organiza
|
||||
var partner models.Partner
|
||||
_, err := pg.GetByName(ctx, s.db, org.Metadata.Partner, &partner)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return &systemv3.Organization{}, err
|
||||
}
|
||||
|
||||
//update default organization setting values
|
||||
@@ -65,12 +65,7 @@ func (s *organizationService) Create(ctx context.Context, org *systemv3.Organiza
|
||||
}
|
||||
sb, err := json.MarshalIndent(org.GetSpec().GetSettings(), "", "\t")
|
||||
if err != nil {
|
||||
org.Status = &v3.Status{
|
||||
ConditionType: "Create",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return &systemv3.Organization{}, err
|
||||
}
|
||||
//convert v3 spec to internal models
|
||||
organization := models.Organization{
|
||||
@@ -98,23 +93,12 @@ func (s *organizationService) Create(ctx context.Context, org *systemv3.Organiza
|
||||
}
|
||||
entity, err := pg.Create(ctx, s.db, &organization)
|
||||
if err != nil {
|
||||
org.Status = &v3.Status{
|
||||
ConditionType: "Create",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return org, err
|
||||
return &systemv3.Organization{}, err
|
||||
}
|
||||
|
||||
if createdOrg, ok := entity.(*models.Organization); ok {
|
||||
//update v3 spec
|
||||
org.Metadata.Id = createdOrg.ID.String()
|
||||
org.Status = &v3.Status{
|
||||
ConditionType: "Create",
|
||||
ConditionStatus: v3.ConditionStatus_StatusOK,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
}
|
||||
|
||||
return org, nil
|
||||
@@ -133,21 +117,11 @@ func (s *organizationService) GetByID(ctx context.Context, id string) (*systemv3
|
||||
|
||||
uid, err := uuid.Parse(id)
|
||||
if err != nil {
|
||||
organization.Status = &v3.Status{
|
||||
ConditionType: "Describe",
|
||||
LastUpdated: timestamppb.Now(),
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
}
|
||||
return organization, err
|
||||
return &systemv3.Organization{}, err
|
||||
}
|
||||
entity, err := pg.GetByID(ctx, s.db, uid, &models.Organization{})
|
||||
if err != nil {
|
||||
organization.Status = &v3.Status{
|
||||
ConditionType: "Describe",
|
||||
LastUpdated: timestamppb.Now(),
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
}
|
||||
return organization, err
|
||||
return &systemv3.Organization{}, err
|
||||
}
|
||||
|
||||
if org, ok := entity.(*models.Organization); ok {
|
||||
@@ -155,24 +129,12 @@ func (s *organizationService) GetByID(ctx context.Context, id string) (*systemv3
|
||||
var partner models.Partner
|
||||
_, err := pg.GetByID(ctx, s.db, org.PartnerId, &partner)
|
||||
if err != nil {
|
||||
organization.Status = &v3.Status{
|
||||
ConditionType: "Describe",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return organization, err
|
||||
return &systemv3.Organization{}, err
|
||||
}
|
||||
|
||||
organization, err = prepareOrganizationResponse(organization, org, partner.Name)
|
||||
if err != nil {
|
||||
return organization, err
|
||||
}
|
||||
|
||||
organization.Status = &v3.Status{
|
||||
ConditionType: "Describe",
|
||||
LastUpdated: timestamppb.Now(),
|
||||
ConditionStatus: v3.ConditionStatus_StatusOK,
|
||||
return &systemv3.Organization{}, err
|
||||
}
|
||||
|
||||
return organization, nil
|
||||
@@ -205,16 +167,7 @@ func (s *organizationService) GetByName(ctx context.Context, name string) (*syst
|
||||
}
|
||||
entity, err := pg.GetByName(ctx, s.db, name, &models.Organization{})
|
||||
if err != nil {
|
||||
organization.Metadata = &v3.Metadata{
|
||||
Name: name,
|
||||
}
|
||||
organization.Status = &v3.Status{
|
||||
ConditionType: "Describe",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return organization, err
|
||||
return &systemv3.Organization{}, err
|
||||
}
|
||||
|
||||
if org, ok := entity.(*models.Organization); ok {
|
||||
@@ -222,27 +175,12 @@ func (s *organizationService) GetByName(ctx context.Context, name string) (*syst
|
||||
var partner models.Partner
|
||||
_, err := pg.GetByID(ctx, s.db, org.PartnerId, &partner)
|
||||
if err != nil {
|
||||
organization.Metadata = &v3.Metadata{
|
||||
Name: name,
|
||||
}
|
||||
organization.Status = &v3.Status{
|
||||
ConditionType: "Describe",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return organization, err
|
||||
return &systemv3.Organization{}, err
|
||||
}
|
||||
|
||||
organization, err = prepareOrganizationResponse(organization, org, partner.Name)
|
||||
if err != nil {
|
||||
return organization, err
|
||||
}
|
||||
|
||||
organization.Status = &v3.Status{
|
||||
ConditionType: "Describe",
|
||||
LastUpdated: timestamppb.Now(),
|
||||
ConditionStatus: v3.ConditionStatus_StatusOK,
|
||||
return &systemv3.Organization{}, err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -253,25 +191,14 @@ func (s *organizationService) Update(ctx context.Context, organization *systemv3
|
||||
|
||||
entity, err := pg.GetByName(ctx, s.db, organization.Metadata.Name, &models.Organization{})
|
||||
if err != nil {
|
||||
organization.Status = &v3.Status{
|
||||
ConditionType: "Update",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return organization, err
|
||||
return &systemv3.Organization{}, err
|
||||
}
|
||||
|
||||
if org, ok := entity.(*models.Organization); ok {
|
||||
|
||||
sb, err := json.MarshalIndent(organization.GetSpec().GetSettings(), "", "\t")
|
||||
if err != nil {
|
||||
organization.Status = &v3.Status{
|
||||
ConditionType: "Update",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return &systemv3.Organization{}, err
|
||||
}
|
||||
|
||||
//update organization details
|
||||
@@ -297,22 +224,7 @@ func (s *organizationService) Update(ctx context.Context, organization *systemv3
|
||||
|
||||
_, err = pg.Update(ctx, s.db, org.ID, org)
|
||||
if err != nil {
|
||||
organization.Status = &v3.Status{
|
||||
ConditionType: "Update",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return organization, err
|
||||
}
|
||||
|
||||
//update status
|
||||
if organization.Status != nil {
|
||||
organization.Status = &v3.Status{
|
||||
ConditionType: "Update",
|
||||
ConditionStatus: v3.ConditionStatus_StatusOK,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return &systemv3.Organization{}, err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -323,35 +235,19 @@ func (s *organizationService) Delete(ctx context.Context, organization *systemv3
|
||||
|
||||
entity, err := pg.GetByName(ctx, s.db, organization.Metadata.Name, &models.Organization{})
|
||||
if err != nil {
|
||||
organization.Status = &v3.Status{
|
||||
ConditionType: "Delete",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return organization, err
|
||||
return &systemv3.Organization{}, err
|
||||
}
|
||||
|
||||
if org, ok := entity.(*models.Organization); ok {
|
||||
org.Trash = true
|
||||
_, err := pg.Update(ctx, s.db, org.ID, org)
|
||||
if err != nil {
|
||||
organization.Status = &v3.Status{
|
||||
ConditionType: "Delete",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return organization, err
|
||||
return &systemv3.Organization{}, err
|
||||
}
|
||||
|
||||
//update v3 status
|
||||
organization.Metadata.Name = org.Name
|
||||
organization.Metadata.ModifiedAt = timestamppb.New(org.ModifiedAt)
|
||||
organization.Status = &v3.Status{
|
||||
ConditionType: "Deleted",
|
||||
ConditionStatus: v3.ConditionStatus_StatusOK,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
}
|
||||
return organization, nil
|
||||
|
||||
@@ -371,20 +267,20 @@ func (s *organizationService) List(ctx context.Context, organization *systemv3.O
|
||||
var partner models.Partner
|
||||
_, err := pg.GetByName(ctx, s.db, organization.Metadata.Partner, &partner)
|
||||
if err != nil {
|
||||
return organinzationList, err
|
||||
return &systemv3.OrganizationList{}, err
|
||||
}
|
||||
|
||||
var orgs []models.Organization
|
||||
entities, err := pg.List(ctx, s.db, uuid.NullUUID{UUID: partner.ID, Valid: true}, uuid.NullUUID{UUID: uuid.Nil}, &orgs)
|
||||
if err != nil {
|
||||
return organinzationList, err
|
||||
return &systemv3.OrganizationList{}, err
|
||||
}
|
||||
if orgs, ok := entities.(*[]models.Organization); ok {
|
||||
for _, org := range *orgs {
|
||||
var settings systemv3.OrganizationSettings
|
||||
err := json.Unmarshal(org.Settings, &settings)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return &systemv3.OrganizationList{}, err
|
||||
}
|
||||
organization.Metadata = &v3.Metadata{
|
||||
Name: org.Name,
|
||||
@@ -431,12 +327,7 @@ func prepareOrganizationResponse(organization *systemv3.Organization, org *model
|
||||
if org.Settings != nil {
|
||||
err := json.Unmarshal(org.Settings, &settings)
|
||||
if err != nil {
|
||||
organization.Status = &v3.Status{
|
||||
ConditionType: "Describe",
|
||||
LastUpdated: timestamppb.Now(),
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
}
|
||||
return organization, err
|
||||
return &systemv3.Organization{}, err
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -67,23 +67,13 @@ func (s *partnerService) Create(ctx context.Context, partner *systemv3.Partner)
|
||||
}
|
||||
entity, err := pg.Create(ctx, s.db, &part)
|
||||
if err != nil {
|
||||
partner.Status = &v3.Status{
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return partner, err
|
||||
return &systemv3.Partner{}, err
|
||||
}
|
||||
|
||||
if createdPartner, ok := entity.(*models.Partner); ok {
|
||||
//update v3 spec
|
||||
partner.Metadata.Id = createdPartner.ID.String()
|
||||
partner.Metadata.ModifiedAt = timestamppb.New(createdPartner.ModifiedAt)
|
||||
if partner.Status != nil {
|
||||
partner.Status = &v3.Status{
|
||||
ConditionStatus: v3.ConditionStatus_StatusOK,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return partner, nil
|
||||
@@ -102,23 +92,11 @@ func (s *partnerService) GetByID(ctx context.Context, id string) (*systemv3.Part
|
||||
|
||||
uid, err := uuid.Parse(id)
|
||||
if err != nil {
|
||||
partner.Status = &v3.Status{
|
||||
ConditionType: "Describe",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return partner, err
|
||||
return &systemv3.Partner{}, err
|
||||
}
|
||||
entity, err := pg.GetByID(ctx, s.db, uid, &models.Partner{})
|
||||
if err != nil {
|
||||
partner.Status = &v3.Status{
|
||||
ConditionType: "Describe",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return partner, err
|
||||
return &systemv3.Partner{}, err
|
||||
}
|
||||
|
||||
if part, ok := entity.(*models.Partner); ok {
|
||||
@@ -142,11 +120,6 @@ func (s *partnerService) GetByID(ctx context.Context, id string) (*systemv3.Part
|
||||
IsTOTPEnabled: part.IsTOTPEnabled,
|
||||
Settings: nil, //TODO
|
||||
}
|
||||
partner.Status = &v3.Status{
|
||||
ConditionType: "Describe",
|
||||
ConditionStatus: v3.ConditionStatus_StatusOK,
|
||||
LastUpdated: timestamppb.New(part.ModifiedAt),
|
||||
}
|
||||
|
||||
return partner, nil
|
||||
|
||||
@@ -181,13 +154,7 @@ func (s *partnerService) GetByName(ctx context.Context, name string) (*systemv3.
|
||||
|
||||
entity, err := pg.GetByName(ctx, s.db, name, &models.Partner{})
|
||||
if err != nil {
|
||||
partner.Status = &v3.Status{
|
||||
ConditionType: "Describe",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return partner, err
|
||||
return &systemv3.Partner{}, err
|
||||
}
|
||||
|
||||
if part, ok := entity.(*models.Partner); ok {
|
||||
@@ -212,11 +179,6 @@ func (s *partnerService) GetByName(ctx context.Context, name string) (*systemv3.
|
||||
IsTOTPEnabled: part.IsTOTPEnabled,
|
||||
Settings: nil, //TODO
|
||||
}
|
||||
partner.Status = &v3.Status{
|
||||
ConditionType: "Describe",
|
||||
ConditionStatus: v3.ConditionStatus_StatusOK,
|
||||
LastUpdated: timestamppb.New(part.ModifiedAt),
|
||||
}
|
||||
|
||||
return partner, nil
|
||||
} else {
|
||||
@@ -243,12 +205,7 @@ func (s *partnerService) Update(ctx context.Context, partner *systemv3.Partner)
|
||||
|
||||
entity, err := pg.GetByName(ctx, s.db, partner.Metadata.Name, &models.Partner{})
|
||||
if err != nil {
|
||||
partner.Status = &v3.Status{
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return partner, err
|
||||
return &systemv3.Partner{}, err
|
||||
}
|
||||
|
||||
var sb []byte
|
||||
@@ -277,20 +234,11 @@ func (s *partnerService) Update(ctx context.Context, partner *systemv3.Partner)
|
||||
//Update the partner details
|
||||
_, err = pg.Update(ctx, s.db, part.ID, part)
|
||||
if err != nil {
|
||||
partner.Status = &v3.Status{
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return partner, err
|
||||
return &systemv3.Partner{}, err
|
||||
}
|
||||
|
||||
//update metadata and status
|
||||
partner.Metadata.ModifiedAt = timestamppb.New(part.ModifiedAt)
|
||||
partner.Status = &v3.Status{
|
||||
ConditionStatus: v3.ConditionStatus_StatusOK,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -300,34 +248,14 @@ func (s *partnerService) Update(ctx context.Context, partner *systemv3.Partner)
|
||||
func (s *partnerService) Delete(ctx context.Context, partner *systemv3.Partner) (*systemv3.Partner, error) {
|
||||
entity, err := pg.GetByName(ctx, s.db, partner.Metadata.Name, &models.Partner{})
|
||||
if err != nil {
|
||||
partner.Status = &v3.Status{
|
||||
ConditionType: "Delete",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return partner, err
|
||||
return &systemv3.Partner{}, err
|
||||
}
|
||||
|
||||
if part, ok := entity.(*models.Partner); ok {
|
||||
part.Trash = true
|
||||
_, err := pg.Update(ctx, s.db, part.ID, part)
|
||||
if err != nil {
|
||||
partner.Status = &v3.Status{
|
||||
ConditionType: "Delete",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
Reason: err.Error(),
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return partner, err
|
||||
}
|
||||
//update status
|
||||
if partner != nil {
|
||||
partner.Metadata.Name = part.Name
|
||||
partner.Status = &v3.Status{
|
||||
ConditionStatus: v3.ConditionStatus_StatusOK,
|
||||
ConditionType: "Delete",
|
||||
}
|
||||
return &systemv3.Partner{}, err
|
||||
}
|
||||
return partner, nil
|
||||
}
|
||||
|
||||
@@ -71,12 +71,7 @@ func (s *projectService) Create(ctx context.Context, project *systemv3.Project)
|
||||
}
|
||||
entity, err := pg.Create(ctx, s.db, &proj)
|
||||
if err != nil {
|
||||
project.Status = &v3.Status{
|
||||
ConditionType: "Create",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
return project, err
|
||||
return &systemv3.Project{}, err
|
||||
}
|
||||
|
||||
//update v3 spec
|
||||
@@ -85,13 +80,6 @@ func (s *projectService) Create(ctx context.Context, project *systemv3.Project)
|
||||
project.Spec = &systemv3.ProjectSpec{
|
||||
Default: createdProject.Default,
|
||||
}
|
||||
if project.Status != nil {
|
||||
project.Status = &v3.Status{
|
||||
ConditionType: "Create",
|
||||
ConditionStatus: v3.ConditionStatus_StatusOK,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return project, nil
|
||||
@@ -110,23 +98,11 @@ func (s *projectService) GetByID(ctx context.Context, id string) (*systemv3.Proj
|
||||
|
||||
uid, err := uuid.Parse(id)
|
||||
if err != nil {
|
||||
project.Status = &v3.Status{
|
||||
ConditionType: "Describe",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return project, err
|
||||
return &systemv3.Project{}, err
|
||||
}
|
||||
entity, err := pg.GetByID(ctx, s.db, uid, &models.Project{})
|
||||
if err != nil {
|
||||
project.Status = &v3.Status{
|
||||
ConditionType: "Describe",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return project, err
|
||||
return &systemv3.Project{}, err
|
||||
}
|
||||
|
||||
if proj, ok := entity.(*models.Project); ok {
|
||||
@@ -142,11 +118,6 @@ func (s *projectService) GetByID(ctx context.Context, id string) (*systemv3.Proj
|
||||
project.Spec = &systemv3.ProjectSpec{
|
||||
Default: proj.Default,
|
||||
}
|
||||
project.Status = &v3.Status{
|
||||
LastUpdated: timestamppb.Now(),
|
||||
ConditionType: "Describe",
|
||||
ConditionStatus: v3.ConditionStatus_StatusOK,
|
||||
}
|
||||
|
||||
return project, nil
|
||||
}
|
||||
@@ -166,13 +137,7 @@ func (s *projectService) GetByName(ctx context.Context, name string) (*systemv3.
|
||||
|
||||
entity, err := pg.GetByName(ctx, s.db, name, &models.Project{})
|
||||
if err != nil {
|
||||
project.Status = &v3.Status{
|
||||
ConditionType: "Describe",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return project, err
|
||||
return &systemv3.Project{}, err
|
||||
}
|
||||
|
||||
if proj, ok := entity.(*models.Project); ok {
|
||||
@@ -199,11 +164,6 @@ func (s *projectService) GetByName(ctx context.Context, name string) (*systemv3.
|
||||
project.Spec = &systemv3.ProjectSpec{
|
||||
Default: proj.Default,
|
||||
}
|
||||
project.Status = &v3.Status{
|
||||
LastUpdated: timestamppb.Now(),
|
||||
ConditionType: "Describe",
|
||||
ConditionStatus: v3.ConditionStatus_StatusOK,
|
||||
}
|
||||
|
||||
return project, nil
|
||||
}
|
||||
@@ -215,13 +175,7 @@ func (s *projectService) Update(ctx context.Context, project *systemv3.Project)
|
||||
|
||||
entity, err := pg.GetByName(ctx, s.db, project.Metadata.Name, &models.Project{})
|
||||
if err != nil {
|
||||
project.Status = &v3.Status{
|
||||
ConditionType: "Update",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return project, err
|
||||
return &systemv3.Project{}, err
|
||||
}
|
||||
|
||||
if proj, ok := entity.(*models.Project); ok {
|
||||
@@ -232,24 +186,13 @@ func (s *projectService) Update(ctx context.Context, project *systemv3.Project)
|
||||
|
||||
_, err = pg.Update(ctx, s.db, proj.ID, proj)
|
||||
if err != nil {
|
||||
project.Status = &v3.Status{
|
||||
ConditionType: "Update",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return project, err
|
||||
return &systemv3.Project{}, err
|
||||
}
|
||||
|
||||
//update spec and status
|
||||
project.Spec = &systemv3.ProjectSpec{
|
||||
Default: proj.Default,
|
||||
}
|
||||
project.Status = &v3.Status{
|
||||
ConditionType: "Update",
|
||||
ConditionStatus: v3.ConditionStatus_StatusOK,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
}
|
||||
|
||||
return project, nil
|
||||
@@ -258,34 +201,17 @@ func (s *projectService) Update(ctx context.Context, project *systemv3.Project)
|
||||
func (s *projectService) Delete(ctx context.Context, project *systemv3.Project) (*systemv3.Project, error) {
|
||||
entity, err := pg.GetByName(ctx, s.db, project.Metadata.Name, &models.Project{})
|
||||
if err != nil {
|
||||
project.Status = &v3.Status{
|
||||
ConditionType: "Delete",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return project, err
|
||||
return &systemv3.Project{}, err
|
||||
}
|
||||
if proj, ok := entity.(*models.Project); ok {
|
||||
proj.Trash = true
|
||||
_, err := pg.Update(ctx, s.db, proj.ID, proj)
|
||||
if err != nil {
|
||||
project.Status = &v3.Status{
|
||||
ConditionType: "Delete",
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return project, err
|
||||
return &systemv3.Project{}, err
|
||||
}
|
||||
//update v3 spec
|
||||
project.Metadata.Id = proj.ID.String()
|
||||
project.Metadata.Name = proj.Name
|
||||
project.Status = &v3.Status{
|
||||
ConditionType: "Delete",
|
||||
ConditionStatus: v3.ConditionStatus_StatusOK,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
}
|
||||
}
|
||||
|
||||
return project, nil
|
||||
@@ -305,17 +231,17 @@ func (s *projectService) List(ctx context.Context, project *systemv3.Project) (*
|
||||
var org models.Organization
|
||||
_, err := pg.GetByName(ctx, s.db, project.Metadata.Organization, &org)
|
||||
if err != nil {
|
||||
return projectList, err
|
||||
return &systemv3.ProjectList{}, err
|
||||
}
|
||||
var part models.Partner
|
||||
_, err = pg.GetByName(ctx, s.db, project.Metadata.Partner, &part)
|
||||
if err != nil {
|
||||
return projectList, err
|
||||
return &systemv3.ProjectList{}, err
|
||||
}
|
||||
var projs []models.Project
|
||||
entities, err := pg.List(ctx, s.db, uuid.NullUUID{UUID: part.ID, Valid: true}, uuid.NullUUID{UUID: org.ID, Valid: true}, &projs)
|
||||
if err != nil {
|
||||
return projectList, err
|
||||
return &systemv3.ProjectList{}, err
|
||||
}
|
||||
if projs, ok := entities.(*[]models.Project); ok {
|
||||
for _, proj := range *projs {
|
||||
|
||||
@@ -11,7 +11,9 @@ import (
|
||||
"github.com/RafaySystems/rcloud-base/pkg/service"
|
||||
rpcv3 "github.com/RafaySystems/rcloud-base/proto/rpc/scheduler"
|
||||
commonv3 "github.com/RafaySystems/rcloud-base/proto/types/commonpb/v3"
|
||||
v3 "github.com/RafaySystems/rcloud-base/proto/types/commonpb/v3"
|
||||
infrapbv3 "github.com/RafaySystems/rcloud-base/proto/types/infrapb/v3"
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
)
|
||||
|
||||
type clusterServer struct {
|
||||
@@ -27,28 +29,31 @@ func NewClusterServer(es service.ClusterService, data *common.DownloadData) rpcv
|
||||
}
|
||||
}
|
||||
|
||||
func (s *clusterServer) CreateCluster(ctx context.Context, e *infrapbv3.Cluster) (*infrapbv3.Cluster, error) {
|
||||
edge, err := s.Create(ctx, e)
|
||||
func updateClusterStatus(req *infrapbv3.Cluster, resp *infrapbv3.Cluster, err error) *infrapbv3.Cluster {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
req.Status = &v3.Status{
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return req
|
||||
}
|
||||
return edge, nil
|
||||
resp.Status = &v3.Status{ConditionStatus: v3.ConditionStatus_StatusOK}
|
||||
return resp
|
||||
}
|
||||
|
||||
func (s *clusterServer) GetClusters(ctx context.Context, e *commonv3.QueryOptions) (*infrapbv3.ClusterList, error) {
|
||||
clusters, err := s.List(ctx, query.WithOptions(e))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return clusters, nil
|
||||
func (s *clusterServer) CreateCluster(ctx context.Context, req *infrapbv3.Cluster) (*infrapbv3.Cluster, error) {
|
||||
resp, err := s.Create(ctx, req)
|
||||
return updateClusterStatus(req, resp, err), err
|
||||
}
|
||||
|
||||
func (s *clusterServer) GetCluster(ctx context.Context, e *infrapbv3.Cluster) (*infrapbv3.Cluster, error) {
|
||||
cluster, err := s.Select(ctx, e, true)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return cluster, nil
|
||||
func (s *clusterServer) GetClusters(ctx context.Context, req *commonv3.QueryOptions) (*infrapbv3.ClusterList, error) {
|
||||
return s.List(ctx, query.WithOptions(req))
|
||||
}
|
||||
|
||||
func (s *clusterServer) GetCluster(ctx context.Context, req *infrapbv3.Cluster) (*infrapbv3.Cluster, error) {
|
||||
resp, err := s.Select(ctx, req, true)
|
||||
return updateClusterStatus(req, resp, err), err
|
||||
}
|
||||
|
||||
func (s *clusterServer) DeleteCluster(ctx context.Context, e *infrapbv3.Cluster) (*rpcv3.DeleteClusterResponse, error) {
|
||||
@@ -59,12 +64,9 @@ func (s *clusterServer) DeleteCluster(ctx context.Context, e *infrapbv3.Cluster)
|
||||
return &rpcv3.DeleteClusterResponse{}, nil
|
||||
}
|
||||
|
||||
func (s *clusterServer) UpdateCluster(ctx context.Context, e *infrapbv3.Cluster) (*infrapbv3.Cluster, error) {
|
||||
edge, err := s.Update(ctx, e)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return edge, nil
|
||||
func (s *clusterServer) UpdateCluster(ctx context.Context, req *infrapbv3.Cluster) (*infrapbv3.Cluster, error) {
|
||||
resp, err := s.Update(ctx, req)
|
||||
return updateClusterStatus(req, resp, err), err
|
||||
}
|
||||
|
||||
func (s *clusterServer) DownloadCluster(ctx context.Context, cluster *infrapbv3.Cluster) (*commonv3.HttpBody, error) {
|
||||
@@ -100,7 +102,7 @@ func (s *clusterServer) DownloadCluster(ctx context.Context, cluster *infrapbv3.
|
||||
func (s *clusterServer) UpdateClusterStatus(ctx context.Context, cluster *infrapbv3.Cluster) (*infrapbv3.Cluster, error) {
|
||||
err := s.UpdateClusterConditionStatus(ctx, cluster)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return updateClusterStatus(cluster, cluster, err), err
|
||||
}
|
||||
return cluster, nil
|
||||
}
|
||||
|
||||
@@ -5,7 +5,9 @@ import (
|
||||
|
||||
"github.com/RafaySystems/rcloud-base/pkg/service"
|
||||
systemrpc "github.com/RafaySystems/rcloud-base/proto/rpc/system"
|
||||
v3 "github.com/RafaySystems/rcloud-base/proto/types/commonpb/v3"
|
||||
systempbv3 "github.com/RafaySystems/rcloud-base/proto/types/systempb/v3"
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
)
|
||||
|
||||
type organizationServer struct {
|
||||
@@ -17,44 +19,39 @@ func NewOrganizationServer(ps service.OrganizationService) systemrpc.Organizatio
|
||||
return &organizationServer{ps}
|
||||
}
|
||||
|
||||
func (s *organizationServer) CreateOrganization(ctx context.Context, o *systempbv3.Organization) (*systempbv3.Organization, error) {
|
||||
organization, err := s.Create(ctx, o)
|
||||
func updateOrganizationStatus(req *systempbv3.Organization, resp *systempbv3.Organization, err error) *systempbv3.Organization {
|
||||
if err != nil {
|
||||
return o, err
|
||||
req.Status = &v3.Status{
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return req
|
||||
}
|
||||
return organization, nil
|
||||
resp.Status = &v3.Status{ConditionStatus: v3.ConditionStatus_StatusOK}
|
||||
return resp
|
||||
}
|
||||
|
||||
func (s *organizationServer) GetOrganizations(ctx context.Context, o *systempbv3.Organization) (*systempbv3.OrganizationList, error) {
|
||||
organizations, err := s.List(ctx, o)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return organizations, nil
|
||||
func (s *organizationServer) CreateOrganization(ctx context.Context, req *systempbv3.Organization) (*systempbv3.Organization, error) {
|
||||
resp, err := s.Create(ctx, req)
|
||||
return updateOrganizationStatus(req, resp, err), err
|
||||
}
|
||||
|
||||
func (s *organizationServer) GetOrganization(ctx context.Context, o *systempbv3.Organization) (*systempbv3.Organization, error) {
|
||||
|
||||
organization, err := s.GetByName(ctx, o.Metadata.Name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return organization, nil
|
||||
func (s *organizationServer) GetOrganizations(ctx context.Context, req *systempbv3.Organization) (*systempbv3.OrganizationList, error) {
|
||||
return s.List(ctx, req)
|
||||
}
|
||||
|
||||
func (s *organizationServer) DeleteOrganization(ctx context.Context, o *systempbv3.Organization) (*systempbv3.Organization, error) {
|
||||
organization, err := s.Delete(ctx, o)
|
||||
if err != nil {
|
||||
return o, err
|
||||
}
|
||||
return organization, nil
|
||||
func (s *organizationServer) GetOrganization(ctx context.Context, req *systempbv3.Organization) (*systempbv3.Organization, error) {
|
||||
resp, err := s.GetByName(ctx, req.Metadata.Name)
|
||||
return updateOrganizationStatus(req, resp, err), err
|
||||
}
|
||||
|
||||
func (s *organizationServer) UpdateOrganization(ctx context.Context, o *systempbv3.Organization) (*systempbv3.Organization, error) {
|
||||
organization, err := s.Update(ctx, o)
|
||||
if err != nil {
|
||||
return o, err
|
||||
}
|
||||
return organization, nil
|
||||
func (s *organizationServer) DeleteOrganization(ctx context.Context, req *systempbv3.Organization) (*systempbv3.Organization, error) {
|
||||
resp, err := s.Delete(ctx, req)
|
||||
return updateOrganizationStatus(req, resp, err), err
|
||||
}
|
||||
|
||||
func (s *organizationServer) UpdateOrganization(ctx context.Context, req *systempbv3.Organization) (*systempbv3.Organization, error) {
|
||||
resp, err := s.Update(ctx, req)
|
||||
return updateOrganizationStatus(req, resp, err), err
|
||||
}
|
||||
|
||||
@@ -5,7 +5,9 @@ import (
|
||||
|
||||
"github.com/RafaySystems/rcloud-base/pkg/service"
|
||||
systemrpc "github.com/RafaySystems/rcloud-base/proto/rpc/system"
|
||||
v3 "github.com/RafaySystems/rcloud-base/proto/types/commonpb/v3"
|
||||
systempbv3 "github.com/RafaySystems/rcloud-base/proto/types/systempb/v3"
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
)
|
||||
|
||||
type partnerServer struct {
|
||||
@@ -17,38 +19,34 @@ func NewPartnerServer(ps service.PartnerService) systemrpc.PartnerServer {
|
||||
return &partnerServer{ps}
|
||||
}
|
||||
|
||||
func (s *partnerServer) CreatePartner(ctx context.Context, p *systempbv3.Partner) (*systempbv3.Partner, error) {
|
||||
p, err := s.Create(ctx, p)
|
||||
func updatePartnerStatus(req *systempbv3.Partner, resp *systempbv3.Partner, err error) *systempbv3.Partner {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return p, nil
|
||||
}
|
||||
func (s *partnerServer) GetPartner(ctx context.Context, p *systempbv3.Partner) (*systempbv3.Partner, error) {
|
||||
|
||||
partner, err := s.GetByName(ctx, p.Metadata.Name)
|
||||
if err != nil {
|
||||
partner, err = s.GetByID(ctx, p.Metadata.Id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
req.Status = &v3.Status{
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return req
|
||||
}
|
||||
|
||||
return partner, nil
|
||||
resp.Status = &v3.Status{ConditionStatus: v3.ConditionStatus_StatusOK}
|
||||
return resp
|
||||
}
|
||||
|
||||
func (s *partnerServer) DeletePartner(ctx context.Context, p *systempbv3.Partner) (*systempbv3.Partner, error) {
|
||||
partner, err := s.Delete(ctx, p)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return partner, nil
|
||||
func (s *partnerServer) CreatePartner(ctx context.Context, req *systempbv3.Partner) (*systempbv3.Partner, error) {
|
||||
resp, err := s.Create(ctx, req)
|
||||
return updatePartnerStatus(req, resp, err), err
|
||||
}
|
||||
func (s *partnerServer) GetPartner(ctx context.Context, req *systempbv3.Partner) (*systempbv3.Partner, error) {
|
||||
resp, err := s.GetByName(ctx, req.Metadata.Name)
|
||||
return updatePartnerStatus(req, resp, err), err
|
||||
}
|
||||
|
||||
func (s *partnerServer) UpdatePartner(ctx context.Context, p *systempbv3.Partner) (*systempbv3.Partner, error) {
|
||||
partner, err := s.Update(ctx, p)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return partner, nil
|
||||
func (s *partnerServer) DeletePartner(ctx context.Context, req *systempbv3.Partner) (*systempbv3.Partner, error) {
|
||||
resp, err := s.Delete(ctx, req)
|
||||
return updatePartnerStatus(req, resp, err), err
|
||||
}
|
||||
|
||||
func (s *partnerServer) UpdatePartner(ctx context.Context, req *systempbv3.Partner) (*systempbv3.Partner, error) {
|
||||
resp, err := s.Update(ctx, req)
|
||||
return updatePartnerStatus(req, resp, err), err
|
||||
}
|
||||
|
||||
@@ -5,7 +5,9 @@ import (
|
||||
|
||||
"github.com/RafaySystems/rcloud-base/pkg/service"
|
||||
systemrpc "github.com/RafaySystems/rcloud-base/proto/rpc/system"
|
||||
v3 "github.com/RafaySystems/rcloud-base/proto/types/commonpb/v3"
|
||||
systempbv3 "github.com/RafaySystems/rcloud-base/proto/types/systempb/v3"
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
)
|
||||
|
||||
type projectServer struct {
|
||||
@@ -17,47 +19,40 @@ func NewProjectServer(ps service.ProjectService) systemrpc.ProjectServer {
|
||||
return &projectServer{ps}
|
||||
}
|
||||
|
||||
func (s *projectServer) CreateProject(ctx context.Context, p *systempbv3.Project) (*systempbv3.Project, error) {
|
||||
project, err := s.Create(ctx, p)
|
||||
func updateProjectStatus(req *systempbv3.Project, resp *systempbv3.Project, err error) *systempbv3.Project {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return project, nil
|
||||
}
|
||||
|
||||
func (s *projectServer) GetProjects(ctx context.Context, p *systempbv3.Project) (*systempbv3.ProjectList, error) {
|
||||
projects, err := s.List(ctx, p)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return projects, nil
|
||||
}
|
||||
|
||||
func (s *projectServer) GetProject(ctx context.Context, p *systempbv3.Project) (*systempbv3.Project, error) {
|
||||
|
||||
project, err := s.GetByName(ctx, p.Metadata.Name)
|
||||
if err != nil {
|
||||
project, err = s.GetByID(ctx, p.Metadata.Id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
req.Status = &v3.Status{
|
||||
ConditionStatus: v3.ConditionStatus_StatusFailed,
|
||||
LastUpdated: timestamppb.Now(),
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return req
|
||||
}
|
||||
|
||||
return project, nil
|
||||
resp.Status = &v3.Status{ConditionStatus: v3.ConditionStatus_StatusOK}
|
||||
return resp
|
||||
}
|
||||
|
||||
func (s *projectServer) DeleteProject(ctx context.Context, p *systempbv3.Project) (*systempbv3.Project, error) {
|
||||
project, err := s.Delete(ctx, p)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return project, nil
|
||||
func (s *projectServer) CreateProject(ctx context.Context, req *systempbv3.Project) (*systempbv3.Project, error) {
|
||||
resp, err := s.Create(ctx, req)
|
||||
return updateProjectStatus(req, resp, err), err
|
||||
}
|
||||
|
||||
func (s *projectServer) UpdateProject(ctx context.Context, p *systempbv3.Project) (*systempbv3.Project, error) {
|
||||
project, err := s.Update(ctx, p)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return project, nil
|
||||
func (s *projectServer) GetProjects(ctx context.Context, req *systempbv3.Project) (*systempbv3.ProjectList, error) {
|
||||
return s.List(ctx, req)
|
||||
}
|
||||
|
||||
func (s *projectServer) GetProject(ctx context.Context, req *systempbv3.Project) (*systempbv3.Project, error) {
|
||||
|
||||
resp, err := s.GetByName(ctx, req.Metadata.Name)
|
||||
return updateProjectStatus(req, resp, err), err
|
||||
}
|
||||
|
||||
func (s *projectServer) DeleteProject(ctx context.Context, req *systempbv3.Project) (*systempbv3.Project, error) {
|
||||
resp, err := s.Delete(ctx, req)
|
||||
return updateProjectStatus(req, resp, err), err
|
||||
}
|
||||
|
||||
func (s *projectServer) UpdateProject(ctx context.Context, req *systempbv3.Project) (*systempbv3.Project, error) {
|
||||
resp, err := s.Update(ctx, req)
|
||||
return updateProjectStatus(req, resp, err), err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user