From c6a0015a92356ad9f9d211db6c89e4ccdfa7db20 Mon Sep 17 00:00:00 2001 From: Ivan Maslov Date: Wed, 24 Apr 2019 22:59:19 +0300 Subject: [PATCH] #GetActivityLog --- Orchestrator/orchestratorConfiguration.json | 2 +- Orchestrator/orchestratorMain.py | 5 +++++ Orchestrator/orchestratorProcessor.py | 8 ++++++++ Orchestrator/orchestratorServer.py | 7 ++++--- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Orchestrator/orchestratorConfiguration.json b/Orchestrator/orchestratorConfiguration.json index ff6e2b54..11ce19ea 100644 --- a/Orchestrator/orchestratorConfiguration.json +++ b/Orchestrator/orchestratorConfiguration.json @@ -20,7 +20,7 @@ "__activityType":"processStart/processStop", "activityType":"processStart", "__time":"__Время запуска активности", - "time":"09:18", + "time":"22:57", "__timeZone":"Часовой пояс, в рамках которого указано время. По-умолчанию часовой пояс МСК (GMT+4). Формат UTC offset in the form ±HHMM[SS[.ffffff]] ", "timeZone":"+0400", "__processPath":"Полный путь/наименование процесса. Запуск производится через subprocess. Идентификатор процесса в дальнейшем сохраняется и его можно будет закрыть с помощью параметра processCode", diff --git a/Orchestrator/orchestratorMain.py b/Orchestrator/orchestratorMain.py index 70a443f4..4c82fcc6 100644 --- a/Orchestrator/orchestratorMain.py +++ b/Orchestrator/orchestratorMain.py @@ -30,6 +30,7 @@ lDaemonStartDateTime=datetime.datetime.now() #Инициализация globalDict lGlobalDict["JSONConfigurationDict"]=lDaemonConfigurationObject lGlobalDict["ActivityLogSchedule"]=lDaemonActivityLogDict +lGlobalDict["ActivityLogScheduleList"]=[] orchestratorServer.mActivityLogDict = lDaemonActivityLogDict @@ -59,6 +60,8 @@ while True: print("ProcessStart:"+lItem["processPath"]) #Запись в массив отработанных активностей lDaemonActivityLogDict[(lItem["activityType"],lActivityDateTime,lItem["processPath"])]={"ActivityStartDateTime":lCurrentDateTime} + #Лог + lGlobalDict["ActivityLogScheduleList"].append({"activityType":lItem["activityType"], "activityDateTime":str(lActivityDateTime), "processPath":lItem["processPath"], "activityStartDateTime":str(lCurrentDateTime)}) #Запустить процесс lItemArgs=[lItem["processPath"]] lItemArgs.extend(lItem["processArgs"]) @@ -85,6 +88,8 @@ while True: #Завершить процессы только текущего пользоваиеля if lItem['flagCloseOnlyCurrentUser']: lActivityCloseCommand+=' /fi "username eq %username%"' + #Лог + lGlobalDict["ActivityLogScheduleList"].append({"activityType":lItem["activityType"], "activityDateTime":str(lActivityDateTime), "processPath":lItem["processPath"], "activityStartDateTime":str(lCurrentDateTime)}) #Завершить процесс os.system(lActivityCloseCommand) print("ProcessStop "+lItem["processName"]) diff --git a/Orchestrator/orchestratorProcessor.py b/Orchestrator/orchestratorProcessor.py index 533fc8cf..e8dd1332 100644 --- a/Orchestrator/orchestratorProcessor.py +++ b/Orchestrator/orchestratorProcessor.py @@ -1,6 +1,7 @@ import datetime import http.client import json +import pdb #Глобальная переменная - все глобальные значения программы global mGlobalDict #{ @@ -11,6 +12,9 @@ global mGlobalDict # host: , # port: , # bodyObject: +# }, +# { +# type: # } # ] # @@ -37,5 +41,9 @@ def ProcessingRun(inConfigurationDict): lHTTPResponse=lHTTPConnection.getresponse() lHTTPResponseByteArray=lHTTPResponse.read() lResult["actionListResult"][-1] = {**lResult["actionListResult"][-1], **json.loads(lHTTPResponseByteArray.decode('utf8'))} + #Обработка команды ActivityLogScheduleGet + if lItem["type"]=="ActivityLogScheduleListGet": + pdb.set_trace() + lResult["actionListResult"][-1] = {**lResult["actionListResult"][-1], **{"result":mGlobalDict["ActivityLogScheduleList"]}} #Вернуть результат return lResult diff --git a/Orchestrator/orchestratorServer.py b/Orchestrator/orchestratorServer.py index 1ff98280..ddac65ca 100644 --- a/Orchestrator/orchestratorServer.py +++ b/Orchestrator/orchestratorServer.py @@ -27,11 +27,12 @@ class RobotDaemonServer(Thread): self.name = name global mJSONConfigurationDict mJSONConfigurationDict=inGlobalDict["JSONConfigurationDict"] - #Перенос переменной в orchestratorProcessor orchestratorProcessor.mGlobalDict=inGlobalDict - def run(self,inServerAddress="127.0.0.1",inPort=8081): - print('starting server...') + def run(self): + inServerAddress=""; + inPort = mJSONConfigurationDict["webServerPort"]; + print('starting server..., port:'+str(inPort)+" inAddress:"+inServerAddress) # Server settings # Choose port 8080, for port 80, which is normally used for a http server, you need root access server_address = (inServerAddress, inPort)