I assume the code for the Admin portal and PUP are shared (w/o looking) in regards to editing VM settings. Thus if I understand what you are saying, is that given proper permissions a power user would be able to view/edit the "custom properties". Any thoughts on a way now short of code changes to work around this (this is really a killer for our use cases)? An initial thought I had was to develop something perhaps a custom page (for now) leveraging the API to allow such changes.
Ultimately I see three core solutions to this issue: - The spice input/mouse interaction issues are resolved for all guests (old and new) - The UI allows for changes to the type of input device - Power users also have access to custom properties and can just use the vdsm hook instead. Let me know your thoughts. -Chris -----Original Message----- From: Itamar Heim [mailto:[email protected]] Sent: Wednesday, February 15, 2012 12:58 AM To: Brown, Chris (GE Healthcare) Cc: Andrew Cathrow; users; lpeer >> Livnat Peer Subject: Re: [Users] ovirt VM custom properties On 02/14/2012 11:29 PM, Brown, Chris (GE Healthcare) wrote: > Something else I thought of on this. While the admin portal allows for custom properties and this works there for the user portal it does not. > Thus a power user in the PUP cannot specify this as a custom property. This again would inhibit their ability to interact with and install certain guests. > Is there a way we can allow a power user to specify a custom property on a VM w/o admin interaction? I expect only when we'll develop permissions for them. > - Chris > > -----Original Message----- > From: Brown, Chris (GE Healthcare) > Sent: Thursday, February 02, 2012 2:52 PM > To: 'Andrew Cathrow' > Cc: [email protected] > Subject: RE: [Users] ovirt VM custom properties > > Andy, > Many thanks! > That got me going the right direction. > I did some extensive testing of with this. Here are the changes I made but basically what I do is: > - If the user specifies a custom property of usbtablet, just rewrite the input tag with: > <input type='tablet' bus='usb'/ id='input0'> This will of course rewrite the existing<input type='mouse' bus='ps2'/> But in this case we know we desire usbtablet so just re-write with what we want. > For non problematic guests or guests to which the agent can be installed we simply remove the custom property after the agent is added. > For legacy guests all the way back to redhat 7.3 and win98/win2k etc we can simply use usbtablet for now. > Once the issues with the mouse input issues with the aforementioned guest types are resolved we again won't need this (hopefully). > > - Chris > > #!/usr/bin/python > # VDSM Hook Script for RHEV/oVirt > # Enables USB tablet support for a guest # use rhevm-config for RHEV or engine-config for oVirt to add UserDefinedVMProperties # EX: rhevm-config -s UserDefinedVMProperties='usbtablet=^(true|false)$' --cver=3.0 # Remember to restart jboss # Use VM custom property usbtablet=true in vm configuration (Custom Properties) > > import os > import sys > import hooking > import traceback > > > if os.environ.has_key('usbtablet'): > try: > sys.stderr.write('usbtablet requested\n') > domxml = hooking.read_domxml() > > devices = domxml.getElementsByTagName('devices')[0] > inputdev = domxml.getElementsByTagName('input')[0] > > inputdev.setAttribute('bus', 'usb') > inputdev.setAttribute('type', 'tablet') > inputdev.setAttribute('id', 'input0') > hooking.write_domxml(domxml) > sys.stderr.write('usbtablet support enabled\n') > > except: > sys.stderr.write('usbtablet: [unexpected error]: %s\n' % traceback.format_exc()) > sys.exit(2) > > > -----Original Message----- > From: Andrew Cathrow [mailto:[email protected]] > Sent: Wednesday, February 01, 2012 5:01 PM > To: Brown, Chris (GE Healthcare) > Cc: [email protected] > Subject: Re: [Users] ovirt VM custom properties > > > Not tested, no error handling (eg. does the element exist already) but ... > > > > #!/usr/bin/python > > import os > import sys > import hooking > import traceback > > > if os.environ.has_key('usbtablet'): > try: > sys.stderr.write('tablet: adding usbtablet support\n') > domxml = hooking.read_domxml() > > devices = domxml.getElementsByTagName('devices')[0] > tablet = domxml.createElement('input') > tablet.setAttribute('bus', 'usb') > > devices.appendChild(tablet) > > hooking.write_domxml(domxml) > except: > sys.stderr.write('tablet: [unexpected error]: %s\n' % traceback.format_exc()) > sys.exit(2) > > > ----- Original Message ----- >> From: "Chris Brown (GE Healthcare)"<[email protected]> >> To: "Andrew Cathrow"<[email protected]> >> Cc: [email protected] >> Sent: Wednesday, February 1, 2012 5:20:09 PM >> Subject: RE: [Users] ovirt VM custom properties >> >> Thanks Andy, >> I was afraid that might be case ;) >> I'll check out the examples and see what I can come up with. >> - Chris >> >> -----Original Message----- >> From: Andrew Cathrow [mailto:[email protected]] >> Sent: Wednesday, February 01, 2012 3:29 PM >> To: Brown, Chris (GE Healthcare) >> Cc: [email protected] >> Subject: Re: [Users] ovirt VM custom properties >> >> >> >> ----- Original Message ----- >>> From: "Chris Brown (GE Healthcare)"<[email protected]> >>> To: [email protected] >>> Sent: Wednesday, February 1, 2012 4:16:35 PM >>> Subject: [Users] ovirt VM custom properties >>> >>> >>> >>> >>> >>> In an effort to work around the mouse issues with spice consoles and >>> certain guests I had an idea for the time being. >>> >>> My thought process is to leverage custom properties to enable >>> usb-tablet support on said guests. >>> >>> --> ( >>> http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Virtualization/3. >>> 0/html/Administration_Guide/VDSM_Hooks.html >>> ) >>> >>> >>> >>> I perused the available documentation and it appears that these >>> custom properties are ultimately fed into the generated libvirt >>> domain xml. >>> >>> Thus sifting through --> >>> http://libvirt.org/formatdomain.html#elementsInput we can pass in: >>> >>> <devices> >>> >>> <input type='tablet' bus='usb'/ id='input0'> >>> >>> </devices> >>> >>> >>> >>> The issue I am hung up on is that since this contains multi-level >>> elements can this even be specified as a custom property? >> >> The custom property wouldn't contain the XML it would contain data you >> want to pass to a hook script eg. addTablet=true, then it's down to >> your hook script to add the appropriate element to the device node in >> the libvirt xml. >> There's a number of good examples in the vdsm git repo. >> >> >>> >>> If so can one of the ovirt developers provide an example on how to >>> go about it? >> >> >>> >>> >>> >>> - Chris >>> _______________________________________________ >>> Users mailing list >>> [email protected] >>> http://lists.ovirt.org/mailman/listinfo/users >>> >> > _______________________________________________ > Users mailing list > [email protected] > http://lists.ovirt.org/mailman/listinfo/users _______________________________________________ Users mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/users

