Skip to content

Commit

Permalink
Invalidate ACL cache in tests which list ACLs
Browse files Browse the repository at this point in the history
  • Loading branch information
Anonymous authored and eh-steve committed Feb 19, 2024
1 parent 758e567 commit df230b8
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 10 deletions.
17 changes: 9 additions & 8 deletions kafka/kafka_acls.go
Original file line number Diff line number Diff line change
Expand Up @@ -155,10 +155,7 @@ func (c *Client) enqueueDeleteACL(broker *sarama.Broker, filter *sarama.AclFilte
return
}

c.aclCache.mutex.Lock()
c.aclCache.valid = false
c.aclCache.acls = nil
c.aclCache.mutex.Unlock()
c.InvalidateACLCache()
for i, r := range res.FilterResponses {
if r.Err != sarama.ErrNoError {
c.aclDeletionQueue.waitChans[i] <- r.Err
Expand Down Expand Up @@ -230,10 +227,7 @@ func (c *Client) enqueueCreateACL(broker *sarama.Broker, create *sarama.AclCreat
return
}

c.aclCache.mutex.Lock()
c.aclCache.valid = false
c.aclCache.acls = nil
c.aclCache.mutex.Unlock()
c.InvalidateACLCache()

for i, r := range res.AclCreationResponses {
if r.Err != sarama.ErrNoError {
Expand Down Expand Up @@ -434,6 +428,13 @@ func (c *Client) DescribeACLs(s StringlyTypedACL) ([]*sarama.ResourceAcls, error
return aclsR.ResourceAcls, err
}

func (c *Client) InvalidateACLCache() {
c.aclCache.mutex.Lock()
c.aclCache.valid = false
c.aclCache.acls = nil
c.aclCache.mutex.Unlock()
}

func (c *Client) ListACLs() ([]*sarama.ResourceAcls, error) {
c.aclCache.mutex.RLock()
if c.aclCache.valid {
Expand Down
9 changes: 9 additions & 0 deletions kafka/lazy_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,15 @@ func (c *LazyClient) CreateACL(s StringlyTypedACL) error {
return c.inner.CreateACL(s)
}

func (c *LazyClient) InvalidateACLCache() error {
err := c.init()
if err != nil {
return err
}
c.inner.InvalidateACLCache()
return nil
}

func (c *LazyClient) ListACLs() ([]*sarama.ResourceAcls, error) {
err := c.init()
if err != nil {
Expand Down
11 changes: 9 additions & 2 deletions kafka/resource_kafka_acl_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,10 @@ func TestAcc_ACLDeletedOutsideOfTerraform(t *testing.T) {

func testAccCheckAclDestroy(name string) error {
client := testProvider.Meta().(*LazyClient)
err := client.InvalidateACLCache()
if err != nil {
return err
}
acls, err := client.ListACLs()
if err != nil {
return err
Expand Down Expand Up @@ -165,7 +169,10 @@ func testResourceACL_initialCheck(s *terraform.State) error {

func testResourceACL_updateCheck(s *terraform.State) error {
client := testProvider.Meta().(*LazyClient)

err := client.InvalidateACLCache()
if err != nil {
return err
}
acls, err := client.ListACLs()
if err != nil {
return err
Expand Down Expand Up @@ -215,7 +222,7 @@ func testResourceACL_updateCheck(s *terraform.State) error {
return fmt.Errorf("Should be for *")
}
if acl.Acls[0].PermissionType != sarama.AclPermissionDeny {
return fmt.Errorf("Should be Deny, not %v", acl.Acls[0].PermissionType)
return fmt.Errorf("should be Deny, not %v", acl.Acls[0].PermissionType.String())
}

if acl.Resource.ResourcePatternType != sarama.AclPatternPrefixed {
Expand Down

0 comments on commit df230b8

Please sign in to comment.