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 }