Bring project up to OS standards
Change-Id: Id076465fb00bdb3214704b2f0cadf7ceea5dc31a
This commit is contained in:
parent
2f1b986e8f
commit
9b29f1ce50
4
.gitreview
Normal file
4
.gitreview
Normal file
@ -0,0 +1,4 @@
|
||||
[gerrit]
|
||||
host=review.openstack.org
|
||||
port=29418
|
||||
project=stackforge/billingstack.git
|
26
README.md
26
README.md
@ -1,26 +1,8 @@
|
||||
billingstack
|
||||
BillingStack
|
||||
============
|
||||
|
||||
What is Billingstack?
|
||||
BillingStack is a convergence of efforts done in the previous started Bufunfa
|
||||
project and the BillingStack Grails (Java) version by Luis Gervaso.
|
||||
|
||||
The goal is to provide a free alternative to anyone that has a need for a
|
||||
subscription based billingsystem with features compared to other popular ones.
|
||||
|
||||
|
||||
Features include:
|
||||
* Plans - Collections of Products like Compute Gold or similar
|
||||
* Products - A Compute server for example
|
||||
* Merchants - Multi-Tenancy via Merchants where the Merchant is the Tenant of
|
||||
the application and can have multiple Customers, it's own
|
||||
settings etc.
|
||||
|
||||
* Plugin based Storage API - The Storage API is pluggable and other backends
|
||||
can be added.
|
||||
* REST API - Currently based on Pecan for V1.
|
||||
|
||||
Site: www.billingstack.org
|
||||
|
||||
Docs: http://billingstack.rtfd.org
|
||||
Github: http://github.com/billingstack/billingstack
|
||||
Bugs: http://github.com/billingstack/billingstack
|
||||
Github: http://github.com/stackforge/billingstack
|
||||
Bugs: http://launchpad.net/billingstack
|
||||
|
@ -15,13 +15,10 @@
|
||||
A Usage plugin using sqlalchemy...
|
||||
"""
|
||||
from oslo.config import cfg
|
||||
from sqlalchemy import Column
|
||||
from sqlalchemy import Unicode, Float, DateTime
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
|
||||
from billingstack.openstack.common import log as logging
|
||||
from billingstack.biller.storage import Connection, StorageEngine
|
||||
from billingstack.sqlalchemy.types import UUID
|
||||
from billingstack.sqlalchemy import api, model_base, session
|
||||
|
||||
|
||||
|
@ -18,7 +18,6 @@ from billingstack import exceptions
|
||||
from billingstack import utils as common_utils
|
||||
from billingstack.sqlalchemy import utils as db_utils, api
|
||||
from billingstack.sqlalchemy.session import SQLOPTS
|
||||
from billingstack.storage import base
|
||||
from billingstack.central.storage import Connection, StorageEngine
|
||||
from billingstack.central.storage.impl_sqlalchemy import models
|
||||
|
||||
|
@ -23,14 +23,18 @@ class ProviderTestCase(TestCase):
|
||||
|
||||
def test_create_account(self):
|
||||
expected = self.pgp.create_account(self.customer)
|
||||
actual = self.pgp.get_account(self.customer['id'])
|
||||
self.assertEqual(expected['id'], actual['id'])
|
||||
|
||||
def test_list_accounts(self):
|
||||
expected = self.pgp.create_account(self.customer)
|
||||
self.pgp.create_account(self.customer)
|
||||
actual = self.pgp.list_accounts()
|
||||
self.assertLen(0, actual)
|
||||
|
||||
def test_get_account(self):
|
||||
expected = self.pgp.create_account(self.customer)
|
||||
actual = self.pgp.get_account(self.customer['id'])
|
||||
self.assertEqual(expected['id'], actual['id'])
|
||||
|
||||
def test_delete_account(self):
|
||||
data = self.pgp.create_account(self.customer)
|
||||
|
9
setup.py
9
setup.py
@ -58,13 +58,16 @@ setup(
|
||||
cmdclass=common_setup.get_cmdclass(),
|
||||
entry_points=textwrap.dedent("""
|
||||
[billingstack.central.storage]
|
||||
sqlalchemy = billingstack.central.storage.impl_sqlalchemy:SQLAlchemyEngine
|
||||
sqlalchemy = billingstack.central.storage.impl_sqlalchemy\
|
||||
:SQLAlchemyEngine
|
||||
|
||||
[billingstack.biller.storage]
|
||||
sqlalchemy = billingstack.biller.storage.impl_sqlalchemy:SQLAlchemyEngine
|
||||
sqlalchemy = billingstack.biller.storage.impl_sqlalchemy\
|
||||
:SQLAlchemyEngine
|
||||
|
||||
[billingstack.rater.storage]
|
||||
sqlalchemy = billingstack.rater.storage.impl_sqlalchemy:SQLAlchemyEngine
|
||||
sqlalchemy = billingstack.rater.storage.impl_sqlalchemy\
|
||||
:SQLAlchemyEngine
|
||||
|
||||
[billingstack.payment_gateway]
|
||||
dummy = billingstack.payment_gateway.dummy:DummyProvider
|
||||
|
@ -1,17 +1,15 @@
|
||||
# This file is managed by openstack-depends
|
||||
argparse
|
||||
cliff
|
||||
eventlet
|
||||
extras
|
||||
Flask
|
||||
iso8601>=0.1.4
|
||||
oslo.config>=1.1.0
|
||||
Paste
|
||||
PasteDeploy
|
||||
eventlet
|
||||
stevedore
|
||||
argparse
|
||||
-e hg+https://bitbucket.org/cdevienne/wsme/#egg=wsme
|
||||
pycountry
|
||||
cliff
|
||||
#http://tarballs.openstack.org/oslo-config/oslo-config-master.tar.gz#egg=oslo-config
|
||||
oslo.config>=1.1.0
|
||||
|
||||
# From OpenStack Common
|
||||
routes>=1.12.3
|
||||
iso8601>=0.1.4
|
||||
stevedore
|
||||
WebOb>=1.0.8
|
||||
extras
|
||||
wsme
|
||||
|
@ -1,11 +1,12 @@
|
||||
unittest2
|
||||
nose
|
||||
openstack.nose_plugin
|
||||
nosehtmloutput
|
||||
# This file is managed by openstack-depends
|
||||
Babel>=0.9.6
|
||||
coverage
|
||||
docutils==0.9.1 # for bug 1091333, remove after sphinx >1.1.3 is released.
|
||||
mock
|
||||
mox
|
||||
Babel>=0.9.6
|
||||
nose
|
||||
nosehtmloutput
|
||||
openstack.nose_plugin
|
||||
sphinx
|
||||
sphinxcontrib-httpdomain
|
||||
docutils==0.9.1 # for bug 1091333, remove after sphinx >1.1.3 is released.
|
||||
unittest2
|
||||
|
Loading…
x
Reference in New Issue
Block a user