Mercurial > hg > orthanc
comparison OrthancServer/OrthancRestApi/OrthancRestModalities.cpp @ 3592:de1665e7b341
added '/peers/{id}/system' route to test the connectivity with a remote peer
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Mon, 23 Dec 2019 15:46:50 +0100 |
parents | 962e5f00744b |
children | 085283445db0 94f4a18a79cc |
comparison
equal
deleted
inserted
replaced
3591:19d88138c30f | 3592:de1665e7b341 |
---|---|
1102 throw OrthancException(ErrorCode_UnknownResource, | 1102 throw OrthancException(ErrorCode_UnknownResource, |
1103 "No peer with symbolic name: " + remote); | 1103 "No peer with symbolic name: " + remote); |
1104 } | 1104 } |
1105 } | 1105 } |
1106 | 1106 |
1107 static void PeerSystem(RestApiGetCall& call) | |
1108 { | |
1109 ServerContext& context = OrthancRestApi::GetContext(call); | |
1110 | |
1111 std::string remote = call.GetUriComponent("id", ""); | |
1112 | |
1113 OrthancConfiguration::ReaderLock lock; | |
1114 | |
1115 WebServiceParameters peer; | |
1116 if (lock.GetConfiguration().LookupOrthancPeer(peer, remote)) | |
1117 { | |
1118 HttpClient client(peer, "system"); | |
1119 std::string answer; | |
1120 | |
1121 client.SetMethod(HttpMethod_Get); | |
1122 | |
1123 if (!client.Apply(answer)) | |
1124 { | |
1125 LOG(ERROR) << "Unable to get the system info from remote Orthanc peer: " << peer.GetUrl(); | |
1126 call.GetOutput().SignalError(client.GetLastStatus()); | |
1127 return; | |
1128 } | |
1129 | |
1130 call.GetOutput().AnswerBuffer(answer, MimeType_Json); | |
1131 } | |
1132 else | |
1133 { | |
1134 throw OrthancException(ErrorCode_UnknownResource, | |
1135 "No peer with symbolic name: " + remote); | |
1136 } | |
1137 } | |
1107 | 1138 |
1108 // DICOM bridge ------------------------------------------------------------- | 1139 // DICOM bridge ------------------------------------------------------------- |
1109 | 1140 |
1110 static bool IsExistingModality(const OrthancRestApi::SetOfStrings& modalities, | 1141 static bool IsExistingModality(const OrthancRestApi::SetOfStrings& modalities, |
1111 const std::string& id) | 1142 const std::string& id) |
1307 Register("/peers", ListPeers); | 1338 Register("/peers", ListPeers); |
1308 Register("/peers/{id}", ListPeerOperations); | 1339 Register("/peers/{id}", ListPeerOperations); |
1309 Register("/peers/{id}", UpdatePeer); | 1340 Register("/peers/{id}", UpdatePeer); |
1310 Register("/peers/{id}", DeletePeer); | 1341 Register("/peers/{id}", DeletePeer); |
1311 Register("/peers/{id}/store", PeerStore); | 1342 Register("/peers/{id}/store", PeerStore); |
1343 Register("/peers/{id}/system", PeerSystem); | |
1312 | 1344 |
1313 Register("/modalities/{id}/find-worklist", DicomFindWorklist); | 1345 Register("/modalities/{id}/find-worklist", DicomFindWorklist); |
1314 } | 1346 } |
1315 } | 1347 } |