[Engine-devel] storagedomain status via API

Michael Pasternak mpastern at redhat.com
Wed Aug 29 06:52:00 UTC 2012


On 08/28/2012 09:56 PM, Ryan Harper wrote:
> * Michael Pasternak <mpastern at redhat.com> [2012-08-28 01:04]:
>> On 08/27/2012 10:30 PM, Ryan Harper wrote:
>>> * Michael Pasternak <mpastern at redhat.com> [2012-08-27 09:45]:
>>>>
>>>> Ryan,
>>>>
>>>> each sdk method is well documented, if you'll take a look
>>>> on .delete().__doc__ it's:
>>>>
>>>>         @param storagedomain.host.id|name: string
>>>>         [@param async: boolean (true|false)]
>>>>         [@param correlation_id: any string]
>>>>
>>>> and that's exactly what error says,
>>>> -> StorageDomain [host.id|name] required for remove
>>>>
>>>> do:
>>>>
>>>> sd = api.storagedomains.get(name="xxx")
>>>> sd.delete(storagedomain=params.StorageDomain(host=params.Host(id="yyy")))
>>>
>>> This failed with bad request, but this worked:
>>
>> are you sure about host id? i.e is it was same id as in host fetched by
>> api.hosts.get('hostname here') ?
> 
> [root at ichigo-dom223 ~]# python2.7 
> Python 2.7.3 (default, Jul 24 2012, 10:05:38) 
> [GCC 4.7.0 20120507 (Red Hat 4.7.0-5)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>>>> from ovirtsdk.api import API
>>>> from ovirtsdk.xml import params
>>>> api = API(url='https://localhost:443/api', username='admin at internal', password='XXXXXXX') 
>>>> sd = api.storagedomains.get(name='iso-cluster1')
>>>> sd.name
> 'iso-cluster1'
>>>> sd.status.state 
> 'unattached'
>>>> host = api.hosts.get('ichigo-dom224.phx.austin.ibm.com')
>>>> host.name
> 'ichigo-dom224.phx.austin.ibm.com'
>>>> sd.delete(storagedomain=params.StorageDomain(host=params.Host(id=host.name)))

well, this is your problem: you trying to set host.name in to 'id' property ^,
it should be => sd.delete(storagedomain=params.StorageDomain(host=params.Host(id=host.id)))

the error on the server side, is 'name' str. to UUID conversion failure, though
response error not informative enough - i'll address this.

> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "/usr/lib/python2.7/site-packages/ovirtsdk/infrastructure/brokers.py", line 3180, in delete
>     body=ParseHelper.toXml(storagedomain))
>   File "/usr/lib/python2.7/site-packages/ovirtsdk/infrastructure/proxy.py", line 111, in delete
>     return self.request('DELETE', url, body, headers)
>   File "/usr/lib/python2.7/site-packages/ovirtsdk/infrastructure/proxy.py", line 128, in request
>     last=last)
>   File "/usr/lib/python2.7/site-packages/ovirtsdk/infrastructure/proxy.py", line 154, in __doRequest
>     raise RequestError, response
> ovirtsdk.infrastructure.errors.RequestError: 
> status: 500
> reason: Internal Server Error
> detail: HTTP Status 500
>>>> sd.delete(storagedomain=params.StorageDomain(host=api.hosts.get(host.name))) 
> ''
> 
> [root at ichigo-dom223 ~]# cat /etc/issue
> Fedora release 17 (Beefy Miracle)
> Kernel \r on an \m (\l)
> 
> [root at ichigo-dom223 ~]# rpm -qa | grep ovirt-
> ovirt-engine-userportal-3.1.0-2.fc17.noarch
> ovirt-engine-webadmin-portal-3.1.0-2.fc17.noarch
> ovirt-engine-sdk-3.1.0.4-1.fc17.noarch
> ovirt-engine-setup-3.1.0-2.fc17.noarch
> ovirt-iso-uploader-3.1.0-0.git1841d9.fc17.noarch
> ovirt-engine-restapi-3.1.0-2.fc17.noarch
> ovirt-engine-3.1.0-2.fc17.noarch
> ovirt-engine-backend-3.1.0-2.fc17.noarch
> ovirt-image-uploader-3.1.0-0.git9c42c8.fc17.noarch
> ovirt-engine-config-3.1.0-2.fc17.noarch
> ovirt-engine-genericapi-3.1.0-2.fc17.noarch
> ovirt-engine-tools-common-3.1.0-2.fc17.noarch
> ovirt-engine-dbscripts-3.1.0-2.fc17.noarch
> ovirt-log-collector-3.1.0-0.git10d719.fc17.noarch
> ovirt-engine-notification-service-3.1.0-2.fc17.noarch
> 
> 


-- 

Michael Pasternak
RedHat, ENG-Virtualization R&D



More information about the Devel mailing list