[openstack-dev] [fuel][client] new client implementation ideas
Roman Prykhodchenko
me at romcheg.me
Fri Jan 16 12:51:44 UTC 2015
Konstantin,
thank you for your ideas, I think we will definitely want to use something like that. Lets discuss some nits in the etherpad you’ve created.
- romcheg
> 16 січ. 2015 о 13:03 Konstantin Danilov <kdanilov at mirantis.com> написав(ла):
>
> Hi all,
>
> I have created etherpad page
>
> https://etherpad.openstack.org/p/fuelclient-implementation-ideas <https://etherpad.openstack.org/p/fuelclient-implementation-ideas>
>
>
>
> On Wed, Jan 14, 2015 at 12:38 PM, Konstantin Danilov <kdanilov at mirantis.com <mailto:kdanilov at mirantis.com>> wrote:
> Igor,
>
> Yep, I knew that you start to rewrite fuel-client, but it seemd for me that this ideas is not for
> https://etherpad.openstack.org/p/fuelclient-redesign <https://etherpad.openstack.org/p/fuelclient-redesign> document because it's
> implementation details. Should I create a new notepad for it?
>
> On Wed, Jan 14, 2015 at 11:58 AM, Igor Kalnitsky <ikalnitsky at mirantis.com <mailto:ikalnitsky at mirantis.com>> wrote:
> Hi, Konstantin,
>
> Thank you for sharing ideas. Your "yet-one-more implementation of
> fuel-client" one more time confirms that currently we have completely
> unusable implementation.
>
> Just for your information: we have plans for python-fuelclient
> refactoring [1]. The main point of this blueprint is to provide
> fuelclient which will be useful as both: library and cli. Please, do
> not hesitate share your ideas in blueprint or in the working ehterpad
> [2].
>
> - Igor
>
> [1]: https://review.openstack.org/#/c/135915/ <https://review.openstack.org/#/c/135915/>
> [2]: https://etherpad.openstack.org/p/fuelclient-redesign <https://etherpad.openstack.org/p/fuelclient-redesign>
>
> On Wed, Jan 14, 2015 at 12:38 PM, Konstantin Danilov
> <kdanilov at mirantis.com <mailto:kdanilov at mirantis.com>> wrote:
> > Hi all,
> >
> > We are working on fuel certification script
> > https://github.com/stgleb/fuel-web <https://github.com/stgleb/fuel-web>
> > and have yet-one-more implementation of fuel-client, which cover very small
> > of Fuel API, yet we have some ideas, which you might be interesting in.
> >
> > 1) high-level primitives for REST operations.
> >
> > a) GET/PUT/POST/etc function, which returns closure, bonded to url and
> > method
> >
> >
> > class Cluster(RestObj):
> > """Class represents Cluster in Fuel"""
> >
> > add_node_call = PUT('api/nodes')
> > start_deploy = PUT('api/clusters/{id}/changes')
> > get_status = GET('api/clusters/{id}')
> > delete = DELETE('api/clusters/{id}')
> >
> > GET(url_template) returns function/class method, which accepts set
> > of parameters,
> > format part of them into url_template to obtain final url and pass
> > other parameters
> > as data in http request. E.g.
> >
> > get_some_objs = GET('some/objects/{cluster_id}/really_get')
> >
> >
> > get_some_objs(cluster_id=12, kind="db objects") will result in
> > HTTP request GET '..../some/objects/12/really_get' data =
> > {'kind':'db objects'}
> >
> > in case of class method it also extracts missing format parameters
> > from self.__dict__.
> > E.g.
> >
> > node = Node.get_all()[0]
> > nnode = node.get() <<< takes id from node.id <http://node.id/>
> >
> >
> > b) Auto generate API for strict restfull cases, e.g.
> >
> > class Node(RestfulObj):
> > """Represents node in Fuel"""
> >
> > __url__ = '/api/nodes/{id}'
> >
> > ==
> >
> > class Node(RestObj):
> > """Represents node in Fuel"""
> >
> > get_all = GET('/api/nodes')
> > get = GET('/api/nodes/{id}')
> > delete = DELETE('/api/nodes/{id}')
> > create = POST('/api/nodes/{id}')
> > ....
> >
> > 2) API for create cluster from yaml description. Allow to deploy whole
> > openstack cluster from single yaml file. We being asking a lot whenever this
> > call would be available in fuel client
> > by different team/persons.
> >
> > https://github.com/stgleb/fuel-web/blob/sertification-script/certification_script/certification_script/cert_script.py#L165 <https://github.com/stgleb/fuel-web/blob/sertification-script/certification_script/certification_script/cert_script.py#L165>
> >
> > 3) I have a semi-implemented ideas for future-based API for background tasks
> > (e.g. cluster deployment)
> >
> > Code is available in repo and we would be glad to help you to merge it to
> > new fuel-client
> >
> > --
> > Kostiantyn Danilov aka koder.ua <http://koder.ua/>
> > Principal software engineer, Mirantis
> >
> > skype:koder.ua <http://koder.ua/>
> > http://koder-ua.blogspot.com/ <http://koder-ua.blogspot.com/>
> > http://mirantis.com <http://mirantis.com/>
> >
> > __________________________________________________________________________
> > OpenStack Development Mailing List (not for usage questions)
> > Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe <http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe>
> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>
> >
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe <http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>
>
>
>
> --
> Kostiantyn Danilov aka koder.ua <http://koder.ua/>
> Principal software engineer, Mirantis
>
> skype:koder.ua <http://koder.ua/>
> http://koder-ua.blogspot.com/ <http://koder-ua.blogspot.com/>
> http://mirantis.com <http://mirantis.com/>
>
>
> --
> Kostiantyn Danilov aka koder.ua <http://koder.ua/>
> Principal software engineer, Mirantis
>
> skype:koder.ua <http://koder.ua/>
> http://koder-ua.blogspot.com/ <http://koder-ua.blogspot.com/>
> http://mirantis.com <http://mirantis.com/>__________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org <mailto:OpenStack-dev-request at lists.openstack.org>?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150116/9ff82dcd/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150116/9ff82dcd/attachment.pgp>
More information about the OpenStack-dev
mailing list