From dc75170d734debbe8a5de88cc71b52c3e53fd45e Mon Sep 17 00:00:00 2001 From: mbuil Date: Tue, 10 Nov 2015 13:43:09 +0100 Subject: Moves the VnfManagerSimulator code to one specific folder so it is not in the root of the OPNFV SFC repository Change-Id: I7e5003a69e3514f6b0bf0968758aec167fc052a4 --- VnfMgrSim/vnfmgr/vnfmgr_main.py | 72 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100755 VnfMgrSim/vnfmgr/vnfmgr_main.py (limited to 'VnfMgrSim/vnfmgr/vnfmgr_main.py') diff --git a/VnfMgrSim/vnfmgr/vnfmgr_main.py b/VnfMgrSim/vnfmgr/vnfmgr_main.py new file mode 100755 index 00000000..b5ab8be1 --- /dev/null +++ b/VnfMgrSim/vnfmgr/vnfmgr_main.py @@ -0,0 +1,72 @@ +################################################################# +# # +# Copyright 2015 Ericsson AB # +# All Rights Reserved # +# # +# Author: Manuel Buil # +# Version: 0.1 # +# # +################################################################# + +import pdb +from vnfmgr_os.vnfmgr_os import OpenStack_API +import vnfmgr_odl.vnfmgr_odl as odlscript +import time +import json + +if __name__ == "__main__": + #OpenStack environment information + authurl = "http://localhost:5000/v2.0" + adminTenantName = 'admin' + adminTenantUser = 'admin' + adminTenantPass = 'abc123' + tenantName = adminTenantName + tenantUser = adminTenantUser + tenantPass = adminTenantPass + + openstack = OpenStack_API(authurl, tenantName, tenantUser, tenantPass) + + # 1 - Get the SF type + # Provide the file with the SFC configuration + file_json = "vnfmgr_odl/sample_config/RestConf-SFCs-HttpPut.json" + # Read the config files which refer to SF + json_data=open(file_json).read() + data = json.loads(json_data) + pdb.set_trace() + + # Grab the SF type + chains = data['service-function-chains']['service-function-chain'] + for chain in chains: + SFs = chain['sfc-service-function'] + for SF in SFs: + sf_type = SF['type'] + name = SF['name'] + #2 - Search the image in glance with that SF type + image = openstack.find_image(sf_type) + if image == None: + print("There is no image with that sf_name") + exit(1) + # 3 - Boot the VM without network + flavor = 1 + print("About to deploy") + vm = openstack.create_vm(name,image,flavor) + if vm == None: + print("Problems to deploy the VM") + exit(1) + + #Make the call to ODL to deploy SFC + context = odlscript.Context() + context.set_path_prefix_paths("vnfmgr_odl/sample_config") + pdb.set_trace() + odlscript.send_rest(context, "PUT", context.rest_url_sf_sel, context.rest_path_sf_sel) + odlscript.send_rest(context, "PUT", context.rest_url_sf, context.rest_path_sf) + odlscript.send_rest(context, "PUT", context.rest_url_sff, context.rest_path_sff) + odlscript.send_rest(context, "PUT", context.rest_url_sfc, context.rest_path_sfc) + odlscript.send_rest(context, "PUT", context.rest_url_sfp, context.rest_path_sfp) + time.sleep(1); + odlscript.send_rest(context, "POST", context.rest_url_rsp_rpc, context.rest_path_rsp) + + + #TO DO + # Check if the SF_VM already exists before creating it + # Network of the VM -- cgit 1.2.3-korg