@@ -53,21 +53,21 @@ RestAgencyHandler::RestAgencyHandler(application_features::ApplicationServer& se
53
53
inline RestStatus RestAgencyHandler::reportErrorEmptyRequest () {
54
54
LOG_TOPIC (" 46536" , WARN, Logger::AGENCY)
55
55
<< " Empty request to public agency interface." ;
56
- generateError (rest::ResponseCode::NOT_FOUND, 404 );
56
+ generateError (rest::ResponseCode::NOT_FOUND, TRI_ERROR_HTTP_NOT_FOUND );
57
57
return RestStatus::DONE;
58
58
}
59
59
60
60
inline RestStatus RestAgencyHandler::reportTooManySuffices () {
61
61
LOG_TOPIC (" ef6ae" , WARN, Logger::AGENCY)
62
62
<< " Too many suffixes. Agency public interface takes one path." ;
63
- generateError (rest::ResponseCode::NOT_FOUND, 404 );
63
+ generateError (rest::ResponseCode::NOT_FOUND, TRI_ERROR_HTTP_NOT_FOUND );
64
64
return RestStatus::DONE;
65
65
}
66
66
67
67
inline RestStatus RestAgencyHandler::reportUnknownMethod () {
68
68
LOG_TOPIC (" 9b810" , WARN, Logger::AGENCY)
69
69
<< " Public REST interface has no method " << _request->suffixes ()[0 ];
70
- generateError (rest::ResponseCode::NOT_FOUND, 405 );
70
+ generateError (rest::ResponseCode::NOT_FOUND, TRI_ERROR_HTTP_NOT_FOUND );
71
71
return RestStatus::DONE;
72
72
}
73
73
@@ -162,74 +162,72 @@ RestStatus RestAgencyHandler::pollIndex(
162
162
163
163
if (std::get<1 >(pollResult)) {
164
164
return waitForFuture (
165
- std::move (std::get<0 >(pollResult)).thenValue ([this , start](std::shared_ptr<VPackBuilder>&& rb) {
166
- VPackSlice res = rb->slice ();
167
-
168
- if (res.isObject () && res.hasKey (" result" )) {
169
-
170
- if (res.hasKey (" error" )) { // leadership loss
171
- generateError (
172
- rest::ResponseCode::SERVICE_UNAVAILABLE,
173
- TRI_ERROR_HTTP_SERVICE_UNAVAILABLE, " No leader" );
174
- return ;
175
- }
176
-
177
- VPackSlice slice = res.get (" result" );
178
-
179
- if (slice.hasKey (" log" )) {
180
- VPackBuilder builder;
181
- {
182
- VPackObjectBuilder ob (&builder);
183
- builder.add (StaticStrings::Error, VPackValue (false ));
184
- builder.add (" code" , VPackValue (int (ResponseCode::OK)));
185
- builder.add (VPackValue (" result" ));
186
- VPackObjectBuilder r (&builder);
187
- if (!slice.get (" firstIndex" ).isNumber ()) {
188
- generateError (
189
- rest::ResponseCode::SERVER_ERROR,
190
- TRI_ERROR_HTTP_SERVER_ERROR, " invalid first log index." );
191
- return ;
192
- } else if (slice.get (" firstIndex" ).getNumber <uint64_t >() > start) {
193
- generateError (
194
- rest::ResponseCode::SERVER_ERROR,
195
- TRI_ERROR_HTTP_SERVER_ERROR, " first log index is greater than requested." );
196
- return ;
197
- }
198
- uint64_t firstIndex = slice.get (" firstIndex" ).getNumber <uint64_t >(), i = 0 ;
165
+ std::move (std::get<0 >(pollResult))
166
+ .thenValue ([this , start](std::shared_ptr<VPackBuilder>&& rb) {
167
+ VPackSlice res = rb->slice ();
168
+
169
+ if (res.isObject () && res.hasKey (" result" )) {
170
+ if (res.hasKey (" error" )) { // leadership loss
171
+ generateError (rest::ResponseCode::SERVICE_UNAVAILABLE,
172
+ TRI_ERROR_HTTP_SERVICE_UNAVAILABLE, " No leader" );
173
+ return ;
174
+ }
199
175
200
- builder.add (" commitIndex" , slice.get (" commitIndex" ));
201
- VPackSlice logs = slice.get (" log" );
202
- if (start <= firstIndex) {
203
- builder.add (" firstIndex" , logs[i].get (" index" ));
204
- }
205
- builder.add (VPackValue (" log" ));
206
- VPackArrayBuilder a (&builder);
207
- if (start <= firstIndex) {
208
- uint64_t i = start - firstIndex;
209
- for (; i < logs.length (); ++i) {
210
- builder.add (logs[i]);
176
+ VPackSlice slice = res.get (" result" );
177
+
178
+ if (slice.hasKey (" log" )) {
179
+ VPackBuilder builder;
180
+ {
181
+ VPackObjectBuilder ob (&builder);
182
+ builder.add (StaticStrings::Error, VPackValue (false ));
183
+ builder.add (" code" , VPackValue (int (ResponseCode::OK)));
184
+ builder.add (VPackValue (" result" ));
185
+ VPackObjectBuilder r (&builder);
186
+ if (!slice.get (" firstIndex" ).isNumber ()) {
187
+ generateError (rest::ResponseCode::SERVER_ERROR, TRI_ERROR_HTTP_SERVER_ERROR,
188
+ " invalid first log index." );
189
+ return ;
190
+ } else if (slice.get (" firstIndex" ).getNumber <uint64_t >() > start) {
191
+ generateError (
192
+ rest::ResponseCode::SERVER_ERROR, TRI_ERROR_HTTP_SERVER_ERROR,
193
+ " first log index is greater than requested." );
194
+ return ;
195
+ }
196
+ uint64_t firstIndex = slice.get (" firstIndex" ).getNumber <uint64_t >(),
197
+ i = 0 ;
198
+
199
+ builder.add (" commitIndex" , slice.get (" commitIndex" ));
200
+ VPackSlice logs = slice.get (" log" );
201
+ if (start <= firstIndex) {
202
+ builder.add (" firstIndex" , logs[i].get (" index" ));
203
+ }
204
+ builder.add (VPackValue (" log" ));
205
+ VPackArrayBuilder a (&builder);
206
+ if (start <= firstIndex) {
207
+ uint64_t i = start - firstIndex;
208
+ for (; i < logs.length (); ++i) {
209
+ builder.add (logs[i]);
210
+ }
211
+ }
212
+ }
213
+ generateResult (rest::ResponseCode::OK, std::move (*builder.steal ()));
214
+ return ;
215
+ } else {
216
+ generateResult (rest::ResponseCode::OK, std::move (*rb->steal ()));
217
+ return ;
211
218
}
219
+ } else {
220
+ generateError (rest::ResponseCode::SERVICE_UNAVAILABLE,
221
+ TRI_ERROR_HTTP_SERVICE_UNAVAILABLE, " No leader" );
212
222
}
213
- }
214
- generateResult (rest::ResponseCode::OK, std::move (*builder.steal ()));
215
- return ;
216
- } else {
217
- generateResult (rest::ResponseCode::OK, std::move (*rb->steal ()));
218
- return ;
219
- }
220
- } else {
221
- generateError (
222
- rest::ResponseCode::SERVICE_UNAVAILABLE,
223
- TRI_ERROR_HTTP_SERVICE_UNAVAILABLE, " No leader" );
224
- }
225
- })
226
- .thenError <VPackException>([this ](VPackException const & e) {
227
- generateError (Result{e.errorCode (), e.what ()});
228
- })
229
- .thenError <std::exception >([this ](std::exception const & e) {
230
- generateError (
231
- rest::ResponseCode::SERVER_ERROR, TRI_ERROR_HTTP_SERVER_ERROR, e.what ());
232
- }));
223
+ })
224
+ .thenError <VPackException>([this ](VPackException const & e) {
225
+ generateError (Result{TRI_ERROR_HTTP_SERVER_ERROR, e.what ()});
226
+ })
227
+ .thenError <std::exception >([this ](std::exception const & e) {
228
+ generateError (rest::ResponseCode::SERVER_ERROR,
229
+ TRI_ERROR_HTTP_SERVER_ERROR, e.what ());
230
+ }));
233
231
} else {
234
232
auto const & leader = std::get<2 >(pollResult);
235
233
if (leader == NO_LEADER) {
@@ -346,7 +344,7 @@ RestStatus RestAgencyHandler::handleStore() {
346
344
query_t builder = _agent->buildDB (index );
347
345
generateResult (rest::ResponseCode::OK, builder->slice ());
348
346
} catch (...) {
349
- generateError (rest::ResponseCode::BAD, 400 );
347
+ generateError (rest::ResponseCode::BAD, TRI_ERROR_HTTP_BAD_PARAMETER );
350
348
}
351
349
352
350
return RestStatus::DONE;
@@ -458,7 +456,7 @@ RestStatus RestAgencyHandler::handleWrite() {
458
456
if (result == Agent::raft_commit_t ::UNKNOWN) {
459
457
generateError (rest::ResponseCode::SERVICE_UNAVAILABLE, TRI_ERROR_HTTP_SERVICE_UNAVAILABLE);
460
458
} else if (result == Agent::raft_commit_t ::TIMEOUT) {
461
- generateError (rest::ResponseCode::REQUEST_TIMEOUT, 408 );
459
+ generateError (rest::ResponseCode::REQUEST_TIMEOUT, TRI_ERROR_HTTP_REQUEST_TIMEOUT );
462
460
} else {
463
461
if (forbidden > 0 ) {
464
462
generateResult (rest::ResponseCode::FORBIDDEN, body.slice ());
@@ -554,7 +552,7 @@ RestStatus RestAgencyHandler::handleInquire() {
554
552
query = _request->toVelocyPackBuilderPtr ();
555
553
} catch (std::exception const & ex) {
556
554
LOG_TOPIC (" 78755" , DEBUG, Logger::AGENCY) << ex.what ();
557
- generateError (rest::ResponseCode::BAD, 400 );
555
+ generateError (rest::ResponseCode::BAD, TRI_ERROR_HTTP_BAD_PARAMETER );
558
556
return RestStatus::DONE;
559
557
}
560
558
@@ -628,7 +626,7 @@ RestStatus RestAgencyHandler::handleInquire() {
628
626
if (result == Agent::raft_commit_t ::UNKNOWN) {
629
627
generateError (rest::ResponseCode::SERVICE_UNAVAILABLE, TRI_ERROR_HTTP_SERVICE_UNAVAILABLE);
630
628
} else if (result == Agent::raft_commit_t ::TIMEOUT) {
631
- generateError (rest::ResponseCode::REQUEST_TIMEOUT, 408 );
629
+ generateError (rest::ResponseCode::REQUEST_TIMEOUT, TRI_ERROR_HTTP_REQUEST_TIMEOUT );
632
630
} else {
633
631
if (failed) { // Some/all requests failed
634
632
generateResult (rest::ResponseCode::NOT_FOUND, body.slice ());
@@ -761,7 +759,7 @@ RestStatus RestAgencyHandler::handleState() {
761
759
}
762
760
763
761
RestStatus RestAgencyHandler::reportMethodNotAllowed () {
764
- generateError (rest::ResponseCode::METHOD_NOT_ALLOWED, 405 );
762
+ generateError (rest::ResponseCode::METHOD_NOT_ALLOWED, TRI_ERROR_HTTP_METHOD_NOT_ALLOWED );
765
763
return RestStatus::DONE;
766
764
}
767
765
0 commit comments