Allow steps to fail with error message
Summary: Add a method to add error messages into failed steps. This will be surfaced in the diagnostic screen, to help the user troubleshoot. Reviewed By: passy Differential Revision: D9333322 fbshipit-source-id: 5f1e55c3d71b19292dbc428aaecfbd41e7a75125
This commit is contained in:
committed by
Facebook Github Bot
parent
dfcfa9f7fa
commit
38391ca29e
@@ -41,7 +41,7 @@ void SonarState::success(std::string step) {
|
||||
}
|
||||
|
||||
void SonarState::failed(std::string step, std::string errorMessage) {
|
||||
log = log + "[Failed] " + step + "\n";
|
||||
log = log + "[Failed] " + step + ": " + errorMessage + "\n";
|
||||
stateMap[step] = State::failed;
|
||||
if (mListener) {
|
||||
mListener->onUpdate();
|
||||
|
||||
@@ -9,17 +9,22 @@
|
||||
#include "SonarState.h"
|
||||
|
||||
void SonarStep::complete() {
|
||||
isCompleted = true;
|
||||
isLogged = true;
|
||||
state->success(name);
|
||||
}
|
||||
|
||||
void SonarStep::fail(std::string message) {
|
||||
isLogged = true;
|
||||
state->failed(name, message);
|
||||
}
|
||||
|
||||
SonarStep::SonarStep(std::string step, SonarState* s) {
|
||||
state = s;
|
||||
name = step;
|
||||
}
|
||||
|
||||
SonarStep::~SonarStep() {
|
||||
if (!isCompleted) {
|
||||
if (!isLogged) {
|
||||
state->failed(name, "");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,11 +15,12 @@ class SonarState;
|
||||
class SonarStep {
|
||||
public:
|
||||
void complete();
|
||||
void fail(std::string message);
|
||||
SonarStep(std::string name, SonarState* state);
|
||||
~SonarStep();
|
||||
|
||||
private:
|
||||
std::string name;
|
||||
bool isCompleted = false;
|
||||
bool isLogged = false;
|
||||
SonarState* state;
|
||||
};
|
||||
|
||||
@@ -123,19 +123,23 @@ void SonarWebSocketImpl::startSync() {
|
||||
doCertificateExchange();
|
||||
return;
|
||||
}
|
||||
connectSecurely();
|
||||
|
||||
connectSecurely();
|
||||
connect->complete();
|
||||
} catch (const folly::AsyncSocketException& e) {
|
||||
if (e.getType() == folly::AsyncSocketException::NOT_OPEN) {
|
||||
// The expected code path when flipper desktop is not running.
|
||||
// Don't count as a failed attempt.
|
||||
connect->fail("Port not open");
|
||||
} else {
|
||||
SONAR_LOG(e.what());
|
||||
failedConnectionAttempts_++;
|
||||
connect->fail(e.what());
|
||||
}
|
||||
reconnect();
|
||||
} catch (const std::exception& e) {
|
||||
SONAR_LOG(e.what());
|
||||
connect->fail(e.what());
|
||||
failedConnectionAttempts_++;
|
||||
reconnect();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user