import sys
import logging
from vcpecommon import *
+import sdcutils
import soutils
from datetime import datetime
import preload
import vcpe_custom_service
import csar_parser
import config_sdnc_so
+import json
def config_sniro(vcpecommon, vgmux_svc_instance_uuid, vbrg_svc_instance_uuid):
brg_ar_name = None
vgw_name = None
for model in parser.vnf_models:
- if 'tunnel' in model['modelCustomizationName']:
+ logger.info('modelCustomizationName = %s', model['modelCustomizationName'])
+ if 'tunnel' in model['modelCustomizationName'].lower():
+ logger.info('tunnel is in %s', model['modelCustomizationName'])
tunnelxconn_ar_name = model['modelCustomizationName']
- elif 'brg' in model['modelCustomizationName']:
+ elif 'brg' in model['modelCustomizationName'].lower():
+ logger.info('brg is in %s', model['modelCustomizationName'])
brg_ar_name = model['modelCustomizationName']
- elif 'vgw' in model['modelCustomizationName']:
+ #elif 'vgw' in model['modelCustomizationName']:
+ else:
vgw_name = model['modelCustomizationName']
if not (tunnelxconn_ar_name and brg_ar_name and vgw_name):
so = soutils.SoUtils(vcpecommon, 'v4')
return so.create_entire_service(csar_file, vnf_template_file, preload_dict, suffix, heatbridge)
+
def deploy_brg_only():
logging.basicConfig(level=logging.INFO, format='%(message)s')
logger = logging.getLogger(__name__)
vcpecommon = VcpeCommon()
preload_dict = vcpecommon.load_preload_data()
- name_suffix = preload_dict['${brg_bng_net}'].split('_')[-1]
+# name_suffix = preload_dict['${brg_bng_net}'].split('_')[-1]
+ name_suffix = datetime.now().strftime('%Y%m%d%H%M')
# create multiple services based on the pre-determined order
svc_instance_uuid = vcpecommon.load_object(vcpecommon.svc_instance_uuid_file)
heatbridge = 'gmux' == keyword
csar_file = vcpecommon.find_file(keyword, 'csar', 'csar')
vnf_template_file = vcpecommon.find_file(keyword, 'json', 'preload_templates')
+ vcpecommon.increase_ip_address_or_vni_in_template(vnf_template_file, ['vbrgemu_private_ip_0'])
svc_instance_uuid[keyword] = create_one_service(vcpecommon, csar_file, vnf_template_file, preload_dict,
name_suffix, heatbridge)
if not svc_instance_uuid[keyword]:
# Setting up SNIRO
config_sniro(vcpecommon, svc_instance_uuid['gmux'], svc_instance_uuid['brg'])
+
def deploy_infra():
- logging.basicConfig(level=logging.INFO, format='%(message)s')
logger = logging.getLogger(__name__)
vcpecommon = VcpeCommon()
# clean up
host_dic = {k: vcpecommon.hosts[k] for k in nodes}
- if not vcpecommon.delete_vxlan_interfaces(host_dic):
- sys.exit()
+ if False:
+ if not vcpecommon.delete_vxlan_interfaces(host_dic):
+ sys.exit()
+ custom_service.del_all_vgw_stacks(vcpecommon.vgw_name_keyword)
- custom_service.clean_up_sdnc()
- custom_service.del_all_vgw_stacks(vcpecommon.vgw_name_keyword)
+ #custom_service.clean_up_sdnc()
# create new service
csar_file = vcpecommon.find_file('rescust', 'csar', 'csar')
vgw_template_file = vcpecommon.find_file('vgw', 'json', 'preload_templates')
+ vgw_gra_template_file = vcpecommon.find_file('gwgra', 'json', 'preload_templates')
preload_dict = vcpecommon.load_preload_data()
- custom_service.create_custom_service(csar_file, vgw_template_file, preload_dict)
+ custom_service.create_custom_service(csar_file, vgw_template_file, vgw_gra_template_file, preload_dict)
def closed_loop(lossrate=0):
time.sleep(2)
vcpecommon.del_vgmux_ves_collector()
- logger.info('Staring vGMUX data reporting to DCAE')
+ logger.info('Starting vGMUX data reporting to DCAE')
time.sleep(2)
vcpecommon.set_vgmux_ves_collector()
logger = logging.getLogger('__name__')
vcpecommon = VcpeCommon()
config_sdnc_so.insert_customer_service_to_so(vcpecommon)
- config_sdnc_so.insert_customer_service_to_sdnc(vcpecommon)
+ #config_sdnc_so.insert_customer_service_to_sdnc(vcpecommon)
+ vgw_vfmod_name_index= 0
+ vcpecommon.save_object(vgw_vfmod_name_index, vcpecommon.vgw_vfmod_name_index_file)
+
+
+def init():
+ vcpecommon = VcpeCommon()
+ init_sdc(vcpecommon)
+ download_vcpe_service_templates(vcpecommon)
+
+
+def init_sdc(vcpecommon):
+ sdc = sdcutils.SdcUtils(vcpecommon)
+ sdc.create_allotted_resource_subcategory('BRG')
+
+
+def download_vcpe_service_templates(vcpecommon):
+ sdc = sdcutils.SdcUtils(vcpecommon)
+ sdc.download_vcpe_service_template()
+
+
+def tmp_sniro():
+ logger = logging.getLogger(__name__)
+
+ vcpecommon = VcpeCommon()
+
+ svc_instance_uuid = vcpecommon.load_object(vcpecommon.svc_instance_uuid_file)
+ # Setting up SNIRO
+ config_sniro(vcpecommon, svc_instance_uuid['gmux'], svc_instance_uuid['brg'])
+
+
+def test():
+ vcpecommon = VcpeCommon()
+ print("oom-k8s-04 public ip: %s" % (vcpecommon.get_vm_public_ip_by_nova('oom-k8s-04')))
if __name__ == '__main__':
- logging.basicConfig(level=logging.INFO, format='%(message)s')
+ logging.basicConfig(level=logging.DEBUG, format='%(message)s')
print('----------------------------------------------------------------------------------------------------')
print(' vcpe.py: Brief info about this program')
# print(' vcpe.py sdc: Onboard VNFs, design and distribute vCPE services (under development)')
print(' vcpe.py init: Add customer service data to SDNC and SO DBs.')
print(' vcpe.py infra: Deploy infrastructure, including DHCP, AAA, DNS, Web Server, vBNG, vGMUX, vBRG.')
+ print(' vcpe.py brg: Deploy brg only (for testing after infra succeeds).')
print(' vcpe.py customer: Deploy customer service, including vGW and VxLANs')
print(' vcpe.py loop: Test closed loop control')
print('----------------------------------------------------------------------------------------------------')
if sys.argv[1] == 'sdc':
print('Under development')
elif sys.argv[1] == 'init':
- if 'y' == raw_input('Ready to add customer service data to SDNC and SO DBs? This is needed only once.'
- 'y/n: ').lower():
+ init()
init_so_sdnc()
elif sys.argv[1] == 'infra':
if 'y' == raw_input('Ready to deploy infrastructure? y/n: ').lower():
closed_loop(0)
elif sys.argv[1] == 'brg':
deploy_brg_only()
+ elif sys.argv[1] == 'sniro':
+ tmp_sniro()
+ elif sys.argv[1] == 'test':
+ test()