#5 - Replace class khaganatHTTPServer by OpenNeLHTTPServer

This commit is contained in:
AleaJactaEst 2018-10-13 23:58:36 +02:00
parent 00160cdf5c
commit 8d8f199037
7 changed files with 50 additions and 42 deletions

View file

@ -217,7 +217,7 @@ class Certificate:
'stateOrProvinceName_default = France\n' 'stateOrProvinceName_default = France\n'
'localityName = Locality Name (eg, city)\n' 'localityName = Locality Name (eg, city)\n'
'0.organizationName = Organization Name (eg, company)\n' '0.organizationName = Organization Name (eg, company)\n'
'0.organizationName_default = Khanat\n' '0.organizationName_default = OpenNeL\n'
'organizationalUnitName = Organizational ' 'organizationalUnitName = Organizational '
'Unit Name (eg, section)\n' 'Unit Name (eg, section)\n'
'commonName = Common Name (e.g. server FQDN or YOUR name)\n' 'commonName = Common Name (e.g. server FQDN or YOUR name)\n'
@ -529,9 +529,9 @@ def main(arguments=sys.argv[1:]):
help='stateOrProvinceName for certicate') help='stateOrProvinceName for certicate')
parser.add_argument('--locality_name', default='Paris', parser.add_argument('--locality_name', default='Paris',
help='localityName for certicate') help='localityName for certicate')
parser.add_argument('--organization_name', default='khanat', parser.add_argument('--organization_name', default='OpenNeL',
help='organizationName for certicate') help='organizationName for certicate')
parser.add_argument('--common_name', default='khanat', parser.add_argument('--common_name', default='OpenNeL',
help='commonName for certicate') help='commonName for certicate')
print("--") print("--")
args = parser.parse_args(arguments) args = parser.parse_args(arguments)

View file

