diff options
author | mbuil <manuel.buil@ericsson.com> | 2015-11-10 13:43:09 +0100 |
---|---|---|
committer | mbuil <manuel.buil@ericsson.com> | 2015-11-10 13:43:09 +0100 |
commit | dc75170d734debbe8a5de88cc71b52c3e53fd45e (patch) | |
tree | eee0920b55d62003c7abbf593ff1f8d785866897 /VnfMgrSim/vnfmgr/vnfmgr_os/vnfmgr_os.py | |
parent | 9c15bd683ccd0bf11d79ee0934a4cc3f78be521f (diff) |
Moves the VnfManagerSimulator code to one specific folder so it is not in the root of the OPNFV SFC repository
Change-Id: I7e5003a69e3514f6b0bf0968758aec167fc052a4
Diffstat (limited to 'VnfMgrSim/vnfmgr/vnfmgr_os/vnfmgr_os.py')
-rwxr-xr-x | VnfMgrSim/vnfmgr/vnfmgr_os/vnfmgr_os.py | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/VnfMgrSim/vnfmgr/vnfmgr_os/vnfmgr_os.py b/VnfMgrSim/vnfmgr/vnfmgr_os/vnfmgr_os.py new file mode 100755 index 00000000..00678503 --- /dev/null +++ b/VnfMgrSim/vnfmgr/vnfmgr_os/vnfmgr_os.py @@ -0,0 +1,68 @@ +################################################################# +# # +# Copyright 2015 Ericsson AB # +# All Rights Reserved # +# # +# Author: Manuel Buil <Manuel.Buil@ericsson.com> # +# Version: 0.1 # +# # +################################################################# + +import pdb + +from novaclient.v2 import client as nova +from novaclient import exceptions as novaexceptions +from keystoneclient.v2_0 import client as keystone +from glanceclient import client as glance + + +class OpenStack_API: + def __init__(self, authurl, tenantName, tenantUser, tenantPass): + self.authurl=authurl + self.tenantName=tenantName + self.tenantUser=tenantUser + self.tenantPass=tenantPass + + def get_token(self): + # Establish connection to Openstack controller + osconn = keystone.Client(username=self.tenantUser, password=self.tenantPass, tenant_name=self.tenantName, auth_url=self.authurl) + token = osconn.auth_token + return token + + def get_endpoint(self,service_type, endpoint_type): + # Establish connection to Openstack controller + osconn = keystone.Client(username=self.tenantUser, password=self.tenantPass, tenant_name=self.tenantName, auth_url=self.authurl) + endpoint = osconn.service_catalog.url_for(service_type=service_type, endpoint_type=endpoint_type) + return endpoint + + def find_image(self,SF_type): + # Find in glance the image that matches the SF we want to deploy + token = self.get_token() + endpoint = self.get_endpoint('image','publicURL') + osconn = glance.Client('1',endpoint=endpoint,token=token) + image_list = osconn.images.list() + for item in image_list: + try: + image_type = item.properties.get('image_type', None) + image_id=None + if (image_type == SF_type): + image_id = item.id + break + except: + print("Errrorr") + + #Search image which matches the SF type + return image_id + + def create_vm(self, name, image, flavor, nics=None): + # Establish connection to Openstack controller + osconn = nova.Client(self.tenantUser, self.tenantPass, self.tenantName, self.authurl, service_type="compute") + try: + if nics is None: + vm = osconn.servers.create(name,image,flavor) + else: + vm = osconn.servers.create(name,image,flavor,nics) + except: + print("Something wrong happened while creating the VM") + vm = None + return vm |