summaryrefslogtreecommitdiffstats
path: root/cvp/opnfv_testapi/common/config.py
diff options
context:
space:
mode:
Diffstat (limited to 'cvp/opnfv_testapi/common/config.py')
-rw-r--r--cvp/opnfv_testapi/common/config.py79
1 files changed, 79 insertions, 0 deletions
diff --git a/cvp/opnfv_testapi/common/config.py b/cvp/opnfv_testapi/common/config.py
new file mode 100644
index 00000000..75dbc35d
--- /dev/null
+++ b/cvp/opnfv_testapi/common/config.py
@@ -0,0 +1,79 @@
+##############################################################################
+# Copyright (c) 2015 Orange
+# guyrodrigue.koffi@orange.com / koffirodrigue@gmail.com
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+# feng.xiaowei@zte.com.cn remove prepare_put_request 5-30-2016
+##############################################################################
+import ConfigParser
+import argparse
+import os
+import sys
+
+
+class Config(object):
+
+ def __init__(self):
+ self.config_file = None
+ self._set_config_file()
+ self._parse()
+ self._parse_per_page()
+ self.static_path = os.path.join(
+ os.path.dirname(os.path.normpath(__file__)),
+ os.pardir,
+ 'static')
+ self.base_path = "/home/testapi"
+
+ def _parse(self):
+ if not os.path.exists(self.config_file):
+ raise Exception("%s not found" % self.config_file)
+
+ config = ConfigParser.RawConfigParser()
+ config.read(self.config_file)
+ self._parse_section(config)
+
+ def _parse_section(self, config):
+ [self._parse_item(config, section) for section in (config.sections())]
+
+ def _parse_item(self, config, section):
+ [setattr(self, '{}_{}'.format(section, k), self._parse_value(v))
+ for k, v in config.items(section)]
+
+ def _parse_per_page(self):
+ if not hasattr(self, 'api_results_per_page'):
+ self.api_results_per_page = 20
+
+ @staticmethod
+ def _parse_value(value):
+ try:
+ value = int(value)
+ except:
+ if str(value).lower() == 'true':
+ value = True
+ elif str(value).lower() == 'false':
+ value = False
+ return value
+
+ def _set_config_file(self):
+ if not self._set_sys_config_file():
+ self._set_default_config_file()
+
+ def _set_sys_config_file(self):
+ parser = argparse.ArgumentParser()
+ parser.add_argument("-c", "--config-file", dest='config_file',
+ help="Config file location", metavar="FILE")
+ args, _ = parser.parse_known_args(sys.argv)
+ try:
+ self.config_file = args.config_file
+ finally:
+ return self.config_file is not None
+
+ def _set_default_config_file(self):
+ is_venv = os.getenv('VIRTUAL_ENV')
+ self.config_file = os.path.join('/' if not is_venv else is_venv,
+ 'etc/opnfv_testapi/config.ini')
+
+
+CONF = Config()
f='#n229'>229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302