url = ../armband
branch = .
ignore = dirty
+[submodule "docs/submodules/auto"]
+ path = docs/submodules/auto
+ url = ../auto
+ branch = .
+ ignore = dirty
[submodule "docs/submodules/bottlenecks"]
path = docs/submodules/bottlenecks
url = ../bottlenecks
url = ../storperf
branch = .
ignore = dirty
+[submodule "docs/submodules/stor4nfv"]
+ path = docs/submodules/stor4nfv
+ url = ../stor4nfv
+ branch = .
+ ignore = dirty
[submodule "docs/submodules/ves"]
path = docs/submodules/ves
url = ../ves
url = https://gerrit.opnfv.org/gerrit/calipso
branch = .
ignore = dirty
+[submodule "docs/submodules/stor4nfv"]
+ path = docs/submodules/stor4nfv
+ url = https://gerrit.opnfv.org/gerrit/stor4nfv
+[submodule "docs/submodules/clover"]
+ path = docs/submodules/clover
+ url = https://gerrit.opnfv.org/gerrit/clover
+ branch = .
+ ignore = dirty
--- /dev/null
+FROM ubuntu:14.04
+
+MAINTAINER Julien Zhang <julienjut@gmail.com>
+LABEL version="0.1" Description="OPNFVDocs Docker container"
+
+ARG BRANCH=master
+ARG build=html
+ENV BRANCH=$BRANCH
+ENV build=$build
+
+# Dependencies for sphinx, pip and git
+RUN apt-get update && apt-get install -y \
+ python-pip python-sphinx git
+
+RUN git clone --depth=1 --branch=$BRANCH https://git.opnfv.org/opnfvdocs /opnfvdocs
+RUN pip install -r /opnfvdocs/etc/requirements.txt
+RUN pip install virtualenv
+RUN rm -rf /var/lib/apt-lists/* /root/.cache/pip /opnfvdocs/.git
+
+ADD ./entrypoint.sh /sbin/entrypoint.sh
+RUN chmod 755 /sbin/entrypoint.sh
+
+ENTRYPOINT /sbin/entrypoint.sh
--- /dev/null
+# OPNFVDoc tool readme
+------------------------
+
+This docker container is used for building OPNFV docs from **rst** format files for each feature
+project. The output is just like contents in [opnfvdocs](http://docs.opnfv.org/) website. You can
+review the contents through web browser. Currently *PDF* output is not good enough and it will make
+the container image size 3x larger. PDF output format is not supported in this release.
+
+# Usage
+
+* The default build is *html*, you can run:
+```
+docker run -it --rm -v ./some-opnfv-repo:/docs -v /tmp/output:/output \
+ opnfv/opnfvdocs
+```
+
+* Then if you want to build epub, etc you could pass it as an arg:
+```
+docker run -it --rm -v ./some-opnfv-repo:/docs -v /tmp/output:/output \
+ -e build=epub opnfv/opnfvdocs
+```
+
+## env parameters
+* build: [html | singlehtml | epub]
+
+## two directory parameters
+* /docs: **mandatory**, used for source files
+* /output: **optional**, used for storing the built result
--- /dev/null
+#!/bin/bash -x
+
+if [ ! -d /docs ]; then
+ echo source path /docs not exist and no repo for building
+ exit 1
+fi
+
+cd /docs
+for item in conf.py _templates _static
+do
+ cp -r /opnfvdocs/docs/$item ./
+done
+
+# use the same procedure as verify Job
+# [TODO]create a common macro can be consumed in Docker and Jenkins
+sudo pip install virtualenv
+virtualenv $WORKSPACE/venv
+. $WORKSPACE/venv/bin/activate
+pip install --upgrade pip
+pip freeze
+pip install tox
+tox -edocs
+
+# copy the building result to host
+if [ -d /output ]; then
+ cp -R ./docs/_build /output
+fi
+
:maxdepth: 1
release/overview
+ how-to-use-docs/getting.started
release/installation.introduction
release/userguide.introduction
release/release-notes
:ref:`Apex Release Notes <apex-releasenotes>`
+:ref:`Auto Release Notes <auto-releasenotes>`
+
:ref:`Barometer Release Notes <barometer-releasenotes>`
:ref:`Bottlenecks Release Notes <bottlenecks-releasenotes>`
Feature User Guides
===================
+- :ref:`Auto User Guide <auto-userguide>`
- :ref:`Barometer User Guide <barometer-userguide>`
- :ref:`Doctor User Guide <doctor-userguide>`
- :ref:`Domino User Guide <domino-userguide>`
-Subproject commit e1eda223437eed7bef2bdfa7bef990a6749f1670
+Subproject commit 049cf8ea3e0074fc42bcfd3c23df71517c530ca2
-Subproject commit f7a780a85429d1975e3109e67760865d2ee2226d
+Subproject commit 13c73bfed1188a5e2c7355cf7eb5c5a1da006c22
--- /dev/null
+Subproject commit c74e914c628819473625c3bfd03d4535e6e64bb8
-Subproject commit cae41018b60f6b8c408ea3d766ae6f1e11416c44
+Subproject commit c1ee3631b59009ff61450808e2bd33fe1d4b17f2
-Subproject commit 7be7d9aea103e9bd1073bbb1e8fd7583e5c598c4
+Subproject commit 83119c84b73421144b1e25b7946dc5eeeb19c298
-Subproject commit ce3cbaa4868eeee4740a876f05cf2b4a33c83603
+Subproject commit c4a33d033497629b5e0b2ef1b269742eb26b0502
-Subproject commit c6c19c9d08794f947bd4b48b85a4ff9f18d56634
+Subproject commit 8f3b074fafd2271557a152f43a676abaee6a32ea
--- /dev/null
+Subproject commit d031212e58932602779122ba384495dbefb680fa
-Subproject commit bce23c34f221cdd9a41608c6505b359d99963afe
+Subproject commit 01ff42530757cf99e99b0d63d6daa822b93e1941
-Subproject commit 5ed69809f33e546bf3e06dc285a90e0818c89ceb
+Subproject commit 84ce45c8bf6e03f0373d9c46e0a8b7e0b3faa605
-Subproject commit f4c8d7c8017e26f5dd000b0e576c5de24e31fa29
+Subproject commit c314d9c3a5f522f9b2979ef03b218c852b72cfb3
-Subproject commit 888af5e40c21c1cef22e968c076908f1601c53f2
+Subproject commit 4c1ff363e85c9f49b783c99b6f45dac66b045c60
-Subproject commit ff2a7b3f7de37e64164250b8fa9a623dd061bac5
+Subproject commit 71ba21ff906d4104a81442d4712aac13cf4906d4
-Subproject commit c2174cd6d489b9079faec3523f175725da08f9df
+Subproject commit 9c9a1adc6f2501507a68b1926ea93efcb40782d1
-Subproject commit 2db621767d66b632fab4e2594e4524348484ad56
+Subproject commit 6108496e34d3b875d99cfbb67bd93e32a9b406ec
-Subproject commit 5058fb93bbb60151d74ad2ed7a7886af0b17a34f
+Subproject commit dfcc0745ef76e684593c8284f9dcb81cca2f7959
-Subproject commit 9c6d9f01489f5867ed84a9c04416ecbfce8254d0
+Subproject commit 16ea3c2f27d84ac6f917947b30a36b5985fff3d8
-Subproject commit 9da7ac6718d66b73ba7fc8fc70e656a70e4db766
+Subproject commit 814b34aee2b42bc52229e3dad37e95bf480cddfe
-Subproject commit 38697bcef2049dc3f99e21dbfe7f591c987fb780
+Subproject commit a0f1cb6d759679e66d6da7fcd0471ddca22b5b6f
-Subproject commit 298511bb572ffeb460f7ccbebe06233a17e6b794
+Subproject commit 6226413ca6e1b4c3a52a3deeb66f8f487c2704ae
-Subproject commit e0e7d50a8dbf70117baec66451df7f594a7db233
+Subproject commit 9623c07f59e059ed0b1cdc6fdfec9c7d9996d88d
-Subproject commit d6c75bcf6eb3dd88a2dee1478236dcf09b73daf9
+Subproject commit cabfeecb3259c5e22488756d91b6f72d27c4c18a
-Subproject commit 77b600ef0d64210c1b5fd72581cfe7752fa00c8c
+Subproject commit 02a3385322bad418f2b16854983546a59c3cf919
-Subproject commit 335b8446a9cb142b82a6b5cd1c2231d8185416c9
+Subproject commit 7c28b66a376d8a441c40c2926b218497d63516a3
-Subproject commit 17ff15959005c3c6f72a9b91192de7d54734a005
+Subproject commit b34030013f9af4c40fd79850a85957c842e76595
-Subproject commit 00b16002d3e31c6d692c78907b3885a7aff778cb
+Subproject commit 97733bc25ce3f415dd05bce4aa9f2cee8f2a11e7
-Subproject commit 1d775691155069aa730e671a285e6f25ce37cef1
+Subproject commit 75df705acd886a83a49692bf557f9bdda4c65a4f
-Subproject commit d29f8fa251540b48371f76e47ddba6315607d192
+Subproject commit 3981ce6fed44db09af235100526ab8bc1666e38e
-Subproject commit 37889e4e2703cd3f2ba3514449ec94b3d933538b
+Subproject commit fc149c80771705b894d7a1dac427ce112c3c48b6
-Subproject commit 575a8c98517c587dfdccfad93a6ea119ad689629
+Subproject commit a459dee88ba00d6f8283232ce2159594ae23d22a
-Subproject commit 9cf59ae0a133b0c8ab3907c84ec3c7b962df599a
+Subproject commit 390d31e3a6eaa0968474d19d71ec804d0c6c071a
--- /dev/null
+Subproject commit 957abb60ddc82354234687328460147e19607caf
-Subproject commit 0869c3a314d864d65b2d9faf98653378e411d493
+Subproject commit 6d64efd6d50b728dc03ca465f45e15cbd79ce92a
-Subproject commit 0c7d63282c5c88c7f50eb68b720013e6ff579ba2
+Subproject commit 6e0bfeb045314a0964bffee025889619d427522a
-Subproject commit 23eff36d6a4b9e42ce06152e2b75e50fb7aaa5c5
+Subproject commit 1b37c72a4f4459a7e776503e8bb74e393b246493
-Subproject commit 35ca724899b3e0a8c58af6323dc4622736ee0625
+Subproject commit 25101331450b21ea4ca2c4250c06d290638cd357
For detailed information, please go to http://artifacts.opnfv.org/releng/docs/testapi.html
-The code of the Test API is hosted in the releng repository `[TST2]`_.
+The code of the Test API is hosted in the releng-testresults repository `[TST2]`_.
The static documentation of the Test API can be found at `[TST3]`_.
The Test API has been dockerized and may be installed locally in your lab.
`[TST1]`_: OPNFV web site
-`[TST2]`_: Test utils in Releng
+`[TST2]`_: TestAPI code repository link in releng-testresults
`[TST3]`_: TestAPI autogenerated documentation
`[TST5]`_: Testing group dashboard
.. _`[TST1]`: http://www.opnfv.org
-.. _`[TST2]`: https://git.opnfv.org/functest/tree/releng/utils/tests
+.. _`[TST2]`: https://git.opnfv.org/releng-testresults
.. _`[TST3]`: http://artifacts.opnfv.org/releng/docs/testapi.html
.. _`[TST4]`: http://testresults.opnfv.org/testing/index.html#!/select/visual
.. _`[TST5]`: https://opnfv.biterg.io:443/goto/283dba93ca18e95964f852c63af1d1ba
--- /dev/null
+/dist
+/build
+*.egg-info
+*.pyc
+__pycache__
--- /dev/null
+include *.txt
+include *.rst
+
+recursive-include sphinx_opnfv_theme *
+recursive-include sphinx_opnfv_theme/opnfv *
+
+global-exclude *.pyc
--- /dev/null
+OPNFV Documentation Theme
+=========================
+
+This theme is used for all OPNFV documentation and is released seperatly
+from the documentation itself. It's and extention of the `Sphinx
+Bootstrap Theme`_
+
+Installation
+------------
+
+Here's how to install the theme from PyPI_
+
+To install and configure the theme do the following.
+
+#. Install the theme from pypi::
+
+ $ pip install sphinx_opnfv_theme
+
+#. Configure Sphinx to use the theme:
+
+.. code-block:: python
+
+ # conf.py
+ import sphinx_opnfv_theme
+
+ # ...
+
+ html_theme = 'opnfv'
+ html_theme_path = sphinx_opnfv_theme.get_html_theme_path()
+
+Customization
+-------------
+
+There are no customization specific to this theme yet, but all
+all customizations_ Sphinx Bootstrap Theme are supported.
+
+If you'd like your documentation to match OPNFV's style configure the
+following options for the bootstrap theme::
+
+ html_theme_options = {
+ 'bootswatch_theme': 'journal',
+ 'navbar_sidebarrel': false,
+ 'navbar_title': '',
+ }
+
+.. _Sphinx Bootstrap Theme: https://github.com/ryan-roemer/sphinx-bootstrap-theme
+.. _Pypi: http://pypi.python.org/pypi/sphinx-opnfv-theme/
+.. _customizations: https://github.com/ryan-roemer/sphinx-bootstrap-theme#customization
--- /dev/null
+from setuptools import setup, find_packages
+
+from sphinx_opnfv_theme import __version__
+
+with open('README.rst') as f:
+ readme_text = f.read()
+
+setup(
+ name='sphinx_opnfv_theme',
+ description="OPNFV Theme for Sphinx",
+ long_description=readme_text,
+ url='https://docs.opnfv.org/',
+ author='Trevor Bramwell',
+ author_email='tbramwell@linuxfoundation.org',
+ version=__version__,
+ entry_points = {
+ 'sphinx.html_themes': [
+ 'opnfv = sphinx_opnfv_theme',
+ ]
+ },
+ packages=find_packages(),
+ install_requires = [
+ 'sphinx_bootstrap_theme',
+ 'sphinxcontrib.httpdomain',
+ ],
+ include_package_data=True,
+ package_data = {
+ 'sphinx_opnfv_theme': ['opnfv/**',]
+ },
+)
--- /dev/null
+"""OPNFV Sphinx Theme"""
+
+from os import path
+
+__version__='0.1.1'
+
+
+def get_html_theme_path():
+ """Return list of HTML theme paths."""
+ local_path = path.abspath(path.dirname(__file__))
+ return [local_path]
+
+def setup(app):
+ """Required by Sphinx to create the theme."""
+ app.add_html_theme('opnfv', path.abspath(path.dirname(__file__)))
--- /dev/null
+{# Import the theme's layout. #}
+{% extends "bootstrap/layout.html" %}
+
+{# Custom CSS overrides #}
+{% set css_files = css_files + ['_static/my-styles.css'] %}
--- /dev/null
+<ul class="globaltoc">
+{{ toctree(maxdepth=theme_globaltoc_depth|toint, collapse=False,includehidden=theme_globaltoc_includehidden|tobool) }}
+</ul>
\ No newline at end of file
--- /dev/null
+<center>
+<div class="btn-group" role="group" aria-label="...">
+ {% if prev %}
+ <a class="btn btn-default" href="{{ prev.link|e }}">Prev Page</a>
+ {% else %}
+ <button type="button" class="btn btn-default disabled">Prev Page</button>
+ {% endif %}
+
+ {% if next %}
+ <a class="btn btn-default" href="{{ next.link|e }}">Next Page</a>
+ {% else %}
+ <button type="button" class="btn btn-default disabled">Next Page</button>
+ {% endif %}
+</div>
+</center>
\ No newline at end of file
--- /dev/null
+body {
+ font-family: Helvetica, sans-serif;
+ font-size: 16px;
+}
+
+body a {
+ color: #27CCC0;
+}
+
+body a:hover {
+ color: #676767;
+}
+
+.navbar-brand img {
+ height: 200%;
+ margin-top: -5%;
+}
+
+.navbar, h1, h2, h3, h4, h5, h6 {
+ font-family: Helvetica, sans-serif;
+}
+
+.navbar-text{
+ color: #676767;
+}
+
+.navbar-form.navbar-right{
+ padding: 0;
+}
+
+.navbar-form .form-control{
+ width: 150px;
+}
--- /dev/null
+[theme]
+inherit = bootstrap
+stylesheet = bootstrap-sphinx.css
+pygments_style = tango
+
+# Theme Options exposed by html_theme_options
+[options]