|
|
|
import requests, time
|
|
|
|
# O2A - Data flow Orchestrator to Agent
|
|
|
|
|
|
|
|
# f"{lProtocolStr}://{lHostStr}:{lPortInt}/pyOpenRPA/Agent/O2A"
|
|
|
|
# Request BODY:
|
|
|
|
# { "HostNameUpperStr": "", "UserUpperStr": "" }
|
|
|
|
# Response BODY:
|
|
|
|
# {}
|
|
|
|
|
|
|
|
def O2A_Loop(inGSettings):
|
|
|
|
lL = inGSettings["Logger"]
|
|
|
|
while inGSettings["O2ADict"]["IsOnlineBool"]:
|
|
|
|
# Send request to the orchestrator server
|
|
|
|
try:
|
|
|
|
lProtocolStr= "https" if inGSettings["OrchestratorDict"]["IsHTTPSBool"] else "http"
|
|
|
|
lHostStr = inGSettings["OrchestratorDict"]["HostStr"]
|
|
|
|
lPortInt = inGSettings["OrchestratorDict"]["PortInt"]
|
|
|
|
lURLStr=f"{lProtocolStr}://{lHostStr}:{lPortInt}/pyOpenRPA/Agent/O2A"
|
|
|
|
lDataDict = { "HostNameUpperStr": inGSettings["AgentDict"]["HostNameUpperStr"], "UserUpperStr": inGSettings["AgentDict"]["UserUpperStr"]}
|
|
|
|
lResponse = requests.post(url= lURLStr, cookies = {"AuthToken":inGSettings["OrchestratorDict"]["SuperTokenStr"]}, json=lDataDict)
|
|
|
|
if lResponse.status_code != 200:
|
|
|
|
if lL: lL.warning(f"Agent can not connect to Orchestrator. Below the response from the orchestrator:{lResponse}")
|
|
|
|
time.sleep(inGSettings["O2ADict"]["RetryTimeoutSecFloat"])
|
|
|
|
except Exception as e:
|
|
|
|
if lL: lL.exception(f"A2O Error handler. Sleep for {inGSettings['A2ODict']['RetryTimeoutSecFloat']} s.")
|
|
|
|
time.sleep(inGSettings["O2ADict"]["RetryTimeoutSecFloat"])
|