mirror of
https://github.com/Telecominfraproject/wlan-cloud-ucentralgw.git
synced 2025-11-02 19:57:49 +00:00
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
This commit is contained in:
@@ -149,12 +149,15 @@ namespace OpenWifi {
|
|||||||
OutStandingRequests_.erase(Id);
|
OutStandingRequests_.erase(Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool CommandRunningForDevice(std::uint64_t SerialNumber) {
|
inline bool CommandRunningForDevice(std::uint64_t SerialNumber, std::string & uuid, std::string &command) {
|
||||||
std::lock_guard G(Mutex_);
|
std::lock_guard G(Mutex_);
|
||||||
|
|
||||||
for(auto Request = OutStandingRequests_.begin(); Request != OutStandingRequests_.end() ; ) {
|
for(auto Request = OutStandingRequests_.begin(); Request != OutStandingRequests_.end() ; ) {
|
||||||
if(Request->second.SerialNumber==SerialNumber)
|
if(Request->second.SerialNumber==SerialNumber) {
|
||||||
|
uuid = Request->second.UUID;
|
||||||
|
command = Request->second.Command;
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -149,9 +149,10 @@ namespace OpenWifi {
|
|||||||
CallCanceled(Command.Command, RESTAPI::Errors::DeviceNotConnected);
|
CallCanceled(Command.Command, RESTAPI::Errors::DeviceNotConnected);
|
||||||
return BadRequest(RESTAPI::Errors::DeviceNotConnected);
|
return BadRequest(RESTAPI::Errors::DeviceNotConnected);
|
||||||
}
|
}
|
||||||
if(!Command.AllowParallel && CommandManager()->CommandRunningForDevice(SerialNumberInt_)) {
|
std::string Command_UUID, CommandName;
|
||||||
|
if(!Command.AllowParallel && CommandManager()->CommandRunningForDevice(SerialNumberInt_,Command_UUID,CommandName)) {
|
||||||
CallCanceled(Command.Command, RESTAPI::Errors::DeviceIsAlreadyBusy);
|
CallCanceled(Command.Command, RESTAPI::Errors::DeviceIsAlreadyBusy);
|
||||||
return BadRequest(RESTAPI::Errors::DeviceIsAlreadyBusy);
|
return BadRequest(RESTAPI::Errors::DeviceIsAlreadyBusy, fmt::format("UUID={} Command={}", Command_UUID, CommandName));
|
||||||
}
|
}
|
||||||
auto UUID = MicroService::CreateUUID();
|
auto UUID = MicroService::CreateUUID();
|
||||||
auto RPC = CommandManager()->NextRPCId();
|
auto RPC = CommandManager()->NextRPCId();
|
||||||
|
|||||||
@@ -2178,12 +2178,16 @@ namespace OpenWifi {
|
|||||||
SetCommonHeaders(CloseConnection);
|
SetCommonHeaders(CloseConnection);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void BadRequest(const OpenWifi::RESTAPI::Errors::msg &E) {
|
inline void BadRequest(const OpenWifi::RESTAPI::Errors::msg &E, const std::string & Extra="") {
|
||||||
PrepareResponse(Poco::Net::HTTPResponse::HTTP_BAD_REQUEST);
|
PrepareResponse(Poco::Net::HTTPResponse::HTTP_BAD_REQUEST);
|
||||||
Poco::JSON::Object ErrorObject;
|
Poco::JSON::Object ErrorObject;
|
||||||
ErrorObject.set("ErrorCode",400);
|
ErrorObject.set("ErrorCode",400);
|
||||||
ErrorObject.set("ErrorDetails",Request->getMethod());
|
ErrorObject.set("ErrorDetails",Request->getMethod());
|
||||||
ErrorObject.set("ErrorDescription",fmt::format("{}: {}",E.err_num,E.err_txt)) ;
|
if(Extra.empty())
|
||||||
|
ErrorObject.set("ErrorDescription",fmt::format("{}: {}",E.err_num,E.err_txt)) ;
|
||||||
|
else
|
||||||
|
ErrorObject.set("ErrorDescription",fmt::format("{}: {} ({})",E.err_num,E.err_txt, Extra)) ;
|
||||||
|
|
||||||
std::ostream &Answer = Response->send();
|
std::ostream &Answer = Response->send();
|
||||||
Poco::JSON::Stringifier::stringify(ErrorObject, Answer);
|
Poco::JSON::Stringifier::stringify(ErrorObject, Answer);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user