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 <kdani...@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 <kdani...@mirantis.com > <mailto:kdani...@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 <ikalnit...@mirantis.com > <mailto:ikalnit...@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 > <kdani...@mirantis.com <mailto:kdani...@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-requ...@lists.openstack.org?subject:unsubscribe > > <http://openstack-dev-requ...@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-requ...@lists.openstack.org?subject:unsubscribe > <http://openstack-dev-requ...@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-requ...@lists.openstack.org > <mailto:openstack-dev-requ...@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>
signature.asc
Description: Message signed with OpenPGP using GPGMail
__________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev