Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Python JavaScript Shell

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
doc
etc/nova-billing
nova_billing
redhat
tests
.gear-rules
.gitignore
COPYING
README
buildout.cfg
nova-billing.spec
setup.py

README

Overview
===========================

The billing server stores instance state information (creation, stopping,
suspending, etc.) in a database and generates reports accessed by REST API.


Configuration
===========================

By default, the billing server uses ``/var/lib/nova/nova_billing.sqlite`` database 
(parameter ``billing_sql_connection``) and port 8787 (parameter ``billing_listen_port``)
that can be changed in ``/etc/nova/nova.conf``.

The server saves logs to ``/var/log/nova/nova-billing.log``.


RPM Building
===========================

Clone nova-billing git repository, rename the top dir to nova-billing-0.0.2,
and tar it to nova-billing-0.0.2.tar.gz. Place it to rpmbuild/SOURCES
directory and run::

    $ rpmbuild -ba nova-billing.spec


Quickstart
===========================

Install the package::

    # yum install nova-billing

Start the server::

    # /etc/init.d/nova-billing start

Now instance state changes will be stored to a database.

Try to run or terminate an instance and check that the daemon returns reports
(replace ``999888777666`` with a valid Admin's token):

.. code-block:: bash

    $ curl http://localhost:8787/projects -H "X-Auth-Token: 999888777666" | python -mjson.tool

Its output should look like this:

.. code-block:: javascript

    {
        "period_end": "2012-02-01T00:00:00Z", 
        "period_start": "2012-01-01T00:00:00Z", 
        "projects": [
            {
                "instances": {
                    "count": 7, 
                    "usage": {
                        "local_gb_h": 68495.83333333333, 
                        "memory_mb_h": 7013973.333333333, 
                        "vcpus_h": 3424.7916666666665
                    }
                }, 
                "id": "1", 
                "name": "systenant",
                "url": "http://127.0.0.1:8787/projects/systenant"
            }
        ]
    }
Something went wrong with that request. Please try again.