@ -1,7 +1,7 @@
#!/usr/bin/python3 #!/usr/bin/python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# script to send command to manager khaganat process # script to send command to manager OpenNeL process
# #
# Copyright (C) 2017 AleaJactaEst # Copyright (C) 2017 AleaJactaEst
# #
@ -41,7 +41,7 @@ This script need configuration file (see below for model)::
address = 127.0.0.1 address = 127.0.0.1
Manipulate manager khaganat Manipulate manager OpenNeL
--------------------------- ---------------------------
We can end some command to manager. We can end some command to manager.
@ -66,15 +66,15 @@ We can end some command to manager.
Example :: Example ::
pyclient --command="START" --program="aes" -c /home/gameserver/cfg/khaganat.cfg --log="info" --show-log-console pyclient --command="START" --program="aes" -c /home/gameserver/cfg/opennel_manager.cfg --log="info" --show-log-console
pyclient --command="STATUS" --program="aes" -c /home/gameserver/cfg/khaganat.cfg --log="debug" --show-log-console pyclient --command="STATUS" --program="aes" -c /home/gameserver/cfg/opennel_manager.cfg --log="debug" --show-log-console
pyclient --command="STDIN" --program="aes" --stdin="help all" -c /home/gameserver/cfg/khaganat.cfg --log="debug" --show-log-console pyclient --command="STDIN" --program="aes" --stdin="help all" -c /home/gameserver/cfg/opennel_manager.cfg --log="debug" --show-log-console
pyclient --command="STDOUT" --program="aes" --firstline=0 -c /home/gameserver/cfg/khaganat.cfg --log="debug" --show-log-console pyclient --command="STDOUT" --program="aes" --firstline=0 -c /home/gameserver/cfg/opennel_manager.cfg --log="debug" --show-log-console
pyclient --command="STOP" --program="aes" -c /home/gameserver/cfg/khaganat.cfg --log="debug" --show-log-console pyclient --command="STOP" --program="aes" -c /home/gameserver/cfg/opennel_manager.cfg --log="debug" --show-log-console
pyclient --command="LIST" -c /home/gameserver/cfg/khaganat.cfg --log="debug" --show-log-console pyclient --command="LIST" -c /home/gameserver/cfg/opennel_manager.cfg --log="debug" --show-log-console
pyclient --command="SHUTDOWN" -c /home/gameserver/cfg/khaganat.cfg --log="debug" --show-log-console pyclient --command="SHUTDOWN" -c /home/gameserver/cfg/opennel_manager.cfg --log="debug" --show-log-console
pyclient --command="STARTALL" -c /home/gameserver/cfg/khaganat.cfg --log="debug" --show-log-console pyclient --command="STARTALL" -c /home/gameserver/cfg/opennel_manager.cfg --log="debug" --show-log-console
pyclient --command="STATUSALL" -c /home/gameserver/cfg/khaganat.cfg --log="debug" --show-log-console pyclient --command="STATUSALL" -c /home/gameserver/cfg/opennel_manager.cfg --log="debug" --show-log-console
You can use curl (to replace this script). You can use curl (to replace this script).
@ -366,6 +366,14 @@ def root(command,
client.send_json({'name': program}, 'POST', "/" + command) client.send_json({'name': program}, 'POST', "/" + command)
elif command == 'STATUS': elif command == 'STATUS':
client.send_json({'name': program}, 'GET', "/" + command) client.send_json({'name': program}, 'GET', "/" + command)
elif command == 'CONFIG':
client.send_json({'name': program}, 'GET', "/" + command)
elif command == 'INFO':
client.send_json({'name': program}, 'GET', "/" + command)
elif command == 'PLAYER':
client.send_json({'name': program}, 'GET', "/" + command)
elif command == 'ADMINCOMMAND':
client.send_json({'name': program}, 'GET', "/" + command)
elif command == 'STDIN': elif command == 'STDIN':
client.send_json({'name': program, 'action': stdin}, 'POST', "/" + command) client.send_json({'name': program, 'action': stdin}, 'POST', "/" + command)
elif command == 'STDOUT': elif command == 'STDOUT':
@ -385,7 +393,7 @@ def main(args=sys.argv[1:]):
:param list args: all arguments ('--help, '--version', ...) :param list args: all arguments ('--help, '--version', ...)
""" """
parser = argparse.ArgumentParser(description='Manipulate khaganat process') parser = argparse.ArgumentParser(description='Manipulate OpenNeL process')
parser.add_argument('--version', action='version', version='%(prog)s ' + __VERSION__) parser.add_argument('--version', action='version', version='%(prog)s ' + __VERSION__)
parser.add_argument('--show-log-console', action='store_true', parser.add_argument('--show-log-console', action='store_true',
help='show message in console', default=False) help='show message in console', default=False)
@ -393,8 +401,8 @@ def main(args=sys.argv[1:]):
default=None, help='log file') default=None, help='log file')
parser.add_argument('--log', parser.add_argument('--log',
default='INFO', help='log level [DEBUG, INFO, WARNING, ERROR') default='INFO', help='log level [DEBUG, INFO, WARNING, ERROR')
parser.add_argument('--command', help='command send to khganat', default='/STATUS') parser.add_argument('--command', help='command send to OpenNeL', default='/STATUS')
parser.add_argument('--program', help='program khaganat id', default='aes') parser.add_argument('--program', help='program OpenNeL id', default='aes')
parser.add_argument('--stdin', help='action send to stdin', default='') parser.add_argument('--stdin', help='action send to stdin', default='')
parser.add_argument('--firstline', type=int, parser.add_argument('--firstline', type=int,
help='define fistline read for log command', default=0) help='define fistline read for log command', default=0)
@ -405,7 +413,7 @@ def main(args=sys.argv[1:]):
'(this option keep current color state)', '(this option keep current color state)',
default=False) default=False)
parser.add_argument('-c', '--conf', type=argparse.FileType('r'), parser.add_argument('-c', '--conf', type=argparse.FileType('r'),
default='khaganat.cfg', help='configuration file') default='opennel_manager.cfg', help='configuration file')
parser.add_argument('-b', '--password-comand-line', action='store_true', parser.add_argument('-b', '--password-comand-line', action='store_true',
help='Use the password from the command line rather than prompting for it.', help='Use the password from the command line rather than prompting for it.',
default=False) default=False)

