@@ -26,24 +26,18 @@ type ResourceManager interface {
2626 GetURN (res * resource.Resource ) (string , error )
2727}
2828
29- type TenantDetailsGetter interface {
30- GetDetails (ctx context.Context , tnnt tenant.Tenant ) (* tenant.WithDetails , error )
31- }
32-
3329type ResourceService struct {
34- repo ResourceRepository
35- mgr ResourceManager
36- tnntDetailsGetter TenantDetailsGetter
30+ repo ResourceRepository
31+ mgr ResourceManager
3732
3833 logger log.Logger
3934}
4035
41- func NewResourceService (logger log.Logger , repo ResourceRepository , mgr ResourceManager , tnntDetailsGetter TenantDetailsGetter ) * ResourceService {
36+ func NewResourceService (logger log.Logger , repo ResourceRepository , mgr ResourceManager ) * ResourceService {
4237 return & ResourceService {
43- repo : repo ,
44- mgr : mgr ,
45- tnntDetailsGetter : tnntDetailsGetter ,
46- logger : logger ,
38+ repo : repo ,
39+ mgr : mgr ,
40+ logger : logger ,
4741 }
4842}
4943
@@ -70,17 +64,17 @@ func (rs ResourceService) Create(ctx context.Context, incoming *resource.Resourc
7064 return err
7165 }
7266
73- if _ , err := rs .tnntDetailsGetter .GetDetails (ctx , incoming .Tenant ()); err != nil {
74- rs .logger .Error ("error getting tenant for resource [%s] details: %s" , incoming .FullName (), err )
75- return err
76- }
7767 incoming .MarkToCreate ()
7868
7969 if err := rs .repo .Create (ctx , incoming ); err != nil {
8070 rs .logger .Error ("error creating resource [%s] to db: %s" , incoming .FullName (), err )
8171 return err
8272 }
8373 } else {
74+ if existing .Status () == resource .StatusSuccess || existing .Status () == resource .StatusExistInStore {
75+ return nil // Note: return in case resource already exists
76+ }
77+
8478 if ! resource .StatusForToCreate (existing .Status ()) {
8579 msg := fmt .Sprintf ("cannot create resource [%s] since it already exists with status [%s]" , incoming .FullName (), existing .Status ())
8680 rs .logger .Error (msg )
0 commit comments