fuel-ostf/fabfile.py

110 lines
2.5 KiB
Python

from fabric.api import local
def createrole(user='ostf', password='ostf'):
local(('psql -U postgres -c "CREATE ROLE {0} WITH PASSWORD'
'\'{1}\' SUPERUSER CREATEDB LOGIN;"').format(user, password))
def createdb(user='ostf', database='ostf'):
local(
'psql -U postgres -c "CREATE DATABASE {0} WITH OWNER={1};"'
.format(database, user)
)
def dropdb(database='ostf'):
local('psql -U postgres -c "DROP DATABASE {0};"'.format(database))
def deps():
local('python setup.py egg_info && pip install -r *.egg-info/requires.txt')
def devlink():
local('python setup.py develop')
def testdeps():
local('pip install -r test-requires')
def startserver():
local(('ostf-server '
'--dbpath postgresql+psycopg2://ostf:ostf@localhost/ostf '))
def startdebugserver():
local(('ostf-server '
'--debug '
'--nailgun-port=8888 '
'--debug_tests=fuel_plugin/testing/fixture/dummy_tests'))
def startnailgunmimic():
path = 'fuel_plugin/testing/test_utils/nailgun_mimic.py'
local('python {0}'.format(path))
def createmigration(comment):
'''
Supply comment for new alembic revision as a value
for comment argument
'''
config_path = 'fuel_plugin/ostf_adapter/storage/alembic.ini'
local(
'alembic --config {0} revision --autogenerate -m \"{1}\"'
.format(config_path, comment)
)
def migrate(database='ostf'):
path = 'postgresql+psycopg2://ostf:ostf@localhost/{0}'.format(database)
local(
'ostf-server --after-initialization-environment-hook --dbpath {0}'
.format(path)
)
def auth(method='trust', os='ubuntu'):
"""By default postgres doesn't allow auth without password
development without password is more fun
"""
if os == 'centos':
path = '/var/lib/pgsql/data/pg_hba.conf'
elif os == 'ubuntu':
path = '/etc/postgresql/9.1/main/pg_hba.conf'
wrong = '^local.*all.*postgres.*'
right = 'local all postgres {0}'.format(method)
local("sudo sed -i 's/{0}/{1}/' {2}".format(wrong, right, path))
local("sudo service postgresql restart")
def remakedb(database='ostf'):
dropdb(database=database)
createdb(database=database)
migrate(database=database)
def installapp():
deps()
devlink()
testdeps()
def testall():
unit()
integration()
def integration():
local(
('nosetests fuel_plugin/testing/'
'tests/functional/tests.py:AdapterTests -vs')
)
def unit():
local('nosetests fuel_plugin/testing/tests/unit -v')