Merge "Storing EiJobs persistently"
[nonrtric.git] / test / common / create_rics_json.py
1 #  ============LICENSE_START===============================================
2 #  Copyright (C) 2020 Nordix Foundation. All rights reserved.
3 #  ========================================================================
4 #  Licensed under the Apache License, Version 2.0 (the "License");
5 #  you may not use this file except in compliance with the License.
6 #  You may obtain a copy of the License at
7 #
8 #       http://www.apache.org/licenses/LICENSE-2.0
9 #
10 #  Unless required by applicable law or agreed to in writing, software
11 #  distributed under the License is distributed on an "AS IS" BASIS,
12 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 #  See the License for the specific language governing permissions and
14 #  limitations under the License.
15 #  ============LICENSE_END=================================================
16 #
17
18 import os
19 import json
20 import sys
21 import re
22
23
24
25 #Create a ric info json, example input: ricsim_g1_1:kista_ricsim_g1_1,stockholm_ricsim_g1_1:1,2,4 ricsim_g1_2:kista_ricsim_g1_2,stockholm_ricsim_g1_2:2
26 #Format of string <ric-id>:<comma-separated-list-of-me's>:<comma-separated-list-of-policy-type-ids>
27 #To indicate that no types exist, use 'NOTYPE'. Ex. ricsim_g1_1:kista_ricsim_g1_1,stockholm_ricsim_g1_1:NOTYPE
28 #To indicate that special STD zero length name type, use 'EMPTYTYPE'. Ex. ricsim_g1_1:kista_ricsim_g1_1,stockholm_ricsim_g1_1:EMPTYTYPE
29 #Save in indicated file
30
31 #arg: <file-name-for-result> <api-version> <list-ric-info>
32 try:
33     file_name = sys.argv[1]
34     api_version=sys.argv[2]
35     ric_string = sys.argv[3]
36     ric_string=ric_string.strip()
37     ric_string = re.sub(' +',' ',ric_string)
38     ric_arr=[]
39     rics=ric_string.split(' ')
40     if (api_version == "V2"):
41         param_ric='ric_id'
42         param_me='managed_element_ids'
43         param_policy_type='policy_type_ids'
44         param_state='state'
45     else:
46         param_ric='ricName'
47         param_me='managedElementIds'
48         param_policy_type='policyTypes'
49         param_state='state'
50
51     for i in range(len(rics)):
52         ricDict={}
53         items=rics[i].split(':')
54         ricDict[param_ric]=items[0]
55         ricDict[param_me]=items[1].split(',')
56         if (items[2] == "EMPTYTYPE"):
57             empty_arr=[]
58             empty_arr.append("")
59             ricDict[param_policy_type]=empty_arr
60         elif (items[2] == "NOTYPE"):
61             empty_arr=[]
62             ricDict[param_policy_type]=empty_arr
63         else:
64             ricDict[param_policy_type]=items[2].split(',')
65         ricDict[param_state]=items[3]
66         ric_arr.append(ricDict)
67
68     with open(file_name, 'w') as f:
69         json.dump(ric_arr, f)
70
71     print(0)
72
73 except Exception as e:
74     print(str(e))
75     print(1)
76 sys.exit()