Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 14 additions & 26 deletions src/WebAppDIRAC/WebApp/handler/TransformationMonitorHandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from DIRAC import gConfig, gLogger
from DIRAC.Core.Utilities import TimeUtilities
from DIRAC.MonitoringSystem.Client.WebAppClient import WebAppClient
from DIRAC.TransformationSystem.Client.TransformationClient import TransformationClient

from WebAppDIRAC.Lib.WebHandler import WebHandler, WErr

Expand Down Expand Up @@ -175,8 +176,6 @@ def web_action(self, data_kind, id: int, tasks: int = None):
return {"success": "false", "error": "Action is unknown!!!"}

def web_executeOperation(self, action, ids):
waClient = WebAppClient()

agentType = "Manual"
if action == "clean":
status = "Cleaning"
Expand All @@ -197,10 +196,10 @@ def web_executeOperation(self, action, ids):

for i in ids.split(","):
try:
result = waClient.setTransformationParameter(transid := int(i), "Status", status)
result = TransformationClient().setTransformationParameter(transid := int(i), "Status", status)
if result["OK"]:
resString = f"ProdID: {transid} set to {action} successfully"
result = waClient.setTransformationParameter(transid, "AgentType", agentType)
result = TransformationClient().setTransformationParameter(transid, "AgentType", agentType)
if not result["OK"]:
resString = f"ProdID: {transid} failed to set to {action}: {result['Message']}"
else:
Expand All @@ -212,16 +211,15 @@ def web_executeOperation(self, action, ids):
return {"success": "true", "showResult": callback}

def __fileRetry(self, prodid, mode):
waClient = WebAppClient()
result = None
if mode == "proc":
result = waClient.getTransformationFilesCount(prodid, "ErrorCount", {"Status": "Processed"})
result = TransformationClient().getTransformationFilesCount(prodid, "ErrorCount", {"Status": "Processed"})
elif mode == "not":
result = waClient.getTransformationFilesCount(
result = TransformationClient().getTransformationFilesCount(
prodid, "ErrorCount", {"Status": ["Unused", "Assigned", "Failed"]}
)
elif mode == "all":
result = waClient.getTransformationFilesCount(prodid, "ErrorCount")
result = TransformationClient().getTransformationFilesCount(prodid, "ErrorCount")

if not result["OK"]:
return {"success": "false", "error": result["Message"]}
Expand All @@ -238,35 +236,27 @@ def __fileRetry(self, prodid, mode):
return {"success": "true", "result": resList}

def __dataQuery(self, prodid):
waClient = WebAppClient()

# FIXME: getTransformationInputDataQuery has been replaced by getTransformationMetaQuery in DIRAC v7r0
result = waClient.getTransformationMetaQuery(prodid, "Input")
if not result["OK"] and "Unknown method" in result["Message"]:
result = waClient.getTransformationInputDataQuery(prodid)

gLogger.debug("-= #######", result)
result = TransformationClient().getTransformationMetaQuery(prodid, "Input")
if not result["OK"]:
return {"success": "false", "error": result["Message"]}
data = result["Value"]
back = [[i, data[i]] for i in sorted(data)]
return {"success": "true", "result": back}

def __additionalParams(self, prodid):
if not (result := WebAppClient().getAdditionalParameters(prodid))["OK"]:
if not (result := TransformationClient().getAdditionalParameters(prodid))["OK"]:
return {"success": "false", "error": result["Message"]}
data = result["Value"]
back = [[i, data[i]] for i in sorted(data)]
return {"success": "true", "result": back}

def __workflowxml(self, transid):
waClient = WebAppClient()
if not (result := waClient.getTransformations({"TransformationID": transid}))["OK"]:
if not (result := TransformationClient().getTransformations({"TransformationID": transid}))["OK"]:
raise WErr.fromSERROR(result)
return {"success": "true", "result": result["Value"][0]["Body"]}

def __getLoggingInfo(self, transid):
if (result := WebAppClient().getTransformationLogging(transid))["OK"]:
if (result := TransformationClient().getTransformationLogging(transid))["OK"]:
if len(data := result["Value"]) > 0:
callback = []
for i in data:
Expand All @@ -278,8 +268,7 @@ def __getLoggingInfo(self, transid):
return {"success": "false", "error": result["Message"]}

def __transformationFileStatus(self, transid):
waClient = WebAppClient()
if not (result := waClient.getTransformationFilesCount(transid, "Status"))["OK"]:
if not (result := TransformationClient().getTransformationFilesCount(transid, "Status"))["OK"]:
return {"success": "false", "error": result["Message"]}
resList = []
if (total := result["Value"].pop("Total")) == 0:
Expand All @@ -293,8 +282,7 @@ def __transformationFileStatus(self, transid):
return {"success": "true", "result": resList}

def __transformationDetail(self, prodid):
waClient = WebAppClient()
if not (result := waClient.getTransformationParameters(prodid, ["DetailedInfo"]))["OK"]:
if not (result := TransformationClient().getTransformationParameters(prodid, ["DetailedInfo"]))["OK"]:
return {"success": "false", "error": result["Message"]}
if callback := result["Value"]:
return {"success": "true", "result": callback}
Expand All @@ -303,7 +291,7 @@ def __transformationDetail(self, prodid):

def __extendTransformation(self, transid, tasks):
gLogger.info(f"Extend transformation ({transid}, {tasks})")
if (result := WebAppClient().extendTransformation(transid, tasks))["OK"]:
if (result := TransformationClient().extendTransformation(transid, tasks))["OK"]:
resString = f"{transid} extended by {tasks} successfully"
else:
resString = f"{transid} failed to extend: {result['Message']}"
Expand Down Expand Up @@ -353,7 +341,7 @@ def web_getTier1Sites(self):

def web_setSite(self, TransformationId: int, RunNumber: int, Site):
gLogger.info(f"\033[0;31m setTransformationRunsSite({TransformationId}, {RunNumber}, {Site}) \033[0m")
result = WebAppClient().setTransformationRunsSite(TransformationId, RunNumber, Site)
result = TransformationClient().setTransformationRunsSite(TransformationId, RunNumber, Site)
if result["OK"]:
return {"success": "true", "result": "true"}
return {"success": "false", "error": result["Message"]}
Expand Down