Skip to content

Commit

Permalink
Deleting auth divisions from cache (#1252)
Browse files Browse the repository at this point in the history
  • Loading branch information
charliecon authored Sep 12, 2024
1 parent e49397a commit f06a2f3
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 10 deletions.
23 changes: 15 additions & 8 deletions genesyscloud/auth_division/genesyscloud_auth_division_proxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ var internalProxy *authDivisionProxy
type getAllAuthDivisionFunc func(ctx context.Context, p *authDivisionProxy, name string) (*[]platformclientv2.Authzdivision, *platformclientv2.APIResponse, error)
type createAuthDivisionFunc func(ctx context.Context, p *authDivisionProxy, authzDivision *platformclientv2.Authzdivision) (*platformclientv2.Authzdivision, *platformclientv2.APIResponse, error)
type getAuthDivisionIdByNameFunc func(ctx context.Context, p *authDivisionProxy, name string) (string, *platformclientv2.APIResponse, bool, error)
type getAuthDivisionByIdFunc func(ctx context.Context, p *authDivisionProxy, id string, objectCount bool) (*platformclientv2.Authzdivision, *platformclientv2.APIResponse, error)
type getAuthDivisionByIdFunc func(ctx context.Context, p *authDivisionProxy, id string, objectCount, checkCache bool) (*platformclientv2.Authzdivision, *platformclientv2.APIResponse, error)
type updateAuthDivisionFunc func(ctx context.Context, p *authDivisionProxy, id string, authzDivision *platformclientv2.Authzdivision) (*platformclientv2.Authzdivision, *platformclientv2.APIResponse, error)
type deleteAuthDivisionFunc func(ctx context.Context, p *authDivisionProxy, id string, force bool) (*platformclientv2.APIResponse, error)

Expand Down Expand Up @@ -65,8 +65,8 @@ func (p *authDivisionProxy) createAuthDivision(ctx context.Context, authDivision
return p.createAuthDivisionAttr(ctx, p, authDivision)
}

func (p *authDivisionProxy) getAuthDivisionById(ctx context.Context, id string, objectCount bool) (*platformclientv2.Authzdivision, *platformclientv2.APIResponse, error) {
return p.getAuthDivisionByIdAttr(ctx, p, id, objectCount)
func (p *authDivisionProxy) getAuthDivisionById(ctx context.Context, id string, objectCount, checkCache bool) (*platformclientv2.Authzdivision, *platformclientv2.APIResponse, error) {
return p.getAuthDivisionByIdAttr(ctx, p, id, objectCount, checkCache)
}

func (p *authDivisionProxy) getAuthDivisionIdByName(ctx context.Context, name string) (string, *platformclientv2.APIResponse, bool, error) {
Expand Down Expand Up @@ -119,10 +119,12 @@ func createAuthDivisionFn(ctx context.Context, p *authDivisionProxy, authDivisio
return p.authorizationApi.PostAuthorizationDivisions(*authDivision)
}

func getAuthDivisionByIdFn(ctx context.Context, p *authDivisionProxy, id string, objectCount bool) (*platformclientv2.Authzdivision, *platformclientv2.APIResponse, error) {
div := rc.GetCacheItem(p.authDivisionCache, id)
if div != nil {
return div, nil, nil
func getAuthDivisionByIdFn(ctx context.Context, p *authDivisionProxy, id string, objectCount, checkCache bool) (*platformclientv2.Authzdivision, *platformclientv2.APIResponse, error) {
if checkCache {
div := rc.GetCacheItem(p.authDivisionCache, id)
if div != nil {
return div, nil, nil
}
}

return p.authorizationApi.GetAuthorizationDivision(id, objectCount)
Expand Down Expand Up @@ -153,5 +155,10 @@ func updateAuthDivisionFn(ctx context.Context, p *authDivisionProxy, id string,
}

func deleteAuthDivisionFn(ctx context.Context, p *authDivisionProxy, id string, force bool) (*platformclientv2.APIResponse, error) {
return p.authorizationApi.DeleteAuthorizationDivision(id, force)
resp, err := p.authorizationApi.DeleteAuthorizationDivision(id, force)
if err != nil {
return resp, err
}
rc.DeleteCacheItem(p.authDivisionCache, id)
return resp, nil
}
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ func readAuthDivision(ctx context.Context, d *schema.ResourceData, meta interfac
log.Printf("Reading division %s", d.Id())

return util.WithRetriesForRead(ctx, d, func() *retry.RetryError {
division, resp, getErr := proxy.getAuthDivisionById(ctx, d.Id(), false)
division, resp, getErr := proxy.getAuthDivisionById(ctx, d.Id(), false, true)
if getErr != nil {
if util.IsStatus404(resp) {
return retry.RetryableError(util.BuildWithRetriesApiDiagnosticError(resourceName, fmt.Sprintf("Failed to read division %s | error: %s", d.Id(), getErr), resp))
Expand Down Expand Up @@ -144,7 +144,7 @@ func deleteAuthDivision(ctx context.Context, d *schema.ResourceData, meta interf
}

return util.WithRetries(ctx, 180*time.Second, func() *retry.RetryError {
_, resp, err := proxy.getAuthDivisionById(ctx, d.Id(), false)
_, resp, err := proxy.getAuthDivisionById(ctx, d.Id(), false, false)
if err != nil {
if util.IsStatus404(resp) {
// Division deleted
Expand Down

0 comments on commit f06a2f3

Please sign in to comment.