#!/usr/bin/env python3
-#
+#
# Copyright 2016 RIFT.IO Inc
#
# Licensed under the Apache License, Version 2.0 (the "License");
import tempfile
import yaml
+import gi
+gi.require_version('RwYang', '1.0')
+gi.require_version('RwVnfdYang', '1.0')
+gi.require_version('RwNsdYang', '1.0')
+
from gi.repository import (
RwYang,
RwVnfdYang,
def rift2openmano_if_type(rift_type):
if rift_type == "OM_MGMT":
return "mgmt"
- elif rift_type == "VIRTIO":
+ elif rift_type == "VIRTIO" or rift_type == "E1000":
return "bridge"
else:
return "data"
+ def rift2openmano_vif(rift_type):
+ if rift_type == "VIRTIO":
+ return "virtio"
+ elif rift_type == "E1000":
+ return "e1000"
+ else:
+ raise ValueError("VDU Virtual Interface type {} not supported".format(rift_type))
+
# Add all external connections
for cp in rift_vnfd.cps:
# Find the VDU and and external interface for this connection point
vnfc = {
"name": vdu.name,
"description": vdu.name,
- "VNFC image": vdu.image if os.path.isabs(vdu.image) else "/var/images/{}".format(vdu.image),
"numas": [{
"memory": max(int(vdu.vm_flavor.memory_mb/1024), 1),
"interfaces":[],
"bridge-ifaces": [],
}
+ if os.path.isabs(vdu.image):
+ vnfc["VNFC image"] = vdu.image
+ else:
+ vnfc["image name"] = vdu.image
+ if vdu.has_field("image_checksum"):
+ vnfc["image checksum"] = vdu.image_checksum
+
numa_node_policy = vdu.guest_epa.numa_node_policy
if numa_node_policy.has_field("node"):
numa_node = numa_node_policy.node[0]
if int_if.virtual_interface.has_field("vpci"):
intf["vpci"] = int_if.virtual_interface.vpci
- if int_if.virtual_interface.type_yang in ["VIRTIO", "OM_MGMT"]:
+ if int_if.virtual_interface.type_yang in ["VIRTIO", "E1000"]:
+ intf["model"] = rift2openmano_vif(int_if.virtual_interface.type_yang)
+ vnfc["bridge-ifaces"].append(intf)
+
+ elif int_if.virtual_interface.type_yang in ["OM_MGMT"]:
vnfc["bridge-ifaces"].append(intf)
elif int_if.virtual_interface.type_yang == "SR-IOV":