#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'
'localityName = Locality Name (eg, city)\n'
'0.organizationName = Organization Name (eg, company)\n'
'0.organizationName_default = Khanat\n'
'0.organizationName_default = OpenNeL\n'
'organizationalUnitName = Organizational '
'Unit Name (eg, section)\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')
parser.add_argument('--locality_name', default='Paris',
help='localityName for certicate')
parser.add_argument('--organization_name', default='khanat',
parser.add_argument('--organization_name', default='OpenNeL',
help='organizationName for certicate')
parser.add_argument('--common_name', default='khanat',
parser.add_argument('--common_name', default='OpenNeL',
help='commonName for certicate')
print("--")
args = parser.parse_args(arguments)

View file

@ -1,7 +1,7 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
#
# script to send command to manager khaganat process
# script to send command to manager OpenNeL process
#
# Copyright (C) 2017 AleaJactaEst
#
@ -41,7 +41,7 @@ This script need configuration file (see below for model)::
address = 127.0.0.1
Manipulate manager khaganat
Manipulate manager OpenNeL
---------------------------
We can end some command to manager.
@ -66,15 +66,15 @@ We can end some command to manager.
Example ::
pyclient --command="START" --program="aes" -c /home/gameserver/cfg/khaganat.cfg --log="info" --show-log-console
pyclient --command="STATUS" --program="aes" -c /home/gameserver/cfg/khaganat.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="STDOUT" --program="aes" --firstline=0 -c /home/gameserver/cfg/khaganat.cfg --log="debug" --show-log-console
pyclient --command="STOP" --program="aes" -c /home/gameserver/cfg/khaganat.cfg --log="debug" --show-log-console
pyclient --command="LIST" -c /home/gameserver/cfg/khaganat.cfg --log="debug" --show-log-console
pyclient --command="SHUTDOWN" -c /home/gameserver/cfg/khaganat.cfg --log="debug" --show-log-console
pyclient --command="STARTALL" -c /home/gameserver/cfg/khaganat.cfg --log="debug" --show-log-console
pyclient --command="STATUSALL" -c /home/gameserver/cfg/khaganat.cfg --log="debug" --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/opennel_manager.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/opennel_manager.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/opennel_manager.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/opennel_manager.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).
@ -366,6 +366,14 @@ def root(command,
client.send_json({'name': program}, 'POST', "/" + command)
elif command == 'STATUS':
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':
client.send_json({'name': program, 'action': stdin}, 'POST', "/" + command)
elif command == 'STDOUT':
@ -385,7 +393,7 @@ def main(args=sys.argv[1:]):
: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('--show-log-console', action='store_true',
help='show message in console', default=False)
@ -393,8 +401,8 @@ def main(args=sys.argv[1:]):
default=None, help='log file')
parser.add_argument('--log',
default='INFO', help='log level [DEBUG, INFO, WARNING, ERROR')
parser.add_argument('--command', help='command send to khganat', default='/STATUS')
parser.add_argument('--program', help='program khaganat id', default='aes')
parser.add_argument('--command', help='command send to OpenNeL', default='/STATUS')
parser.add_argument('--program', help='program OpenNeL id', default='aes')
parser.add_argument('--stdin', help='action send to stdin', default='')
parser.add_argument('--firstline', type=int,
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)',
default=False)
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',
help='Use the password from the command line rather than prompting for it.',
default=False)

View file

@ -1,7 +1,7 @@
#!/usr/bin/python3
# -*- 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
#
@ -88,7 +88,7 @@ This script need configuration file (see below for model)::
Manager
-------
Manage all process khaganat
Manage all process OpenNeL
Launch this prorgam in background and use clientManager to manipulate process
Design
@ -101,8 +101,8 @@ Design
"Manager" -> "ManageCommand (command 2)";
"ManageCommand (command 2)" -> "read_output (thread2)";
"Manager" -> "ServerHttp";
"ServerHttp" -> "khaganatHTTPServer";
"khaganatHTTPServer" -> "ManageHttpRequest";
"ServerHttp" -> "OpenNeLHTTPServer";
"OpenNeLHTTPServer" -> "ManageHttpRequest";
"ManageHttpRequest" -> "ManageCommand (command 1)" [style=dashed];
"ManageHttpRequest" -> "ManageCommand (command 2)" [style=dashed];
}
@ -145,7 +145,7 @@ http(s) command :
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()
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)
"""
def __init__(self,
@ -554,13 +554,13 @@ class ServerHttp(multiprocessing.Process):
def run(self):
server_address = (self.address, self.port)
httpd = khaganatHTTPServer(self.listQueueIn,
self.listQueueOut,
self.listSemaphore,
server_address,
ManageHttpRequest,
self.authentification,
self.users)
httpd = OpenNeLHTTPServer(self.listQueueIn,
self.listQueueOut,
self.listSemaphore,
server_address,
ManageHttpRequest,
self.authentification,
self.users)
if self.method == 'http':
logging.info('http listen')
elif self.method == 'https':
@ -1350,7 +1350,7 @@ class Manager():
activate_filter, size_max_filter, add_filter, del_filter,
autostart, restart_after_crash, restart_delay, egs_filter):
"""
Thread to manage khaganat program
Thread to manage OpenNeL program
"""
logging.debug("Initialize '%s'" % name)
manageCommand = ManageCommand(name=name,
@ -1504,10 +1504,10 @@ def main(args=sys.argv[1:]):
: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('-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',
help='show message in console', default=False)
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
#

View file

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

View file

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

View file

@ -75,8 +75,8 @@ class TestManager(unittest.TestCase):
self.country_name = 'FR'
self.state_or_province_name = 'France'
self.locality_name = 'Paris'
self.organization_name = 'khanat'
self.common_name = 'khanat'
self.organization_name = 'OpenNeL'
self.common_name = 'OpenNeL'
self.path = os.path.dirname(os.path.abspath(__file__))
self.program = os.path.join(self.path, 'simulate_program.py')
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):
"""
Thread to manage khaganat program
Thread to manage OpenNeL program
"""
signal.alarm(10)
manageCommand = Manager.ManageCommand(name=name,