diff --git a/doc/source/_templates/guidelines.tmpl b/doc/source/_templates/guidelines.tmpl new file mode 100644 index 00000000..4b36055c --- /dev/null +++ b/doc/source/_templates/guidelines.tmpl @@ -0,0 +1,76 @@ +.. -*- mode: rst -*- + +:Status: {{data['status'].title()}} +:Replaces: :doc:`{{data['replaces']}}` + +Releases Covered +================ + +{% for release in data['releases'] %} +- {{release.title()}} +{% endfor %} + +Platform Components +=================== + +{% for category in ['required', 'advisory', 'deprecated', 'removed'] %} +:{{category}}: {% for r in data['platform'][category] %}{{r.title()}}{% if not loop.last %}, {% endif %}{% else %}None{% endfor %} +{% endfor %}{# category #} + +{% for component_name, component in data['components'].items()|sort %} +{{component_name.title()}} Component Capabilities +{% for _ in component_name %}={% endfor %}======================== + +{% for category in ['required', 'advisory', 'deprecated', 'removed'] %} +{{category.title()}} Capabilities +{% for _ in category %}-{% endfor %}------------- + +{% for capability in component[category.lower()] %} +- {{ capability }} ({{data['capabilities'][capability]['project'].title()}}) +{% else %} +None +{% endfor %}{# capabilities #} + +{% endfor %}{# category1 #} + +{% endfor %}{# component2 #} + +Designated Sections +=================== + +The following designated sections apply to the same releases as this +specification. + +{% for category in ['required', 'advisory', 'deprecated', 'removed'] %} +{{category.title()}} Designated Sections +{% for _ in category %}-{% endfor %}-------------------- + +{% for component_name, component in data['designated-sections'][category].items()|sort %} +{{component_name.title()}} +{% for _ in category %}~{% endfor %} + +:Guidance: {{component['guidance']}} +:Comment: {{component['comment']}} + +.. list-table:: Sections + :header-rows: 1 + :widths: 20 40 10 30 + + - * Section + * Description + * Designated + * Comments +{% for section_name, section in component['sections'].items()|sort %} + - * {{section_name.title()}} + * {{section['description']}} + * {% if section['designated'] %}Yes{% else %}No{% endif %} + * {{section['comment']}} +{% else %} +None +{%- endfor %}{# section #} + +{% else %} +None +{% endfor %}{# component2 #} + +{% endfor %}{# category2 #} diff --git a/doc/source/conf.py b/doc/source/conf.py index e5938a17..c405d25c 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -30,7 +30,8 @@ extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx.ext.viewcode', - 'oslosphinx' + 'oslosphinx', + 'sphinxcontrib.datatemplates', ] todo_include_todos = True diff --git a/doc/source/guidelines/2015.07.rst b/doc/source/guidelines/2015.07.rst index fc13b03c..63fe1ace 100644 --- a/doc/source/guidelines/2015.07.rst +++ b/doc/source/guidelines/2015.07.rst @@ -2,151 +2,12 @@ OpenStack DefCore 2015.07 ========================= -:Status: approved -:Replaces: 2015.05 -:JSON Master: http://git.openstack.org/cgit/openstack/defcore/tree/2015.07.json - This document outlines the mandatory capabilities and designated sections required to exist in a software installation in order to be eligible to use marks controlled by the OpenStack Foundation. This document was generated from the `master JSON version <2015.07.json>`_. -Releases Covered -============================== -Applies to Icehouse, Juno, Kilo - -Platform Components -============================== -:Required: Compute, Object - -:Advisory: None - -:Deprecated: None - -:Removed: None - - - - -Compute Component Capabilities -============================== -Required Capabilities ------------------------ -* identity-v2-tokens-create (Keystone) -* identity-v3-tokens-create (Keystone) -* compute-auth-create (Nova) -* compute-auth-get (Nova) -* compute-auth-set (Nova) -* compute-images-create (Nova) -* compute-images-delete (Nova) -* compute-images-get (Nova) -* compute-images-list (Nova) -* compute-instance-actions-get (Nova) -* compute-instance-actions-list (Nova) -* compute-keypairs-create (Nova) -* compute-quotas-get (Nova) -* compute-servers-change (Nova) -* compute-servers-create (Nova) -* compute-servers-delete (Nova) -* compute-servers-get (Nova) -* compute-servers-host (Nova) -* compute-servers-invalid (Nova) -* compute-servers-list (Nova) -* compute-servers-lock (Nova) -* compute-servers-name (Nova) -* compute-servers-reboot (Nova) -* compute-servers-rebuild (Nova) -* compute-servers-resize (Nova) -* compute-servers-stop (Nova) -* compute-servers-update (Nova) -* compute-servers-verify (Nova) -* compute-volume-attach (Nova) -* compute-volume-get (Nova) -* compute-volume-list (Nova) -* images-v2-index (Nova) -* compute-servers-metadata-delete (Nova) -* compute-servers-metadata-get (Nova) -* compute-servers-metadata-list (Nova) -* compute-servers-metadata-set (Nova) -* compute-servers-metadata-update (Nova) - -Advisory Capabilities ------------------------ -None - -Deprecated Capabilities -------------------------- -None - -Removed Capabilities ----------------------- -None - - - - -Object Component Capabilities -============================= -Required Capabilities ------------------------ -* objectstore-object-access (Swift) -* objectstore-object-copy (Swift) -* objectstore-object-create (Swift) -* objectstore-object-delete (Swift) -* objectstore-object-get (Swift) -* objectstore-object-put (Swift) -* objectstore-object-upload (Swift) -* objectstore-object-versioned (Swift) -* objectstore-temp-url-get (Swift) -* identity-v2-tokens-create (Keystone) -* identity-v3-tokens-create (Keystone) - -Advisory Capabilities ------------------------ -None - -Deprecated Capabilities -------------------------- -None - -Removed Capabilities ----------------------- -None - - -Designated Sections -===================================== - -The following designated sections apply to the same releases as -this specification. - -Required Designated Sections ----------------------------- - -* Cinder : Designated sections are the API implementation code -* Glance : Designated sections are the API implementation code and domain - model. -* Keystone : Designation is outlined per API grouping. Identity (user and - group) management APIs will not be designated. API access (with exception of - auth) may be prohibited by policy (resulting in HTTP 403). Designated APIs - include both v2.0 and v3 versions where applicable. -* Nova : By default, designated except scheduler, filter, drivers, API - extensions and networking. -* Swift : Designated sections are proxy server, object server, container - server, account server and select middleware - -Advisory Designated Sections ----------------------------- - -None - -Deprecated Designated Sections ------------------------------- - -None - -Removed Designated Sections ---------------------------- - -None +.. datatemplate:: + :source: ../../../2015.07.json + :template: guidelines.tmpl diff --git a/test-requirements.txt b/test-requirements.txt index d7def617..eaf3557b 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -2,3 +2,4 @@ pygments doc8 oslosphinx sphinx>=1.1.2,!=1.2.0,!=1.3b1,<1.3 +sphinxcontrib.datatemplates