diff options
Diffstat (limited to 'vnfmgr/vnfmgr_os/vnfmgr_os.py')
-rwxr-xr-x | vnfmgr/vnfmgr_os/vnfmgr_os.py | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/vnfmgr/vnfmgr_os/vnfmgr_os.py b/vnfmgr/vnfmgr_os/vnfmgr_os.py new file mode 100755 index 00000000..00678503 --- /dev/null +++ b/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 |