← Back to team overview

openstack team mailing list archive

Re: Are the Python APIs public or internal?

 

I certainly use them daily. I actually use an interesting wrapper called Supernova (http://rackerhacker.github.com/supernova/) which allows for multi-user/multi-environment configurations. While the clients may not be as critical as the APIs themselves, they're something I certainly rely on heavily.

Daryl
________________________________
From: openstack-bounces+daryl.walleck=rackspace.com@xxxxxxxxxxxxxxxxxxx [openstack-bounces+daryl.walleck=rackspace.com@xxxxxxxxxxxxxxxxxxx] on behalf of David Kranz [david.kranz@xxxxxxxxxx]
Sent: Friday, March 01, 2013 3:36 PM
To: openstack@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Openstack] Are the Python APIs public or internal?

The Tempest (QA) team certainly considers them to be public and we just started getting some contributions that are testing novaclient. In other work I am also a consumer of several of these APIs so I really hope they don't break.

 -David

On 3/1/2013 8:50 AM, Dolph Mathews wrote:
I believe they should certainly be treated as public API's -- just like any other library. I'd also treat them as stable if they've ever been included in a versioned release. That said, I'm sure it would be easy to find examples of methods & attributes within the library that are not intended to be consumed externally, but perhaps either the naming convention or documentation doesn't sufficiently indicate that.

In keysoneclient, we're making backwards incompatible changes in a new subpackage (keystoneclient.v3) while maintaing compatibility in the common client code. For example, you should always be able to initialize the client with a tenant_id / tenant_name, even though the client will soon be using project_id / project_name internally to reflect our revised lingo.


-Dolph


On Thu, Feb 28, 2013 at 11:07 PM, Lorin Hochstein <lorin@xxxxxxxxxxxxxxxxxx<mailto:lorin@xxxxxxxxxxxxxxxxxx>> wrote:
Here's an issue that came up in the operators doc sprint this week.

Let's say I wanted to write some Python scripts using the APIs exposed by the python-*client packages. As a concrete example, let's say I wrote a script that uses the keystone Python API that's exposed in the python-keystoneclient package:

https://github.com/lorin/openstack-ansible/blob/master/playbooks/keystone/files/keystone-init.py

Are these APIs "public" or "stable"  in some meaningful way? (i.e., can I count on this script still working across minor release upgrades)? Or should they be treated like "internal" APIs that could be changed at any time in the future? Or is this not defined at all?

Lorin


_______________________________________________
Mailing list: https://launchpad.net/~openstack<https://launchpad.net/%7Eopenstack>
Post to     : openstack@xxxxxxxxxxxxxxxxxxx<mailto:openstack@xxxxxxxxxxxxxxxxxxx>
Unsubscribe : https://launchpad.net/~openstack<https://launchpad.net/%7Eopenstack>
More help   : https://help.launchpad.net/ListHelp





_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to     : openstack@xxxxxxxxxxxxxxxxxxx<mailto:openstack@xxxxxxxxxxxxxxxxxxx>
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp



References