[Kimchi-devel] [PATCH 1/4] template supports networks: let template xml support more networks
Aline Manera
alinefm at linux.vnet.ibm.com
Fri Dec 27 14:42:00 UTC 2013
On 12/26/2013 08:21 AM, shaohef at linux.vnet.ibm.com wrote:
> From: ShaoHe Feng <shaohef at linux.vnet.ibm.com>
>
> If a VM just in one network, it may not access other hosts in different networks.
typo: VM is just
s/hosts/machines
>
> In most product environment, more networks are needed.
>
> such as a management network, this network just let a service can manage all the
network management
> VMs in this this network.
typo: this this
> And a more publick network, a VM can access the internet.
typo: publick
>
> Signed-off-by: ShaoHe Feng <shaohef at linux.vnet.ibm.com>
> ---
> src/kimchi/osinfo.py | 5 +++--
> src/kimchi/vmtemplate.py | 20 ++++++++++++++++----
> 2 files changed, 19 insertions(+), 6 deletions(-)
>
> diff --git a/src/kimchi/osinfo.py b/src/kimchi/osinfo.py
> index 20a93a6..3e980d6 100644
> --- a/src/kimchi/osinfo.py
> +++ b/src/kimchi/osinfo.py
> @@ -170,8 +170,9 @@ isolinks = {
> },
> }
>
> -defaults = {'network': 'default', 'storagepool': '/storagepools/default',
> - 'domain': 'kvm', 'arch': os.uname()[4]
> +defaults = {'networks': ['default'],
> + 'storagepool': '/storagepools/default',
> + 'domain': 'kvm', 'arch': os.uname()[4]
> }
>
> def lookup(distro, version):
> diff --git a/src/kimchi/vmtemplate.py b/src/kimchi/vmtemplate.py
> index dd43faa..5d31f2a 100644
> --- a/src/kimchi/vmtemplate.py
> +++ b/src/kimchi/vmtemplate.py
> @@ -182,11 +182,26 @@ class VMTemplate(object):
> ret.append(info)
> return ret
>
> + def _get_networks_xml(self):
> + network = """
> + <interface type='network'>
> + <source network='%(network)s'/>
> + <model type='%(nic_model)s'/>
> + </interface>
> + """
> + networks = ""
> + net_info = {"nic_model": self.info['nic_model']}
> + for nw in self.info['networks']:
> + net_info['network'] = nw
> + networks += network % net_info
> + return networks
> +
> def to_vm_xml(self, vm_name, vm_uuid, libvirt_stream = False, qemu_stream_dns = False):
> params = dict(self.info)
> params['name'] = vm_name
> params['uuid'] = vm_uuid
> params['disks'] = self._get_disks_xml(vm_uuid)
> + params['networks'] = self._get_networks_xml()
> params['qemu-namespace'] = ''
> params['cdroms'] = ''
> params['qemu-stream-cmdline'] = ''
> @@ -220,10 +235,7 @@ class VMTemplate(object):
> <devices>
> %(disks)s
> %(cdroms)s
> - <interface type='network'>
> - <source network='%(network)s'/>
> - <model type='%(nic_model)s'/>
> - </interface>
> + %(networks)s
> <graphics type='vnc' />
> <sound model='ich6' />
> <memballoon model='virtio' />
More information about the Kimchi-devel
mailing list