Adding new comments for Oran in all files with licenses
[ric-plt/nodeb-rnib.git] / common / utils.go
1 //
2 // Copyright 2019 AT&T Intellectual Property
3 // Copyright 2019 Nokia
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //      http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16
17 //  This source code is part of the near-RT RIC (RAN Intelligent Controller)
18 //  platform project (RICP).
19
20 package common
21
22 import (
23         "fmt"
24 )
25
26 /*
27 ValidateAndBuildCellIdKey builds key according to the specified format returns the resulting string
28 */
29 func ValidateAndBuildCellIdKey(cellId string) (string, error) {
30         if cellId == "" {
31                 return "", NewValidationError("#utils.ValidateAndBuildCellIdKey - an empty cell id received")
32         }
33         return fmt.Sprintf("CELL:%s", cellId), nil
34 }
35
36 /*
37 ValidateAndBuildNrCellIdKey builds key according to the specified format returns the resulting string
38 */
39 func ValidateAndBuildNrCellIdKey(cellId string) (string, error) {
40         if cellId == "" {
41                 return "", NewValidationError("#utils.ValidateAndBuildNrCellIdKey - an empty cell id received")
42         }
43         return fmt.Sprintf("NRCELL:%s", cellId), nil
44 }
45
46 /*
47 ValidateAndBuildNodeBNameKey builds key according to the specified format returns the resulting string
48 */
49 func ValidateAndBuildNodeBNameKey(inventoryName string) (string, error) {
50         if inventoryName == "" {
51                 return "", NewValidationError("#utils.ValidateAndBuildNodeBNameKey - an empty inventory name received")
52         }
53         return fmt.Sprintf("RAN:%s", inventoryName), nil
54 }
55
56 /*
57 ValidateAndBuildNodeBIdKey builds key according to the specified format returns the resulting string
58 */
59 func ValidateAndBuildNodeBIdKey(nodeType string, plmnId string, nbId string) (string, error) {
60         if nodeType == "" {
61                 return "", NewValidationError("#utils.ValidateAndBuildNodeBIdKey - an empty node type received")
62         }
63         if plmnId == "" {
64                 return "", NewValidationError("#utils.ValidateAndBuildNodeBIdKey - an empty plmnId received")
65         }
66         if nbId == "" {
67                 return "", NewValidationError("#utils.ValidateAndBuildNodeBIdKey - an empty nbId received")
68         }
69         return fmt.Sprintf("%s:%s:%s", nodeType, plmnId, nbId), nil
70 }
71
72 /*
73 ValidateAndBuildCellNamePciKey builds key according to the specified format returns the resulting string
74 */
75 func ValidateAndBuildCellNamePciKey(inventoryName string, pci uint32) (string, error) {
76         if inventoryName == "" {
77                 return "", NewValidationError("#utils.ValidateAndBuildCellNamePciKey - an empty inventory name received")
78         }
79         return fmt.Sprintf("PCI:%s:%02x", inventoryName, pci), nil
80 }
81
82 func ValidateAndBuildRanLoadInformationKey(inventoryName string) (string, error) {
83
84         if inventoryName == "" {
85                 return "", NewValidationError("#utils.ValidateAndBuildRanLoadInformationKey - an empty inventory name received")
86         }
87
88         return fmt.Sprintf("LOAD:%s", inventoryName), nil
89 }
90
91 func ValidateAndBuildE2TInstanceKey(address string) (string, error) {
92
93         if address == "" {
94                 return "", NewValidationError("#utils.ValidateAndBuildRanLoadInformationKey - an empty inventory name received")
95         }
96
97         return fmt.Sprintf("E2TInstance:%s", address), nil
98 }