# 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)