Feature 11037 Change default NBI port
[osm/osmclient.git] / osmclient / client.py
1 # Copyright 2017-2018 Sandvine
2 # Copyright 2018 Telefonica
3 #
4 # All Rights Reserved.
5 #
6 # Licensed under the Apache License, Version 2.0 (the "License"); you may
7 # not use this file except in compliance with the License. You may obtain
8 # a copy of the License at
9 #
10 # http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15 # License for the specific language governing permissions and limitations
16 # under the License.
17
18 """
19 OSM client entry point
20 """
21
22 from osmclient.sol005 import client as sol005client
23 import logging
24 import verboselogs
25
26 # pylint: disable=E1101
27 verboselogs.install()
28
29
30 def Client(version=1, host=None, *args, **kwargs):
31 log_format_simple = "%(levelname)s %(message)s"
32 log_format_complete = "%(asctime)s %(levelname)s %(name)s %(filename)s:%(lineno)s %(funcName)s(): %(message)s"
33 log_formatter_simple = logging.Formatter(
34 log_format_simple, datefmt="%Y-%m-%dT%H:%M:%S"
35 )
36 handler = logging.StreamHandler()
37 handler.setFormatter(log_formatter_simple)
38 logger = logging.getLogger("osmclient")
39 logger.setLevel(level=logging.WARNING)
40 logger.addHandler(handler)
41 verbose = kwargs.get("verbose", 0)
42 if verbose > 0:
43 log_formatter = logging.Formatter(
44 log_format_complete, datefmt="%Y-%m-%dT%H:%M:%S"
45 )
46 # handler = logging.StreamHandler()
47 handler.setFormatter(log_formatter)
48 # logger.addHandler(handler)
49 if verbose == 1:
50 logger.setLevel(level=logging.INFO)
51 elif verbose == 2:
52 logger.setLevel(level=logging.VERBOSE)
53 elif verbose > 2:
54 logger.setLevel(level=logging.DEBUG)
55 if version == 1:
56 return sol005client.Client(host, *args, **kwargs)
57 else:
58 raise Exception("Unsupported client version")