diff --git a/internal/cf/binding.go b/internal/cf/binding.go index 67dc94b..3784d53 100644 --- a/internal/cf/binding.go +++ b/internal/cf/binding.go @@ -53,11 +53,9 @@ func (c *spaceClient) GetBinding(ctx context.Context, bindingOpts map[string]str if c.resourceCache.isCacheExpired(bindingType) { populateResourceCache[*spaceClient](c, bindingType, "") } - if len(c.resourceCache.getCachedBindings()) != 0 { - binding, inCache := c.resourceCache.getBindingFromCache(bindingOpts["owner"]) - if inCache { - return binding, nil - } + binding, inCache := c.resourceCache.getBindingFromCache(bindingOpts["owner"]) + if inCache { + return binding, nil } } diff --git a/internal/cf/client.go b/internal/cf/client.go index b14ae99..18a9e1d 100644 --- a/internal/cf/client.go +++ b/internal/cf/client.go @@ -275,37 +275,31 @@ type manageResourceCache interface { func populateResourceCache[T manageResourceCache](c T, resourceType cacheResourceType, username string) { ctx := context.Background() + var err error switch resourceType { case bindingType: if client, ok := any(c).(ResourceServicesClient[T]); ok { err = client.populateServiceBindings(ctx) - //TODO:remove later - fmt.Println("populate service binding finished") } case instanceType: if client, ok := any(c).(ResourceServicesClient[T]); ok { err = client.populateServiceInstances(ctx) - //TODO:remove later - fmt.Println("populate service instance finished") } case spaceType: if client, ok := any(c).(ResourceSpaceClient[T]); ok { err = client.populateSpaces(ctx) - //TODO:remove later - fmt.Println("populate space finished") } case spaceUserRoleType: if client, ok := any(c).(ResourceSpaceClient[T]); ok { err = client.populateSpaceUserRoleCache(ctx, username) - fmt.Println("populate service spaceUserRoles finished") } } if err != nil { // reset the cache to nil in case of error - log.Printf("Error populating %s: %s", resourceType, err) + log.Printf("Error populating cache for type %s: %s", resourceType, err) c.resetCache(resourceType) return } diff --git a/internal/cf/instance.go b/internal/cf/instance.go index 61f5ca1..cb91905 100644 --- a/internal/cf/instance.go +++ b/internal/cf/instance.go @@ -52,11 +52,9 @@ func (c *spaceClient) GetInstance(ctx context.Context, instanceOpts map[string]s if c.resourceCache.isCacheExpired(instanceType) { populateResourceCache[*spaceClient](c, instanceType, "") } - if len(c.resourceCache.getCachedInstances()) != 0 { - instance, inCache := c.resourceCache.getInstanceFromCache(instanceOpts["owner"]) - if inCache { - return instance, nil - } + instance, inCache := c.resourceCache.getInstanceFromCache(instanceOpts["owner"]) + if inCache { + return instance, nil } } diff --git a/internal/cf/resourcecache.go b/internal/cf/resourcecache.go index ba7c0fe..0d0b4dc 100644 --- a/internal/cf/resourcecache.go +++ b/internal/cf/resourcecache.go @@ -105,8 +105,6 @@ func (c *resourceCache) setLastCacheTime(resourceType cacheResourceType) { case spaceUserRoleType: c.spaceUserRoleLastCacheTime = now } - //TODO:remove later - fmt.Printf("Last cache time for %s: %v\n", resourceType, now) } // isCacheExpired checks if the cache is expired for a specific resource type @@ -129,9 +127,8 @@ func (c *resourceCache) isCacheExpired(resourceType cacheResourceType) bool { } expirationTime := lastCacheTime.Add(c.cacheTimeOut) - //TODO:remove later - fmt.Printf("Expiration time for %s: %v and last cached time: %v and timenow :%v\n", resourceType, expirationTime, lastCacheTime, time.Now()) isExpired := time.Now().After(expirationTime) + return isExpired } diff --git a/internal/cf/space.go b/internal/cf/space.go index 1c4f331..7659e99 100644 --- a/internal/cf/space.go +++ b/internal/cf/space.go @@ -22,11 +22,9 @@ func (c *organizationClient) GetSpace(ctx context.Context, owner string) (*facad if c.resourceCache.isCacheExpired(spaceType) { populateResourceCache[*organizationClient](c, spaceType, "") } - if len(c.resourceCache.getCachedSpaces()) != 0 { - space, inCache := c.resourceCache.getSpaceFromCache(owner) - if inCache { - return space, nil - } + space, inCache := c.resourceCache.getSpaceFromCache(owner) + if inCache { + return space, nil } } @@ -45,6 +43,7 @@ func (c *organizationClient) GetSpace(ctx context.Context, owner string) (*facad } space := spaces[0] + // TODO: add directly to cache return InitSpace(space, owner) } @@ -69,6 +68,8 @@ func (c *organizationClient) CreateSpace(ctx context.Context, name string, owner WithAnnotation(annotationPrefix, annotationKeyGeneration, strconv.FormatInt(generation, 10)) _, err = c.client.Spaces.Create(ctx, req) + // do not add space to the cache here because we wait until the space GUID is known + return err }