<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="GENERATOR" content="GtkHTML/4.4.4">
</head>
<body>
tis 2013-06-04 klockan 16:32 &#43;0300 skrev Michael Pasternak:
<blockquote type="CITE">
<pre>
Karli,

On 06/04/2013 04:05 PM, Karli Sjöberg wrote:
&gt; Hello everyone!
&gt; 
&gt; I´m almost done with Python for now. But the last thing I sitll can´t seem to get any hang on is how to change the name of a VM´s disk:

please use disk.alias property, name is deprecated and for backward compatibility only.
</pre>
</blockquote>
<br>
It doesn´t matter what property I use, the name doesn´t change any way! Please read below, you´ll see I even tried defining .alias and .name at the same time, then update, but still no change. Could you please post the correct, and working way of doing this,
 please.<br>
<br>
<blockquote type="CITE">
<pre>

&gt; 
&gt;&gt;&gt;&gt; from ovirtsdk.api import API
&gt;&gt;&gt;&gt; from ovirtsdk.xml import params
&gt;&gt;&gt;&gt; api = API(url='<a href="https://">https://</a>${OVIRT}:443 &lt;<a href="https://storm.slu.se:443">https://storm.slu.se:443</a>&gt;', ca_file='/etc/pki/ovirt-engine/ca.pem', username='admin@internal &lt;<a href="mailto:'admin@internal">mailto:'admin@internal</a>&gt;',
&gt; password='letmein!')
&gt;&gt;&gt;&gt; VM_NAME = 'FedoraTest'
&gt;&gt;&gt;&gt; DISK_NAME = '%s_Disk1' % (VM_NAME)
&gt;&gt;&gt;&gt; vm = api.vms.get(VM_NAME)
&gt;&gt;&gt;&gt; vmdisk = vm.disks.list()[0]
&gt;&gt;&gt;&gt; vmdisk.alias = 'foobar'
&gt;&gt;&gt;&gt; vmdisk.name = 'foobar'
&gt;&gt;&gt;&gt; vmdisk.update()
&gt; &lt;ovirtsdk.infrastructure.brokers.VMDisk object at 0x25d7ad0&gt;
&gt; 
&gt; But the name/alias/whatev never changes...
&gt; 
&gt; Could you please give me an exact, and working example of how to change the name of a VM´s disk. This is the last simple thing I would like to accomplish before sharing a
&gt; little something back with y´all(teaser, teaser).
&gt; 
&gt; /Karli
&gt; 
&gt; sön 2013-05-26 klockan 02:48 -0400 skrev Ilia Meerovich:
&gt;&gt; Hi,
&gt;&gt;
&gt;&gt; Lets follow <a href="http://www.ovirt.org/Python-sdk">http://www.ovirt.org/Python-sdk</a> 
&gt;&gt;
&gt;&gt; In [1]: from ovirtsdk.xml import params
&gt;&gt;
&gt;&gt; In [2]: from ovirtsdk.api import API 
&gt;&gt;
&gt;&gt; In [3]: 
&gt;&gt;
&gt;&gt; In [4]: api = API(***, ***, ***)
&gt;&gt;
&gt;&gt; In [5]: user_name = &quot;***&quot;
&gt;&gt;
&gt;&gt; In [6]: domain = &quot;***.***.***.redhat.com&quot;
&gt;&gt;
&gt;&gt; In [7]: user_domain = params.Domain(name=domain)
&gt;&gt;
&gt;&gt; In [8]: user_name = &quot;{0}@{1}&quot;.format(user_name, domain) 
&gt;&gt; # creating user 
&gt;&gt; In [9]: new_user = params.User(domain=user_domain, user_name=user_name)
&gt;&gt; # adding user to users resource 
&gt;&gt; In [10]: user = api.users.add(new_user)
&gt;&gt; # adding role to user
&gt;&gt; In [11]: user.roles.add(api.roles.get('UserRole'))
&gt;&gt; Out[11]: &lt;ovirtsdk.infrastructure.brokers.UserRole object at 0x30c7590&gt;
&gt;&gt;
&gt;&gt; Thanks
&gt;&gt; Ilia
&gt;&gt;
&gt;&gt; ----- Original Message -----
&gt;&gt; From: &quot;Karli Sjöberg&quot; &lt;<a href="mailto:Karli.Sjoberg@slu.se">Karli.Sjoberg@slu.se</a> &lt;<a href="mailto:Karli.Sjoberg@slu.se">mailto:Karli.Sjoberg@slu.se</a>&gt;&gt;
&gt;&gt; To: &quot;Ilia Meerovich&quot; &lt;<a href="mailto:imeerovi@redhat.com">imeerovi@redhat.com</a> &lt;<a href="mailto:imeerovi@redhat.com">mailto:imeerovi@redhat.com</a>&gt;&gt;
&gt;&gt; Cc: &quot;Michael Pasternak&quot; &lt;<a href="mailto:mpastern@redhat.com">mpastern@redhat.com</a> &lt;<a href="mailto:mpastern@redhat.com">mailto:mpastern@redhat.com</a>&gt;&gt;, &quot;users&quot; &lt;<a href="mailto:users@ovirt.org">users@ovirt.org</a> &lt;<a href="mailto:users@ovirt.org">mailto:users@ovirt.org</a>&gt;&gt;, &quot;Elena Dolinin&quot; &lt;<a href="mailto:edolinin@redhat.com">edolinin@redhat.com</a> &lt;<a href="mailto:edolinin@redhat.com">mailto:edolinin@redhat.com</a>&gt;&gt;
&gt;&gt; Sent: Friday, May 24, 2013 8:04:43 AM
&gt;&gt; Subject: Re: [Users] Problems using the PythonSDK
&gt;&gt;
&gt;&gt; tor 2013-05-23 klockan 08:53 -0400 skrev Ilia Meerovich: 
&gt;&gt;
&gt;&gt; It should be like:
&gt;&gt;
&gt;&gt; from ovirtsdk.xml import params
&gt;&gt; from ovirtsdk.api import API 
&gt;&gt;
&gt;&gt; api = API('*', '*', '*')
&gt;&gt; vm = api.vms.list()[0]
&gt;&gt; user =  api.users.list()[1]
&gt;&gt; role = api.roles.list()[1]
&gt;&gt; permit = params.Permission()
&gt;&gt; permit.set_role(role)
&gt;&gt; permit.set_vm(vm)
&gt;&gt; user.permissions.add(permit) 
&gt;&gt; Thank you very much, I´m going to test this out today! Could you also show me how to first add a user that isn´t in the system yet, please? 
&gt;&gt;
&gt;&gt;
&gt;&gt;
&gt;&gt; ----- Original Message -----
&gt;&gt; From: &quot;Ilia Meerovich&quot; &lt; <a href="mailto:imeerovi@redhat.com">imeerovi@redhat.com</a> &lt;<a href="mailto:imeerovi@redhat.com">mailto:imeerovi@redhat.com</a>&gt; &gt;
&gt;&gt; To: &quot;Michael Pasternak&quot; &lt; <a href="mailto:mpastern@redhat.com">mpastern@redhat.com</a> &lt;<a href="mailto:mpastern@redhat.com">mailto:mpastern@redhat.com</a>&gt; &gt;
&gt;&gt; Cc: &quot;users&quot; &lt; <a href="mailto:users@ovirt.org">users@ovirt.org</a> &lt;<a href="mailto:users@ovirt.org">mailto:users@ovirt.org</a>&gt; &gt;, &quot;Karli Sjöberg&quot; &lt; <a href="mailto:Karli.Sjoberg@slu.se">Karli.Sjoberg@slu.se</a> &lt;<a href="mailto:Karli.Sjoberg@slu.se">mailto:Karli.Sjoberg@slu.se</a>&gt; &gt;, &quot;Elena Dolinin&quot; &lt; <a href="mailto:edolinin@redhat.com">edolinin@redhat.com</a> &lt;<a href="mailto:edolinin@redhat.com">mailto:edolinin@redhat.com</a>&gt; &gt;
&gt;&gt; Sent: Thursday, May 23, 2013 3:30:27 PM
&gt;&gt; Subject: Re: [Users] Problems using the PythonSDK
&gt;&gt;
&gt;&gt; Hi,
&gt;&gt;
&gt;&gt; We have several tests like:
&gt;&gt; &quot;Add VM permission to user&quot;, that are using ART's art/rhevm_api/tests_lib/low_level/mla.py addPermitsToUser function.
&gt;&gt; This is generic function but it shouldn't be hard to prepare SDK code with the same functionality.
&gt;&gt;
&gt;&gt; Thanks 
&gt;&gt; Ilia
&gt;&gt;
&gt;&gt; ----- Original Message -----
&gt;&gt; From: &quot;Michael Pasternak&quot; &lt; <a href="mailto:mpastern@redhat.com">mpastern@redhat.com</a> &lt;<a href="mailto:mpastern@redhat.com">mailto:mpastern@redhat.com</a>&gt; &gt;
&gt;&gt; To: &quot;Karli Sjöberg&quot; &lt; <a href="mailto:Karli.Sjoberg@slu.se">Karli.Sjoberg@slu.se</a> &lt;<a href="mailto:Karli.Sjoberg@slu.se">mailto:Karli.Sjoberg@slu.se</a>&gt; &gt;, &quot;Elena Dolinin&quot; &lt; <a href="mailto:edolinin@redhat.com">edolinin@redhat.com</a> &lt;<a href="mailto:edolinin@redhat.com">mailto:edolinin@redhat.com</a>&gt; &gt;, &quot;Ilia Meerovich&quot; &lt; <a href="mailto:imeerovi@redhat.com">imeerovi@redhat.com</a> &lt;<a href="mailto:imeerovi@redhat.com">mailto:imeerovi@redhat.com</a>&gt; &gt;
&gt;&gt; Cc: &quot;users&quot; &lt; <a href="mailto:users@ovirt.org">users@ovirt.org</a> &lt;<a href="mailto:users@ovirt.org">mailto:users@ovirt.org</a>&gt; &gt;
&gt;&gt; Sent: Thursday, May 23, 2013 3:10:21 PM
&gt;&gt; Subject: Re: [Users] Problems using the PythonSDK
&gt;&gt;
&gt;&gt;
&gt;&gt; Hi Karli,
&gt;&gt;
&gt;&gt; On 05/23/2013 12:35 PM, Karli Sjöberg wrote:
&gt;&gt; &gt; Hi!
&gt;&gt; &gt; 
&gt;&gt; &gt; We´re in the process of building an orderportal where our customers will be able to log in, select a virtual machine template, type in a desired hostname and it will be
&gt;&gt; &gt; automatically created, and they recieve a mail explaining what they´ve gotten themselves into:). For this I figured the PythonSDK would be the best choice but I´m having
&gt;&gt; &gt; trouble using it. What we´ve done so far is:
&gt;&gt; &gt; 
&gt;&gt; &gt; 1) Create a new VM from a template; OK. I found an example and it worked OOTB
&gt;&gt; &gt; 2) Rename the new VM´s disk from ${TemplateName}_Disk1 to ${VMName}_Disk1; Not OK. I found an example of how to change the name of a VMNic and that works, but using the
&gt;&gt; &gt; same method to change VMDisk´s name does not (FYI, the VM only has one VNic and VDisk):
&gt;&gt; &gt;&gt;&gt;&gt; from ovirtsdk.xml import params
&gt;&gt; &gt;&gt;&gt;&gt; from ovirtsdk.api import API
&gt;&gt; &gt;&gt;&gt;&gt; api = API(url=' https:// ${ENGINE}:443/api', &lt; <a href="https://storm.slu.se:443/api'">https://storm.slu.se:443/api'</a> ,&gt; ca_file='${CACERT}', username='admin@internal &lt; <a href="mailto:'admin@internal">mailto:'admin@internal</a> &gt;', password='letmein!')
&gt;&gt; &gt;&gt;&gt;&gt; vm = api.vms.get(name='VMName')
&gt;&gt; &gt; 
&gt;&gt; &gt;&gt;&gt;&gt; vmnic = vm.nics.get(name='*')
&gt;&gt; &gt;&gt;&gt;&gt; vmnic.name
&gt;&gt; &gt; 'nic1'
&gt;&gt; &gt;&gt;&gt;&gt; api.vms.get(name='VMName').nics.get(name='*')
&gt;&gt; &gt; 'nic1'
&gt;&gt; &gt;&gt;&gt;&gt; vmnic.name='nic2'
&gt;&gt; &gt;&gt;&gt;&gt; vmnic.update()
&gt;&gt; &gt;&gt;&gt;&gt; api.vms.get(name='VMName').nics.get(name='*')
&gt;&gt; &gt; 'nic2'
&gt;&gt; &gt;&gt;&gt;&gt; vmnic.name
&gt;&gt; &gt; 'nic2'
&gt;&gt; &gt; 
&gt;&gt; &gt;&gt;&gt;&gt; vmdisk = vm.disks.get(name='*')
&gt;&gt; &gt;&gt;&gt;&gt; vmdisk.name
&gt;&gt; &gt; 'TemplateName_Disk1'
&gt;&gt; &gt;&gt;&gt;&gt; api.vms.get(name='VMName').disks.get(name='*')
&gt;&gt;
&gt;&gt; this kind of call is not efficient, by fetching the disk
&gt;&gt; you also fetch the vm,
&gt;&gt;
&gt;&gt; i'd suggest fetch vm, store it in local variable and then
&gt;&gt; reuse it for any sub-collection manipulations.
&gt;&gt;
&gt;&gt;
&gt;&gt; &gt; 'TemplateName_Disk1'
&gt;&gt; &gt;&gt;&gt;&gt; vmdisk.name='VMName_Disk1'
&gt;&gt; &gt;&gt;&gt;&gt; vmdisk.update()
&gt;&gt; &gt;&gt;&gt;&gt; vmdisk.name
&gt;&gt; &gt; 'VMName_Disk1'
&gt;&gt; &gt;&gt;&gt;&gt; api.vms.get(name='VMName').disks.get(name='*')
&gt;&gt; &gt; 'TemplateName_Disk1'
&gt;&gt; &gt; 
&gt;&gt; &gt; See? Am I holding it wrong?
&gt;&gt;
&gt;&gt; disk.name is deprecated, please use 'alias' instead.
&gt;&gt;
&gt;&gt; &gt; 
&gt;&gt; &gt; 3) Create a snapshot called &quot;Origin&quot;, so if a customer calls in and says they´ve borked it completely, we´ll just revert to it´s &quot;Origin&quot; and they´re up and running again;
&gt;&gt; &gt; OK, found another OOTB example, thank you.
&gt;&gt; &gt; 4) Add the customer to VM´s Permissions with an appropriate role; Not OK. I have found no examples on how to do this and just don´t know where to start looking. BTW,
&gt;&gt; &gt; creating a new VM with Python results in Permissions completely empty, no inheritance either. Don´t know if that is intended...
&gt;&gt;
&gt;&gt; elena, ilia,
&gt;&gt;
&gt;&gt; guys, do you have any permission related code to share?
&gt;&gt;
&gt;&gt; &gt; 
&gt;&gt; &gt; client# rpm -qa | grep ovirt
&gt;&gt; &gt; ovirt-engine-cli-3.2.0.11-1.fc17.noarch
&gt;&gt; &gt; ovirt-engine-sdk-3.2.0.10-1.fc17.noarch
&gt;&gt; &gt; 
&gt;&gt; &gt; engine# rpm -qa | grep ovirt
&gt;&gt; &gt; ovirt-engine-config-3.1.0-4.fc17.noarch
&gt;&gt; &gt; ovirt-engine-dbscripts-3.1.0-4.fc17.noarch
&gt;&gt; &gt; ovirt-log-collector-3.1.0-0.git10d719.fc17.noarch
&gt;&gt; &gt; ovirt-engine-restapi-3.1.0-4.fc17.noarch
&gt;&gt; &gt; ovirt-image-uploader-3.1.0-0.git9c42c8.fc17.noarch
&gt;&gt; &gt; ovirt-engine-genericapi-3.1.0-4.fc17.noarch
&gt;&gt; &gt; ovirt-iso-uploader-3.1.0-0.git1841d9.fc17.noarch
&gt;&gt; &gt; ovirt-engine-webadmin-portal-3.1.0-4.fc17.noarch
&gt;&gt; &gt; ovirt-engine-setup-3.1.0-4.fc17.noarch
&gt;&gt; &gt; ovirt-engine-sdk-3.2.0.2-1.fc17.noarch
&gt;&gt; &gt; ovirt-engine-backend-3.1.0-4.fc17.noarch
&gt;&gt; &gt; ovirt-engine-tools-common-3.1.0-4.fc17.noarch
&gt;&gt; &gt; ovirt-engine-3.1.0-4.fc17.noarch
&gt;&gt; &gt; ovirt-engine-userportal-3.1.0-4.fc17.noarch
&gt;&gt; &gt; ovirt-engine-notification-service-3.1.0-4.fc17.noarch
&gt;&gt; &gt; 
&gt;&gt; &gt; -- 
&gt;&gt; &gt; 
&gt;&gt; &gt; Best Regards
&gt;&gt; &gt; -------------------------------------------------------------------------------
&gt;&gt; &gt; Karli Sjöberg
&gt;&gt; &gt; Swedish University of Agricultural Sciences
&gt;&gt; &gt; Box 7079 (Visiting Address Kronåsvägen 8)
&gt;&gt; &gt; S-750 07 Uppsala, Sweden
&gt;&gt; &gt; Phone:  &#43;46-(0)18-67 15 66
&gt;&gt; &gt; <a href="mailto:karli.sjoberg@slu.se">karli.sjoberg@slu.se</a> &lt;<a href="mailto:karli.sjoberg@slu.se">mailto:karli.sjoberg@slu.se</a>&gt; &lt; <a href="mailto:karli.sjoberg@adm.slu.se">mailto:karli.sjoberg@adm.slu.se</a> &gt;
&gt;&gt; &gt; 
&gt;&gt; &gt; 
&gt;&gt; &gt; 
&gt;&gt; &gt; _______________________________________________
&gt;&gt; &gt; Users mailing list
&gt;&gt; &gt; <a href="mailto:Users@ovirt.org">Users@ovirt.org</a> &lt;<a href="mailto:Users@ovirt.org">mailto:Users@ovirt.org</a>&gt; &gt; <a href="http://lists.ovirt.org/mailman/listinfo/users">http://lists.ovirt.org/mailman/listinfo/users</a> &gt; 
&gt;&gt;
&gt;&gt;         -- 
&gt;&gt;
&gt;&gt; Med Vänliga Hälsningar 
&gt;&gt; ------------------------------------------------------------------------------- 
&gt;&gt; Karli Sjöberg 
&gt;&gt; Swedish University of Agricultural Sciences 
&gt;&gt; Box 7079 (Visiting Address Kronåsvägen 8) 
&gt;&gt; S-750 07 Uppsala, Sweden 
&gt;&gt; Phone: &#43;46-(0)18-67 15 66 
&gt;&gt; <a href="mailto:karli.sjoberg@slu.se">karli.sjoberg@slu.se</a> &lt;<a href="mailto:karli.sjoberg@slu.se">mailto:karli.sjoberg@slu.se</a>&gt;
&gt; 
&gt; -- 
&gt; 
&gt; Med Vänliga Hälsningar
&gt; -------------------------------------------------------------------------------
&gt; Karli Sjöberg
&gt; Swedish University of Agricultural Sciences
&gt; Box 7079 (Visiting Address Kronåsvägen 8)
&gt; S-750 07 Uppsala, Sweden
&gt; Phone:  &#43;46-(0)18-67 15 66
&gt; <a href="mailto:karli.sjoberg@slu.se">karli.sjoberg@slu.se</a> &lt;<a href="mailto:karli.sjoberg@adm.slu.se">mailto:karli.sjoberg@adm.slu.se</a>&gt;
&gt; 


</pre>
</blockquote>
<br>
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>-- <br>
<br>
Med Vänliga Hälsningar<br>
-------------------------------------------------------------------------------<br>
Karli Sjöberg<br>
Swedish University of Agricultural Sciences<br>
Box 7079 (Visiting Address Kronåsvägen 8)<br>
S-750 07 Uppsala, Sweden<br>
Phone: &nbsp;&#43;46-(0)18-67 15 66<br>
<a href="mailto:karli.sjoberg@adm.slu.se">karli.sjoberg@slu.se</a> </td>
</tr>
</tbody>
</table>
</body>
</html>