Support setting custom path to config file in vcpe.py 12/99712/3
authorBartek Grzybowski <b.grzybowski@partner.samsung.com>
Tue, 17 Dec 2019 12:16:43 +0000 (13:16 +0100)
committerBartek Grzybowski <b.grzybowski@partner.samsung.com>
Fri, 10 Jan 2020 08:42:03 +0000 (08:42 +0000)
Change-Id: I9ec950413f323e6ed6dfb075f16b67d925ece047
Signed-off-by: Bartek Grzybowski <b.grzybowski@partner.samsung.com>
Issue-ID: INT-1399

test/vcpe/vcpe.py
test/vcpe/vcpecommon.py

index 89e2a97..b154078 100755 (executable)
@@ -70,7 +70,7 @@ def create_one_service(vcpecommon, csar_file, vnf_template_file, preload_dict, s
 def deploy_brg_only():
     logger = logging.getLogger(__name__)
 
-    vcpecommon = VcpeCommon()
+    vcpecommon = VcpeCommon(cfg_file=args.config)
     preload_dict = vcpecommon.load_preload_data()
 #    name_suffix = preload_dict['${brg_bng_net}'].split('_')[-1]
     name_suffix = datetime.now().strftime('%Y%m%d%H%M')
@@ -102,7 +102,7 @@ def deploy_brg_only():
 def deploy_infra():
     logger = logging.getLogger(__name__)
 
-    vcpecommon = VcpeCommon()
+    vcpecommon = VcpeCommon(cfg_file=args.config)
 
     # preload all VNF-API networks
     network_template = vcpecommon.find_file('network.', 'json', 'preload_templates')
@@ -169,7 +169,7 @@ def deploy_infra():
 
 def deploy_custom_service():
     nodes = ['brg', 'mux']
-    vcpecommon = VcpeCommon(nodes)
+    vcpecommon = VcpeCommon(nodes, cfg_file=args.config)
     custom_service = vcpe_custom_service.CustomService(vcpecommon)
 
     # clean up
@@ -192,7 +192,7 @@ def deploy_custom_service():
 def closed_loop(lossrate=0):
     nodes = ['brg', 'mux']
     logger = logging.getLogger('__name__')
-    vcpecommon = VcpeCommon(nodes)
+    vcpecommon = VcpeCommon(nodes, cfg_file=args.config)
 
     logger.info('Setting up closed loop policy')
     policy_template_file = vcpecommon.find_file('operational.vcpe', 'json', 'preload_templates')
@@ -216,7 +216,7 @@ def closed_loop(lossrate=0):
 
 def init_so_sdnc():
     logger = logging.getLogger('__name__')
-    vcpecommon = VcpeCommon()
+    vcpecommon = VcpeCommon(cfg_file=args.config)
     config_sdnc_so.insert_sdnc_ip_pool(vcpecommon)
     config_sdnc_so.insert_customer_service_to_so(vcpecommon)
     #config_sdnc_so.insert_customer_service_to_sdnc(vcpecommon)
@@ -225,7 +225,7 @@ def init_so_sdnc():
 
 
 def init():
-    vcpecommon = VcpeCommon()
+    vcpecommon = VcpeCommon(cfg_file=args.config)
     init_sdc(vcpecommon)
     download_vcpe_service_templates(vcpecommon)
     preloader = preload.Preload(vcpecommon)
@@ -247,7 +247,7 @@ def download_vcpe_service_templates(vcpecommon):
 def tmp_sniro():
     logger = logging.getLogger(__name__)
 
-    vcpecommon = VcpeCommon()
+    vcpecommon = VcpeCommon(cfg_file=args.config)
 
     svc_instance_uuid = vcpecommon.load_object(vcpecommon.svc_instance_uuid_file)
     # Setting up SNIRO
@@ -255,7 +255,7 @@ def tmp_sniro():
 
 
 def test(): 
-    vcpecommon = VcpeCommon()
+    vcpecommon = VcpeCommon(cfg_file=args.config)
     print("oom-k8s-04 public ip: %s" % (vcpecommon.get_vm_public_ip_by_nova('oom-k8s-04')))
 
 
@@ -275,6 +275,7 @@ def get_arg_parser(modes):
     parser.add_argument('mode',metavar='MODE',
                         help='Script mode: {0}'.format('|'.join(modes.keys())),
                         choices=modes.keys())
+    parser.add_argument('--config',help='Configuration file path',default=None)
 
     return parser
 
index 9f7f57f..8ae8101 100755 (executable)
@@ -19,13 +19,14 @@ from netaddr import IPAddress, IPNetwork
 
 class VcpeCommon:
 
-    def __init__(self, extra_host_names=None):
+    def __init__(self, extra_host_names=None, cfg_file=None):
         self.logger = logging.getLogger(__name__)
         self.logger.setLevel(logging.DEBUG)
         self.logger.info('Initializing configuration')
+        self.default_config = 'vcpeconfig.yaml'
 
         # Read configuration from config file
-        self._load_config()
+        self._load_config(cfg_file)
 
         self.sdnc_controller_pod = '-'.join([self.onap_environment, 'sdnc-sdnc-0'])
         # OOM: this is the address that the brg and bng will nat for sdnc access - 10.0.0.x address of k8 host for sdnc-0 container
@@ -154,12 +155,15 @@ class VcpeCommon:
                             'Content-Type': 'application/json',
                             'X-FromAppId': 'postman', 'X-TransactionId': '9999'}
 
-    def _load_config(self, cfg_file='vcpeconfig.yaml'):
+    def _load_config(self, cfg_file):
         """
         Reads vcpe config file and injects settings as object's attributes
         :param cfg_file: Configuration file path
         """
 
+        if cfg_file is None:
+            cfg_file = self.default_config
+
         try:
             with open(cfg_file, 'r') as cfg:
                 cfg_yml = yaml.full_load(cfg)