grpc: added args to execute script to reflect prior gui functionality, updated new and old gui to use the same exact logic for executing scripts for consistency
This commit is contained in:
parent
f98594e927
commit
9da64af79b
7 changed files with 30 additions and 22 deletions
|
@ -978,14 +978,15 @@ class CoreGrpcClient:
|
|||
response = self.stub.GetEmaneEventChannel(request)
|
||||
return wrappers.EmaneEventChannel.from_proto(response)
|
||||
|
||||
def execute_script(self, script: str) -> Optional[int]:
|
||||
def execute_script(self, script: str, args: str) -> Optional[int]:
|
||||
"""
|
||||
Executes a python script given context of the current CoreEmu object.
|
||||
|
||||
:param script: script to execute
|
||||
:param args: arguments to provide to script
|
||||
:return: create session id for script executed
|
||||
"""
|
||||
request = ExecuteScriptRequest(script=script)
|
||||
request = ExecuteScriptRequest(script=script, args=args)
|
||||
response = self.stub.ExecuteScript(request)
|
||||
return response.session_id if response.session_id else None
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@ import logging
|
|||
import os
|
||||
import re
|
||||
import tempfile
|
||||
import threading
|
||||
import time
|
||||
from concurrent import futures
|
||||
from pathlib import Path
|
||||
|
@ -1236,13 +1235,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
def ExecuteScript(self, request, context):
|
||||
existing_sessions = set(self.coreemu.sessions.keys())
|
||||
file_path = Path(request.script)
|
||||
thread = threading.Thread(
|
||||
target=utils.execute_file,
|
||||
args=(file_path, {"coreemu": self.coreemu}),
|
||||
daemon=True,
|
||||
)
|
||||
thread.start()
|
||||
thread.join()
|
||||
utils.execute_script(self.coreemu, file_path, request.args)
|
||||
current_sessions = set(self.coreemu.sessions.keys())
|
||||
new_sessions = list(current_sessions.difference(existing_sessions))
|
||||
new_session = -1
|
||||
|
|
|
@ -3,7 +3,6 @@ socket server request handlers leveraged by core servers.
|
|||
"""
|
||||
|
||||
import logging
|
||||
import shlex
|
||||
import shutil
|
||||
import socketserver
|
||||
import sys
|
||||
|
@ -935,9 +934,9 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
if execute_server:
|
||||
try:
|
||||
logger.info("executing: %s", execute_server)
|
||||
old_session_ids = set()
|
||||
if message.flags & MessageFlags.STRING.value:
|
||||
old_session_ids = set(self.coreemu.sessions.keys())
|
||||
sys.argv = shlex.split(execute_server)
|
||||
file_path = Path(sys.argv[0])
|
||||
if file_path.suffix == ".xml":
|
||||
session = self.coreemu.create_session()
|
||||
|
@ -947,13 +946,7 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
self.coreemu.delete_session(session.id)
|
||||
raise
|
||||
else:
|
||||
thread = threading.Thread(
|
||||
target=utils.execute_file,
|
||||
args=(file_path, {"coreemu": self.coreemu}),
|
||||
daemon=True,
|
||||
)
|
||||
thread.start()
|
||||
thread.join()
|
||||
utils.execute_script(self.coreemu, file_path, execute_server)
|
||||
|
||||
if message.flags & MessageFlags.STRING.value:
|
||||
new_session_ids = set(self.coreemu.sessions.keys())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue