gRPC API Porcelain Layer for OpenStack
Go to file
OpenDev Sysadmins 3eb1d6f8c5 OpenDev Migration Patch
This commit was bulk generated and pushed by the OpenDev sysadmins
as a part of the Git hosting and code review systems migration
detailed in these mailing list posts:

http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003603.html
http://lists.openstack.org/pipermail/openstack-discuss/2019-April/004920.html

Attempts have been made to correct repository namespaces and
hostnames based on simple pattern matching, but it's possible some
were updated incorrectly or missed entirely. Please reach out to us
via the contact information listed at https://opendev.org/ with any
questions you may have.
2019-04-19 19:50:29 +00:00
devstack Rename Search to List 2016-11-14 06:31:21 -06:00
doc/source Expand on the nodepool API todo in the docs 2016-11-15 07:44:24 -06:00
oaktree Rename Search to List 2016-11-14 06:31:21 -06:00
.coveragerc Initial commit 2016-11-03 07:45:03 -05:00
.gitignore Initial commit 2016-11-03 07:45:03 -05:00
.gitreview OpenDev Migration Patch 2019-04-19 19:50:29 +00:00
.mailmap Initial commit 2016-11-03 07:45:03 -05:00
.testr.conf Initial commit 2016-11-03 07:45:03 -05:00
CONTRIBUTING.rst Add a few more docs 2016-11-08 15:34:23 -06:00
HACKING.rst Initial commit 2016-11-03 07:45:03 -05:00
LICENSE Initial commit 2016-11-03 07:45:03 -05:00
MANIFEST.in Initial commit 2016-11-03 07:45:03 -05:00
README.rst Fix some minor typos in README.rst 2017-03-20 22:46:18 +00:00
TODO Initial commit 2016-11-03 07:45:03 -05:00
requirements.txt Manual sync with global requirements 2016-11-08 17:47:49 -06:00
setup.cfg Initial commit 2016-11-03 07:45:03 -05:00
setup.py Manual sync with global requirements 2016-11-08 17:47:49 -06:00
test-requirements.txt Manual sync with global requirements 2016-11-08 17:47:49 -06:00
tox.ini Clean a couple of meaningless things 2016-11-08 16:58:08 -06:00

README.rst

oaktree

Make your cloud throw some shade

oaktree is a gRPC interface for interacting with OpenStack clouds that is inherently interoperable and multi-cloud aware. It is based on the python shade library, which grew all of the logic needed to interact with OpenStack clouds and to work around differences in vendor deployment choices. Rather than keep all of that love in Python Library form, oaktree allows other languages to reap the benefits as well.

oaktree is not a replacement for all of the individual project REST APIs. Those are all essential for cross-project communication and are well suited for operators who can be expected to know things about how they have deployed their clouds - and who in fact WANT to be able to make changes in the cloud knowing deployment specifics. oaktree will never be for them.

oaktree is for end-users who do not and should not know what hypervisor, what storage driver or what network stack the deployer has chosen. The two sets of people are different audiences, so oaktree is a project to support the end user.

Using

Install oaktreemodel by hand. Then:

In one window:

python oaktree/server.py

oaktree/server.py assumes you have a clouds.yaml accessible.

In another window:

python -i devstack/test.py

You'll have an images and a flavors object you can poke at.

If you want to operate against a different cloud than devstack, you can pass it to devstack/test.py as the first command line argument.

Shape of the Project

oaktree should be super simple to deploy, and completely safe for deployers to upgrade from master constantly. Once it's released as a 1.0, it should NEVER EVER EVER EVER EVER EVER EVER have a backwards incompatible change. There is no reason, no justification, no obsession important enough to inflict such pain on the user.

The shade library will grow the ability to detect if a cloud has an oaktree api available, and if it does, it will use it. Hopefully we'll quickly reach a point where all deployers are deploying oaktree.