Slight improvements to some Clone functions

This commit is contained in:
arberkatellari
2025-04-07 18:25:03 +02:00
committed by Dan Christian Bogos
parent de349e2482
commit 0e5c5a9e60
14 changed files with 301 additions and 93 deletions

View File

@@ -48,7 +48,7 @@ type ResourceProfile struct {
lkID string // holds the reference towards guardian lock key
}
// Clone clones *ResourceProfile
// Clone clones *ResourceProfile (lkID excluded)
func (rp *ResourceProfile) Clone() *ResourceProfile {
if rp == nil {
return nil
@@ -62,7 +62,6 @@ func (rp *ResourceProfile) Clone() *ResourceProfile {
Blocker: rp.Blocker,
Stored: rp.Stored,
Weight: rp.Weight,
lkID: rp.lkID,
}
if rp.FilterIDs != nil {
clone.FilterIDs = make([]string, len(rp.FilterIDs))
@@ -73,10 +72,7 @@ func (rp *ResourceProfile) Clone() *ResourceProfile {
copy(clone.ThresholdIDs, rp.ThresholdIDs)
}
if rp.ActivationInterval != nil {
clone.ActivationInterval = &utils.ActivationInterval{
ActivationTime: rp.ActivationInterval.ActivationTime,
ExpiryTime: rp.ActivationInterval.ExpiryTime,
}
clone.ActivationInterval = rp.ActivationInterval.Clone()
}
return clone
}
@@ -169,7 +165,7 @@ type Resource struct {
rPrf *ResourceProfile // for ordering purposes
}
// Clone clones *Resource
// Clone clones *Resource (lkID excluded)
func (r *Resource) Clone() *Resource {
if r == nil {
return nil
@@ -177,7 +173,6 @@ func (r *Resource) Clone() *Resource {
clone := &Resource{
Tenant: r.Tenant,
ID: r.ID,
lkID: r.lkID,
}
if r.Usages != nil {
clone.Usages = make(map[string]*ResourceUsage, len(r.Usages))
@@ -207,6 +202,11 @@ func (r *Resource) Clone() *Resource {
return clone
}
// CacheClone returns a clone of ActionPlan used by ltcache CacheCloner
func (apl *Resource) CacheClone() any {
return apl.Clone()
}
// resourceLockKey returns the ID used to lock a resource with guardian
func resourceLockKey(tnt, id string) string {
return utils.ConcatenatedKey(utils.CacheResources, tnt, id)