@@ -550,25 +550,35 @@ func newWrappedResource(spec *inttypes.ServicePackageFrameworkResource, serviceP
550
550
551
551
inner , _ := spec .Factory (context .TODO ())
552
552
553
- if len (spec .Identity .Attributes ) > 0 {
554
- interceptors = append (interceptors , newIdentityInterceptor (spec .Identity .Attributes ))
555
- if v , ok := inner .(framework.Identityer ); ok {
556
- v .SetIdentitySpec (spec .Identity )
553
+ if len (spec .Identity .Attributes ) == 0 {
554
+ return & wrappedResource {
555
+ inner : inner ,
556
+ servicePackageName : servicePackageName ,
557
+ spec : spec ,
558
+ interceptors : interceptors ,
557
559
}
558
560
}
559
561
562
+ interceptors = append (interceptors , newIdentityInterceptor (spec .Identity .Attributes ))
563
+ if v , ok := inner .(framework.Identityer ); ok {
564
+ v .SetIdentitySpec (spec .Identity )
565
+ }
566
+
560
567
if spec .Import .WrappedImport {
561
568
if v , ok := inner .(framework.ImportByIdentityer ); ok {
562
569
v .SetImportSpec (spec .Import )
563
570
}
564
571
// If the resource does not implement framework.ImportByIdentityer,
565
572
// it will be caught by `validateResourceSchemas`, so we can ignore it here.
566
573
}
567
- return & wrappedResource {
568
- inner : inner ,
569
- servicePackageName : servicePackageName ,
570
- spec : spec ,
571
- interceptors : interceptors ,
574
+
575
+ return & wrappedResourceWithIdentity {
576
+ wrappedResource : wrappedResource {
577
+ inner : inner ,
578
+ servicePackageName : servicePackageName ,
579
+ spec : spec ,
580
+ interceptors : interceptors ,
581
+ },
572
582
}
573
583
}
574
584
@@ -788,7 +798,11 @@ func (w *wrappedResource) MoveState(ctx context.Context) []resource.StateMover {
788
798
return nil
789
799
}
790
800
791
- func (w * wrappedResource ) IdentitySchema (ctx context.Context , req resource.IdentitySchemaRequest , resp * resource.IdentitySchemaResponse ) {
801
+ type wrappedResourceWithIdentity struct {
802
+ wrappedResource
803
+ }
804
+
805
+ func (w * wrappedResourceWithIdentity ) IdentitySchema (ctx context.Context , req resource.IdentitySchemaRequest , resp * resource.IdentitySchemaResponse ) {
792
806
if len (w .spec .Identity .Attributes ) > 0 {
793
807
resp .IdentitySchema = identity .NewIdentitySchema (w .spec .Identity )
794
808
}
0 commit comments