##
# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.
# This file is part of openmano
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# For those usages not covered by the Apache License, Version 2.0 please
# contact with: nfvlabs@tid.es
##
---
vnf:
    name: TEMPLATE-2VM
    description: This is a template to help in the creation of multi-VM VNFs
    # class: parent      # Optional. Used to organize VNFs
    internal-connections:
    -   name:        datanet
        description: datanet
        type:        data
        elements:
        -   VNFC:             VirtualMachine-1
            local_iface_name: xe0
        -   VNFC:             VirtualMachine-2
            local_iface_name: xe0
    -   name:        controlnet
        description: controlnet
        type:        bridge
        elements:
        -   VNFC:             VirtualMachine-1
            local_iface_name: ge0
        -   VNFC:             VirtualMachine-2
            local_iface_name: ge0
    external-connections:
    -   name:              mgmt0
        type:              mgmt              # "mgmt" (autoconnect to management net), "bridge", "data"
        VNFC:              VirtualMachine-1  # Virtual Machine this interface belongs to
        local_iface_name:  mgmt0             # interface name inside this Virtual Machine (must be defined in the VNFC section)
        description:       Management interface 1
    -   name:              mgmt1
        type:              mgmt              # "mgmt" (autoconnect to management net), "bridge", "data"
        VNFC:              VirtualMachine-2  # Virtual Machine this interface belongs to
        local_iface_name:  mgmt0             # interface name inside this Virtual Machine (must be defined in the VNFC section)
        description:       Management interface 2
    -   name:              data0
        type:              data              # "mgmt" (autoconnect to management net), "bridge", "data"
        VNFC:              VirtualMachine-1  # Virtual Machine this interface belongs to
        local_iface_name:  xe1               # interface name inside this Virtual Machine (must be defined in the VNFC section)
        description:       Data interface 1
    -   name:              data1
        type:              data              # "mgmt" (autoconnect to management net), "bridge", "data"
        VNFC:              VirtualMachine-2  # Virtual Machine this interface belongs to
        local_iface_name:  xe1               # interface name inside this Virtual Machine (must be defined in the VNFC section)
        description:       Data interface 2
    VNFC:                              # Virtual machine array 
    # First Virtual Machine
    -   name:        VirtualMachine-1       # name of Virtual Machine
        description: VM 1 in the MultiVM template
        VNFC image: /path/to/imagefolder/TEMPLATE-2VM-VM1.qcow2
        # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" } #Optional
        # processor:                     #Optional
        #     model: Intel(R) Xeon(R) CPU E5-4620 0 @ 2.20GHz
        #     features: ["64b", "iommu", "lps", "tlbps", "hwsv", "dioc", "ht"]
        # hypervisor:                    #Optional
        #     type: QEMU-kvm
        #     version: "10002|12001|2.6.32-358.el6.x86_64"
        # vcpus: 1          # Only for traditional cloud VMs. Number of virtual CPUs (oversubscription is allowed).
        # ram: 1024         # Only for traditional cloud VMs. Memory in MBytes (not from hugepages, oversubscription is allowed)
        # disk: 10          # disk size in GiB, by default 1
        numas: 
        -   paired-threads: 5          # "cores", "paired-threads", "threads"
            paired-threads-id: [ [0,1], [2,3], [4,5], [6,7], [8,9] ] # By default follows incremental order
            memory: 14                 # GBytes
            interfaces:
            -   name:      xe0
                vpci:      "0000:00:11.0"     
                dedicated: "yes"         # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)
                bandwidth: 10 Gbps
                #mac_address: '20:33:45:56:77:44' #avoid this option if possible
            -   name:      xe1
                vpci:      "0000:00:12.0"
                dedicated: "yes"
                bandwidth: 10 Gbps
                #mac_address: '20:33:45:56:77:45' #avoid this option if possible
        bridge-ifaces:
        -   name:      mgmt0
            vpci:      "0000:00:09.0"  # Optional. Virtual PCI address 
            bandwidth: 1 Mbps          # Optional. Informative only
            # mac_address: '20:33:45:56:77:46' #avoid this option if possible
            # model:       'virtio'      # ("virtio","e1000","ne2k_pci","pcnet","rtl8139") By default, it is automatically filled by libvirt
        -   name:      ge0
            vpci:      "0000:00:10.0"
            bandwidth: 1 Mbps
            # mac_address: '20:33:45:56:77:47' # avoid this option if possible
            # model:       'virtio'            # ("virtio","e1000","ne2k_pci","pcnet","rtl8139") By default, it is automatically filled by libvirt
        devices:                       # Optional, order determines device letter asignation (hda, hdb, ...)
        -   type:      disk            # "disk","cdrom","xml"
            image:     /path/to/imagefolder/SECOND-DISK.qcow2
            # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" }
            # vpci:      "0000:00:03.0"   # Optional, not for disk or cdrom
        -   type:      cdrom
            image:     /path/to/imagefolder/CDROM-IMAGE.qcow2
            # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" }
        -   type:      xml
            image:     /path/to/imagefolder/ADDITIONAL-DISK.qcow2   # Optional, depending on the device type
            image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" }  # Optional, depending on the device type
            vpci:      "0000:00:03.0"                          # Optional, depending on the device type (not needed for disk or cdrom)
            xml:   '   xml text for XML described devices. Do not use single quotes inside
                       The following words, if found, will be replaced:
                       __file__    by image path, (image must be provided)
                       __format__  by qcow2 or raw (image must be provided)
                       __dev__     by device letter (b, c, d ...) 
                       __vpci__    by vpci (vpci must be provided)
                   '
    # Second Virtual Machine
    -   name:        VirtualMachine-2       # name of Virtual Machine
        description: VM 2 in the MultiVM template
        VNFC image: /path/to/imagefolder/TEMPLATE-2VM-VM1.qcow2   # In this case, it is the same as VirtualMachine-1, but it could have been different
        # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" } #Optional
        # processor:                     #Optional
        #     model: Intel(R) Xeon(R) CPU E5-4620 0 @ 2.20GHz
        #     features: ["64b", "iommu", "lps", "tlbps", "hwsv", "dioc", "ht"]
        # hypervisor:                    #Optional
        #     type: QEMU-kvm
        #     version: "10002|12001|2.6.32-358.el6.x86_64"
        # vcpus: 1          # Only for traditional cloud VMs. Number of virtual CPUs (oversubscription is allowed).
        # ram: 1024         # Only for traditional cloud VMs. Memory in MBytes (not from hugepages, oversubscription is allowed)
        # disk: 10          # disk size in GiB, by default 1
        numas:
        -   paired-threads: 5          # "cores", "paired-threads", "threads"
            paired-threads-id: [ [0,1], [2,3], [4,5], [6,7], [8,9] ] # By default follows incremental order
            memory: 14                 # GBytes
            interfaces:
            -   name:      xe0
                vpci:      "0000:00:11.0"
                dedicated: "yes"         # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)
                bandwidth: 10 Gbps
                #mac_address: '20:33:45:56:77:44' #avoid this option if possible
            -   name:      xe1
                vpci:      "0000:00:12.0"
                dedicated: "yes"
                bandwidth: 10 Gbps
                #mac_address: '20:33:45:56:77:45' #avoid this option if possible
        bridge-ifaces:
        -   name:      mgmt0
            vpci:      "0000:00:09.0"    # Optional
            bandwidth: 1 Mbps          # Optional, informative only
            # mac_address: '20:33:45:56:77:46' #avoid this option if possible
            # model:       'virtio'      # ("virtio","e1000","ne2k_pci","pcnet","rtl8139") By default, it is automatically filled by libvirt
        -   name:      ge0
            vpci:      "0000:00:10.0"
            bandwidth: 1 Mbps
            # mac_address: '20:33:45:56:77:47' #avoid this option if possible
            # model:       'virtio'      # ("virtio","e1000","ne2k_pci","pcnet","rtl8139") By default, it is automatically filled by libvirt
        devices:                       # Optional, order determines device letter asignation (hda, hdb, ...)
        -   type:      disk            # "disk","cdrom","xml"
            image:     /path/to/imagefolder/SECOND-DISK.qcow2
            # image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" }
            # vpci:      "0000:00:03.0"   # Optional, not for disk or cdrom
        -   type:      cdrom
            image:     /path/to/imagefolder/CDROM-IMAGE.qcow2
            #image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" }
        -   type:      xml
            image:     /path/to/imagefolder/ADDITIONAL-DISK.qcow2   # Optional, depending on the device type
            image metadata: {"bus":"ide", "os_type":"windows", "use_incremental": "no" }  # Optional, depending on the device type
            vpci:      "0000:00:03.0"                          # Optional, depending on the device type (not needed for disk or cdrom)
            xml:   '   xml text for XML described devices. Do not use single quotes inside
                       The following words, if found, will be replaced:
                       __file__    by image path, (image must be provided)
                       __format__  by qcow2 or raw (image must be provided)
                       __dev__     by device letter (b, c, d ...)
                       __vpci__    by vpci (vpci must be provided)
                   '
    # Additional Virtual Machines can be included here

