Add support for cloud profiles in config, closes #7
Project: http://git-wip-us.apache.org/repos/asf/cloudstack-gcestack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack-gcestack/commit/d0cb4ffa Tree: http://git-wip-us.apache.org/repos/asf/cloudstack-gcestack/tree/d0cb4ffa Diff: http://git-wip-us.apache.org/repos/asf/cloudstack-gcestack/diff/d0cb4ffa Branch: refs/heads/master Commit: d0cb4ffab4873f5fa904c4a90214e7852d9e0987 Parents: 95fd991 Author: BroganD1993 <darrenbro...@hotmail.com> Authored: Sun Jun 22 16:47:00 2014 +0100 Committer: BroganD1993 <darrenbro...@hotmail.com> Committed: Sun Jun 22 16:47:00 2014 +0100 ---------------------------------------------------------------------- gstack/__init__.py | 22 ++++++++++++++++++++-- gstack/configure.py | 24 ++++++++++++++++++++++-- 2 files changed, 42 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack-gcestack/blob/d0cb4ffa/gstack/__init__.py ---------------------------------------------------------------------- diff --git a/gstack/__init__.py b/gstack/__init__.py index bc6b8ed..c4e0c6e 100644 --- a/gstack/__init__.py +++ b/gstack/__init__.py @@ -19,6 +19,7 @@ import os import sys +import argparse from flask import Flask from ConfigParser import SafeConfigParser @@ -26,6 +27,21 @@ from ConfigParser import SafeConfigParser from gstack.core import db +def _generate_args(): + parser = argparse.ArgumentParser() + + parser.add_argument( + 'profile', + help='The profile to run gstack with, default is initial', + default='initial', + nargs='?' + ) + + args = parser.parse_args() + + return vars(args) + + def _load_config_file(): config_file = os.path.join( os.path.expanduser('~'), @@ -49,7 +65,7 @@ def _load_database(): return 'sqlite:///' + database_file -def _config_from_config_profile(config_file, profile='initial'): +def _config_from_config_profile(config_file, profile): config = SafeConfigParser() config.read(config_file) @@ -65,9 +81,11 @@ def configure_app(settings=None): if settings: app.config.from_object(settings) else: + args = _generate_args() + profile = args.pop('profile') config_file = _load_config_file() database_uri = _load_database() - _config_from_config_profile(config_file) + _config_from_config_profile(config_file, profile) app.config['SQLALCHEMY_DATABASE_URI'] = database_uri http://git-wip-us.apache.org/repos/asf/cloudstack-gcestack/blob/d0cb4ffa/gstack/configure.py ---------------------------------------------------------------------- diff --git a/gstack/configure.py b/gstack/configure.py index 82f3f02..d67cf73 100644 --- a/gstack/configure.py +++ b/gstack/configure.py @@ -18,6 +18,7 @@ import os +import argparse import ConfigParser from alembic import command @@ -39,13 +40,32 @@ def _create_config_folder(): def _create_config_file(config_folder): + args = _generate_args() + profile = args.pop('profile') config_file_path = config_folder + '/gstack.conf' - config = _modify_config_profile(config_file_path) + config = _modify_config_profile(config_file_path, profile) config_file = open(config_file_path, 'w+') config.write(config_file) -def _modify_config_profile(config_file, profile='initial'): +def _generate_args(): + parser = argparse.ArgumentParser( + 'Command line utility for configuring gstack' + ) + + parser.add_argument( + 'profile', + help='The profile to configure, default is initial', + default='initial', + nargs='?' + ) + + args = parser.parse_args() + + return vars(args) + + +def _modify_config_profile(config_file, profile): config = ConfigParser.SafeConfigParser() config.read(config_file)