github.com/Axway/agent-sdk@v1.1.101/pkg/agent/cache/accessrequestdefinitions.go (about) 1 package cache 2 3 import v1 "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/api/v1" 4 5 // Access Request Definition cache management 6 7 // AddAccessRequestDefinition - add/update AccessRequestDefinition resource in cache 8 func (c *cacheManager) AddAccessRequestDefinition(resource *v1.ResourceInstance) { 9 defer c.setCacheUpdated(true) 10 11 c.ardMap.SetWithSecondaryKey(resource.Metadata.ID, resource.Name, resource) 12 } 13 14 // GetAccessRequestDefinitionKeys - returns keys for AccessRequestDefinition cache 15 func (c *cacheManager) GetAccessRequestDefinitionKeys() []string { 16 c.ApplyResourceReadLock() 17 defer c.ReleaseResourceReadLock() 18 19 return c.ardMap.GetKeys() 20 } 21 22 // GetAccessRequestDefinitionByName - returns resource from AccessRequestDefinition cache based on resource name 23 func (c *cacheManager) GetAccessRequestDefinitionByName(name string) (*v1.ResourceInstance, error) { 24 c.ApplyResourceReadLock() 25 defer c.ReleaseResourceReadLock() 26 27 item, err := c.ardMap.GetBySecondaryKey(name) 28 if item != nil { 29 if ard, ok := item.(*v1.ResourceInstance); ok { 30 return ard, nil 31 } 32 } 33 return nil, err 34 } 35 36 // GetAccessRequestDefinitionByID - returns resource from AccessRequestDefinition cache based on resource id 37 func (c *cacheManager) GetAccessRequestDefinitionByID(id string) (*v1.ResourceInstance, error) { 38 c.ApplyResourceReadLock() 39 defer c.ReleaseResourceReadLock() 40 41 item, err := c.ardMap.Get(id) 42 if item != nil { 43 if ard, ok := item.(*v1.ResourceInstance); ok { 44 return ard, nil 45 } 46 } 47 return nil, err 48 } 49 50 // DeleteAccessRequestDefinition - deletes the AccessRequestDefinition cache based on resource id 51 func (c *cacheManager) DeleteAccessRequestDefinition(id string) error { 52 defer c.setCacheUpdated(true) 53 54 return c.ardMap.Delete(id) 55 }