# -*- 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.
#
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
network_id_filter = None
for network in networkList:
match = False
- if network.name == network_name_filter and network.id == network_id_filter:
+ if network.name == network_name_filter and str(network.id) == str(network_id_filter):
match = True
- if network_name_filter is None and network.id == network_id_filter:
+ if network_name_filter is None and str(network.id) == str(network_id_filter):
match = True
if network_id_filter is None and network.name == network_name_filter:
match = True
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:
image_id_filter = None
for image in image_pool:
match = False
- if str(image_name_filter) == str(image.name) and image.id == image_id_filter:
+ if str(image_name_filter) == str(image.name) and str(image.id) == str(image_id_filter):
match = True
- if image_name_filter is None and image.id == image_id_filter:
+ if image_name_filter is None and str(image.id) == str(image_id_filter):
match = True
if image_id_filter is None and str(image_name_filter) == str(image.name):
match = True
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'
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 = ""
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))
try:
client = oca.Client(self.user + ':' + self.passwd, self.url)
vm_pool = oca.VirtualMachinePool(client)
+ vm_pool.info()
vm_exist = False
for i in vm_pool:
- if i.id == vm_id:
+ if str(i.id) == str(vm_id):
vm_exist = True
break
if not vm_exist:
vm_exist = False
vm_element = None
for i in vm_pool:
- if i.id == vm_id:
+ if str(i.id) == str(vm_id):
vm_exist = True
vm_element = i
break
# return console_dict
# except vimconn.vimconnException as e:
# self.logger.error(e)
+