mirror of https://git.48k.eu/ogclient
Add mode selection for ogClient
parent
99ae598fbd
commit
4f03c31f85
|
@ -4,3 +4,5 @@ port=1234
|
||||||
url=https://127.0.0.1/opengnsys/varios/menubrowser.php
|
url=https://127.0.0.1/opengnsys/varios/menubrowser.php
|
||||||
# Log Level, if ommited, will be set to INFO
|
# Log Level, if ommited, will be set to INFO
|
||||||
log=DEBUG
|
log=DEBUG
|
||||||
|
# Supported modes are 'virtual' and 'linux'
|
||||||
|
mode=linux
|
3
main.py
3
main.py
|
@ -24,10 +24,11 @@ def main():
|
||||||
ip = ogconfig.get_value_section('opengnsys', 'ip')
|
ip = ogconfig.get_value_section('opengnsys', 'ip')
|
||||||
port = ogconfig.get_value_section('opengnsys', 'port')
|
port = ogconfig.get_value_section('opengnsys', 'port')
|
||||||
url = ogconfig.get_value_section('opengnsys', 'url')
|
url = ogconfig.get_value_section('opengnsys', 'url')
|
||||||
|
mode = ogconfig.get_value_section('opengnsys', 'mode')
|
||||||
|
|
||||||
proc = subprocess.Popen(["browser", "-qws", url])
|
proc = subprocess.Popen(["browser", "-qws", url])
|
||||||
|
|
||||||
client = ogClient(ip, int(port))
|
client = ogClient(ip, int(port), mode)
|
||||||
client.connect()
|
client.connect()
|
||||||
client.run()
|
client.run()
|
||||||
|
|
||||||
|
|
|
@ -23,10 +23,14 @@ class State(Enum):
|
||||||
FORCE_DISCONNECTED = 2
|
FORCE_DISCONNECTED = 2
|
||||||
|
|
||||||
class ogClient:
|
class ogClient:
|
||||||
def __init__(self, ip, port):
|
def __init__(self, ip, port, mode):
|
||||||
|
if mode not in {'virtual', 'linux'}:
|
||||||
|
raise ValueError('Mode not supported.')
|
||||||
|
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
self.port = port
|
self.port = port
|
||||||
self.ogrest = ogRest()
|
self.mode = mode
|
||||||
|
self.ogrest = ogRest(self.mode)
|
||||||
|
|
||||||
def get_socket(self):
|
def get_socket(self):
|
||||||
return self.sock
|
return self.sock
|
||||||
|
|
|
@ -18,8 +18,8 @@ import signal
|
||||||
|
|
||||||
from src.restRequest import *
|
from src.restRequest import *
|
||||||
|
|
||||||
if platform.system() == 'Linux':
|
from src.linux.ogOperations import OgLinuxOperations
|
||||||
from src.linux import ogOperations
|
from src.virtual.ogOperations import OgVirtualOperations
|
||||||
|
|
||||||
class ThreadState(Enum):
|
class ThreadState(Enum):
|
||||||
IDLE = 0
|
IDLE = 0
|
||||||
|
@ -79,7 +79,7 @@ class ogThread():
|
||||||
return
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
shellout = ogOperations.execCMD(request, ogRest)
|
shellout = ogRest.operations.execCMD(request, ogRest)
|
||||||
except ValueError as err:
|
except ValueError as err:
|
||||||
response = restResponse(ogResponses.INTERNAL_ERR)
|
response = restResponse(ogResponses.INTERNAL_ERR)
|
||||||
client.send(response.get())
|
client.send(response.get())
|
||||||
|
@ -97,16 +97,16 @@ class ogThread():
|
||||||
|
|
||||||
ogRest.state = ThreadState.IDLE
|
ogRest.state = ThreadState.IDLE
|
||||||
|
|
||||||
def poweroff():
|
def poweroff(ogRest):
|
||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
ogOperations.poweroff()
|
ogRest.operations.poweroff()
|
||||||
|
|
||||||
def reboot():
|
def reboot(ogRest):
|
||||||
ogOperations.reboot()
|
ogRest.operations.reboot()
|
||||||
|
|
||||||
def session(client, request, ogRest):
|
def session(client, request, ogRest):
|
||||||
try:
|
try:
|
||||||
ogOperations.session(request, ogRest)
|
ogRest.operations.session(request, ogRest)
|
||||||
except ValueError as err:
|
except ValueError as err:
|
||||||
response = restResponse(ogResponses.INTERNAL_ERR)
|
response = restResponse(ogResponses.INTERNAL_ERR)
|
||||||
client.send(response.get())
|
client.send(response.get())
|
||||||
|
@ -119,7 +119,7 @@ class ogThread():
|
||||||
|
|
||||||
def software(client, request, path, ogRest):
|
def software(client, request, path, ogRest):
|
||||||
try:
|
try:
|
||||||
ogOperations.software(request, path, ogRest)
|
ogRest.operations.software(request, path, ogRest)
|
||||||
except ValueError as err:
|
except ValueError as err:
|
||||||
response = restResponse(ogResponses.INTERNAL_ERR)
|
response = restResponse(ogResponses.INTERNAL_ERR)
|
||||||
client.send(response.get())
|
client.send(response.get())
|
||||||
|
@ -137,7 +137,7 @@ class ogThread():
|
||||||
|
|
||||||
def hardware(client, path, ogRest):
|
def hardware(client, path, ogRest):
|
||||||
try:
|
try:
|
||||||
ogOperations.hardware(path, ogRest)
|
ogRest.operations.hardware(path, ogRest)
|
||||||
except ValueError as err:
|
except ValueError as err:
|
||||||
response = restResponse(ogResponses.INTERNAL_ERR)
|
response = restResponse(ogResponses.INTERNAL_ERR)
|
||||||
client.send(response.get())
|
client.send(response.get())
|
||||||
|
@ -154,7 +154,7 @@ class ogThread():
|
||||||
|
|
||||||
def setup(client, request, ogRest):
|
def setup(client, request, ogRest):
|
||||||
try:
|
try:
|
||||||
out = ogOperations.setup(request, ogRest)
|
out = ogRest.operations.setup(request, ogRest)
|
||||||
except ValueError as err:
|
except ValueError as err:
|
||||||
response = restResponse(ogResponses.INTERNAL_ERR)
|
response = restResponse(ogResponses.INTERNAL_ERR)
|
||||||
client.send(response.get())
|
client.send(response.get())
|
||||||
|
@ -169,7 +169,7 @@ class ogThread():
|
||||||
|
|
||||||
def image_restore(client, request, ogRest):
|
def image_restore(client, request, ogRest):
|
||||||
try:
|
try:
|
||||||
ogOperations.image_restore(request, ogRest)
|
ogRest.operations.image_restore(request, ogRest)
|
||||||
except ValueError as err:
|
except ValueError as err:
|
||||||
response = restResponse(ogResponses.INTERNAL_ERR)
|
response = restResponse(ogResponses.INTERNAL_ERR)
|
||||||
client.send(response.get())
|
client.send(response.get())
|
||||||
|
@ -187,7 +187,7 @@ class ogThread():
|
||||||
|
|
||||||
def image_create(client, path, request, ogRest):
|
def image_create(client, path, request, ogRest):
|
||||||
try:
|
try:
|
||||||
ogOperations.image_create(path, request, ogRest)
|
ogRest.operations.image_create(path, request, ogRest)
|
||||||
except ValueError as err:
|
except ValueError as err:
|
||||||
response = restResponse(ogResponses.INTERNAL_ERR)
|
response = restResponse(ogResponses.INTERNAL_ERR)
|
||||||
client.send(response.get())
|
client.send(response.get())
|
||||||
|
@ -210,7 +210,7 @@ class ogThread():
|
||||||
|
|
||||||
def refresh(client, ogRest):
|
def refresh(client, ogRest):
|
||||||
try:
|
try:
|
||||||
out = ogOperations.refresh(ogRest)
|
out = ogRest.operations.refresh(ogRest)
|
||||||
except ValueError as err:
|
except ValueError as err:
|
||||||
response = restResponse(ogResponses.INTERNAL_ERR)
|
response = restResponse(ogResponses.INTERNAL_ERR)
|
||||||
client.send(response.get())
|
client.send(response.get())
|
||||||
|
@ -232,10 +232,18 @@ class ogResponses(Enum):
|
||||||
SERVICE_UNAVAILABLE=5
|
SERVICE_UNAVAILABLE=5
|
||||||
|
|
||||||
class ogRest():
|
class ogRest():
|
||||||
def __init__(self):
|
def __init__(self, mode):
|
||||||
self.proc = None
|
self.proc = None
|
||||||
self.terminated = False
|
self.terminated = False
|
||||||
self.state = ThreadState.IDLE
|
self.state = ThreadState.IDLE
|
||||||
|
self.mode = mode
|
||||||
|
|
||||||
|
if self.mode == 'linux' and platform.system() == 'Linux':
|
||||||
|
self.operations = OgLinuxOperations()
|
||||||
|
elif self.mode == 'virtual':
|
||||||
|
self.operations = OgVirtualOperations()
|
||||||
|
else:
|
||||||
|
raise ValueError('Mode not supported.')
|
||||||
|
|
||||||
def process_request(self, request, client):
|
def process_request(self, request, client):
|
||||||
method = request.get_method()
|
method = request.get_method()
|
||||||
|
@ -315,7 +323,7 @@ class ogRest():
|
||||||
if self.state == ThreadState.BUSY:
|
if self.state == ThreadState.BUSY:
|
||||||
self.kill_process()
|
self.kill_process()
|
||||||
|
|
||||||
threading.Thread(target=ogThread.reboot).start()
|
threading.Thread(target=ogThread.reboot, args=(self)).start()
|
||||||
|
|
||||||
def process_poweroff(self, client):
|
def process_poweroff(self, client):
|
||||||
response = restResponse(ogResponses.IN_PROGRESS)
|
response = restResponse(ogResponses.IN_PROGRESS)
|
||||||
|
@ -326,7 +334,7 @@ class ogRest():
|
||||||
if self.state == ThreadState.BUSY:
|
if self.state == ThreadState.BUSY:
|
||||||
self.kill_process()
|
self.kill_process()
|
||||||
|
|
||||||
threading.Thread(target=ogThread.poweroff).start()
|
threading.Thread(target=ogThread.poweroff, args=(self)).start()
|
||||||
|
|
||||||
def process_probe(self, client):
|
def process_probe(self, client):
|
||||||
json_body = jsonBody()
|
json_body = jsonBody()
|
||||||
|
|
Loading…
Reference in New Issue