[Kimchi-devel] [project-kimchi][PATCHv4 0/5] Storage server query support

Aline Manera alinefm at linux.vnet.ibm.com
Thu Jan 2 16:23:47 UTC 2014


On 01/02/2014 12:32 AM, Royce Lv wrote:
> On 2013年12月31日 03:49, Aline Manera wrote:
>> On 12/30/2013 12:17 AM, lvroyce at linux.vnet.ibm.com wrote:
>>> From: Royce Lv<lvroyce at linux.vnet.ibm.com>
>>>
>>> v3>v4, fix inconsistency between doc and json schema
>>> v1>v3, fix racing problem, fix style.
>>>
>>> Add parameters to GET request so that we will query storage server as:
>>>      /storageservers?type=netfs
>>>
>>> Royce Lv (5):
>>>    Support params for GET method
>>>    Add testcase for GET param
>>>    Storage server: Update API.md
>>>    storage server: update controller.py
>>>    storage server: Update model and mockmodel
>>>
>>>   docs/API.md              | 13 +++++++++++++
>>>   src/kimchi/API.json      | 11 +++++++++++
>>>   src/kimchi/controller.py | 26 ++++++++++++++++++++++++--
>>>   src/kimchi/mockmodel.py  | 13 +++++++++++++
>>>   src/kimchi/model.py      | 14 +++++++++++++-
>>>   src/kimchi/root.py       |  1 +
>>>   tests/test_rest.py       | 37 +++++++++++++++++++++++++++++++++++++
>>>   7 files changed, 112 insertions(+), 3 deletions(-)
>>>
>>
>> Let me explain what I expect with this patch set:
>>
>> GET /storageservers will return all storage servers
>> Example:
>>
>> [
>> {'host': 'localhost',
>>  'target_type': 'netfs',
>>  'sources': ['/srv', '/mnt/isos'],
>> }
>> {'host': '123.234.123.12',
>>  'target_type': 'iscsi',
>>  'sources': ['iqn.2013-06.com.example:iscsi-pool'],
>> }
>> ]
> Aline, as posted inn my RFC patch: [project-kimchi][RFC]Storage 
> backend targets probe
> I explained, this is to give users a ref when he wants to fill the 
> "host" blank of storagepool creation.
>
> GET /storageservers only returns *servers* we uses as source as 
> storagepool, *targets* will not be covered here.
> We can return non query parameter results here, but I haven't figured 
> out a usecase for this one.
> Normally we only create storagepool of a given kind.
>>
>>
>> GET /storageservers?target_type=<server-type> will return only the 
>> storage servers with type <server-type>
>> Example: GET /storageservers?target_type=netfs
>>
>> [
>> {'host': 'localhost',
>>  'target_type': 'netfs',
>>  'sources': ['/srv', '/mnt/isos'],
>> }
>> ]
>>
>> GET /storageservers/<id> will return data related to this specific server
>> Example: GET /storageservers/localhost
>>
>> {'host': 'localhost',
>>  'target_type': 'netfs',
>>  'sources': ['/srv', '/mnt/isos'],
>> }
>>
> Because a host can serve as multiple server(iscsi, gluster, nfs) at 
> same time. So I choose to make user query a specific kind by:
>     GET /storageservers/localhost?target_type=netfs
> or
>     GET /storageservers/localhost?target_type=iscsi
> like this.
>
> This functionality is covered by [project-kimchi][PATCHv1 0/3] Storage 
> targets support patchset.
>
>> The 'sources' for netfs, for example, will be the parsed output from 
>> "showmount -e <host>" command.
>>
>> So when the user want to create NFS pool with a new server (never 
>> used before)
>>
>> POST /storageservers/new-nfs-server
>>
>> {'host': 'new-nfs-server',
>>  'target_type': 'netfs',
>>  'sources': ['/srv', '/mnt'],
>> }
>>
>> Then the user know which paths are available to create the NFS pool
> I don't quite agree... 'POST' to storage server means you want to 
> create a storage server.
>

I am thinking the scenario the user will use a new server (never used 
before) and we should expose the paths to him.

So I need to add/create a new storageserver, right?

1) Use entry a new server IP
    POST /storageserver/new-host

2) Expose the paths of this server
    GET /storageservers/new-host/storagetargets

> When he wants to create a new NFS pool:
>
> 1. If he knows his server, he fills it, if not he take a look at used 
> NFS server by:
>     GET /storageservers?target_type=netfs
> {'localhost', '9.1.1.2', 'a-nfs-server.com'}
>     Then he choose '9.1.1.2' as host
>
> 2. Now he manually fills path or query the exposed path by:
>     GET /storageservers/9.1.1.2?target_type=netfs
> {'type':'nfs',
>  'targets': ['/a-path', '/b-path'],
> }
>     He decides to use 'a-path'
>
> 3. Then it comes to real storagepool creation by sending request:
>     POST /storagepools
>     {'host': '9.1.1.2', 'path': '/a-path', 'name': 'a-pool'}
>>
>> Does that make sense for you?
>
>
>




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/kimchi-devel/attachments/20140102/98548e7d/attachment.html>


More information about the Kimchi-devel mailing list