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  }