MCPcopy Create free account
hub / github.com/apache/mesos / toggle

Method toggle

3rdparty/libprocess/src/logging.cpp:28–69  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26namespace process {
27
28Future<http::Response> Logging::toggle(
29 const http::Request& request,
30 const Option<http::authentication::Principal>&)
31{
32 Option<std::string> level = request.url.query.get("level");
33 Option<std::string> duration = request.url.query.get("duration");
34
35 if (level.isNone() && duration.isNone()) {
36 return http::OK(stringify(FLAGS_v) + "\n");
37 }
38
39 if (level.isSome() && duration.isNone()) {
40 return http::BadRequest("Expecting 'duration=value' in query.\n");
41 } else if (level.isNone() && duration.isSome()) {
42 return http::BadRequest("Expecting 'level=value' in query.\n");
43 }
44
45 Try<int> v = numify<int>(level.get());
46
47 if (v.isError()) {
48 return http::BadRequest(v.error() + ".\n");
49 }
50
51 if (v.get() < 0) {
52 return http::BadRequest(
53 "Invalid level '" + stringify(v.get()) + "'.\n");
54 } else if (v.get() < original) {
55 return http::BadRequest(
56 "'" + stringify(v.get()) + "' < original level.\n");
57 }
58
59 Try<Duration> d = Duration::parse(duration.get());
60
61 if (d.isError()) {
62 return http::BadRequest(d.error() + ".\n");
63 }
64
65 return set_level(v.get(), d.get())
66 .then([]() -> http::Response {
67 return http::OK();
68 });
69}
70
71
72Future<Nothing> Logging::set_level(int level, const Duration& duration)

Callers 4

bootstrap.jsFile · 0.80
CollapseFunction · 0.80
bootstrap.min.jsFile · 0.80
bFunction · 0.80

Calls 10

OKClass · 0.85
BadRequestClass · 0.85
parseFunction · 0.70
errorMethod · 0.65
stringifyClass · 0.50
getMethod · 0.45
isNoneMethod · 0.45
isSomeMethod · 0.45
isErrorMethod · 0.45
thenMethod · 0.45

Tested by

no test coverage detected