Add maintenance test code
[doctor.git] / doctor_tests / config.py
1 ##############################################################################\r
2 # Copyright (c) 2017 ZTE Corporation and others.\r
3 #\r
4 # All rights reserved. This program and the accompanying materials\r
5 # are made available under the terms of the Apache License, Version 2.0\r
6 # which accompanies this distribution, and is available at\r
7 # http://www.apache.org/licenses/LICENSE-2.0\r
8 ##############################################################################\r
9 import itertools\r
10 \r
11 from oslo_config import cfg\r
12 \r
13 from doctor_tests import alarm\r
14 from doctor_tests import admin_tool\r
15 from doctor_tests import app_manager\r
16 from doctor_tests import consumer\r
17 from doctor_tests import image\r
18 from doctor_tests import instance\r
19 from doctor_tests import installer\r
20 from doctor_tests import network\r
21 from doctor_tests import inspector\r
22 from doctor_tests import monitor\r
23 from doctor_tests import os_clients\r
24 from doctor_tests import profiler_poc\r
25 from doctor_tests import user\r
26 from doctor_tests import scenario\r
27 \r
28 \r
29 def list_opts():\r
30     return [\r
31         ('installer', installer.OPTS),\r
32         ('monitor', monitor.OPTS),\r
33         ('inspector', inspector.OPTS),\r
34         ('consumer', consumer.OPTS),\r
35         ('admin_tool', admin_tool.OPTS),\r
36         ('app_manager', app_manager.OPTS),\r
37         ('DEFAULT', itertools.chain(\r
38             os_clients.OPTS,\r
39             image.OPTS,\r
40             user.OPTS,\r
41             network.OPTS,\r
42             instance.OPTS,\r
43             alarm.OPTS,\r
44             profiler_poc.OPTS,\r
45             scenario.OPTS))\r
46     ]\r
47 \r
48 \r
49 def prepare_conf(args=None, conf=None, config_files=None):\r
50     if conf is None:\r
51         conf = cfg.ConfigOpts()\r
52 \r
53     for group, options in list_opts():\r
54         conf.register_opts(list(options),\r
55                            group=None if group == 'DEFAULT' else group)\r
56 \r
57     conf(args, project='doctor', validate_default_values=True,\r
58          default_config_files=config_files)\r
59 \r
60     return conf\r