aboutsummaryrefslogtreecommitdiff
path: root/src/zen/cmds/trace_cmd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zen/cmds/trace_cmd.cpp')
-rw-r--r--src/zen/cmds/trace_cmd.cpp32
1 files changed, 14 insertions, 18 deletions
diff --git a/src/zen/cmds/trace_cmd.cpp b/src/zen/cmds/trace_cmd.cpp
index 85caf33b8..41a30068c 100644
--- a/src/zen/cmds/trace_cmd.cpp
+++ b/src/zen/cmds/trace_cmd.cpp
@@ -20,21 +20,21 @@ TraceCommand::TraceCommand()
TraceCommand::~TraceCommand() = default;
-int
+void
TraceCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv)
{
ZEN_UNUSED(GlobalOptions);
if (!ParseOptions(argc, argv))
{
- return 0;
+ return;
}
m_HostName = ResolveTargetHostSpec(m_HostName);
if (m_HostName.empty())
{
- throw OptionParseException("unable to resolve server specification");
+ throw OptionParseException("Unable to resolve server specification", m_Options.help());
}
zen::HttpClient Http(m_HostName);
@@ -44,13 +44,12 @@ TraceCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv)
if (zen::HttpClient::Response Response = Http.Post("/admin/trace/stop"sv))
{
ZEN_CONSOLE("OK: {}", Response.ToText());
- return 0;
}
else
{
- ZEN_CONSOLE_ERROR("trace stop failed: {}", Response.ToText());
- return 1;
+ Response.ThrowError("Trace stop failed");
}
+ return;
}
std::string StartArg;
@@ -68,26 +67,23 @@ TraceCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv)
if (zen::HttpClient::Response Response = Http.Post(fmt::format("/admin/trace/start?{}"sv, StartArg)))
{
ZEN_CONSOLE("OK: {}", Response.ToText());
- return 0;
}
else
{
- ZEN_CONSOLE_ERROR("trace start failed: {}", Response.ToText());
- return 1;
+ Response.ThrowError("Trace start failed");
}
}
-
- if (zen::HttpClient::Response Response = Http.Get("/admin/trace"sv))
- {
- ZEN_CONSOLE("OK: {}", Response.ToText());
- return 0;
- }
else
{
- ZEN_CONSOLE_ERROR("trace status failed: {}", Response.ToText());
+ if (zen::HttpClient::Response Response = Http.Get("/admin/trace"sv))
+ {
+ ZEN_CONSOLE("OK: {}", Response.ToText());
+ }
+ else
+ {
+ Response.ThrowError("Trace status failed");
+ }
}
-
- return 1;
}
} // namespace zen