X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_ro%2Fvimconn_opennebula.py;h=5a0ea870b716ee867cc4384421e7c089a76fd8ac;hb=a1b2e57563f82763eaf940e836e2f8683fa9be81;hp=ab4ebf46c8b680e2cc04f715426100b96c9d6b67;hpb=edf492d34ec4dff24e9a480a9de5295f75d2d747;p=osm%2FRO.git diff --git a/osm_ro/vimconn_opennebula.py b/osm_ro/vimconn_opennebula.py index ab4ebf46..5a0ea870 100644 --- a/osm_ro/vimconn_opennebula.py +++ b/osm_ro/vimconn_opennebula.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- ## -# Copyright 2017 Telefónica Digital España S.L.U. +# Copyright 2017 Telefonica Digital Spain S.L.U. # This file is part of ETSI OSM # All Rights Reserved. # @@ -26,7 +26,7 @@ vimconnector implements all the methods to interact with OpenNebula using the XML-RPC API. """ __author__ = "Jose Maria Carmona Perez,Juan Antonio Hernando Labajo, Emilio Abraham Garrido Garcia,Alberto Florez " \ - "Pages, Andres Pozo Muñoz, Santiago Perez Marin, Onlife Networks Telefonica I+D Product Innovation " + "Pages, Andres Pozo Munoz, Santiago Perez Marin, Onlife Networks Telefonica I+D Product Innovation " __date__ = "$13-dec-2017 11:09:29$" import vimconn import requests @@ -372,11 +372,12 @@ class vimconnector(vimconn.vimconnector): template_name = flavor_data["name"][:-4] name = 'NAME = "{}" '.format(template_name) cpu = 'CPU = "{}" '.format(flavor_data["vcpus"]) + vcpu = 'VCPU = "{}" '.format(flavor_data["vcpus"]) memory = 'MEMORY = "{}" '.format(flavor_data["ram"]) context = 'CONTEXT = [NETWORK = "YES",SSH_PUBLIC_KEY = "$USER[SSH_PUBLIC_KEY]" ] ' graphics = 'GRAPHICS = [ LISTEN = "0.0.0.0", TYPE = "VNC" ] ' sched_requeriments = 'CLUSTER_ID={}'.format(self.config["cluster"]["id"]) - template = name + cpu + memory + context + graphics + sched_requeriments + template = name + cpu + vcpu + memory + context + graphics + sched_requeriments template_id = oca.VmTemplate.allocate(client, template) return template_id except Exception as e: @@ -453,7 +454,7 @@ class vimconnector(vimconn.vimconnector): name: net_id: network uuid to connect vpci: virtual vcpi to assign - model: interface model, virtio, e2000, ... + model: interface model, virtio, e1000, ... mac_address: use: 'data', 'bridge', 'mgmt' type: 'virtual', 'PF', 'VF', 'VFnotShared' @@ -470,12 +471,12 @@ class vimconnector(vimconn.vimconnector): for template in listaTemplate: if str(template.id) == str(flavor_id): cpu = ' CPU = "{}"'.format(template.template.cpu) + vcpu = ' VCPU = "{}"'.format(template.template.cpu) memory = ' MEMORY = "{}"'.format(template.template.memory) context = ' CONTEXT = [NETWORK = "YES",SSH_PUBLIC_KEY = "$USER[SSH_PUBLIC_KEY]" ]' graphics = ' GRAPHICS = [ LISTEN = "0.0.0.0", TYPE = "VNC" ]' disk = ' DISK = [ IMAGE_ID = {}]'.format(image_id) - sched_requeriments = ' SCHED_REQUIREMENTS = "CLUSTER_ID={}"'.format(self.config["cluster"]["id"]) - template_updated = cpu + memory + context + graphics + disk + sched_requeriments + template_updated = cpu + vcpu + memory + context + graphics + disk networkListVim = oca.VirtualNetworkPool(client) networkListVim.info() network = "" @@ -491,6 +492,13 @@ class vimconnector(vimconn.vimconnector): if not network_found: raise vimconn.vimconnNotFoundException("Network {} not found".format(net["net_id"])) template_updated += network + if isinstance(cloud_config, dict): + if cloud_config.get("user-data"): + if isinstance(cloud_config["user-data"], str): + template_updated += cloud_config["user-data"] + else: + for u in cloud_config["user-data"]: + template_updated += u oca.VmTemplate.update(template, template_updated) self.logger.info( "Instanciating in OpenNebula a new VM name:{} id:{}".format(template.name, template.id))