diff --git a/distil/i18n.py b/distil/i18n.py index b04aa7e..0c9d059 100644 --- a/distil/i18n.py +++ b/distil/i18n.py @@ -13,9 +13,9 @@ # License for the specific language governing permissions and limitations # under the License. -from oslo_i18n import * # noqa +import oslo_i18n -_translators = TranslatorFactory(domain='zaqar') +_translators = oslo_i18n.TranslatorFactory(domain='distil') # The primary translation function using the well-known name "_" _ = _translators.primary diff --git a/doc/source/_static/.placeholder b/doc/source/_static/.placeholder new file mode 100644 index 0000000..e69de29 diff --git a/doc/source/conf.py b/doc/source/conf.py new file mode 100644 index 0000000..f62ee84 --- /dev/null +++ b/doc/source/conf.py @@ -0,0 +1,255 @@ +# 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. + +# Distil documentation build configuration file, created by +# sphinx-quickstart on Sat May 1 15:17:47 2010. +# +# This file is execfile()d with the current directory set +# to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import os +import subprocess +import sys +import warnings + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +sys.path.insert(0, os.path.abspath('../../')) +sys.path.insert(0, os.path.abspath('../')) +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.coverage', + 'sphinx.ext.ifconfig', + 'sphinx.ext.graphviz', + 'oslo_config.sphinxconfiggen', + 'openstackdocstheme', + ] + +config_generator_config_file = [ + ('../../etc/os-config-generator/distil.conf', + '_static/distil'), +] + +# 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 + +todo_include_todos = True + +# Add any paths that contain templates here, relative to this directory. +# Changing the path so that the Hudson build output contains GA code +# and the source docs do not contain the code so local, offline sphinx builds +# are "clean." +templates_path = [] +if os.getenv('HUDSON_PUBLISH_DOCS'): + templates_path = ['_ga', '_templates'] +else: + templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'distil' +copyright = u'2010-present, OpenStack Foundation' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +from distil.version import version_info +# The full version, including alpha/beta/rc tags. +release = version_info.release_string() +# The short X.Y version. +version = version_info.version_string() + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of documents that shouldn't be included in the build. +unused_docs = [ + 'api_ext/rst_extension_template', + 'installer', +] + +# List of directories, relative to source directory, that shouldn't be searched +# for source files. +exclude_trees = [] + +# The reST default role (used for this markup: `text`) to use +# for all documents. +#default_role = None + +# 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 = False + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +modindex_common_prefix = ['distil.'] + +# -- Options for man page output ---------------------------------------------- + +# Grouping the document tree for man pages. +# List of tuples 'sourcefile', 'target', u'title', u'Authors name', 'manual' + +# -- 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 = 'openstackdocs' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ["_static"] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +html_last_updated_fmt = '%Y-%m-%d %H:%M' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_use_modindex = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = '' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'distildoc' + + +# -- Options for LaTeX output ------------------------------------------------- + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass +# [howto/manual]). +latex_documents = [ + ('index', 'Distil.tex', u'Distil Documentation', + u'Anso Labs, LLC', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_use_modindex = True + +# -- Options for openstackdocstheme ------------------------------------------- +repository_name = 'openstack/distil' +bug_project = 'distil' +bug_tag = '' \ No newline at end of file diff --git a/doc/source/configuration/configuring.rst b/doc/source/configuration/configuring.rst new file mode 100644 index 0000000..b3168a9 --- /dev/null +++ b/doc/source/configuration/configuring.rst @@ -0,0 +1,36 @@ +.. _basic-configuration: + +Basic Configuration +=================== + +The ``distil.conf`` configuration file is an +`INI file format `_. + +This file is located in ``/etc/distil``. If there is a file ``distil.conf`` in +``~/.distil`` directory, it is used instead of the one in ``/etc/distil`` +directory. When you manually install the Rating service, you must generate +the distil.conf file using the config samples generator located inside distil +installation directory and customize it according to your preferences. + +To generate the sample configuration file ``distil/etc/distil.conf.sample``: + +.. code-block:: console + + # pip install tox + $ cd distil + $ tox -e genconfig + +Where :samp:`{distil}` is your Rating service installation directory. + +Then copy Rating service configuration sample to the directory ``/etc/distil``: + +.. code-block:: console + + # cp etc/distil.conf.sample /etc/distil/distil.conf + +For a list of configuration options, see the tables in this guide. + +.. important:: + + Do not specify quotes around configuration options. + diff --git a/doc/source/configuration/distil.conf b/doc/source/configuration/distil.conf new file mode 100644 index 0000000..812180f --- /dev/null +++ b/doc/source/configuration/distil.conf @@ -0,0 +1,8 @@ +.. _distil.conf: + +---------- +distil.conf +---------- + +.. show-options:: + :config-file: etc/oslo-config-generator/distil.conf diff --git a/doc/source/configuration/index.rst b/doc/source/configuration/index.rst new file mode 100644 index 0000000..9cf4fe5 --- /dev/null +++ b/doc/source/configuration/index.rst @@ -0,0 +1,19 @@ +.. _configuring: + +=================== +Configuration Guide +=================== + +This section provides a list of all possible options for each +configuration file. Refer to :ref:`basic-configuration` for a +detailed guide in getting started with various option settings. + +Distil uses the following configuration files for its various services. + +.. toctree:: + :glob: + :maxdepth: 1 + + * + + diff --git a/doc/source/configuration/sample-configuration.rst b/doc/source/configuration/sample-configuration.rst new file mode 100644 index 0000000..dda0383 --- /dev/null +++ b/doc/source/configuration/sample-configuration.rst @@ -0,0 +1,18 @@ +.. _sample-configuration: + +========================== +Distil Sample Configuration +========================== + +The following are sample configuration files for all Distil services and +utilities. These are generated from code and reflect the current state of code +in the Distil repository. + + +Sample configuration for Distil API +---------------------------------- + +This sample configuration can also be viewed in `distil.conf.sample +<../_static/distil.conf.sample>`_. + +.. literalinclude:: ../_static/distil.conf.sample diff --git a/doc/source/glossary.rst b/doc/source/glossary.rst new file mode 100644 index 0000000..647ec02 --- /dev/null +++ b/doc/source/glossary.rst @@ -0,0 +1,35 @@ +.. + 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. + +======== +Glossary +======== + +Billing Service Concepts +======================== +The Billing Service is a multi-tenant, ERP based implementation that +utilizes a RESTful HTTP interface to provide an clean, simple way to charge +customers using OpenStack on demand. + +.. glossary:: + + Quotation + A quotation is the temporary cost estimation based on the usage. + Invoice + An invoice, is a commercial document issued by a cloud provider, relating + to a sale transaction and indicating the products, quantities, and agreed + prices for products or services the cloud provider had provided the user. + + Credit + Credit is the grant/discount for customers from the cloud provider. + diff --git a/doc/source/index.rst b/doc/source/index.rst new file mode 100644 index 0000000..2d0e7f8 --- /dev/null +++ b/doc/source/index.rst @@ -0,0 +1,69 @@ +.. + 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. + +==================================== +Welcome to the Distil Documentation! +==================================== + + +Project scope +============= + +Distil is a service to provide easy interactions with ERP systems, by exposing +a configurable set of collection tools and transformers to make usable billing +data out of Ceilometer entries. + +Distil provides a rest api to integrate with arbitrary ERP systems, and returns +quotations/invoices as json. What the ranges are, and how Ceilometer data is +aggregated is intended to be configurable, and defined in the configuration +file. + +The Distil data store will prevent overlapping bills for a given tenant and +resource ever being stored, while still allowing for regeneration of a given +invoices. + +Design principles +================= + +Distil, as with all OpenStack projects, is designed with the following +guidelines in mind: + +* **Component-based architecture.** Quickly add new behaviors +* **Highly available and scalable.** Scale to very serious workloads +* **Fault tolerant.** Isolated processes avoid cascading failures +* **Recoverable.** Failures should be easy to diagnose, debug, and rectify +* **Open standards.** Be a reference implementation for a community-driven + + +Contents +-------- +.. toctree:: + :maxdepth: 2 + + user/index + admin/index + install/index + configuration/index + contributor/index + +.. toctree:: + :maxdepth: 1 + + glossary + +Indices and tables +------------------ + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/test-requirements.txt b/test-requirements.txt index e2a2487..1fcb54d 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,11 +1,8 @@ hacking>=0.12.0,!=0.13.0,<0.14 # Apache-2.0 coverage>=4.0,!=4.4 # Apache-2.0 fixtures>=3.0.0 # Apache-2.0/BSD -oslosphinx>=4.7.0 # Apache-2.0 oslotest>=1.10.0 # Apache-2.0 pylint==1.4.5 # GPLv2 -sphinx>=1.1.2,!=1.2.0,<1.3 -sphinxcontrib-httpdomain sqlalchemy-migrate>=0.11.0 # Apache-2.0 testrepository>=0.0.18 # Apache-2.0/BSD testscenarios>=0.4 # Apache-2.0/BSD @@ -13,3 +10,7 @@ testtools>=1.4.0 # MIT WebTest>=2.0 # MIT mock>=2.0 # BSD Flask>=0.10,!=0.11,<1.0 # BSD + +sphinx>=1.6.2 # BSD +sphinxcontrib-httpdomain +openstackdocstheme>=1.11.0 # Apache-2.0 \ No newline at end of file