1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2024-12-25 07:35:22 +00:00

Qemu Guest Agent channel add option while creating instance

This commit is contained in:
catborise 2018-11-26 15:40:02 +03:00
parent a67acc5d24
commit 62908f477c
4 changed files with 37 additions and 9 deletions

View file

@ -46,6 +46,7 @@ class NewVMForm(forms.Form):
hdd_size = forms.IntegerField(required=False) hdd_size = forms.IntegerField(required=False)
meta_prealloc = forms.BooleanField(required=False) meta_prealloc = forms.BooleanField(required=False)
virtio = forms.BooleanField(required=False) virtio = forms.BooleanField(required=False)
qemu_ga = forms.BooleanField(required=False)
mac = forms.CharField(required=False) mac = forms.CharField(required=False)
console_pass = forms.CharField(required=False,empty_value="", widget=forms.PasswordInput()) console_pass = forms.CharField(required=False,empty_value="", widget=forms.PasswordInput())
video = forms.CharField(error_messages={'required': _('Please select a graphic display')}) video = forms.CharField(error_messages={'required': _('Please select a graphic display')})

View file

@ -203,6 +203,12 @@
</div> </div>
<label class="col-lg-1 control-label">{% trans "CPU" %}</label> <label class="col-lg-1 control-label">{% trans "CPU" %}</label>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label">{% trans "Guest Agent" %}</label>
<div class="col-sm-6">
<input type="checkbox" name="qemu_ga" value="true" checked>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">{% trans "VirtIO" %}</label> <label class="col-sm-3 control-label">{% trans "VirtIO" %}</label>
<div class="col-sm-6"> <div class="col-sm-6">
@ -375,6 +381,12 @@
</select> </select>
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label">{% trans "Guest Agent" %}</label>
<div class="col-sm-6">
<input type="checkbox" name="qemu_ga" value="true" checked>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">{% trans "VirtIO" %}</label> <label class="col-sm-3 control-label">{% trans "VirtIO" %}</label>
<div class="col-sm-7"> <div class="col-sm-7">
@ -515,6 +527,12 @@
</select> </select>
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label">{% trans "Guest Agent" %}</label>
<div class="col-sm-6">
<input type="checkbox" name="qemu_ga" value="true" checked>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">{% trans "VirtIO" %}</label> <label class="col-sm-3 control-label">{% trans "VirtIO" %}</label>
<div class="col-sm-7"> <div class="col-sm-7">

View file

@ -53,7 +53,6 @@ def create_instance(request, compute_id):
disk_devices = conn.get_disk_device_types() disk_devices = conn.get_disk_device_types()
disk_buses = conn.get_disk_bus_types() disk_buses = conn.get_disk_bus_types()
default_bus = INSTANCE_VOLUME_DEFAULT_BUS default_bus = INSTANCE_VOLUME_DEFAULT_BUS
#get_images = sorted(conn.get_storages_images())
except libvirtError as lib_err: except libvirtError as lib_err:
error_messages.append(lib_err) error_messages.append(lib_err)
@ -173,7 +172,7 @@ def create_instance(request, compute_id):
conn.create_instance(data['name'], data['memory'], data['vcpu'], data['host_model'], conn.create_instance(data['name'], data['memory'], data['vcpu'], data['host_model'],
uuid, volume_list, data['cache_mode'], data['networks'], data['virtio'], uuid, volume_list, data['cache_mode'], data['networks'], data['virtio'],
data["listener_addr"], data["nwfilter"], data["video"], data["console_pass"], data["listener_addr"], data["nwfilter"], data["video"], data["console_pass"],
data['mac']) data['mac'], data['qemu_ga'])
create_instance = Instance(compute_id=compute_id, name=data['name'], uuid=uuid) create_instance = Instance(compute_id=compute_id, name=data['name'], uuid=uuid)
create_instance.save() create_instance.save()
msg = _("Instance is created.") msg = _("Instance is created.")

View file

@ -154,7 +154,7 @@ class wvmCreate(wvmConnect):
vol = self.get_volume_by_path(path) vol = self.get_volume_by_path(path)
vol.delete() vol.delete()
def create_instance(self, name, memory, vcpu, host_model, uuid, images, cache_mode, networks, virtio, listen_addr, nwfilter=None, video="cirrus", console_pass="random", mac=None): def create_instance(self, name, memory, vcpu, host_model, uuid, images, cache_mode, networks, virtio, listen_addr, nwfilter=None, video="cirrus", console_pass="random", mac=None, qemu_ga=False):
""" """
Create VM function Create VM function
""" """
@ -260,11 +260,21 @@ class wvmCreate(wvmConnect):
xml += """ <input type='mouse' bus='ps2'/> xml += """ <input type='mouse' bus='ps2'/>
<input type='tablet' bus='usb'/> <input type='tablet' bus='usb'/>
<graphics type='%s' port='-1' autoport='yes' %s listen='%s'/> <graphics type='%s' port='-1' autoport='yes' %s listen='%s'/>
<console type='pty'/> <console type='pty'/> """ % (QEMU_CONSOLE_DEFAULT_TYPE, console_pass, listen_addr)
<video>
if qemu_ga:
xml += """ <channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
</channel>"""
xml += """ <video>
<model type='%s'/> <model type='%s'/>
</video> </video>
<memballoon model='virtio'/> <memballoon model='virtio'/>
</devices> </devices>
</domain>""" % (QEMU_CONSOLE_DEFAULT_TYPE, console_pass, listen_addr, video) </domain>""" % video
self._defineXML(xml) self._defineXML(xml)