
On 06/18/2013 10:59 AM, Yuriy Demchenko wrote:
Hi,
Is VMpayload supported by oVirt 3.2.2 el6?
it should be. have you tried first passing payload via the engine?
As I'm trying to set up startup hook to pass vmname via payload and getting nothing...
my hook code quite simple (and maybe crude):
domxml = hooking.read_domxml() domain = domxml.getElementsByTagName('domain')[0] payloads = domxml.createElement('payloads') npayload = domxml.createElement('payload') npayload.setAttribute('type','cdrom') filename = domxml.createElement('file') filename.setAttribute('name','vmname.txt') content = domxml.createElement('content') names = domxml.getElementsByTagName('name')[0] vmname = names.childNodes[0].nodeValue text = domxml.createTextNode(vmname) content.appendChild(text) filename.appendChild(content) npayload.appendChild(filename) payloads.appendChild(npayload) domain.appendChild(payloads) hooking.write_domxml(domxml) and from vdsm.log I can see that 'payloads' elements are created succesfully: Thread-56974::DEBUG::2013-06-18 11:43:49,612::libvirtvm::1520::vm.Vm::(_run) vmId=`a21a2ec8-c7fd-4a0a-8cbb-5f0ab4faa960`::<?xml version="1.0" encoding="utf-8"?><domain type="kvm"> <name>virt-gate</name> <uuid>a21a2ec8-c7fd-4a0a-8cbb-5f0ab4faa960</uuid> <memory>524288</memory> <currentMemory>524288</currentMemory> <vcpu>1</vcpu> <devices> <channel type="unix"> <target name="com.redhat.rhevm.vdsm" type="virtio"/> <source mode="bind" path="/var/lib/libvirt/qemu/channels/virt-gate.com.redhat.rhevm.vdsm"/> </channel> <channel type="unix"> <target name="org.qemu.guest_agent.0" type="virtio"/> <source mode="bind" path="/var/lib/libvirt/qemu/channels/virt-gate.org.qemu.guest_agent.0"/> </channel> <input bus="ps2" type="mouse"/> <channel type="spicevmc"> <target name="com.redhat.spice.0" type="virtio"/> </channel> <graphics autoport="yes" keymap="en-us" listen="0" passwd="*****" passwdValidTo="1970-01-01T00:00:01" port="-1" tlsPort="-1" type="spice"> <channel mode="secure" name="main"/> <channel mode="secure" name="inputs"/> <channel mode="secure" name="cursor"/> <channel mode="secure" name="playback"/> <channel mode="secure" name="record"/> <channel mode="secure" name="display"/> <channel mode="secure" name="usbredir"/> <channel mode="secure" name="smartcard"/> </graphics> <video> <address bus="0x00" domain="0x0000" function="0x0" slot="0x02" type="pci"/> <model heads="1" type="qxl" vram="65536"/> </video> <interface type="bridge"> <address bus="0x00" domain="0x0000" function="0x0" slot="0x03" type="pci"/> <mac address="00:1a:4a:a8:7a:07"/> <model type="virtio"/> <source bridge="vlan1"/> <filterref filter="vdsm-no-mac-spoofing"/> <link state="up"/> </interface> <interface type="bridge"> <address bus="0x00" domain="0x0000" function="0x0" slot="0x04" type="pci"/> <mac address="00:1a:4a:a8:7a:09"/> <model type="virtio"/> <source bridge="vlan11"/> <filterref filter="vdsm-no-mac-spoofing"/> <link state="up"/> </interface> <disk device="cdrom" snapshot="no" type="file"> <address bus="1" controller="0" target="0" type="drive" unit="0"/> <source file="" startupPolicy="optional"/> <target bus="ide" dev="hdc"/> <readonly/> <serial/> </disk> <disk device="disk" snapshot="no" type="block"> <address bus="0x00" domain="0x0000" function="0x0" slot="0x06" type="pci"/> <source dev="/rhev/data-center/5849b030-626e-47cb-ad90-3ce782d831b3/d786e2d5-05ab-4da6-95fc-1af791a3c113/images/4927f83f-425e-41ef-aa12-3bc249d7064b/caa56376-deab-41cd-a27c-d35fe8f33946"/>
<target bus="virtio" dev="vda"/> <serial>4927f83f-425e-41ef-aa12-3bc249d7064b</serial> <boot order="1"/> <driver cache="none" error_policy="stop" io="native" name="qemu" type="raw"/> </disk> <memballoon model="virtio"/> </devices> <os> <type arch="x86_64" machine="pc">hvm</type> <smbios mode="sysinfo"/> </os> <sysinfo type="smbios"> <system> <entry name="manufacturer">oVirt</entry> <entry name="product">oVirt Node</entry> <entry name="version">6-4.el6.centos.10</entry> <entry name="serial">A6902500-EA00-0706-0025-90A600EA0E0F</entry> <entry name="uuid">a21a2ec8-c7fd-4a0a-8cbb-5f0ab4faa960</entry> </system> </sysinfo> <clock adjustment="-2" offset="variable"> <timer name="rtc" tickpolicy="catchup"/> </clock> <features> <acpi/> </features> <cpu match="exact"> <model>Nehalem</model> <topology cores="1" sockets="1" threads="1"/> </cpu> <payloads><payload type="cdrom"><file name="vmname.txt"><content>virt-gate</content></file></payload></payloads></domain>
Tried with both 'cdrom' and 'floppy' types. However, inside guest OS (centos 6.4) I couldn't see any payload: /dev/sr0 contains nothing; modprobe floppy doest not finds any floppy devices.
Am I missing something or it's just not implemented in 3.2.2-el6?
Yuriy Demchenko
On 05/25/2013 10:54 PM, Itamar Heim wrote:
http://www.ovirt.org/Features/VMPayload
That suggests I can use the API to set this up, but is this possible via the administrative UI instead? Could I do this in a creation-time VDSM hook?
Thanks,
1. yes, you can do it via a hook using custom properties (that what the floppy/iso inject hooks were for, but they are now deprecated as the vm payload makes them redundant).
2. RHEV has this in 3.1. iirc, its only available via the API though[1] cloud init should be available from the UI via the runonce dialog.