Hi All,
Currently on x86 or ppc, console type does not need to be passed from API and hence we do not have API to specify type of console in VM(s)/ template(s).
On s390x architecture, two type of console sclp or virtio are supported. And hence we need to update VM(s)/template(s) API to have attribute to get and modify type of console.
console (s390x only): Specify the console parameter.
type: sclp/virtio.
If not provided, default sclp.
Below are the list of current API and proposed API which need to
have addition parameter 'console' and its type:
1) GET list of VMs and its attribute and Create VM.
Current:
Collection: Virtual Machines
URI: /plugins/kimchi/vms
Methods:
GET: Retrieve a summarized list of all defined Virtual
Machines
POST: Create a new Virtual Machine
name (optional): The name of the VM. Used to identify the
VM in this API. If omitted, a name will be chosen based on the
template used.
persistent: If 'true', vm will persist after a Power Off
or host reboot. All virtual machines created by Kimchi are
persistent.
template: The URI of a Template to use when building the
VM
storagepool (optional): Assign a specific Storage Pool to
the new VM
graphics (optional): Specify the graphics parameter for
this vm
type: The type of graphics. It can be VNC or spice or
None.
vnc: Graphical display using the Virtual Network
Computing protocol
spice: Graphical display using the Simple Protocol
for Independent Computing Environments
null: Graphics is disabled or type not supported
listen: The network which the vnc/spice server listens
on.
description: VM description
title: VM title
Proposed:
Collection: Virtual Machines
URI: /plugins/kimchi/vms
Methods:
GET: Retrieve a summarized list of all defined Virtual
Machines
POST: Create a new Virtual Machine
name (optional): The name of the VM. Used to identify the
VM in this API. If omitted, a name will be chosen based on the
template used.
persistent: If 'true', vm will persist after a Power Off
or host reboot. All virtual machines created by Kimchi are
persistent.
template: The URI of a Template to use when building the
VM
storagepool (optional): Assign a specific Storage Pool to
the new VM
graphics (optional): Specify the graphics paramenter for
this vm
type: The type of graphics. It can be VNC or spice or
None.
vnc: Graphical display using the Virtual Network
Computing protocol
spice: Graphical display using the Simple Protocol
for Independent Computing Environments
null: Graphics is disabled or type not supported
listen: The network which the vnc/spice server listens
on.
console (s390x only): Specify the console parameter for
this vm.
type: sclp/virtio.
If not provided, default sclp.
description: VM description
title: VM title
2) GET details of a VM.
Current:
Resource: Virtual Machine
URI: /plugins/kimchi/vms/:name
Methods:
GET: Retrieve the full description of a Virtual Machine
name: The name of the VM. Used to identify the VM in this
API
state: Indicates the current state in the VM lifecycle
running: The VM is powered on
paused: The VMs virtual CPUs are paused
shutoff: The VM is powered off
stats: Virtual machine statistics:
cpu_utilization: A number between 0 and 100 which
indicates the percentage of CPU utilization.
mem_utilization: A number between 0 and 100 which
indicates the percentage of memory utilization.
net_throughput: Expresses total network throughput for
reads and writes across all virtual interfaces (kb/s).
net_throughput_peak: The highest recent value of
'net_throughput'.
io_throughput: Expresses the total IO throughput for
reads and writes across all virtual disks (kb/s).
io_throughput_peak: The highest recent value of
'io_throughput'.
uuid: UUID of the VM.
memory: The memory parameters of the VM in the unit of
MiB.
current: The amount of memory that is assigned to the
VM.
maxmemory: The maximum total of memory that the VM can
have. Amount over current will be used exclusively for memory
hotplug
cpu_info: CPU-specific information.
vcpus: The number of CPUs assigned to the VM
maxvcpus: The maximum number of CPUs that can be
assigned to the VM
topology: Processor topology, includes:
sockets - The maximum number of sockets to use.
cores - The number of cores per socket.
threads - The number of threads per core.
screenshot: A link to a recent capture of the screen in
PNG format
icon: A link to an icon that represents the VM
graphics: A dict to show detail of VM graphics.
type: The type of graphics. It can be VNC or spice or
None.
vnc: Graphical display using the Virtual Network
Computing protocol
spice: Graphical display using the Simple Protocol
for Independent Computing Environments
null: Graphics is disabled or type not supported
listen: The network which the vnc/spice server listens
on.
port: The real port number of the graphics, vnc or
spice. Users can use this port to connect to the vm with general
vnc/spice clients.
passwd: console password
passwdValidTo: lifetime for the console password.
users: A list of system users who have permission to
access the VM. Default is: empty (i.e. only root-users may
access).
groups: A list of system groups whose users have
permission to access the VM. Default is: empty (i.e. no groups
given access).
bootorder: list of devices in boot order
description: VM description
title: VM title
Proposed:
Resource: Virtual Machine
URI: /plugins/kimchi/vms/:name
Methods:
GET: Retrieve the full description of a Virtual Machine
name: The name of the VM. Used to identify the VM in this
API
state: Indicates the current state in the VM lifecycle
running: The VM is powered on
paused: The VMs virtual CPUs are paused
shutoff: The VM is powered off
stats: Virtual machine statistics:
cpu_utilization: A number between 0 and 100 which
indicates the percentage of CPU utilization.
mem_utilization: A number between 0 and 100 which
indicates the percentage of memory utilization.
net_throughput: Expresses total network throughput for
reads and writes across all virtual interfaces (kb/s).
net_throughput_peak: The highest recent value of
'net_throughput'.
io_throughput: Expresses the total IO throughput for
reads and writes across all virtual disks (kb/s).
io_throughput_peak: The highest recent value of
'io_throughput'.
uuid: UUID of the VM.
memory: The memory parameters of the VM in the unit of
MiB.
current: The amount of memory that is assigned to the
VM.
maxmemory: The maximum total of memory that the VM can
have. Amount over current will be used exclusively for memory
hotplug
cpu_info: CPU-specific information.
vcpus: The number of CPUs assigned to the VM
maxvcpus: The maximum number of CPUs that can be
assigned to the VM
topology: Processor topology, includes:
sockets - The maximum number of sockets to use.
cores - The number of cores per socket.
threads - The number of threads per core.
screenshot: A link to a recent capture of the screen in
PNG format
icon: A link to an icon that represents the VM
graphics: A dict to show detail of VM graphics.
type: The type of graphics. It can be VNC or spice or
None.
vnc: Graphical display using the Virtual Network
Computing protocol
spice: Graphical display using the Simple Protocol
for Independent Computing Environments
null: Graphics is disabled or type not supported
listen: The network which the vnc/spice server listens
on.
port: The real port number of the graphics, vnc or
spice. Users can use this port to connect to the vm with general
vnc/spice clients.
passwd: console password
passwdValidTo: lifetime for the console password.
console (s390x only, optional): Specify the console
parameter for this vm.
type: sclp/virtio.
If not provided, default sclp.
users: A list of system users who have permission to
access the VM. Default is: empty (i.e. only root-users may
access).
groups: A list of system groups whose users have
permission to access the VM. Default is: empty (i.e. no groups
given access).
bootorder: list of devices in boot order
description: VM description
title: VM title
3) Update a VM details
Current:
Resource: Virtual Machine
URI: /plugins/kimchi/vms/:name
Method:
PUT: update the parameters of existing VM
name: New name for this VM (only applied for shutoff VM)
users: New list of system users.
groups: New list of system groups.
memory: New memory parameters of the VM in the unit of MiB.
Provide one or both.
current: New amount of memory that will be assigned to the
VM.
maxmemory: New maximum total of memory that the VM can
have.
graphics: A dict to show detail of VM graphics.
passwd (optional): console password. When omitted a random
password willbe generated.
passwdValidTo (optional): lifetime for the console
password. When omitted the password will be valid just for 30
seconds.
type (optional): graphics type. VNC or Spice.
cpu_info (optional): CPU-specific information.
maxvcpus (optional): The maximum number of vCPUs that can
be assigned to the VM. If topology is specified, maxvcpus must be
a product of sockets, cores and threads.
vcpus (optional): The number of vCPUs assigned to the VM.
Default is 1, unless a CPU topology is specified. In that case,
vcpus must be a multiple of a product of cores and threads, and
will default to maxvcpus value.
topology (optional): Specify sockets, threads, and cores
to run the virtual CPU threads on. All three are required.
sockets - The maximum number of sockets to use.
cores - The number of cores per socket.
threads - The number of threads per core.
bootorder: guest bootorder, types accepted: hd, cdrom, network
or fd
bootmenu: prompts guest bootmenu. Bool type.
description: VM description
title: VM title
Proposed:
Resource: Virtual Machine
URI: /plugins/kimchi/vms/:name
Method:
PUT: update the parameters of existing VM
name: New name for this VM (only applied for shutoff VM)
users: New list of system users.
groups: New list of system groups.
memory: New memory parameters of the VM in the unit of MiB.
Provide one or both.
current: New amount of memory that will be assigned to the
VM.
maxmemory: New maximum total of memory that the VM can
have.
graphics: A dict to show detail of VM graphics.
passwd (optional): console password. When omitted a random
password willbe generated.
passwdValidTo (optional): lifetime for the console
password. When omitted the password will be valid just for 30
seconds.
type (optional): graphics type. VNC or Spice.
console (s390x only, optional): Specify the console
parameter for this vm.
type: sclp/virtio.
If not provided, default sclp.
cpu_info (optional): CPU-specific information.
maxvcpus (optional): The maximum number of vCPUs that can
be assigned to the VM. If topology is specified, maxvcpus must be
a product of sockets, cores and threads.
vcpus (optional): The number of vCPUs assigned to the VM.
Default is 1, unless a CPU topology is specified. In that case,
vcpus must be a multiple of a product of cores and threads, and
will default to maxvcpus value.
topology (optional): Specify sockets, threads, and cores
to run the virtual CPU threads on. All three are required.
sockets - The maximum number of sockets to use.
cores - The number of cores per socket.
threads - The number of threads per core.
bootorder: guest bootorder, types accepted: hd, cdrom, network
or fd
bootmenu: prompts guest bootmenu. Bool type.
description: VM description
title: VM title
4) Get templates and create a template.
Current:
Collection: Templates
URI: /plugins/kimchi/templates
Methods:
GET: Retrieve a summarized list of all defined Templates
POST: Create a new Template
name: The name of the Template. Used to identify the
Template in this API
source_media: dictionary. The type of media to be used in
the installation.
type: the type of the media. Values: 'netboot' and
'disk'.
path: applicable for type = 'disk' only. Indicates the
path of the source media.
os_distro (optional): The operating system distribution
os_version (optional): The version of the operating system
distribution
memory (optional): The memory parameters of the template,
specify one or both. Default values are 1024MiB:
current: The amount of memory that will be assigned to
the VM.
maxmemory: The maximum total of memory that the VM can
have. Amount over current will be used exclusively for memory
hotplug
networks (optional): list of networks will be assigned to
the new VM. Default is '[default]'
disks (optional): An array of requested disks with the
following optional fields (either size or volume must be
specified):
index: The device index
size: The device size in GB
format: Format of the image. Valid formats: qcow,
qcow2, qed, raw, vmdk, vpc
pool: Storage pool information
name: URI of the storagepool where disk will be
created
graphics (optional): The graphics paramenters of this
template
type: The type of graphics. It can be VNC or spice or
None.
vnc: Graphical display using the Virtual Network
Computing protocol
spice: Graphical display using the Simple Protocol
for Independent Computing Environments
null: Graphics is disabled or type not supported
listen: The network which the vnc/spice server listens
on.
cpu_info (optional): CPU-specific information.
maxvcpus (optional): The maximum number of vCPUs that
can be assigned to the VM. If topology is specified, maxvcpus must
be a product of sockets, cores and threads.
vcpus (optional): The number of vCPUs assigned to the
VM. Default is 1, unless a CPU topology is specified. In that
case, vcpus must be a multiple of a product of cores and threads,
and will default to maxvcpus value.
topology (optional): Specify sockets, threads, and
cores to run the virtual CPU threads on. All three are required.
sockets - The maximum number of sockets to use.
cores - The number of cores per socket.
threads - The number of threads per core.
Proposed:
Collection: Templates
URI: /plugins/kimchi/templates
Methods:
GET: Retrieve a summarized list of all defined Templates
POST: Create a new Template
name: The name of the Template. Used to identify the
Template in this API
source_media: dictionary. The type of media to be used in
the installation.
type: the type of the media. Values: 'netboot' and
'disk'.
path: applicable for type = 'disk' only. Indicates the
path of the source media.
os_distro (optional): The operating system distribution
os_version (optional): The version of the operating system
distribution
memory (optional): The memory parameters of the template,
specify one or both. Default values are 1024MiB:
current: The amount of memory that will be assigned to
the VM.
maxmemory: The maximum total of memory that the VM can
have. Amount over current will be used exclusively for memory
hotplug
networks (optional): list of networks will be assigned to
the new VM. Default is '[default]'
disks (optional): An array of requested disks with the
following optional fields (either size or volume must be
specified):
index: The device index
size: The device size in GB
format: Format of the image. Valid formats: qcow,
qcow2, qed, raw, vmdk, vpc
pool: Storage pool information
name: URI of the storagepool where disk will be
created
graphics (optional): The graphics paramenters of this
template
type: The type of graphics. It can be VNC or spice or
None.
vnc: Graphical display using the Virtual Network
Computing protocol
spice: Graphical display using the Simple Protocol
for Independent Computing Environments
null: Graphics is disabled or type not supported
listen: The network which the vnc/spice server listens
on.
console (s390x only, optional): Specify the console
parameter for this template.
type:sclp/virtio.
If not provided, default sclp.
cpu_info (optional): CPU-specific information.
maxvcpus (optional): The maximum number of vCPUs that
can be assigned to the VM. If topology is specified, maxvcpus must
be a product of sockets, cores and threads.
vcpus (optional): The number of vCPUs assigned to the
VM. Default is 1, unless a CPU topology is specified. In that
case, vcpus must be a multiple of a product of cores and threads,
and will default to maxvcpus value.
topology (optional): Specify sockets, threads, and
cores to run the virtual CPU threads on. All three are required.
sockets - The maximum number of sockets to use.
cores - The number of cores per socket.
threads - The number of threads per core.
5) Get a template details.
Current:-
Resource: Template
URI: /plugins/kimchi/templates/:name
Methods:
GET: Retrieve the full description of a Template
name: A name for this template
folder: A virtual path which can be used to organize
Templates in a user interface. The format is an array of path
components.
icon: A URI to a PNG image representing this template
os_distro: The operating system distribution
os_version: The version of the operating system
distribution
memory: The memory parameters of the template, that will
be assigned to the VM in the unit of MiB.
current: The amount of memory that will be assigned to
the VM.
maxmemory: The maximum total of memory that the VM can
have. Amount over current will be used exclusively for memory
hotplug
cdrom: A volume name or URI to an ISO image
storagepool: URI of the storagepool where template
allocates vm storage.
networks (optional): list of networks will be assigned to
the new VM.
interfaces (optional): list of host network interfaces
will be assigned to the new VM. Only applicable for s390x or s390
architecture.
type: Type of host network interface. Type should be
'macvtap' for host network interface (Ethernet, Bond, VLAN) to be
connected as direct MacVTap; or 'ovs' for openvswitch host network
interface to be connected as virtual switch to a VM.
name: The host network interface. It should be the
host network interface (Ethernet, Bond, VLAN) for type 'macvtap'
or host openvswitch bridge interface for type 'ovs'.
mode (optional): Only applicable for interface type
macvtap, to indicates whether packets will be delivered directly
to target device(bridge) or to the external bridge(vepa-capable
bridge).
bridge: If packets have a destination on the host
from which they originated, they are delivered directly to the
target. For direct delivery, both origin and destination devices
need to be in bridge mode. If either the origin or destination is
in vepa mode, VEPA-capable bridge is required.
vepa: All packets are sent to the external bridge.
If packets have a destination on the host from which they
originated, the VEPA-capable bridge will return the packets to the
host.
disks: An array of requested disks with the following
optional fields (either size or volume must be specified):
index: The device index
size: The device size in GB
volume: A volume name that contains the initial disk
contents
format: Format of the image. Valid formats: qcow,
qcow2, qed, raw, vmdk, vpc.
pool: Information about the pool where disk or volume
will be created
name: URI of the storagepool
type: Type of the storagepool (dir, nfs, scsci,
iscsi, etc)
graphics: A dict of graphics paramenters of this template
type: The type of graphics. It can be VNC or spice or
None.
vnc: Graphical display using the Virtual Network
Computing protocol
spice: Graphical display using the Simple Protocol
for Independent Computing Environments
null: Graphics is disabled or type not supported
listen: The network which the vnc/spice server listens
on.
invalid: A dict indicates which paramenters of this
template are invalid.
networks (optional): An array of invalid network
names.
cdrom (optional): An array of invalid cdrom names.
disks (optional): An array of invalid volume names.
storagepools (optional): An array of invalid
storagepool names.
cpu_info: CPU-specific information.
vcpus: The number of CPUs assigned to the VM
maxvcpus: The maximum number of CPUs that can be
assigned to the VM
topology: Processor topology, includes:
sockets - The maximum number of sockets to use.
cores - The number of cores per socket.
threads - The number of threads per core.
Proposed:-
Resource: Template
URI: /plugins/kimchi/templates/:name
Methods:
GET: Retrieve the full description of a Template
name: A name for this template
folder: A virtual path which can be used to organize
Templates in a user interface. The format is an array of path
components.
icon: A URI to a PNG image representing this template
os_distro: The operating system distribution
os_version: The version of the operating system
distribution
memory: The memory parameters of the template, that will
be assigned to the VM in the unit of MiB.
current: The amount of memory that will be assigned to
the VM.
maxmemory: The maximum total of memory that the VM can
have. Amount over current will be used exclusively for memory
hotplug
cdrom: A volume name or URI to an ISO image
storagepool: URI of the storagepool where template
allocates vm storage.
networks (optional): list of networks will be assigned to
the new VM.
interfaces (optional): list of host network interfaces
will be assigned to the new VM. Only applicable for s390x or s390
architecture.
type: Type of host network interface. Type should be
'macvtap' for host network interface (Ethernet, Bond, VLAN) to be
connected as direct MacVTap; or 'ovs' for openvswitch host network
interface to be connected as virtual switch to a VM.
name: The host network interface. It should be the
host network interface (Ethernet, Bond, VLAN) for type 'macvtap'
or host openvswitch bridge interface for type 'ovs'.
mode (optional): Only applicable for interface type
macvtap, to indicates whether packets will be delivered directly
to target device(bridge) or to the external bridge(vepa-capable
bridge).
bridge: If packets have a destination on the host
from which they originated, they are delivered directly to the
target. For direct delivery, both origin and destination devices
need to be in bridge mode. If either the origin or destination is
in vepa mode, VEPA-capable bridge is required.
vepa: All packets are sent to the external bridge.
If packets have a destination on the host from which they
originated, the VEPA-capable bridge will return the packets to the
host.
disks: An array of requested disks with the following
optional fields (either size or volume must be specified):
index: The device index
size: The device size in GB
volume: A volume name that contains the initial disk
contents
format: Format of the image. Valid formats: qcow,
qcow2, qed, raw, vmdk, vpc.
pool: Information about the pool where disk or volume
will be created
name: URI of the storagepool
type: Type of the storagepool (dir, nfs, scsci,
iscsi, etc)
graphics: A dict of graphics paramenters of this template
type: The type of graphics. It can be VNC or spice or
None.
vnc: Graphical display using the Virtual Network
Computing protocol
spice: Graphical display using the Simple Protocol
for Independent Computing Environments
null: Graphics is disabled or type not supported
listen: The network which the vnc/spice server listens
on.
console (s390x only, optional): Specify the console
parameter for this template.
type:sclp/virtio.
If not provided, default sclp.
invalid: A dict indicates which paramenters of this
template are invalid.
networks (optional): An array of invalid network
names.
cdrom (optional): An array of invalid cdrom names.
disks (optional): An array of invalid volume names.
storagepools (optional): An array of invalid
storagepool names.
cpu_info: CPU-specific information.
vcpus: The number of CPUs assigned to the VM
maxvcpus: The maximum number of CPUs that can be
assigned to the VM
topology: Processor topology, includes:
sockets - The maximum number of sockets to use.
cores - The number of cores per socket.
threads - The number of threads per core.
6) Update existing template.
Current:
Resource: Template
URI: /plugins/kimchi/templates/:name
Method:
PUT: update the parameters of existed template
name: A name for this template
folder: A virtual path which can be used to organize Templates
in the user interface. The format is an array of path components.
icon: A URI to a PNG image representing this template
os_distro: The operating system distribution
os_version: The version of the operating system distribution
memory: The memory parameters of the template, specify one or
both of:
current: The amount of memory that will be assigned to the
VM.
maxmemory: The maximum total of memory that the VM can
have. Amount over current will be used exclusively for memory
hotplug
cdrom: A volume name or URI to an ISO image
networks (optional): list of networks will be assigned to the
new VM.
interfaces (optional): list of host network interfaces will be
assigned to the new VM. Only applicable for s390x or s390
architecture.
type: Type of host network interface. Type should be
'macvtap' for host network interface (Ethernet, Bond, VLAN) to be
connected as direct MacVTap; or 'ovs' for openvswitch host network
interface to be connected as virtual switch to a VM.
name: The host network interface. It should be the host
network interface (Ethernet, Bond, VLAN) for type 'macvtap' or
host openvswitch bridge interface for type 'ovs'.
mode (optional): Only applicable for interface type
macvtap, to indicates whether packets will be delivered directly
to target device(bridge) or to the external bridge(vepa-capable
bridge).
bridge: If packets have a destination on the host from
which they originated, they are delivered directly to the target.
For direct delivery, both origin and destination devices need to
be in bridge mode. If either the origin or destination is in vepa
mode, VEPA-capable bridge is required.
vepa: All packets are sent to the external bridge. If
packets have a destination on the host from which they originated,
the VEPA-capable bridge will return the packets to the host.
disks: An array of requested disks with the following optional
fields (either size or volume must be specified):
index: The device index
size: The device size in GB
volume: A volume name that contains the initial disk
contents
format: Format of the image. Valid formats: qcow, qcow2,
qed, raw, vmdk, vpc.
pool: Storage pool information
name: URI of the storagepool where template allocates
vm disk.
graphics (optional): A dict of graphics paramenters of this
template
type: The type of graphics. It can be VNC or spice or
None.
vnc: Graphical display using the Virtual Network
Computing protocol
spice: Graphical display using the Simple Protocol for
Independent Computing Environments
null: Graphics is disabled or type not supported
listen: The network which the vnc/spice server listens on.
cpu_info (optional): CPU-specific information.
maxvcpus (optional): The maximum number of vCPUs that can
be assigned to the VM. If topology is specified, maxvcpus must be
a product of sockets, cores and threads.
vcpus (optional): The number of vCPUs assigned to the VM.
Default is 1, unless a CPU topology is specified. In that case,
vcpus must be a multiple of a product of cores and threads, and
will default to maxvcpus value.
topology (optional): Specify sockets, threads, and cores
to run the virtual CPU threads on. All three are required.
sockets - The maximum number of sockets to use.
cores - The number of cores per socket.
threads - The number of threads per core.
Proposed:-
Resource: Template
URI: /plugins/kimchi/templates/:name
Method:
PUT: update the parameters of existed template
name: A name for this template
folder: A virtual path which can be used to organize Templates
in the user interface. The format is an array of path components.
icon: A URI to a PNG image representing this template
os_distro: The operating system distribution
os_version: The version of the operating system distribution
memory: The memory parameters of the template, specify one or
both of:
current: The amount of memory that will be assigned to the
VM.
maxmemory: The maximum total of memory that the VM can
have. Amount over current will be used exclusively for memory
hotplug
cdrom: A volume name or URI to an ISO image
networks (optional): list of networks will be assigned to the
new VM.
interfaces (optional): list of host network interfaces will be
assigned to the new VM. Only applicable for s390x or s390
architecture.
type: Type of host network interface. Type should be
'macvtap' for host network interface (Ethernet, Bond, VLAN) to be
connected as direct MacVTap; or 'ovs' for openvswitch host network
interface to be connected as virtual switch to a VM.
name: The host network interface. It should be the host
network interface (Ethernet, Bond, VLAN) for type 'macvtap' or
host openvswitch bridge interface for type 'ovs'.
mode (optional): Only applicable for interface type
macvtap, to indicates whether packets will be delivered directly
to target device(bridge) or to the external bridge(vepa-capable
bridge).
bridge: If packets have a destination on the host from
which they originated, they are delivered directly to the target.
For direct delivery, both origin and destination devices need to
be in bridge mode. If either the origin or destination is in vepa
mode, VEPA-capable bridge is required.
vepa: All packets are sent to the external bridge. If
packets have a destination on the host from which they originated,
the VEPA-capable bridge will return the packets to the host.
disks: An array of requested disks with the following optional
fields (either size or volume must be specified):
index: The device index
size: The device size in GB
volume: A volume name that contains the initial disk
contents
format: Format of the image. Valid formats: qcow, qcow2,
qed, raw, vmdk, vpc.
pool: Storage pool information
name: URI of the storagepool where template allocates
vm disk.
graphics (optional): A dict of graphics paramenters of this
template
type: The type of graphics. It can be VNC or spice or
None.
vnc: Graphical display using the Virtual Network
Computing protocol
spice: Graphical display using the Simple Protocol for
Independent Computing Environments
null: Graphics is disabled or type not supported
listen: The network which the vnc/spice server listens on.
console (s390x only, optional): Specify the console
parameter for this template.
type:sclp/virtio.
If not provided, default sclp.
cpu_info (optional): CPU-specific information.
maxvcpus (optional): The maximum number of vCPUs that can
be assigned to the VM. If topology is specified, maxvcpus must be
a product of sockets, cores and threads.
vcpus (optional): The number of vCPUs assigned to the VM.
Default is 1, unless a CPU topology is specified. In that case,
vcpus must be a multiple of a product of cores and threads, and
will default to maxvcpus value.
topology (optional): Specify sockets, threads, and cores
to run the virtual CPU threads on. All three are required.
sockets - The maximum number of sockets to use.
cores - The number of cores per socket.
threads - The number of threads per core.
Thanks,
Archana Singh