
This changes adds the final modifications needed for release v0.0.1 of the PyKMIP library. Packaging and licensing files are updated with current information and some minor file restructuring is done to ensure test suite integrity.
71 lines
2.3 KiB
Python
71 lines
2.3 KiB
Python
# Copyright (c) 2014 The Johns Hopkins University/Applied Physics Laboratory
|
|
# All Rights Reserved.
|
|
#
|
|
# 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 logging
|
|
import optparse
|
|
import sys
|
|
|
|
from thrift.server import TServer
|
|
from thrift.transport import TSocket
|
|
from thrift.transport import TTransport
|
|
|
|
from kmip.core.server import KMIPImpl
|
|
|
|
from kmip.services.kmip_protocol import KMIPProtocolFactory
|
|
from kmip.services.kmip_server import Processor
|
|
|
|
|
|
def run_server(host='127.0.0.1', port=5696):
|
|
logger = logging.getLogger(__name__)
|
|
|
|
handler = KMIPImpl()
|
|
processor = Processor(handler)
|
|
transport = TSocket.TServerSocket(host, port)
|
|
tfactory = TTransport.TBufferedTransportFactory()
|
|
pfactory = KMIPProtocolFactory()
|
|
server = TServer.TSimpleServer(processor, transport, tfactory, pfactory)
|
|
|
|
logger.info('Starting the KMIP server')
|
|
|
|
try:
|
|
server.serve()
|
|
except KeyboardInterrupt:
|
|
logger.info('KeyboardInterrupt received while serving')
|
|
except Exception, e:
|
|
logger.info('Exception received while serving: {0}'.format(e))
|
|
finally:
|
|
transport.close()
|
|
|
|
logger.info('Shutting down KMIP server')
|
|
|
|
|
|
def build_cli_parser():
|
|
parser = optparse.OptionParser(usage="%prog [options]",
|
|
description="Run KMIP Server")
|
|
parser.add_option("-n", "--hostname", action="store", default='127.0.0.1',
|
|
dest="hostname",
|
|
help="Hostname/IP address of platform running the KMIP "
|
|
"server (e.g., localhost, 127.0.0.1)")
|
|
parser.add_option("-p", "--port", action="store", default=5696,
|
|
dest="port", help="Port number for KMIP services")
|
|
return parser
|
|
|
|
if __name__ == '__main__':
|
|
parser = build_cli_parser()
|
|
|
|
opts, args = parser.parse_args(sys.argv[1:])
|
|
|
|
run_server(opts.hostname, opts.port)
|