# 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. # from dss.server import dss_config from dss.server import dss_server from dss.server import dss_logger from dss.server import dss_rpc_processor from dss.server import dss_get_handler from dss.server import dss_get_domain_handler from dss.server import dss_get_domains_handler from dss.server import dss_set_handler from dss.server import dss_delete_handler from dss.server import dss_delete_domain_handler from dss.server import dss_plugin_loader import logging def _main(config): #initialize config conf = dss_config.Config(config) #initialize logger logger = dss_logger.Logger(conf.get_logging_destination(), conf.get_verbose(), conf.get_logging_level()) #initialize plugin logging.info('Initializing dss plugin') plugin = dss_plugin_loader.DSSPluginLoader(conf) #initialize rpc processor logging.info('Initializing rpc processor') rpcprocessor = dss_rpc_processor.RPCProcessor() #adding rpc handlers logging.info('Adding RPC handlers') gethandler = dss_get_handler.GetHandler(plugin) rpcprocessor.add_handler(gethandler) getdomainhandler = dss_get_domain_handler.GetDomainHandler(plugin) rpcprocessor.add_handler(getdomainhandler) getdomainshandler = dss_get_domains_handler.GetDomainsHandler(plugin) rpcprocessor.add_handler(getdomainshandler) sethandler = dss_set_handler.SetHandler(plugin) rpcprocessor.add_handler(sethandler) deletehandler = dss_delete_handler.DeleteHandler(plugin) rpcprocessor.add_handler(deletehandler) deletedomainhandler = dss_delete_domain_handler.DeleteDomainHandler(plugin) rpcprocessor.add_handler(deletedomainhandler) #initialize tcp server logging.info("Initializing tcp server") server = dss_server.Server(conf, rpcprocessor) logging.info('Waiting for TCP requests') server.start() logging.info('TCP server stopped') logging.info('Exiting, bye bye...') def main(): import sys import traceback import argparse parser = argparse.ArgumentParser(description='dss-server', prog=sys.argv[0]) parser.add_argument('--config', required=False, dest='config', metavar='CONFIG', default='/etc/dss-server/config.ini', help='The dss server configuration file', type=str, action='store') try: result = parser.parse_args(sys.argv[1:]) _main(result.config) except Exception as exp: print("Failed with error %s" % exp) traceback.print_exc() sys.exit(1) print("Exiting...") sys.exit(0) if __name__ == '__main__': main()