View file

@ -1,7 +1,7 @@
#!/usr/bin/python3 #!/usr/bin/python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# script to start/stop/status/send command/read log for khaganat process # script to start/stop/status/send command/read log for OpenNeL process
# #
# Copyright (C) 2017 AleaJactaEst # Copyright (C) 2017 AleaJactaEst
# #
@ -88,7 +88,7 @@ This script need configuration file (see below for model)::
Manager Manager
------- -------
Manage all process khaganat Manage all process OpenNeL
Launch this prorgam in background and use clientManager to manipulate process Launch this prorgam in background and use clientManager to manipulate process
Design Design
@ -101,8 +101,8 @@ Design
"Manager" -> "ManageCommand (command 2)"; "Manager" -> "ManageCommand (command 2)";
"ManageCommand (command 2)" -> "read_output (thread2)"; "ManageCommand (command 2)" -> "read_output (thread2)";
"Manager" -> "ServerHttp"; "Manager" -> "ServerHttp";
"ServerHttp" -> "khaganatHTTPServer"; "ServerHttp" -> "OpenNeLHTTPServer";
"khaganatHTTPServer" -> "ManageHttpRequest"; "OpenNeLHTTPServer" -> "ManageHttpRequest";
"ManageHttpRequest" -> "ManageCommand (command 1)" [style=dashed]; "ManageHttpRequest" -> "ManageCommand (command 1)" [style=dashed];
"ManageHttpRequest" -> "ManageCommand (command 2)" [style=dashed]; "ManageHttpRequest" -> "ManageCommand (command 2)" [style=dashed];
} }
@ -145,7 +145,7 @@ http(s) command :
Example :: Example ::
nohup pymanager --log info --filelog /home/gameserver/log/manager.log -c /home/gameserver/cfg/khaganat.cfg 2>/dev/null 1>/dev/null 0</dev/zero & nohup pymanager --log info --filelog /home/gameserver/log/manager.log -c /home/gameserver/cfg/opennel_manager.cfg 2>/dev/null 1>/dev/null 0</dev/zero &
""" """
@ -510,9 +510,9 @@ class ManageHttpRequest(http.server.SimpleHTTPRequestHandler):
self.end_headers() self.end_headers()
class khaganatHTTPServer(ThreadingMixIn, http.server.HTTPServer): class OpenNeLHTTPServer(ThreadingMixIn, http.server.HTTPServer):
""" """
Class khaganatHTTPServer Class OpenNeLHTTPServer
Redefine HTTPServer (adding queue input & queue output, use by ManageHttpRequest) Redefine HTTPServer (adding queue input & queue output, use by ManageHttpRequest)
""" """
def __init__(self, def __init__(self,
@ -554,13 +554,13 @@ class ServerHttp(multiprocessing.Process):
def run(self): def run(self):
server_address = (self.address, self.port) server_address = (self.address, self.port)
httpd = khaganatHTTPServer(self.listQueueIn, httpd = OpenNeLHTTPServer(self.listQueueIn,
self.listQueueOut, self.listQueueOut,
self.listSemaphore, self.listSemaphore,
server_address, server_address,
ManageHttpRequest, ManageHttpRequest,
self.authentification, self.authentification,
self.users) self.users)
if self.method == 'http': if self.method == 'http':
logging.info('http listen') logging.info('http listen')
elif self.method == 'https': elif self.method == 'https':
@ -1350,7 +1350,7 @@ class Manager():
activate_filter, size_max_filter, add_filter, del_filter, activate_filter, size_max_filter, add_filter, del_filter,
autostart, restart_after_crash, restart_delay, egs_filter): autostart, restart_after_crash, restart_delay, egs_filter):
""" """
Thread to manage khaganat program Thread to manage OpenNeL program
""" """
logging.debug("Initialize '%s'" % name) logging.debug("Initialize '%s'" % name)
manageCommand = ManageCommand(name=name, manageCommand = ManageCommand(name=name,
@ -1504,10 +1504,10 @@ def main(args=sys.argv[1:]):
:param list args: all arguments ('--help, '--version', ...) :param list args: all arguments ('--help, '--version', ...)
""" """
parser = argparse.ArgumentParser(description='Manage khaganat process') parser = argparse.ArgumentParser(description='Manage OpenNeL process')
parser.add_argument('--version', action='version', version='%(prog)s ' + __VERSION__) parser.add_argument('--version', action='version', version='%(prog)s ' + __VERSION__)
parser.add_argument('-c', '--conf', type=argparse.FileType('r'), parser.add_argument('-c', '--conf', type=argparse.FileType('r'),
default='khaganat.cfg', help='configuration file') default='opennel_manager.cfg', help='configuration file')
parser.add_argument('--show-log-console', action='store_true', parser.add_argument('--show-log-console', action='store_true',
help='show message in console', default=False) help='show message in console', default=False)
parser.add_argument('--filelog', type=argparse.FileType('wt'), parser.add_argument('--filelog', type=argparse.FileType('wt'),

View file

@ -1,5 +1,5 @@
# #
# Configuration management program khaganat # Configuration management program OpenNeL
# #
# Copyright (C) 2017 AleaJactaEst # Copyright (C) 2017 AleaJactaEst
# #

View file

@ -39,8 +39,8 @@ class TestCertificate(unittest.TestCase):
self.country_name = 'FR' self.country_name = 'FR'
self.state_or_province_name = 'France' self.state_or_province_name = 'France'
self.locality_name = 'Paris' self.locality_name = 'Paris'
self.organization_name = 'khanat' self.organization_name = 'OpenNeL'
self.common_name = 'khanat' self.common_name = 'OpenNeL'
def testInitialize(self): def testInitialize(self):
logfile = tempfile.NamedTemporaryFile(suffix=".log") logfile = tempfile.NamedTemporaryFile(suffix=".log")

View file

@ -1,5 +1,5 @@
# #
# Configuration management program khaganat # Configuration management program OpenNeL
# #
# Copyright (C) 2017 AleaJactaEst # Copyright (C) 2017 AleaJactaEst
# #

View file

@ -75,8 +75,8 @@ class TestManager(unittest.TestCase):
self.country_name = 'FR' self.country_name = 'FR'
self.state_or_province_name = 'France' self.state_or_province_name = 'France'
self.locality_name = 'Paris' self.locality_name = 'Paris'
self.organization_name = 'khanat' self.organization_name = 'OpenNeL'
self.common_name = 'khanat' self.common_name = 'OpenNeL'
self.path = os.path.dirname(os.path.abspath(__file__)) self.path = os.path.dirname(os.path.abspath(__file__))
self.program = os.path.join(self.path, 'simulate_program.py') self.program = os.path.join(self.path, 'simulate_program.py')
self.badprogram = os.path.join(self.path, 'test.cfg') self.badprogram = os.path.join(self.path, 'test.cfg')
@ -674,7 +674,7 @@ class TestManager(unittest.TestCase):
def _runCommand(self, name, command, path, logsize, bufsize, queueIn, queueOut, semaphore): def _runCommand(self, name, command, path, logsize, bufsize, queueIn, queueOut, semaphore):
""" """
Thread to manage khaganat program Thread to manage OpenNeL program
""" """
signal.alarm(10) signal.alarm(10)
manageCommand = Manager.ManageCommand(name=name, manageCommand = Manager.ManageCommand(name=name,