X-Git-Url: https://gerrit.akraino.org/r/gitweb?p=ta%2Fdistributed-state-server.git;a=blobdiff_plain;f=src%2Fdss%2Fserver%2Fdss_config.py;fp=src%2Fdss%2Fserver%2Fdss_config.py;h=0ac41c869eda46c05ed6e9ed77b29ad65bf6ea42;hp=0000000000000000000000000000000000000000;hb=bd5a0a173f1ae9c64782fbf47565cc26ed23b448;hpb=03589032bfdfba119409e7c1c5bfa82ca52f53f7 diff --git a/src/dss/server/dss_config.py b/src/dss/server/dss_config.py new file mode 100644 index 0000000..0ac41c8 --- /dev/null +++ b/src/dss/server/dss_config.py @@ -0,0 +1,93 @@ +# Copyright 2019 Nokia +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +import ConfigParser +from dss.api import dss_error + +SERVER_SECTION = "server" +PLUGIN_SECTION = "plugin" +DEFAULT_CONFIG_FILE="/etc/dss/dss-server/config.ini" + +class Config(object): + """ + Read the ini file. The structure of the file is as follows: + [server] + logging_level = info + logging_destination = console + verbose = true + listening_uds = /var/run/.dss-server + transport_type = dgram + [plugin] + plugin = /opt/dss-server/etcd.py + config = /etc/dss-server/etcd.ini + """ + + def __init__(self, config_file = DEFAULT_CONFIG_FILE): + try: + # server + self.logging_level = None + self.logging_destination = None + self.verbose = None + self.listening_uds = None + self.transport_type = None + + # plugin + self.plugin = None + self.plugin_config = None + + config = ConfigParser.ConfigParser() + config.read([config_file]) + + self.logging_level = config.get(SERVER_SECTION, "logging_level") + self.logging_destination = config.get(SERVER_SECTION, "logging_destination") + self.verbose = config.get(SERVER_SECTION, "verbose") + self.listening_uds = config.get(SERVER_SECTION, "listening_uds") + self.transport_type = config.get(SERVER_SECTION, "transport_type") + + self.plugin = config.get(PLUGIN_SECTION, "plugin") + self.plugin_config = config.get(PLUGIN_SECTION, "config") + + + except Exception as exp: + raise dss_error.Error(str(exp)) + + def get_logging_level(self): + return self.logging_level + + def get_logging_destination(self): + return self.logging_destination + + def get_verbose(self): + return self.verbose + + def get_listening_uds(self): + return self.listening_uds + + def get_plugin(self): + return self.plugin + + def get_plugin_config(self): + return self.plugin_config + + def get_transport_type(self): + return self.transport_type + + +if __name__ == "__main__": + import sys + try: + config = Config(sys.argv[1]) + except dss_error.Error as exp: + print("Got exception %s" % exp)