2 // ========================LICENSE_START=================================
5 // Copyright (C) 2021: Nordix Foundation
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
18 // ========================LICENSE_END===================================
23 type SliceAssuranceMeas struct {
24 Metrics []*SliceMetric
25 Policies map[string]*PolicyRatio
28 func NewSliceAssuranceMeas() *SliceAssuranceMeas {
29 s := SliceAssuranceMeas{}
30 s.Metrics = make([]*SliceMetric, 0)
31 s.Policies = make(map[string]*PolicyRatio)
35 func (sa *SliceAssuranceMeas) AddNewPolicy(pr *PolicyRatio) {
36 sa.Policies[pr.PolicyRatioId] = pr
39 func (sa *SliceAssuranceMeas) GetSliceMetric(duid string, sd int, sst int) *SliceMetric {
40 for _, metric := range sa.Metrics {
41 if metric.DUId == duid && metric.SliceDiff == sd && metric.SliceServiceType == sst {
48 func (sa *SliceAssuranceMeas) AddOrUpdateMetric(sm *SliceMetric) {
49 metric := sa.GetSliceMetric(sm.DUId, sm.SliceDiff, sm.SliceServiceType)
51 for key, value := range sm.PM {
52 metric.PM[key] = value
55 sa.Metrics = append(sa.Metrics, sm)