197 lines
5.2 KiB
Markdown
197 lines
5.2 KiB
Markdown
OpenNel pyManager project
|
|
=========================
|
|
|
|
This projects does aim to make tools to manipulate the MMORPG Khanat.
|
|
|
|
Khanat is open source and released under the terms of the GNU Affero General Public License 3.0 (GNU/AGPLv3) for the source code and the Creative Commons Attributions-ShareAlike 3.0 (CC-BY-SA) for the art assets. Which means you can create your own game using Khanat OpenNel, for more information on doing so check out Creating Your Own Game Using Khanat OpenNel.
|
|
|
|
|
|
https://khaganat.net/wikhan/fr:collabo_pymanager
|
|
|
|
Master:
|
|
[![pipeline status](https://git.khaganat.net/khaganat/mmorpg_khanat/opennel-pymanager/badges/master/pipeline.svg)](https://git.khaganat.net/khaganat/mmorpg_khanat/opennel-pymanager/commits/master)
|
|
[![coverage report](https://git.khaganat.net/khaganat/mmorpg_khanat/opennel-pymanager/badges/master/coverage.svg)](https://git.khaganat.net/khaganat/mmorpg_khanat/opennel-pymanager/commits/master)
|
|
|
|
|
|
Develop:
|
|
[![pipeline status](https://git.khaganat.net/khaganat/mmorpg_khanat/opennel-pymanager/badges/develop/pipeline.svg)](https://git.khaganat.net/khaganat/mmorpg_khanat/opennel-pymanager/commits/develop)
|
|
[![coverage report](https://git.khaganat.net/khaganat/mmorpg_khanat/opennel-pymanager/badges/develop/coverage.svg)](https://git.khaganat.net/khaganat/mmorpg_khanat/opennel-pymanager/commits/develop)
|
|
|
|
|
|
Prepare our environment
|
|
=======================
|
|
|
|
# Install
|
|
|
|
apt-get install python3 python3-setuptools python3-virtualenv python3-stdeb python3-all python3-coverage python3-pep8 python3-sphinx python3-pip graphviz python3-bcrypt
|
|
apt-get install autogen autoconf automake fakeroot
|
|
|
|
# Check
|
|
|
|
cd opennel-pymanager
|
|
make
|
|
|
|
# Source package
|
|
|
|
cd opennel-pymanager
|
|
make sdist
|
|
# result at
|
|
ls dist/pymanager-*.tar.gz
|
|
|
|
# Python package
|
|
|
|
cd opennel-pymanager
|
|
make bdist
|
|
# result at
|
|
ls dist/pymanager-*.tar.gz
|
|
|
|
# Wheel package
|
|
|
|
cd opennel-pymanager
|
|
make bdist_wheel
|
|
# result at
|
|
ls dist/pymanager-*.whl
|
|
|
|
# Test
|
|
|
|
cd opennel-pymanager
|
|
make test
|
|
|
|
# Coverage
|
|
|
|
cd opennel-pymanager
|
|
make coverage
|
|
# result at
|
|
ls docs/coverage/
|
|
|
|
# Generate Html Documentation :
|
|
|
|
cd opennel-pymanager
|
|
make htmldoc
|
|
# result at
|
|
ls docs/build/
|
|
|
|
# Debian package:
|
|
|
|
cd opennel-pymanager
|
|
make builddeb
|
|
# result at
|
|
ls ../python3-opennel-pymanager_*_all.deb
|
|
|
|
Example:
|
|
=======================
|
|
|
|
# Clone
|
|
|
|
``` sh
|
|
git clone https://git.khaganat.net/khaganat/mmorpg_khanat/opennel-pymanager.git
|
|
cd opennel-pymanager
|
|
git checkout develop
|
|
```
|
|
|
|
# Create workdir
|
|
|
|
``` sh
|
|
mkdir temp
|
|
cd temp
|
|
```
|
|
|
|
# Create certificat
|
|
|
|
``` sh
|
|
../pymanager/certificate.py
|
|
```
|
|
|
|
# Server Configuration
|
|
|
|
Example configuration with TLS1.2.
|
|
We have two program (one command:sleep -> stop after 10s, command:simulate -> daemon (emulate khanat process)
|
|
|
|
``` sh
|
|
cat << EOF > server.cfg
|
|
[config:server]
|
|
port = 8000
|
|
keyfile = ca/appli/private/serverkey.pem
|
|
certfile = ca/appli/certs/servercert.pem
|
|
ca_cert = ca/appli/certs/cachaincert.pem
|
|
authentification = no
|
|
[command:sleep]
|
|
command = sleep 10
|
|
[command:simulate]
|
|
command = ../tests/simulate_program.py
|
|
EOF
|
|
```
|
|
|
|
# Client Configuration
|
|
``` sh
|
|
cat << EOF > client.cfg
|
|
[config:client]
|
|
port = 8000
|
|
keyfile = ca/appli/private/clientkey.pem
|
|
certfile = ca/appli/certs/clientcert.pem
|
|
ca_cert = ca/appli/certs/cachaincert.pem
|
|
address = localhost
|
|
EOF
|
|
```
|
|
|
|
# Start Manager
|
|
``` sh
|
|
../pymanager/manager.py -c server.cfg --log DEBUG
|
|
```
|
|
if you want, you can launch like deamon
|
|
|
|
``` sh
|
|
nohup ../pymanager/manager.py -c server.cfg --log DEBUG &
|
|
```
|
|
|
|
# Launch command (with client)
|
|
|
|
## STATUS
|
|
``` sh
|
|
../pymanager/client.py -c client.cfg --log DEBUG --program 'command:simulate' --command STATUS
|
|
```
|
|
## START
|
|
``` sh
|
|
../pymanager/client.py -c client.cfg --log DEBUG --program 'command:simulate' --command START
|
|
```
|
|
## STATUS
|
|
``` sh
|
|
../pymanager/client.py -c client.cfg --log DEBUG --program 'command:simulate' --command STATUS
|
|
```
|
|
## STDIN
|
|
Send command
|
|
``` sh
|
|
../pymanager/client.py -c client.cfg --log DEBUG --program 'command:simulate' --command STDIN --stdin="help all"
|
|
```
|
|
## STDOUT
|
|
Read output
|
|
``` sh
|
|
../pymanager/client.py -c client.cfg --log DEBUG --program 'command:simulate' --command STDOUT
|
|
```
|
|
## STOP
|
|
``` sh
|
|
../pymanager/client.py -c client.cfg --log DEBUG --program 'command:simulate' --command STOP
|
|
```
|
|
## STARTALL
|
|
``` sh
|
|
../pymanager/client.py -c client.cfg --log DEBUG --program 'command:simulate' --command STARTALL
|
|
```
|
|
## STATUSALL
|
|
``` sh
|
|
../pymanager/client.py -c client.cfg --log DEBUG --program 'command:simulate' --command STATUSALL
|
|
```
|
|
## STOPALL
|
|
``` sh
|
|
../pymanager/client.py -c client.cfg --log DEBUG --program 'command:simulate' --command STOPALL
|
|
```
|
|
## WITH CURL
|
|
```sh
|
|
curl -k --tlsv1.2 --cacert ca/appli/certs/cachaincert.pem --cert ca/appli/certs/clientcert.pem --key ca/appli/private/clientkey.pem -XGET "https://localhost:8000/STATUSALL"
|
|
```
|
|
```sh
|
|
curl -k --tlsv1.2 --cacert ca/appli/certs/cachaincert.pem --cert ca/appli/certs/clientcert.pem --key ca/appli/private/clientkey.pem --header "content-type: application/json" -d '{"name": "command:simulate"}' -XGET "https://localhost:8000/STATUS"
|
|
```
|
|
## SHUTDOWN
|
|
``` sh
|
|
../pymanager/client.py -c client.cfg --log DEBUG --program 'command:simulate' --command SHUTDOWN
|
|
```
|