Browse Source

batcave: have -S select the used storage

valid options:
* directory to place 'storage.dat' into
* "redis:" followed by optional host, port and password (seperator=":")
Helge Jung 9 years ago
parent
commit
9f792034d8
1 changed files with 13 additions and 3 deletions
  1. 13 3
      batcave.py

+ 13 - 3
batcave.py

@@ -51,8 +51,9 @@ def get_args():
                         help='API-Server Hostname')
     parser.add_argument('--api-bind-port', type=int, default=8888,
                         help='API-Server Port')
-    parser.add_argument('-S', '--storage-dir', default='.',
-                        help='Path where to store data')
+    parser.add_argument('-S', '--storage', default='.',
+                        help='Path where to store data or ' +
+                        '"redis:[<host>[:<port>[:<password>]]]')
     return parser.parse_args()
 
 
@@ -90,7 +91,16 @@ def main():
     logger = prepare_logging(args)
     logger.info('Starting up')
 
-    storage = FileStorage(args.storage_dir)
+    storage = None
+    storage_target = args.storage
+    if storage_target.startswith('redis:'):
+        redis_opts = storage_target.split(':')
+        redis_host = redis_opts[1] if len(redis_opts) > 1 else 'localhost'
+        redis_port = int(redis_opts[2]) if len(redis_opts) > 2 else 6379
+        redis_pass = redis_opts[3] if len(redis_opts) > 3 else None
+        storage = RedisStorage(redis_host, redis_port, redis_pass)
+    else:
+        storage = FileStorage(args.storage)
     storage.open()
     logger.info('Storage: ' + str(storage))