@@ -16,33 +16,30 @@ type SpaceScoped interface {
1616 GetSpaceRef () * v1alpha1.SpaceReference
1717}
1818
19- // / Initialize implements the Initializer interface
19+ // ResolveByName resolves the space reference by name.
2020func ResolveByName (ctx context.Context , clientFn clients.ClientFn , mg resource.Managed ) error {
2121 cr , ok := mg .(SpaceScoped )
2222 if ! ok {
2323 return errors .New ("Cannot resolve space name. The resource does not implement SpaceScoped" )
2424 }
2525
26- // if external-name is not set, search by Name and Space
2726 sr := cr .GetSpaceRef ()
28- if sr == nil || sr .SpaceName == nil {
29- if sr .Space != nil { // space GUID is directly set, so we do not need to use names.
30- return nil
27+ // resolve space by name only if spaceName and orgName are set
28+ if sr != nil && sr .SpaceName != nil && sr .OrgName != nil {
29+ cf , err := clientFn (mg )
30+ if err != nil {
31+ return errors .Wrap (err , "Could not connect to Cloud Foundry" )
32+ }
33+ spaceClient , _ , orgClient := NewClient (cf )
34+ spaceGUID , err := GetGUID (ctx , orgClient , spaceClient , * sr .OrgName , * sr .SpaceName )
35+ if err != nil {
36+ return errors .Wrap (err , "Cannot resolve space reference by name" )
3137 }
32- return errors .New ("Unknown space. Please specify `spaceRef` or `spaceSelector` or using `spaceName` and `orgNames`. " )
38+ sr .Space = spaceGUID
39+ return nil
3340 }
3441
35- // spaceName and orgName are set, always retrieve space GUID
36- cf , err := clientFn (mg )
37- if err != nil {
38- return errors .Wrap (err , "Could not connect to Cloud Foundry" )
39- }
40- spaceClient , _ , orgClient := NewClient (cf )
41- spaceGUID , err := GetGUID (ctx , orgClient , spaceClient , * sr .OrgName , * sr .SpaceName )
42- if err != nil {
43- return errors .Wrap (err , "Cannot resolve space reference by name" )
44- }
45- sr .Space = spaceGUID
42+ // nothing to resolve.
4643 return nil
4744}
4845
0 commit comments