Skip to content

Commit

Permalink
Updated bp keystone-configuration for bp keystone-manage2
Browse files Browse the repository at this point in the history
- Centralized sql_connection method
- Avoided initializing commands that weren't being called

Change-Id: I8231ed4ee4c384f948703b5620acef9f27265f55
  • Loading branch information
dolph authored and ziadsawalha committed Jan 25, 2012
1 parent 23c396d commit 8c6e606
Show file tree
Hide file tree
Showing 10 changed files with 10 additions and 44 deletions.
3 changes: 1 addition & 2 deletions keystone/manage2/__init__.py
Expand Up @@ -44,8 +44,7 @@ def main():
subparser = subparsers.add_parser(module_name,
help=module.Command.__doc__)

cmd = module.Command()
cmd.append_parser(subparser)
module.Command.append_parser(subparser)

# actually parse the command line args or print help
args = parser.parse_args()
Expand Down
11 changes: 7 additions & 4 deletions keystone/manage2/base.py
@@ -1,5 +1,6 @@
import argparse

from keystone import config
from keystone.manage2 import common


Expand All @@ -8,9 +9,6 @@ class BaseCommand(object):

# pylint: disable=W0613
def __init__(self, *args, **kwargs):
if not hasattr(self.__class__, '_args'):
self.__class__._args = {}

self.parser = argparse.ArgumentParser(prog=self.__module__,
description=self.__doc__)
self.append_parser(self.parser)
Expand All @@ -35,7 +33,7 @@ def append_parser(cls, parser):
:param parser: argparse.ArgumentParser
"""
args = cls._args
args = getattr(cls, '_args', {})

for name in args.keys():
try:
Expand All @@ -59,6 +57,11 @@ class BaseSqlalchemyCommand(BaseCommand):
def __init__(self, *args, **kwargs):
super(BaseSqlalchemyCommand, self).__init__(*args, **kwargs)

@staticmethod
def _get_connection_string():
sqla = config.CONF['keystone.backends.sqlalchemy']
return sqla.sql_connection


# pylint: disable=E1101,W0223
class BaseBackendCommand(BaseCommand):
Expand Down
6 changes: 0 additions & 6 deletions keystone/manage2/commands/downgrade_database.py
@@ -1,5 +1,4 @@
from keystone.backends.sqlalchemy import migration
from keystone import config
from keystone.manage2 import base
from keystone.manage2 import common

Expand All @@ -10,11 +9,6 @@
class Command(base.BaseSqlalchemyCommand):
"""Downgrades the database to the specified version"""

@staticmethod
def _get_connection_string():
sqla = config.CONF['keystone.backends.sqlalchemy']
return sqla.sql_connection

@staticmethod
def downgrade_database(version):
"""Downgrade database to the specified version"""
Expand Down
6 changes: 0 additions & 6 deletions keystone/manage2/commands/goto_database.py
@@ -1,5 +1,4 @@
from keystone.backends.sqlalchemy import migration
from keystone import config
from keystone.manage2 import base
from keystone.manage2 import common

Expand All @@ -15,11 +14,6 @@ class Command(base.BaseSqlalchemyCommand):
"""

@staticmethod
def _get_connection_string():
sqla = config.CONF['keystone.backends.sqlalchemy']
return sqla.sql_connection

@staticmethod
def goto_database_version(version):
"""Override database's current migration level"""
Expand Down
6 changes: 0 additions & 6 deletions keystone/manage2/commands/sync_database.py
@@ -1,5 +1,4 @@
from keystone.backends.sqlalchemy import migration
from keystone import config
from keystone.manage2 import base
from keystone.manage2 import common

Expand All @@ -10,11 +9,6 @@
class Command(base.BaseSqlalchemyCommand):
"""Upgrades the database to the latest schema."""

@staticmethod
def _get_connection_string():
sqla = config.CONF['keystone.backends.sqlalchemy']
return sqla.sql_connection

@staticmethod
def sync_database(version=None):
"""Place database under migration control & automatically upgrade"""
Expand Down
6 changes: 0 additions & 6 deletions keystone/manage2/commands/upgrade_database.py
@@ -1,5 +1,4 @@
from keystone.backends.sqlalchemy import migration
from keystone import config
from keystone.manage2 import base
from keystone.manage2 import common

Expand All @@ -10,11 +9,6 @@
class Command(base.BaseSqlalchemyCommand):
"""Upgrades the database to the specified version."""

@staticmethod
def _get_connection_string():
sqla = config.CONF['keystone.backends.sqlalchemy']
return sqla.sql_connection

@staticmethod
def upgrade_database(version):
"""Upgrade database to the specified version"""
Expand Down
6 changes: 0 additions & 6 deletions keystone/manage2/commands/version.py
@@ -1,5 +1,4 @@
from keystone.backends.sqlalchemy import migration
from keystone import config
from keystone import version
from keystone.manage2 import base
from keystone.manage2 import common
Expand Down Expand Up @@ -27,11 +26,6 @@ def get_api_version():
"""Returns a complete API version string"""
return ' '.join([version.API_VERSION, version.API_VERSION_STATUS])

@staticmethod
def _get_connection_string():
sqla = config.CONF['keystone.backends.sqlalchemy']
return sqla.sql_connection

@staticmethod
def get_implementation_version():
"""Returns a complete implementation version string"""
Expand Down
6 changes: 0 additions & 6 deletions keystone/manage2/commands/version_control_database.py
@@ -1,16 +1,10 @@
from keystone.backends.sqlalchemy import migration
from keystone import config
from keystone.manage2 import base


class Command(base.BaseSqlalchemyCommand):
"""Places an existing database under version control."""

@staticmethod
def _get_connection_string():
sqla = config.CONF['keystone.backends.sqlalchemy']
return sqla.sql_connection

@staticmethod
def version_control_database():
"""Place database under migration control"""
Expand Down
2 changes: 1 addition & 1 deletion keystone/manage2/common.py
Expand Up @@ -30,7 +30,7 @@ def _decorator(cls):

def get_options():
# Initialize a parser for our configuration paramaters
parser = optparse.OptionParser("usage", version='%%prog %s'
parser = optparse.OptionParser("Usage", version='%%prog %s'
% version.version())
config.add_common_options(parser)
config.add_log_options(parser)
Expand Down
2 changes: 1 addition & 1 deletion keystone/test/client/test_keystone_manage.py
Expand Up @@ -30,7 +30,7 @@ def test_check_can_call_keystone_manage(self):
]
process = subprocess.Popen(cmd, stdout=subprocess.PIPE)
result = process.communicate()[0]
self.assertIn('Usage', result)
self.assertIn('usage', result.lower())

def test_keystone_manage_calls(self):
"""
Expand Down

0 comments on commit 8c6e606

Please sign in to comment.