Commit 6285225f authored by Laurent Petre's avatar Laurent Petre
Browse files

Use an unique TCDS lease requestor ID

With the new GEM Level-1 function manager, the use of multiple GEM
configurations at p5, as well as the cleanup of those, human error
possibilities became higher.

This commit aims at improving the situation by preventing touching a
TCDS parition if another configuration (more preciscely GEM supervisor)
is already is using it. This is however not the final answer since (1)
some applications could still modify the hardware state during their
initialization and (2) there is no system to dynamically select FED and
TTC partitions.

The uniqueness of the lease requestor ID is guaranteed by the
combination of the xDAQ executive URL and the GEMsupervisor ID.
parent 68e767a0
Pipeline #3826083 passed with stages
in 3 minutes and 44 seconds
......@@ -88,8 +88,9 @@ void gem::utils::soap::sendCommand(
xoap::SOAPBodyElement soap_container = soap_envelope.getBody().addBodyElement(soap_command);
if (destDsc->getClassName().find("tcds") != std::string::npos) {
xoap::SOAPName soap_origin = soap_envelope.createName("actionRequestorId", "xdaq", srcDsc->getClassName());
soap_container.addAttribute(soap_origin, srcDsc->getClassName());
const std::string requestor_id = srcDsc->getContextDescriptor()->getURL() + "?id=" + std::to_string(srcDsc->getLocalId());
xoap::SOAPName soap_origin = soap_envelope.createName("actionRequestorId", "xdaq", XDAQ_NS_URI);
soap_container.addAttribute(soap_origin, requestor_id);
}
{
......@@ -130,8 +131,9 @@ void gem::utils::soap::sendCommandWithParameters(
xoap::SOAPBodyElement soap_container = soap_envelope.getBody().addBodyElement(soap_command);
if (destDsc->getClassName().find("tcds") != std::string::npos) {
xoap::SOAPName soap_origin = soap_envelope.createName("actionRequestorId", "xdaq", srcDsc->getClassName());
soap_container.addAttribute(soap_origin, srcDsc->getClassName());
const std::string requestor_id = srcDsc->getContextDescriptor()->getURL() + "?id=" + std::to_string(srcDsc->getLocalId());
xoap::SOAPName soap_origin = soap_envelope.createName("actionRequestorId", "xdaq", XDAQ_NS_URI);
soap_container.addAttribute(soap_origin, requestor_id);
}
xdata::soap::Serializer serializer;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment