Data Service RPC for HPA
[optf/has.git] / conductor / conductor / service.py
1 #
2 # -------------------------------------------------------------------------
3 #   Copyright (c) 2015-2017 AT&T Intellectual Property
4 #
5 #   Licensed under the Apache License, Version 2.0 (the "License");
6 #   you may not use this file except in compliance with the License.
7 #   You may obtain a copy of the License at
8 #
9 #       http://www.apache.org/licenses/LICENSE-2.0
10 #
11 #   Unless required by applicable law or agreed to in writing, software
12 #   distributed under the License is distributed on an "AS IS" BASIS,
13 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 #   See the License for the specific language governing permissions and
15 #   limitations under the License.
16 #
17 # -------------------------------------------------------------------------
18 #
19
20 # import socket
21 import sys
22
23 # from keystoneauth1 import loading as ka_loading
24 from oslo_config import cfg
25 import oslo_i18n
26 from oslo_log import log
27 # from oslo_policy import opts as policy_opts
28 from oslo_reports import guru_meditation_report as gmr
29
30 from conductor.conf import defaults
31 # from conductor import keystone_client
32 from conductor import messaging
33 from conductor import version
34
35 OPTS = [
36     # cfg.StrOpt('host',
37     #            default=socket.gethostname(),
38     #            sample_default='<your_hostname>',
39     #            help='Name of this node, which must be valid in an AMQP '
40     #            'key. Can be an opaque identifier. For ZeroMQ only, must '
41     #            'be a valid host name, FQDN, or IP address.'),
42     # cfg.IntOpt('http_timeout',
43     #            default=600,
44     #            help='Timeout seconds for HTTP requests. Set it to None to '
45     #                 'disable timeout.'),
46     cfg.StrOpt('keyspace',
47                default='conductor',
48                help='Music keyspace for content'),
49     cfg.IntOpt('delay_time',
50                default=2,
51                help='Delay time (Seconds) for MUSIC requests. Set it to 2 seconds '
52                     'by default.'),
53 ]
54 cfg.CONF.register_opts(OPTS)
55
56 # DATA_OPT = cfg.IntOpt('workers',
57 #                       default=1,
58 #                       min=1,
59 #                       help='Number of workers for data service, '
60 #                            'default value is 1.')
61 # cfg.CONF.register_opt(DATA_OPT, 'data')
62 #
63 # PARSER_OPT = cfg.IntOpt('workers',
64 #                         default=1,
65 #                         min=1,
66 #                         help='Number of workers for parser service. '
67 #                              'default value is 1.')
68 # cfg.CONF.register_opt(PARSER_OPT, 'parser')
69 #
70 # SOLVER_OPT = cfg.IntOpt('workers',
71 #                         default=1,
72 #                         min=1,
73 #                         help='Number of workers for solver service. '
74 #                              'default value is 1.')
75 # cfg.CONF.register_opt(SOLVER_OPT, 'solver')
76
77 # keystone_client.register_keystoneauth_opts(cfg.CONF)
78
79
80 def prepare_service(argv=None, config_files=None):
81     if argv is None:
82         argv = sys.argv
83
84     # FIXME(sileht): Use ConfigOpts() instead
85     conf = cfg.CONF
86
87     oslo_i18n.enable_lazy()
88     log.register_options(conf)
89     log_levels = (conf.default_log_levels +
90                   ['futurist=INFO'])
91     log.set_defaults(default_log_levels=log_levels)
92     defaults.set_cors_middleware_defaults()
93     # policy_opts.set_defaults(conf)
94
95     conf(argv[1:], project='conductor', validate_default_values=True,
96          version=version.version_info.version_string(),
97          default_config_files=config_files)
98
99     # ka_loading.load_auth_from_conf_options(conf, "service_credentials")
100
101     log.setup(conf, 'conductor')
102     # NOTE(liusheng): guru cannot run with service under apache daemon, so when
103     # conductor-api running with mod_wsgi, the argv is [], we don't start
104     # guru.
105     if argv:
106         gmr.TextGuruMeditation.setup_autorun(version)
107     messaging.setup()
108     return conf