于 2014/1/3 0:17, Aline Manera 写道:
On 01/02/2014 12:40 AM, Royce Lv wrote:
> On 2013年12月31日 03:35, Aline Manera wrote:
>> On 12/30/2013 12:17 AM, lvroyce(a)linux.vnet.ibm.com wrote:
>>> From: Royce Lv <lvroyce(a)linux.vnet.ibm.com>
>>>
>>> Query all storage pool to retrieve storage server we used.
>>>
>>> Signed-off-by: Royce Lv <lvroyce(a)linux.vnet.ibm.com>
>>> ---
>>> src/kimchi/mockmodel.py | 13 +++++++++++++
>>> src/kimchi/model.py | 14 +++++++++++++-
>>> 2 files changed, 26 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/src/kimchi/mockmodel.py b/src/kimchi/mockmodel.py
>>> index 348127a..f53e799 100644
>>> --- a/src/kimchi/mockmodel.py
>>> +++ b/src/kimchi/mockmodel.py
>>> @@ -405,6 +405,19 @@ class MockModel(object):
>>> iso_volumes.append(res)
>>> return iso_volumes
>>
>>> + def storageservers_get_list(self, target_type):
>>> + pools = self.storagepools_get_list()
>>> + server_list = []
>>> + for pool in pools:
>>> + try:
>>> + pool_info = self.storagepool_lookup(pool)
>>> + if pool_info['type'] == target_type:
>>> + server_list.append(pool_info['source']['addr'])
>>> + except NotFoundError:
>>> + pass
>>> +
>>> + return server_list
>>
>> If any target_type is passed we should return all values
> By all value you mean iscsi servers and nfs servers and other
> possible remote servers, technically it is easy,
> temprorily I haven't had a usecase for this yet..
The query param should be optional. It is an additional feature.
If user would like to know all servers he can use he can use it.
I think it is a generic question to validate the parameters. Can we
validate the possible value in API.josn? We may have possible value
"any", "iSCSI", "netfs", "FC" &etc? I am not
necessary asking for "any"
value, but I think we can validate the value earlier in the API.
>>
>>> +
>>> def dummy_interfaces(self):
>>> interfaces = {}
>>> ifaces = {"eth1": "nic", "bond0":
"bonding",
>>> diff --git a/src/kimchi/model.py b/src/kimchi/model.py
>>> index 3bc5d6d..20f68f6 100644
>>> --- a/src/kimchi/model.py
>>> +++ b/src/kimchi/model.py
>>> @@ -1220,6 +1220,19 @@ class Model(object):
>>> else:
>>> raise
>>>
>>> + def storageservers_get_list(self, target_type):
>>> + pools = self.storagepools_get_list()
>>> + server_list = []
>>> + for pool in pools:
>>> + try:
>>> + pool_info = self.storagepool_lookup(pool)
>>> + if pool_info['type'] == target_type:
>>> + server_list.append(pool_info['source']['addr'])
>>> + except NotFoundError:
>>> + pass
>>> +
>>
>> Same as I commented for model.py
>>
>>> + return server_list
>>> +
>>> def _get_screenshot(self, vm_uuid):
>>> with self.objstore as session:
>>> try:
>>> @@ -1400,7 +1413,6 @@ class LibvirtVMTemplate(VMTemplate):
>>> pool.createXML(v['xml'].encode('utf-8'), 0)
>>> return vol_list
>>>
>>> -
>>> class LibvirtVMScreenshot(VMScreenshot):
>>> def __init__(self, vm_uuid, conn):
>>> VMScreenshot.__init__(self, vm_uuid)
>>
>
_______________________________________________
Kimchi-devel mailing list
Kimchi-devel(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/kimchi-devel