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)
 

Reply via email to