diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5f10bca --- /dev/null +++ b/.gitignore @@ -0,0 +1,36 @@ +*.py[cod] + +# Packages +*.egg +*.egg-info +dist +build +eggs +parts +sdist +develop-eggs +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.tox +nosetests.xml +.testrepository + +# Mr Developer +.mr.developer.cfg +.project +.pydevproject + +# Sphinx +doc/build + +# pbr generates these +AUTHORS +ChangeLog + +# Editors +*~ +.*.swp \ No newline at end of file diff --git a/.mailmap b/.mailmap new file mode 100644 index 0000000..cc92f17 --- /dev/null +++ b/.mailmap @@ -0,0 +1,3 @@ +# Format is: +# +# \ No newline at end of file diff --git a/.testr.conf b/.testr.conf new file mode 100644 index 0000000..fb62267 --- /dev/null +++ b/.testr.conf @@ -0,0 +1,7 @@ +[DEFAULT] +test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \ + OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \ + OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \ + ${PYTHON:-python} -m subunit.run discover -t ./ . $LISTOPT $IDOPTION +test_id_option=--load-list $IDFILE +test_list_option=--list \ No newline at end of file diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst new file mode 100644 index 0000000..5eb10fa --- /dev/null +++ b/CONTRIBUTING.rst @@ -0,0 +1,21 @@ +============================================= +Contributing to: kosmos-specs +============================================= + +If you would like to contribute to the development of OpenStack, you must +follow the steps in this page: + + http://docs.openstack.org/infra/manual/developers.html + +If you already have a good understanding of how the system works and your +OpenStack accounts are set up, you can skip to the development workflow +section of this documentation to learn how changes to OpenStack should be +submitted for review via the Gerrit tool: + + http://docs.openstack.org/infra/manual/developers.html#development-workflow + +Pull requests submitted through GitHub will be ignored. + +Bugs should be filed on Launchpad, not GitHub: + + https://bugs.launchpad.net/kosmos \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..cd5fb7c --- /dev/null +++ b/LICENSE @@ -0,0 +1,3 @@ +This work is licensed under a Creative Commons Attribution 3.0 Unported License. + +http://creativecommons.org/licenses/by/3.0/legalcode \ No newline at end of file diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..90f8a7a --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,6 @@ +include AUTHORS +include ChangeLog +exclude .gitignore +exclude .gitreview + +global-exclude *.pyc \ No newline at end of file diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..04bc972 --- /dev/null +++ b/README.rst @@ -0,0 +1,13 @@ +=============================== +kosmos-specs +=============================== + +Specifications for the Kosmos Project (Global Load Balancing) + +* Free software: Apache license +* Documentation: http://docs.openstack.org/developer/kosmos-specs + +Features +-------- + +* TODO \ No newline at end of file diff --git a/doc/source/conf.py b/doc/source/conf.py new file mode 100644 index 0000000..6c63134 --- /dev/null +++ b/doc/source/conf.py @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import datetime +import os +import sys + +sys.path.insert(0, os.path.abspath('../..')) +# -- General configuration ---------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = [ + 'sphinx.ext.autodoc', + #'sphinx.ext.intersphinx', + 'oslosphinx', + 'yasfb', +] + +# Feed configuration for yasfb +feed_base_url = 'http://specs.openstack.org/openstack/kosmos-specs' +feed_author = 'OpenStack Development Team' + +exclude_patterns = [ + 'template.rst', +] + +# Optionally allow the use of sphinxcontrib.spelling to verify the +# spelling of the documents. +try: + import sphinxcontrib.spelling + extensions.append('sphinxcontrib.spelling') +except ImportError: + pass + +# autodoc generation is a bit aggressive and a nuisance when doing heavy +# text edit cycles. +# execute "export SPHINX_DEBUG=1" in your terminal to disable + +# The suffix of source filenames. +source_suffix = '.rst' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'kosmos-specs' +copyright = u'%s, OpenStack Foundation' % datetime.date.today().year + +# If true, '()' will be appended to :func: etc. cross-reference text. +add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +add_module_names = True + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# -- Options for HTML output -------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. Major themes that come with +# Sphinx are currently 'default' and 'sphinxdoc'. +# html_theme_path = ["."] +# html_theme = '_theme' +# html_static_path = ['static'] + +# Output file base name for HTML help builder. +htmlhelp_basename = '%sdoc' % project + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass +# [howto/manual]). +latex_documents = [ + ('index', + '%s.tex' % project, + u'%s Documentation' % project, + u'OpenStack Foundation', 'manual'), +] + +# Example configuration for intersphinx: refer to the Python standard library. +#intersphinx_mapping = {'http://docs.python.org/': None} \ No newline at end of file diff --git a/doc/source/contributing.rst b/doc/source/contributing.rst new file mode 100644 index 0000000..5eb10fa --- /dev/null +++ b/doc/source/contributing.rst @@ -0,0 +1,21 @@ +============================================= +Contributing to: kosmos-specs +============================================= + +If you would like to contribute to the development of OpenStack, you must +follow the steps in this page: + + http://docs.openstack.org/infra/manual/developers.html + +If you already have a good understanding of how the system works and your +OpenStack accounts are set up, you can skip to the development workflow +section of this documentation to learn how changes to OpenStack should be +submitted for review via the Gerrit tool: + + http://docs.openstack.org/infra/manual/developers.html#development-workflow + +Pull requests submitted through GitHub will be ignored. + +Bugs should be filed on Launchpad, not GitHub: + + https://bugs.launchpad.net/kosmos \ No newline at end of file diff --git a/doc/source/index.rst b/doc/source/index.rst new file mode 100644 index 0000000..2f254a8 --- /dev/null +++ b/doc/source/index.rst @@ -0,0 +1,33 @@ +.. kosmos-specs documentation master file, created by + sphinx-quickstart on Tue Jul 9 22:26:36 2013. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +kosmos-specs Design Specifications +================================================== + +Liberty approved specs: + +.. toctree:: + :glob: + :maxdepth: 1 + + specs/liberty/* + + +kosmos-specs Repository Information +=================================================== + +.. toctree:: + :maxdepth: 2 + + README + contributing + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/doc/source/readme.rst b/doc/source/readme.rst new file mode 100644 index 0000000..04bc972 --- /dev/null +++ b/doc/source/readme.rst @@ -0,0 +1,13 @@ +=============================== +kosmos-specs +=============================== + +Specifications for the Kosmos Project (Global Load Balancing) + +* Free software: Apache license +* Documentation: http://docs.openstack.org/developer/kosmos-specs + +Features +-------- + +* TODO \ No newline at end of file diff --git a/doc/source/specs b/doc/source/specs new file mode 120000 index 0000000..87a4030 --- /dev/null +++ b/doc/source/specs @@ -0,0 +1 @@ +../../specs \ No newline at end of file diff --git a/doc/source/template.rst b/doc/source/template.rst new file mode 100644 index 0000000..ef0f3f4 --- /dev/null +++ b/doc/source/template.rst @@ -0,0 +1,86 @@ +.. + +This work is licensed under a Creative Commons Attribution 3.0 Unported License. +http://creativecommons.org/licenses/by/3.0/legalcode + +.. + This template should be in ReSTructured text. The filename in the git + repository should match the launchpad URL, for example a URL of + https://blueprints.launchpad.net/kosmos/+spec/awesome-thing should be named + awesome-thing.rst . Please do not delete any of the sections in this + template. If you have nothing to say for a whole section, just write: None + For help with syntax, see http://sphinx-doc.org/rest.html + To test out your formatting, see http://www.tele3.cz/jbar/rest/rest.html + +============================= + The title of your blueprint +============================= + +Include the URL of your launchpad blueprint: + +https://blueprints.launchpad.net//+spec/example + +Introduction paragraph -- why are we doing anything? + +Problem description +=================== + +A detailed description of the problem. + +Proposed change +=============== + +Here is where you cover the change you propose to make in detail. How do you +propose to solve this problem? + +If this is one part of a larger effort make it clear where this piece ends. In +other words, what's the scope of this effort? + +Include where in the kosmos tree hierarchy this will reside. + +Alternatives +------------ + +This is an optional section, where it does apply we'd just like a demonstration +that some thought has been put into why the proposed approach is the best one. + +Implementation +============== + +Assignee(s) +----------- + +Who is leading the writing of the code? Or is this a blueprint where you're +throwing it out there to see who picks it up? + +If more than one person is working on the implementation, please designate the +primary author and contact. + +Primary assignee: + + +Can optionally can list additional ids if they intend on doing +substantial implementation work on this blueprint. + +Milestones +---------- + +Target Milestone for completion: + Juno-1 + +Work Items +---------- + +Work items or tasks -- break the feature up into the things that need to be +done to implement it. Those parts might end up being done by different people, +but we're mostly trying to understand the timeline for implementation. + + +Dependencies +============ + +- Include specific references to specs and/or blueprints in kosmos, or in other + projects, that this one either depends on or is related to. + +- Does this feature require any new library dependencies or code otherwise not + included in OpenStack? Or does it depend on a specific version of library? \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..17a43bd --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +pbr>=0.11,<2.0 +oslosphinx +sphinx>=1.1.2,!=1.2.0,!=1.3b1,<1.3 +yasfb>=0.5.1 \ No newline at end of file diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..df036c5 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,24 @@ +[metadata] +name = kosmos-specs +summary = Specifications for the Kosmos Project (Global Load Balancing) +description-file = + README.rst +author = OpenStack +author-email = openstack-dev@lists.openstack.org +home-page = http://www.openstack.org/ +classifier = + Environment :: OpenStack + Intended Audience :: Developers + License :: OSI Approved :: Apache Software License + Operating System :: POSIX :: Linux + +[build_sphinx] +source-dir = doc/source +build-dir = doc/build +all_files = 1 + +[pbr] +warnerrors = True + +[upload_sphinx] +upload-dir = doc/build/html \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..7eeb36b --- /dev/null +++ b/setup.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT +import setuptools + +setuptools.setup( + setup_requires=['pbr'], + pbr=True) \ No newline at end of file diff --git a/specs/.gitignore b/specs/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/specs/liberty/placeholder.rst b/specs/liberty/placeholder.rst new file mode 100644 index 0000000..e8e7649 --- /dev/null +++ b/specs/liberty/placeholder.rst @@ -0,0 +1,163 @@ +.. + +This work is licensed under a Creative Commons Attribution 3.0 Unported License. +http://creativecommons.org/licenses/by/3.0/legalcode + +.. + This template should be in ReSTructured text. The filename in the git + repository should match the launchpad URL, for example a URL of + https://blueprints.launchpad.net/gslb/+spec/awesome-thing should be named + awesome-thing.rst . Please do not delete any of the sections in this + template. If you have nothing to say for a whole section, just write: None + For help with syntax, see http://sphinx-doc.org/rest.html + To test out your formatting, see http://www.tele3.cz/jbar/rest/rest.html + +============================= + The title of your blueprint +============================= + +Include the URL of your launchpad blueprint: + +https://blueprints.launchpad.net/kosmos/+spec/example + +Introduction paragraph -- why are we doing anything? + + +Problem description +=================== + +A detailed description of the problem. + +Proposed change +=============== + +Here is where you cover the change you propose to make in detail. How do you +propose to solve this problem? + +If this is one part of a larger effort make it clear where this piece ends. In +other words, what's the scope of this effort? + +Include where in the designate tree hierarchy this will reside. + +API Changes +----------- + +Include API Changes here. If you are adding endpoints / add major modifications +please ensure you have examples for calls / results - eg: + +POST /v2/doohickey +^^^^^^^^^^^^^^^^^^ + +This creates a doohicky. + +It returns an ID and the doohickey + +.. code-block:: http + + POST /v2/doohickey HTTP/1.1 + Accept: application/json + Content-Type: application/json + + { + "doohickey":{ + "foo":"bar" + } + } + + HTTP/1.1 201 Created + Content-Type: application/json; charset=UTF-8 + Location: /v2/doohickey/cddda8f0-f558-11e3-a3ac-0800200c9a66 + + { + "doohickey":{ + "id":"cddda8f0-f558-11e3-a3ac-0800200c9a66", + "foo":"bar", + "links":{ + "self" : "/v2/doohickey/cddda8f0-f558-11e3-a3ac-0800200c9a66" + } + } + } + +It may be usefull to add a table with the parameters, and a info about them + ++-----------+--------------------------------+----------+ +| Parameter | Description | Required | ++===========+================================+==========+ +| foo | the foo value for the doohicky | Yes | ++-----------+--------------------------------+----------+ + +Central Changes +--------------- + +Any changes to the central service + +Storage Changes +--------------- + +Any changes to the DB. This should be a table (if creating a new table) +eg: + + +New Table - DooHickey +^^^^^^^^^^^^^^^^^^^^^ + ++-----+---------+-----------+---------+ +| Row | Type | Nullable? | Unique? | ++=====+=========+===========+=========+ +| id | uuid | No | Yes | ++-----+---------+-----------+---------+ +| foo | VARCHAR | No | No | ++-----+---------+-----------+---------+ + +Other Changes +------------- + +Any other changes to Designate, broken down by which sub system is being +changed + +Alternatives +------------ + +This is an optional section, where it does apply we'd just like a demonstration +that some thought has been put into why the proposed approach is the best one. + +Implementation +============== + +Assignee(s) +----------- + +Who is leading the writing of the code? Or is this a blueprint where you're +throwing it out there to see who picks it up? + +If more than one person is working on the implementation, please designate the +primary author and contact. + +Primary assignee: + + +Can optionally can list additional ids if they intend on doing +substantial implementation work on this blueprint. + +Milestones +---------- + +Target Milestone for completion: + Juno-1 + +Work Items +---------- + +Work items or tasks -- break the feature up into the things that need to be +done to implement it. Those parts might end up being done by different people, +but we're mostly trying to understand the timeline for implementation. + + +Dependencies +============ + +- Include specific references to specs and/or blueprints in designate, or in other + projects, that this one either depends on or is related to. + +- Does this feature require any new library dependencies or code otherwise not + included in OpenStack? Or does it depend on a specific version of library? diff --git a/template.rst b/template.rst new file mode 100644 index 0000000..ef0f3f4 --- /dev/null +++ b/template.rst @@ -0,0 +1,86 @@ +.. + +This work is licensed under a Creative Commons Attribution 3.0 Unported License. +http://creativecommons.org/licenses/by/3.0/legalcode + +.. + This template should be in ReSTructured text. The filename in the git + repository should match the launchpad URL, for example a URL of + https://blueprints.launchpad.net/kosmos/+spec/awesome-thing should be named + awesome-thing.rst . Please do not delete any of the sections in this + template. If you have nothing to say for a whole section, just write: None + For help with syntax, see http://sphinx-doc.org/rest.html + To test out your formatting, see http://www.tele3.cz/jbar/rest/rest.html + +============================= + The title of your blueprint +============================= + +Include the URL of your launchpad blueprint: + +https://blueprints.launchpad.net//+spec/example + +Introduction paragraph -- why are we doing anything? + +Problem description +=================== + +A detailed description of the problem. + +Proposed change +=============== + +Here is where you cover the change you propose to make in detail. How do you +propose to solve this problem? + +If this is one part of a larger effort make it clear where this piece ends. In +other words, what's the scope of this effort? + +Include where in the kosmos tree hierarchy this will reside. + +Alternatives +------------ + +This is an optional section, where it does apply we'd just like a demonstration +that some thought has been put into why the proposed approach is the best one. + +Implementation +============== + +Assignee(s) +----------- + +Who is leading the writing of the code? Or is this a blueprint where you're +throwing it out there to see who picks it up? + +If more than one person is working on the implementation, please designate the +primary author and contact. + +Primary assignee: + + +Can optionally can list additional ids if they intend on doing +substantial implementation work on this blueprint. + +Milestones +---------- + +Target Milestone for completion: + Juno-1 + +Work Items +---------- + +Work items or tasks -- break the feature up into the things that need to be +done to implement it. Those parts might end up being done by different people, +but we're mostly trying to understand the timeline for implementation. + + +Dependencies +============ + +- Include specific references to specs and/or blueprints in kosmos, or in other + projects, that this one either depends on or is related to. + +- Does this feature require any new library dependencies or code otherwise not + included in OpenStack? Or does it depend on a specific version of library? \ No newline at end of file diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 0000000..e69de29 diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..c354f60 --- /dev/null +++ b/tox.ini @@ -0,0 +1,25 @@ +[tox] +minversion = 1.6 +envlist = docs +skipsdist = True + +[testenv] +usedevelop = True +install_command = pip install -U {opts} {packages} +setenv = + VIRTUAL_ENV={envdir} +deps = -r{toxinidir}/requirements.txt + -r{toxinidir}/test-requirements.txt + +[testenv:venv] +commands = {posargs} + +[testenv:docs] +commands = python setup.py build_sphinx + +[testenv:spelling] +deps = + -r{toxinidir}/requirements.txt + sphinxcontrib-spelling + PyEnchant +commands = sphinx-build -b spelling doc/source doc/build/spelling \ No newline at end of file