Re: [DISCUSS] API versioning
I suppose that in openAPI, one would have to identify {/diskofferingid, zoneid//and ///snapshotid/} /as parameters and use the parameter description to explain when each parameter is used. Rough outline swagger: '2.0' info: version: 5.0.0 title: Volume Management Service description: Manage volumes schemes: - https host: cloudstack.apache.org basePath: /manager paths: /createVolume: post: summary: Creates a volume description: Creates a volume based on ... or from a snapshot parameters: - name: diskofferingid in: query description: Offering id. Required with zoneid when . type: integer - name: zoneid in: query description: Zone id. Required with diskofferingid when creating... type: integer - name: snapshotid in: query description: Snapshot id. Used when creating a volume from a snapshot.. type: integer responses: 200: description: Volume created successfully 401: description: Not authorized. User unknown. 403: description: Insufficient privileges. 406: description: Parameters failed validation. 408: description: Request timeout 500: description: Internal server Error This would seem to be more or less analogous to what the code actually does. It accepts any set of parameters initially and from the context, decides which ones are required and which ones are optional and which ones are not acceptable. Perhaps not a perfect solution but certainly goes a long way to getting a consistent and somewhat rigorous definition of the API. Depending on the quality and completeness of the descriptions, someone reading the openAPI reports would have a pretty good idea about how to use the createVolume service. Ron On 06/06/2017 11:44 AM, Syed Ahmed wrote: The interesting thing about Cloudstack's API is that not all parameters are required and based on what is being used, a set of parameters is required. For example: take the createVolume API. If you are creating a new volume, the required args are: {/diskofferingid, zoneid//} /and if you use a snapshot to create the volume, the required args are {/snapshotid/}//This kind of dependency is very hard to represent in Swagger. I haven't found any tool that correctly represents the relation between different args as yet. Do you guys have any idea? On Mon, Jun 5, 2017 at 2:23 PM, Ron Wheeler <rwhee...@artifact-software.com <mailto:rwhee...@artifact-software.com>> wrote: Are you thinking of using OpenAPI(Swagger) to do the documentation? Ron On 05/06/2017 10:14 AM, Rafael Weingärtner wrote: This might be a good excuse for an ACS 5.0! Maybe with some other additions such as the support for OASIS CAMP or TOSCA? It would be interesting to have a ROADMAP with these desires/wishes. On Mon, Jun 5, 2017 at 8:52 AM, Simon Weller <swel...@ena.com.invalid> wrote: +1. Echoing what Rohit pointed out, we have a lot of cleanup to do :-) It certainly makes it a lot easier though when you're not breaking compatibility with existing code. From: Rohit Yadav <rohit.ya...@shapeblue.com <mailto:rohit.ya...@shapeblue.com>> Sent: Monday, June 5, 2017 4:04 AM To: dev@cloudstack.apache.org <mailto:dev@cloudstack.apache.org> Subject: Re: [DISCUSS] API versioning +1 Good idea, though bear in mind there are 500+ APIs with no modern-RESTful-standardization, a lot of work. Regards. From: Nitin Kumar Maharana <nitinkumar.mahar...@accelerite.com <mailto:nitinkumar.mahar...@accelerite.com>> Sent: 05 June 2017 12:37:24 To: dev@cloudstack.apache.org <mailto:dev@cloudstack.apache.org> Subject: Re: [DISCUSS] API versioning This looks good. +1 rohit.ya...@shapeblue.com <mailto:rohit.ya...@shapeblue.com> www.shapeblue.com <http://www.shapeblue.com><http://www.shapeblue.com <http://www.shapeblue.com>> [http://shapeblue.com/wp-content/uploads/2014/03/sungardonline1.jpg <http://shapeblue.com/wp-content/uploads/2014/03/sungardonline1.jpg>]< http://www.shapeblue.com/> Shapeblue - The CloudStack Company<http://www.shapeblue.com/ <http://www.shapeblue.com/>> www.shapeblue.com <http://www.shapeblue.com> The city of Prague was the venue for the spring meeting of
Re: [DISCUSS] API versioning
Yeah, I think the phrase is that CloudStack’s API uses “conditional parameters.” As Syed notes, based on the presence of, say, parameter X, it may be required that parameters Y and Z are also passed in. On 6/6/17, 9:44 AM, "Syed Ahmed" <sah...@cloudops.com> wrote: The interesting thing about Cloudstack's API is that not all parameters are required and based on what is being used, a set of parameters is required. For example: take the createVolume API. If you are creating a new volume, the required args are: {*diskofferingid, zoneid**} *and if you use a snapshot to create the volume, the required args are {*snapshotid*} This kind of dependency is very hard to represent in Swagger. I haven't found any tool that correctly represents the relation between different args as yet. Do you guys have any idea? On Mon, Jun 5, 2017 at 2:23 PM, Ron Wheeler <rwhee...@artifact-software.com> wrote: > Are you thinking of using OpenAPI(Swagger) to do the documentation? > > Ron > > On 05/06/2017 10:14 AM, Rafael Weingärtner wrote: > >> This might be a good excuse for an ACS 5.0! Maybe with some other >> additions >> such as the support for OASIS CAMP or TOSCA? >> >> It would be interesting to have a ROADMAP with these desires/wishes. >> >> On Mon, Jun 5, 2017 at 8:52 AM, Simon Weller <swel...@ena.com.invalid> >> wrote: >> >> +1. Echoing what Rohit pointed out, we have a lot of cleanup to do :-) It >>> certainly makes it a lot easier though when you're not breaking >>> compatibility with existing code. >>> >>> >>> From: Rohit Yadav <rohit.ya...@shapeblue.com> >>> Sent: Monday, June 5, 2017 4:04 AM >>> To: dev@cloudstack.apache.org >>> Subject: Re: [DISCUSS] API versioning >>> >>> +1 Good idea, though bear in mind there are 500+ APIs with no >>> modern-RESTful-standardization, a lot of work. >>> >>> >>> Regards. >>> >>> >>> From: Nitin Kumar Maharana <nitinkumar.mahar...@accelerite.com> >>> Sent: 05 June 2017 12:37:24 >>> To: dev@cloudstack.apache.org >>> Subject: Re: [DISCUSS] API versioning >>> >>> This looks good. +1 >>> >>> rohit.ya...@shapeblue.com >>> www.shapeblue.com<http://www.shapeblue.com> >>> [http://shapeblue.com/wp-content/uploads/2014/03/sungardonline1.jpg]< >>> http://www.shapeblue.com/> >>> >>> Shapeblue - The CloudStack Company<http://www.shapeblue.com/> >>> www.shapeblue.com >>> The city of Prague was the venue for the spring meeting of the Cloudstack >>> European user group. There was >>> >>> >>> >>> 53 Chandos Place, Covent Garden, London WC2N 4HSUK >>> @shapeblue >>> >>> >>> >>> On 04-Jun-2017, at 2:34 PM, Rene Moser <m...@renemoser.net> wrote: >>>> >>>> Hi >>>> >>>> I recently developed ansible modules for the ACL API and ... found this >>>> has a really inconsistent API naming. E.g. >>>> >>>> createNetworkACL <<-- this creates an ACL rule >>>> createNetworkACLList <<-- this create the ACL >>>> >>>> updateNetworkACLItem <<-- this updates an ACL rule >>>> updateNetworkACLList <<-- this updates the ACL >>>> >>>> My first thoughs was, someone has to fix this, like >>>> >>>> createNetworkAclRule <<-- this create the ACL rule >>>> createNetworkAcl <<-- this creates an ACL >>>> >>>> updateNetworkAclRule <<-- this updates the ACL rule >>>> updateNetworkAcl <<-- this updates an ACL >>>> >>>> But how without breaking the API for backwards compatibility? I know a >>>> few other places where the API has inconsistent namings. Fixing the API >>>> but in a controlled way? What about by adding a version to the API? >>>> >>>> I would like to introduce a API versioning to cloudstack: The current >>>> API would be frozen into verison v1. The new API will have v2. The >>>> versioned API has t
Re: [DISCUSS] API versioning
The interesting thing about Cloudstack's API is that not all parameters are required and based on what is being used, a set of parameters is required. For example: take the createVolume API. If you are creating a new volume, the required args are: {*diskofferingid, zoneid**} *and if you use a snapshot to create the volume, the required args are {*snapshotid*} This kind of dependency is very hard to represent in Swagger. I haven't found any tool that correctly represents the relation between different args as yet. Do you guys have any idea? On Mon, Jun 5, 2017 at 2:23 PM, Ron Wheeler <rwhee...@artifact-software.com> wrote: > Are you thinking of using OpenAPI(Swagger) to do the documentation? > > Ron > > On 05/06/2017 10:14 AM, Rafael Weingärtner wrote: > >> This might be a good excuse for an ACS 5.0! Maybe with some other >> additions >> such as the support for OASIS CAMP or TOSCA? >> >> It would be interesting to have a ROADMAP with these desires/wishes. >> >> On Mon, Jun 5, 2017 at 8:52 AM, Simon Weller <swel...@ena.com.invalid> >> wrote: >> >> +1. Echoing what Rohit pointed out, we have a lot of cleanup to do :-) It >>> certainly makes it a lot easier though when you're not breaking >>> compatibility with existing code. >>> >>> >>> From: Rohit Yadav <rohit.ya...@shapeblue.com> >>> Sent: Monday, June 5, 2017 4:04 AM >>> To: dev@cloudstack.apache.org >>> Subject: Re: [DISCUSS] API versioning >>> >>> +1 Good idea, though bear in mind there are 500+ APIs with no >>> modern-RESTful-standardization, a lot of work. >>> >>> >>> Regards. >>> >>> >>> From: Nitin Kumar Maharana <nitinkumar.mahar...@accelerite.com> >>> Sent: 05 June 2017 12:37:24 >>> To: dev@cloudstack.apache.org >>> Subject: Re: [DISCUSS] API versioning >>> >>> This looks good. +1 >>> >>> rohit.ya...@shapeblue.com >>> www.shapeblue.com<http://www.shapeblue.com> >>> [http://shapeblue.com/wp-content/uploads/2014/03/sungardonline1.jpg]< >>> http://www.shapeblue.com/> >>> >>> Shapeblue - The CloudStack Company<http://www.shapeblue.com/> >>> www.shapeblue.com >>> The city of Prague was the venue for the spring meeting of the Cloudstack >>> European user group. There was >>> >>> >>> >>> 53 Chandos Place, Covent Garden, London WC2N 4HSUK >>> @shapeblue >>> >>> >>> >>> On 04-Jun-2017, at 2:34 PM, Rene Moser <m...@renemoser.net> wrote: >>>> >>>> Hi >>>> >>>> I recently developed ansible modules for the ACL API and ... found this >>>> has a really inconsistent API naming. E.g. >>>> >>>> createNetworkACL <<-- this creates an ACL rule >>>> createNetworkACLList <<-- this create the ACL >>>> >>>> updateNetworkACLItem <<-- this updates an ACL rule >>>> updateNetworkACLList <<-- this updates the ACL >>>> >>>> My first thoughs was, someone has to fix this, like >>>> >>>> createNetworkAclRule <<-- this create the ACL rule >>>> createNetworkAcl <<-- this creates an ACL >>>> >>>> updateNetworkAclRule <<-- this updates the ACL rule >>>> updateNetworkAcl <<-- this updates an ACL >>>> >>>> But how without breaking the API for backwards compatibility? I know a >>>> few other places where the API has inconsistent namings. Fixing the API >>>> but in a controlled way? What about by adding a version to the API? >>>> >>>> I would like to introduce a API versioning to cloudstack: The current >>>> API would be frozen into verison v1. The new API will have v2. The >>>> versioned API has the URL scheme: >>>> >>>> /client/api/ >>>> >>>> The current API would be /client/api/v1 and the /client/api would be an >>>> alias for v1. This ensures backwards compatibility. >>>> >>>> This would allow us to deprecate and change APIs. >>>> >>>> Any thoughts? >>>> >>>> >>>> >>>> >>> >>> >>> DISCLAIMER >>> == >>> This e-mail may contain privileged and confidential information which is >>> the property of Accelerite, a Persistent Systems business. It is intended >>> only for the use of the individual or entity to which it is addressed. If >>> you are not the intended recipient, you are not authorized to read, >>> retain, >>> copy, print, distribute or use this message. If you have received this >>> communication in error, please notify the sender and delete all copies of >>> this message. Accelerite, a Persistent Systems business does not accept >>> any >>> liability for virus infected mails. >>> >>> >> >> > -- > Ron Wheeler > President > Artifact Software Inc > email: rwhee...@artifact-software.com > skype: ronaldmwheeler > phone: 866-970-2435, ext 102 > >
Re: [DISCUSS] API versioning
Are you thinking of using OpenAPI(Swagger) to do the documentation? Ron On 05/06/2017 10:14 AM, Rafael Weingärtner wrote: This might be a good excuse for an ACS 5.0! Maybe with some other additions such as the support for OASIS CAMP or TOSCA? It would be interesting to have a ROADMAP with these desires/wishes. On Mon, Jun 5, 2017 at 8:52 AM, Simon Weller <swel...@ena.com.invalid> wrote: +1. Echoing what Rohit pointed out, we have a lot of cleanup to do :-) It certainly makes it a lot easier though when you're not breaking compatibility with existing code. From: Rohit Yadav <rohit.ya...@shapeblue.com> Sent: Monday, June 5, 2017 4:04 AM To: dev@cloudstack.apache.org Subject: Re: [DISCUSS] API versioning +1 Good idea, though bear in mind there are 500+ APIs with no modern-RESTful-standardization, a lot of work. Regards. From: Nitin Kumar Maharana <nitinkumar.mahar...@accelerite.com> Sent: 05 June 2017 12:37:24 To: dev@cloudstack.apache.org Subject: Re: [DISCUSS] API versioning This looks good. +1 rohit.ya...@shapeblue.com www.shapeblue.com<http://www.shapeblue.com> [http://shapeblue.com/wp-content/uploads/2014/03/sungardonline1.jpg]< http://www.shapeblue.com/> Shapeblue - The CloudStack Company<http://www.shapeblue.com/> www.shapeblue.com The city of Prague was the venue for the spring meeting of the Cloudstack European user group. There was 53 Chandos Place, Covent Garden, London WC2N 4HSUK @shapeblue On 04-Jun-2017, at 2:34 PM, Rene Moser <m...@renemoser.net> wrote: Hi I recently developed ansible modules for the ACL API and ... found this has a really inconsistent API naming. E.g. createNetworkACL <<-- this creates an ACL rule createNetworkACLList <<-- this create the ACL updateNetworkACLItem <<-- this updates an ACL rule updateNetworkACLList <<-- this updates the ACL My first thoughs was, someone has to fix this, like createNetworkAclRule <<-- this create the ACL rule createNetworkAcl <<-- this creates an ACL updateNetworkAclRule <<-- this updates the ACL rule updateNetworkAcl <<-- this updates an ACL But how without breaking the API for backwards compatibility? I know a few other places where the API has inconsistent namings. Fixing the API but in a controlled way? What about by adding a version to the API? I would like to introduce a API versioning to cloudstack: The current API would be frozen into verison v1. The new API will have v2. The versioned API has the URL scheme: /client/api/ The current API would be /client/api/v1 and the /client/api would be an alias for v1. This ensures backwards compatibility. This would allow us to deprecate and change APIs. Any thoughts? DISCLAIMER == This e-mail may contain privileged and confidential information which is the property of Accelerite, a Persistent Systems business. It is intended only for the use of the individual or entity to which it is addressed. If you are not the intended recipient, you are not authorized to read, retain, copy, print, distribute or use this message. If you have received this communication in error, please notify the sender and delete all copies of this message. Accelerite, a Persistent Systems business does not accept any liability for virus infected mails. -- Ron Wheeler President Artifact Software Inc email: rwhee...@artifact-software.com skype: ronaldmwheeler phone: 866-970-2435, ext 102
Re: [DISCUSS] API versioning
Please do not make any more roadmaps! There are more than enough already and many include old promises about updates that will be done on the page. https://cwiki.apache.org/confluence/display/CLOUDSTACK/Roadmap https://cwiki.apache.org/confluence/display/CLOUDSTACK/2015+Plan https://cwiki.apache.org/confluence/display/CLOUDSTACK/Releases https://cwiki.apache.org/confluence/display/CLOUDSTACK/%5BPROPOSAL%5D+2016-2017+Release+Cycle+and+Calendar https://cwiki.apache.org/confluence/display/CLOUDSTACK/Releases+in+Progress There may be more. I only spent 2 minutes to find these. Can we get rid of all of these that are not going to be kept up to date? I know that one can not permanently delete any wiki page but at least get them off the menu and not visible to people wanting to gauge the state of the project. Would it be helpful to have a vote about which one to keep and bring up to date? Ron On 05/06/2017 10:14 AM, Rafael Weingärtner wrote: This might be a good excuse for an ACS 5.0! Maybe with some other additions such as the support for OASIS CAMP or TOSCA? It would be interesting to have a ROADMAP with these desires/wishes. On Mon, Jun 5, 2017 at 8:52 AM, Simon Weller <swel...@ena.com.invalid> wrote: +1. Echoing what Rohit pointed out, we have a lot of cleanup to do :-) It certainly makes it a lot easier though when you're not breaking compatibility with existing code. From: Rohit Yadav <rohit.ya...@shapeblue.com> Sent: Monday, June 5, 2017 4:04 AM To: dev@cloudstack.apache.org Subject: Re: [DISCUSS] API versioning +1 Good idea, though bear in mind there are 500+ APIs with no modern-RESTful-standardization, a lot of work. Regards. From: Nitin Kumar Maharana <nitinkumar.mahar...@accelerite.com> Sent: 05 June 2017 12:37:24 To: dev@cloudstack.apache.org Subject: Re: [DISCUSS] API versioning This looks good. +1 rohit.ya...@shapeblue.com www.shapeblue.com<http://www.shapeblue.com> [http://shapeblue.com/wp-content/uploads/2014/03/sungardonline1.jpg]< http://www.shapeblue.com/> Shapeblue - The CloudStack Company<http://www.shapeblue.com/> www.shapeblue.com The city of Prague was the venue for the spring meeting of the Cloudstack European user group. There was 53 Chandos Place, Covent Garden, London WC2N 4HSUK @shapeblue On 04-Jun-2017, at 2:34 PM, Rene Moser <m...@renemoser.net> wrote: Hi I recently developed ansible modules for the ACL API and ... found this has a really inconsistent API naming. E.g. createNetworkACL <<-- this creates an ACL rule createNetworkACLList <<-- this create the ACL updateNetworkACLItem <<-- this updates an ACL rule updateNetworkACLList <<-- this updates the ACL My first thoughs was, someone has to fix this, like createNetworkAclRule <<-- this create the ACL rule createNetworkAcl <<-- this creates an ACL updateNetworkAclRule <<-- this updates the ACL rule updateNetworkAcl <<-- this updates an ACL But how without breaking the API for backwards compatibility? I know a few other places where the API has inconsistent namings. Fixing the API but in a controlled way? What about by adding a version to the API? I would like to introduce a API versioning to cloudstack: The current API would be frozen into verison v1. The new API will have v2. The versioned API has the URL scheme: /client/api/ The current API would be /client/api/v1 and the /client/api would be an alias for v1. This ensures backwards compatibility. This would allow us to deprecate and change APIs. Any thoughts? DISCLAIMER == This e-mail may contain privileged and confidential information which is the property of Accelerite, a Persistent Systems business. It is intended only for the use of the individual or entity to which it is addressed. If you are not the intended recipient, you are not authorized to read, retain, copy, print, distribute or use this message. If you have received this communication in error, please notify the sender and delete all copies of this message. Accelerite, a Persistent Systems business does not accept any liability for virus infected mails. -- Ron Wheeler President Artifact Software Inc email: rwhee...@artifact-software.com skype: ronaldmwheeler phone: 866-970-2435, ext 102
Re: [DISCUSS] API versioning
The wiki page exists for changes to be introduced at 5.0. It has been there for more than a year so it needs tlc. As for the API I sugest to start with a v2Beta api that we then migrate to v2 once we feel it can be maintained for a while without breaking backwards compatibility. (and move to ACS 5.0 at that point) Alternatively we can just upgrade quickly (v2, v3, v4, …) In short +1 for Rene’s idea but with caveats. On 05/06/2017, 17:57, "Syed Ahmed" <sah...@cloudops.com> wrote: +1 for the API versioning. If you could create a wiki page Rene, we can start documenting the changes. Thanks, -Syed On Mon, Jun 5, 2017 at 10:14 AM, Rafael Weingärtner < rafaelweingart...@gmail.com> wrote: > This might be a good excuse for an ACS 5.0! Maybe with some other additions > such as the support for OASIS CAMP or TOSCA? > > It would be interesting to have a ROADMAP with these desires/wishes. > > On Mon, Jun 5, 2017 at 8:52 AM, Simon Weller <swel...@ena.com.invalid> > wrote: > > > > > +1. Echoing what Rohit pointed out, we have a lot of cleanup to do :-) It > > certainly makes it a lot easier though when you're not breaking > > compatibility with existing code. > > > > > > From: Rohit Yadav <rohit.ya...@shapeblue.com> > > Sent: Monday, June 5, 2017 4:04 AM > > To: dev@cloudstack.apache.org > > Subject: Re: [DISCUSS] API versioning > > > > +1 Good idea, though bear in mind there are 500+ APIs with no > > modern-RESTful-standardization, a lot of work. > > > > > > Regards. > > > > > > From: Nitin Kumar Maharana <nitinkumar.mahar...@accelerite.com> > > Sent: 05 June 2017 12:37:24 > > To: dev@cloudstack.apache.org > > Subject: Re: [DISCUSS] API versioning > > > > This looks good. +1 > > > > rohit.ya...@shapeblue.com > > www.shapeblue.com<http://www.shapeblue.com> > > [http://shapeblue.com/wp-content/uploads/2014/03/sungardonline1.jpg]< > > http://www.shapeblue.com/> > > > > Shapeblue - The CloudStack Company<http://www.shapeblue.com/> > > www.shapeblue.com > > The city of Prague was the venue for the spring meeting of the Cloudstack > > European user group. There was > > > > > > > > 53 Chandos Place, Covent Garden, London WC2N 4HSUK > > @shapeblue > > > > > > > > daan.hoogl...@shapeblue.com www.shapeblue.com 53 Chandos Place, Covent Garden, London WC2N 4HSUK @shapeblue > On 04-Jun-2017, at 2:34 PM, Rene Moser <m...@renemoser.net> wrote: > > > > > > Hi > > > > > > I recently developed ansible modules for the ACL API and ... found this > > > has a really inconsistent API naming. E.g. > > > > > > createNetworkACL <<-- this creates an ACL rule > > > createNetworkACLList <<-- this create the ACL > > > > > > updateNetworkACLItem <<-- this updates an ACL rule > > > updateNetworkACLList <<-- this updates the ACL > > > > > > My first thoughs was, someone has to fix this, like > > > > > > createNetworkAclRule <<-- this create the ACL rule > > > createNetworkAcl <<-- this creates an ACL > > > > > > updateNetworkAclRule <<-- this updates the ACL rule > > > updateNetworkAcl <<-- this updates an ACL > > > > > > But how without breaking the API for backwards compatibility? I know a > > > few other places where the API has inconsistent namings. Fixing the API > > > but in a controlled way? What about by adding a version to the API? > > > > > > I would like to introduce a API versioning to cloudstack: The current > > > API would be frozen into verison v1. The new API will have v2. The > > > versioned API has the URL scheme: > > > > > > /client/api/ > > > > > > The current API would be /client/api/v1 and the /client/api would be an > > > alias for v1. This ensures backwards compatibility. > > > > > > This would allow us to deprecate and change APIs. > > > > > > Any thoughts? > > > > > > > > > > > > > > > > > > > DISCLAIMER > > == > > This e-mail may contain privileged and confidential information which is > > the property of Accelerite, a Persistent Systems business. It is intended > > only for the use of the individual or entity to which it is addressed. If > > you are not the intended recipient, you are not authorized to read, > retain, > > copy, print, distribute or use this message. If you have received this > > communication in error, please notify the sender and delete all copies of > > this message. Accelerite, a Persistent Systems business does not accept > any > > liability for virus infected mails. > > > > > > -- > Rafael Weingärtner >
Re: [DISCUSS] API versioning
+1 for the API versioning. If you could create a wiki page Rene, we can start documenting the changes. Thanks, -Syed On Mon, Jun 5, 2017 at 10:14 AM, Rafael Weingärtner < rafaelweingart...@gmail.com> wrote: > This might be a good excuse for an ACS 5.0! Maybe with some other additions > such as the support for OASIS CAMP or TOSCA? > > It would be interesting to have a ROADMAP with these desires/wishes. > > On Mon, Jun 5, 2017 at 8:52 AM, Simon Weller <swel...@ena.com.invalid> > wrote: > > > > > +1. Echoing what Rohit pointed out, we have a lot of cleanup to do :-) It > > certainly makes it a lot easier though when you're not breaking > > compatibility with existing code. > > > > > > From: Rohit Yadav <rohit.ya...@shapeblue.com> > > Sent: Monday, June 5, 2017 4:04 AM > > To: dev@cloudstack.apache.org > > Subject: Re: [DISCUSS] API versioning > > > > +1 Good idea, though bear in mind there are 500+ APIs with no > > modern-RESTful-standardization, a lot of work. > > > > > > Regards. > > > > > > From: Nitin Kumar Maharana <nitinkumar.mahar...@accelerite.com> > > Sent: 05 June 2017 12:37:24 > > To: dev@cloudstack.apache.org > > Subject: Re: [DISCUSS] API versioning > > > > This looks good. +1 > > > > rohit.ya...@shapeblue.com > > www.shapeblue.com<http://www.shapeblue.com> > > [http://shapeblue.com/wp-content/uploads/2014/03/sungardonline1.jpg]< > > http://www.shapeblue.com/> > > > > Shapeblue - The CloudStack Company<http://www.shapeblue.com/> > > www.shapeblue.com > > The city of Prague was the venue for the spring meeting of the Cloudstack > > European user group. There was > > > > > > > > 53 Chandos Place, Covent Garden, London WC2N 4HSUK > > @shapeblue > > > > > > > > > On 04-Jun-2017, at 2:34 PM, Rene Moser <m...@renemoser.net> wrote: > > > > > > Hi > > > > > > I recently developed ansible modules for the ACL API and ... found this > > > has a really inconsistent API naming. E.g. > > > > > > createNetworkACL <<-- this creates an ACL rule > > > createNetworkACLList <<-- this create the ACL > > > > > > updateNetworkACLItem <<-- this updates an ACL rule > > > updateNetworkACLList <<-- this updates the ACL > > > > > > My first thoughs was, someone has to fix this, like > > > > > > createNetworkAclRule <<-- this create the ACL rule > > > createNetworkAcl <<-- this creates an ACL > > > > > > updateNetworkAclRule <<-- this updates the ACL rule > > > updateNetworkAcl <<-- this updates an ACL > > > > > > But how without breaking the API for backwards compatibility? I know a > > > few other places where the API has inconsistent namings. Fixing the API > > > but in a controlled way? What about by adding a version to the API? > > > > > > I would like to introduce a API versioning to cloudstack: The current > > > API would be frozen into verison v1. The new API will have v2. The > > > versioned API has the URL scheme: > > > > > > /client/api/ > > > > > > The current API would be /client/api/v1 and the /client/api would be an > > > alias for v1. This ensures backwards compatibility. > > > > > > This would allow us to deprecate and change APIs. > > > > > > Any thoughts? > > > > > > > > > > > > > > > > > > > DISCLAIMER > > == > > This e-mail may contain privileged and confidential information which is > > the property of Accelerite, a Persistent Systems business. It is intended > > only for the use of the individual or entity to which it is addressed. If > > you are not the intended recipient, you are not authorized to read, > retain, > > copy, print, distribute or use this message. If you have received this > > communication in error, please notify the sender and delete all copies of > > this message. Accelerite, a Persistent Systems business does not accept > any > > liability for virus infected mails. > > > > > > -- > Rafael Weingärtner >
Re: [DISCUSS] API versioning
This might be a good excuse for an ACS 5.0! Maybe with some other additions such as the support for OASIS CAMP or TOSCA? It would be interesting to have a ROADMAP with these desires/wishes. On Mon, Jun 5, 2017 at 8:52 AM, Simon Weller <swel...@ena.com.invalid> wrote: > > +1. Echoing what Rohit pointed out, we have a lot of cleanup to do :-) It > certainly makes it a lot easier though when you're not breaking > compatibility with existing code. > > > From: Rohit Yadav <rohit.ya...@shapeblue.com> > Sent: Monday, June 5, 2017 4:04 AM > To: dev@cloudstack.apache.org > Subject: Re: [DISCUSS] API versioning > > +1 Good idea, though bear in mind there are 500+ APIs with no > modern-RESTful-standardization, a lot of work. > > > Regards. > > > From: Nitin Kumar Maharana <nitinkumar.mahar...@accelerite.com> > Sent: 05 June 2017 12:37:24 > To: dev@cloudstack.apache.org > Subject: Re: [DISCUSS] API versioning > > This looks good. +1 > > rohit.ya...@shapeblue.com > www.shapeblue.com<http://www.shapeblue.com> > [http://shapeblue.com/wp-content/uploads/2014/03/sungardonline1.jpg]< > http://www.shapeblue.com/> > > Shapeblue - The CloudStack Company<http://www.shapeblue.com/> > www.shapeblue.com > The city of Prague was the venue for the spring meeting of the Cloudstack > European user group. There was > > > > 53 Chandos Place, Covent Garden, London WC2N 4HSUK > @shapeblue > > > > > On 04-Jun-2017, at 2:34 PM, Rene Moser <m...@renemoser.net> wrote: > > > > Hi > > > > I recently developed ansible modules for the ACL API and ... found this > > has a really inconsistent API naming. E.g. > > > > createNetworkACL <<-- this creates an ACL rule > > createNetworkACLList <<-- this create the ACL > > > > updateNetworkACLItem <<-- this updates an ACL rule > > updateNetworkACLList <<-- this updates the ACL > > > > My first thoughs was, someone has to fix this, like > > > > createNetworkAclRule <<-- this create the ACL rule > > createNetworkAcl <<-- this creates an ACL > > > > updateNetworkAclRule <<-- this updates the ACL rule > > updateNetworkAcl <<-- this updates an ACL > > > > But how without breaking the API for backwards compatibility? I know a > > few other places where the API has inconsistent namings. Fixing the API > > but in a controlled way? What about by adding a version to the API? > > > > I would like to introduce a API versioning to cloudstack: The current > > API would be frozen into verison v1. The new API will have v2. The > > versioned API has the URL scheme: > > > > /client/api/ > > > > The current API would be /client/api/v1 and the /client/api would be an > > alias for v1. This ensures backwards compatibility. > > > > This would allow us to deprecate and change APIs. > > > > Any thoughts? > > > > > > > > > > > DISCLAIMER > == > This e-mail may contain privileged and confidential information which is > the property of Accelerite, a Persistent Systems business. It is intended > only for the use of the individual or entity to which it is addressed. If > you are not the intended recipient, you are not authorized to read, retain, > copy, print, distribute or use this message. If you have received this > communication in error, please notify the sender and delete all copies of > this message. Accelerite, a Persistent Systems business does not accept any > liability for virus infected mails. > -- Rafael Weingärtner
Re: [DISCUSS] API versioning
+1. Echoing what Rohit pointed out, we have a lot of cleanup to do :-) It certainly makes it a lot easier though when you're not breaking compatibility with existing code. From: Rohit Yadav <rohit.ya...@shapeblue.com> Sent: Monday, June 5, 2017 4:04 AM To: dev@cloudstack.apache.org Subject: Re: [DISCUSS] API versioning +1 Good idea, though bear in mind there are 500+ APIs with no modern-RESTful-standardization, a lot of work. Regards. From: Nitin Kumar Maharana <nitinkumar.mahar...@accelerite.com> Sent: 05 June 2017 12:37:24 To: dev@cloudstack.apache.org Subject: Re: [DISCUSS] API versioning This looks good. +1 rohit.ya...@shapeblue.com www.shapeblue.com<http://www.shapeblue.com> [http://shapeblue.com/wp-content/uploads/2014/03/sungardonline1.jpg]<http://www.shapeblue.com/> Shapeblue - The CloudStack Company<http://www.shapeblue.com/> www.shapeblue.com The city of Prague was the venue for the spring meeting of the Cloudstack European user group. There was 53 Chandos Place, Covent Garden, London WC2N 4HSUK @shapeblue > On 04-Jun-2017, at 2:34 PM, Rene Moser <m...@renemoser.net> wrote: > > Hi > > I recently developed ansible modules for the ACL API and ... found this > has a really inconsistent API naming. E.g. > > createNetworkACL <<-- this creates an ACL rule > createNetworkACLList <<-- this create the ACL > > updateNetworkACLItem <<-- this updates an ACL rule > updateNetworkACLList <<-- this updates the ACL > > My first thoughs was, someone has to fix this, like > > createNetworkAclRule <<-- this create the ACL rule > createNetworkAcl <<-- this creates an ACL > > updateNetworkAclRule <<-- this updates the ACL rule > updateNetworkAcl <<-- this updates an ACL > > But how without breaking the API for backwards compatibility? I know a > few other places where the API has inconsistent namings. Fixing the API > but in a controlled way? What about by adding a version to the API? > > I would like to introduce a API versioning to cloudstack: The current > API would be frozen into verison v1. The new API will have v2. The > versioned API has the URL scheme: > > /client/api/ > > The current API would be /client/api/v1 and the /client/api would be an > alias for v1. This ensures backwards compatibility. > > This would allow us to deprecate and change APIs. > > Any thoughts? > > > DISCLAIMER == This e-mail may contain privileged and confidential information which is the property of Accelerite, a Persistent Systems business. It is intended only for the use of the individual or entity to which it is addressed. If you are not the intended recipient, you are not authorized to read, retain, copy, print, distribute or use this message. If you have received this communication in error, please notify the sender and delete all copies of this message. Accelerite, a Persistent Systems business does not accept any liability for virus infected mails.
Re: [DISCUSS] API versioning
+1 Good idea, though bear in mind there are 500+ APIs with no modern-RESTful-standardization, a lot of work. Regards. From: Nitin Kumar Maharana <nitinkumar.mahar...@accelerite.com> Sent: 05 June 2017 12:37:24 To: dev@cloudstack.apache.org Subject: Re: [DISCUSS] API versioning This looks good. +1 rohit.ya...@shapeblue.com www.shapeblue.com 53 Chandos Place, Covent Garden, London WC2N 4HSUK @shapeblue > On 04-Jun-2017, at 2:34 PM, Rene Moser <m...@renemoser.net> wrote: > > Hi > > I recently developed ansible modules for the ACL API and ... found this > has a really inconsistent API naming. E.g. > > createNetworkACL <<-- this creates an ACL rule > createNetworkACLList <<-- this create the ACL > > updateNetworkACLItem <<-- this updates an ACL rule > updateNetworkACLList <<-- this updates the ACL > > My first thoughs was, someone has to fix this, like > > createNetworkAclRule <<-- this create the ACL rule > createNetworkAcl <<-- this creates an ACL > > updateNetworkAclRule <<-- this updates the ACL rule > updateNetworkAcl <<-- this updates an ACL > > But how without breaking the API for backwards compatibility? I know a > few other places where the API has inconsistent namings. Fixing the API > but in a controlled way? What about by adding a version to the API? > > I would like to introduce a API versioning to cloudstack: The current > API would be frozen into verison v1. The new API will have v2. The > versioned API has the URL scheme: > > /client/api/ > > The current API would be /client/api/v1 and the /client/api would be an > alias for v1. This ensures backwards compatibility. > > This would allow us to deprecate and change APIs. > > Any thoughts? > > > DISCLAIMER == This e-mail may contain privileged and confidential information which is the property of Accelerite, a Persistent Systems business. It is intended only for the use of the individual or entity to which it is addressed. If you are not the intended recipient, you are not authorized to read, retain, copy, print, distribute or use this message. If you have received this communication in error, please notify the sender and delete all copies of this message. Accelerite, a Persistent Systems business does not accept any liability for virus infected mails.
Re: [DISCUSS] API versioning
This looks good. +1 > On 04-Jun-2017, at 2:34 PM, Rene Moserwrote: > > Hi > > I recently developed ansible modules for the ACL API and ... found this > has a really inconsistent API naming. E.g. > > createNetworkACL <<-- this creates an ACL rule > createNetworkACLList <<-- this create the ACL > > updateNetworkACLItem <<-- this updates an ACL rule > updateNetworkACLList <<-- this updates the ACL > > My first thoughs was, someone has to fix this, like > > createNetworkAclRule <<-- this create the ACL rule > createNetworkAcl <<-- this creates an ACL > > updateNetworkAclRule <<-- this updates the ACL rule > updateNetworkAcl <<-- this updates an ACL > > But how without breaking the API for backwards compatibility? I know a > few other places where the API has inconsistent namings. Fixing the API > but in a controlled way? What about by adding a version to the API? > > I would like to introduce a API versioning to cloudstack: The current > API would be frozen into verison v1. The new API will have v2. The > versioned API has the URL scheme: > > /client/api/ > > The current API would be /client/api/v1 and the /client/api would be an > alias for v1. This ensures backwards compatibility. > > This would allow us to deprecate and change APIs. > > Any thoughts? > > > DISCLAIMER == This e-mail may contain privileged and confidential information which is the property of Accelerite, a Persistent Systems business. It is intended only for the use of the individual or entity to which it is addressed. If you are not the intended recipient, you are not authorized to read, retain, copy, print, distribute or use this message. If you have received this communication in error, please notify the sender and delete all copies of this message. Accelerite, a Persistent Systems business does not accept any liability for virus infected mails.
Re: [DISCUSS] API versioning
+1 boris.stoya...@shapeblue.com www.shapeblue.com 53 Chandos Place, Covent Garden, London WC2N 4HSUK @shapeblue > On Jun 4, 2017, at 7:15 PM, Tutkowski, Mikewrote: > > This sounds like a good idea to me. > >> On Jun 4, 2017, at 8:24 AM, Will Stevens wrote: >> >> +1. I like it. >> >>> On Jun 4, 2017 5:04 AM, "Rene Moser" wrote: >>> >>> Hi >>> >>> I recently developed ansible modules for the ACL API and ... found this >>> has a really inconsistent API naming. E.g. >>> >>> createNetworkACL <<-- this creates an ACL rule >>> createNetworkACLList <<-- this create the ACL >>> >>> updateNetworkACLItem <<-- this updates an ACL rule >>> updateNetworkACLList <<-- this updates the ACL >>> >>> My first thoughs was, someone has to fix this, like >>> >>> createNetworkAclRule <<-- this create the ACL rule >>> createNetworkAcl <<-- this creates an ACL >>> >>> updateNetworkAclRule <<-- this updates the ACL rule >>> updateNetworkAcl <<-- this updates an ACL >>> >>> But how without breaking the API for backwards compatibility? I know a >>> few other places where the API has inconsistent namings. Fixing the API >>> but in a controlled way? What about by adding a version to the API? >>> >>> I would like to introduce a API versioning to cloudstack: The current >>> API would be frozen into verison v1. The new API will have v2. The >>> versioned API has the URL scheme: >>> >>> /client/api/ >>> >>> The current API would be /client/api/v1 and the /client/api would be an >>> alias for v1. This ensures backwards compatibility. >>> >>> This would allow us to deprecate and change APIs. >>> >>> Any thoughts? >>> >>> >>> >>>
Re: [DISCUSS] API versioning
This sounds like a good idea to me. > On Jun 4, 2017, at 8:24 AM, Will Stevenswrote: > > +1. I like it. > >> On Jun 4, 2017 5:04 AM, "Rene Moser" wrote: >> >> Hi >> >> I recently developed ansible modules for the ACL API and ... found this >> has a really inconsistent API naming. E.g. >> >> createNetworkACL <<-- this creates an ACL rule >> createNetworkACLList <<-- this create the ACL >> >> updateNetworkACLItem <<-- this updates an ACL rule >> updateNetworkACLList <<-- this updates the ACL >> >> My first thoughs was, someone has to fix this, like >> >> createNetworkAclRule <<-- this create the ACL rule >> createNetworkAcl <<-- this creates an ACL >> >> updateNetworkAclRule <<-- this updates the ACL rule >> updateNetworkAcl <<-- this updates an ACL >> >> But how without breaking the API for backwards compatibility? I know a >> few other places where the API has inconsistent namings. Fixing the API >> but in a controlled way? What about by adding a version to the API? >> >> I would like to introduce a API versioning to cloudstack: The current >> API would be frozen into verison v1. The new API will have v2. The >> versioned API has the URL scheme: >> >> /client/api/ >> >> The current API would be /client/api/v1 and the /client/api would be an >> alias for v1. This ensures backwards compatibility. >> >> This would allow us to deprecate and change APIs. >> >> Any thoughts? >> >> >> >>
Re: [DISCUSS] API versioning
+1. I like it. On Jun 4, 2017 5:04 AM, "Rene Moser"wrote: > Hi > > I recently developed ansible modules for the ACL API and ... found this > has a really inconsistent API naming. E.g. > > createNetworkACL <<-- this creates an ACL rule > createNetworkACLList <<-- this create the ACL > > updateNetworkACLItem <<-- this updates an ACL rule > updateNetworkACLList <<-- this updates the ACL > > My first thoughs was, someone has to fix this, like > > createNetworkAclRule <<-- this create the ACL rule > createNetworkAcl <<-- this creates an ACL > > updateNetworkAclRule <<-- this updates the ACL rule > updateNetworkAcl <<-- this updates an ACL > > But how without breaking the API for backwards compatibility? I know a > few other places where the API has inconsistent namings. Fixing the API > but in a controlled way? What about by adding a version to the API? > > I would like to introduce a API versioning to cloudstack: The current > API would be frozen into verison v1. The new API will have v2. The > versioned API has the URL scheme: > > /client/api/ > > The current API would be /client/api/v1 and the /client/api would be an > alias for v1. This ensures backwards compatibility. > > This would allow us to deprecate and change APIs. > > Any thoughts? > > > >
[DISCUSS] API versioning
Hi I recently developed ansible modules for the ACL API and ... found this has a really inconsistent API naming. E.g. createNetworkACL <<-- this creates an ACL rule createNetworkACLList <<-- this create the ACL updateNetworkACLItem <<-- this updates an ACL rule updateNetworkACLList <<-- this updates the ACL My first thoughs was, someone has to fix this, like createNetworkAclRule <<-- this create the ACL rule createNetworkAcl <<-- this creates an ACL updateNetworkAclRule <<-- this updates the ACL rule updateNetworkAcl <<-- this updates an ACL But how without breaking the API for backwards compatibility? I know a few other places where the API has inconsistent namings. Fixing the API but in a controlled way? What about by adding a version to the API? I would like to introduce a API versioning to cloudstack: The current API would be frozen into verison v1. The new API will have v2. The versioned API has the URL scheme: /client/api/ The current API would be /client/api/v1 and the /client/api would be an alias for v1. This ensures backwards compatibility. This would allow us to deprecate and change APIs. Any thoughts?