969d829f234e000bb57aecc8a981d320fe855423
[doctor.git] / 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 import alarm\r
14 import consumer\r
15 import image\r
16 import instance\r
17 import network\r
18 import inspector\r
19 import os_clients\r
20 import user\r
21 \r
22 \r
23 def list_opts():\r
24     return [\r
25         ('consumer', consumer.OPTS),\r
26         ('inspector', inspector.OPTS),\r
27         ('DEFAULT', itertools.chain(\r
28             os_clients.OPTS,\r
29             image.OPTS,\r
30             user.OPTS,\r
31             network.OPTS,\r
32             instance.OPTS,\r
33             alarm.OPTS))\r
34     ]\r
35 \r
36 \r
37 def prepare_conf(args=None, conf=None, config_files=None):\r
38     if conf is None:\r
39         conf = cfg.ConfigOpts()\r
40 \r
41     for group, options in list_opts():\r
42         conf.register_opts(list(options),\r
43                            group=None if group == 'DEFAULT' else group)\r
44 \r
45     conf(args, project='doctor', validate_default_values=True,\r
46          default_config_files=config_files)\r
47 \r
48     return conf\r