github.com/Axway/agent-sdk@v1.1.101/pkg/agent/cache/managedapplication.go (about)

     1  package cache
     2  
     3  import (
     4  	v1 "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/api/v1"
     5  )
     6  
     7  // ManagedApplication cache related methods
     8  func (c *cacheManager) GetManagedApplicationCacheKeys() []string {
     9  	c.ApplyResourceReadLock()
    10  	defer c.ReleaseResourceReadLock()
    11  
    12  	return c.managedApplicationMap.GetKeys()
    13  }
    14  
    15  func (c *cacheManager) AddManagedApplication(resource *v1.ResourceInstance) {
    16  	if resource == nil {
    17  		return
    18  	}
    19  	c.managedApplicationMap.SetWithSecondaryKey(resource.Metadata.ID, resource.Name, resource)
    20  }
    21  
    22  func (c *cacheManager) GetManagedApplication(id string) *v1.ResourceInstance {
    23  	c.ApplyResourceReadLock()
    24  	defer c.ReleaseResourceReadLock()
    25  
    26  	managedApp, _ := c.managedApplicationMap.Get(id)
    27  	if managedApp != nil {
    28  		ri, ok := managedApp.(*v1.ResourceInstance)
    29  		if ok {
    30  			return ri
    31  		}
    32  	}
    33  	return nil
    34  }
    35  
    36  func (c *cacheManager) GetManagedApplicationByName(name string) *v1.ResourceInstance {
    37  	c.ApplyResourceReadLock()
    38  	defer c.ReleaseResourceReadLock()
    39  
    40  	managedApp, _ := c.managedApplicationMap.GetBySecondaryKey(name)
    41  	if managedApp != nil {
    42  		ri, ok := managedApp.(*v1.ResourceInstance)
    43  		if ok {
    44  			return ri
    45  		}
    46  	}
    47  	return nil
    48  }
    49  
    50  func (c *cacheManager) DeleteManagedApplication(id string) error {
    51  	return c.managedApplicationMap.Delete(id)
    52  }