CmdDiagnostics: Add broken reference detection

This commit is contained in:
Tomas Babej 2015-09-18 19:26:54 +02:00 committed by Paul Beckingham
parent 0693f3cfc4
commit de8c7d230f
10 changed files with 77 additions and 0 deletions

View file

@ -377,6 +377,47 @@ int CmdDiagnostics::execute (std::string& output)
<< "\n";
}
// Check all the UUID references
bool noBrokenRefs = true;
out << " Broken ref: "
<< format (STRING_CMD_DIAG_REF_SCAN, all.size ())
<< "\n";
for (auto& task : all)
{
// Check dependencies
std::vector <std::string> dependencies;
task.getDependencies(dependencies);
for (auto& uuid : dependencies)
{
if (! context.tdb2.has (uuid))
{
out << " "
<< format (STRING_CMD_DIAG_MISS_DEP, task.get ("uuid"), uuid)
<< "\n";
noBrokenRefs = false;
}
}
// Check recurrence parent
std::string parentUUID = task.get ("parent");
if (parentUUID != "" && ! context.tdb2.has (parentUUID))
{
out << " "
<< format (STRING_CMD_DIAG_MISS_PAR, task.get ("uuid"), parentUUID)
<< "\n";
noBrokenRefs = false;
}
}
if (noBrokenRefs)
out << " " << STRING_CMD_DIAG_REF_OK
<< "\n";
out << "\n";
output = out.str ();
return 0;

View file

@ -502,11 +502,15 @@
#define STRING_CMD_DIAG_COMMIT "Commit"
#define STRING_CMD_DIAG_FOUND "(found)"
#define STRING_CMD_DIAG_MISSING "(missing)"
#define STRING_CMD_DIAG_MISS_DEP "Task {1} depends on nonexistent task: {2}"
#define STRING_CMD_DIAG_MISS_PAR "Task {1} has nonexistent recurrence template: {2}"
#define STRING_CMD_DIAG_ENABLED "Enabled"
#define STRING_CMD_DIAG_DISABLED "Disabled"
#define STRING_CMD_DIAG_CONFIG "Configuration"
#define STRING_CMD_DIAG_TESTS "Tests"
#define STRING_CMD_DIAG_UUID_SCAN "Scanned {1} tasks for duplicate UUIDs:"
#define STRING_CMD_DIAG_REF_SCAN "Scanned {1} tasks for broken references:"
#define STRING_CMD_DIAG_REF_OK "No broken references found"
#define STRING_CMD_DIAG_UUID_DUP "Found duplicate {1}"
#define STRING_CMD_DIAG_UUID_NO_DUP "No duplicates found"
#define STRING_CMD_DIAG_NONE "-none-"

View file

@ -500,11 +500,15 @@
#define STRING_CMD_DIAG_COMMIT "Commit"
#define STRING_CMD_DIAG_FOUND "(found)"
#define STRING_CMD_DIAG_MISSING "(missing)"
#define STRING_CMD_DIAG_MISS_DEP "Task {1} depends on nonexistent task: {2}"
#define STRING_CMD_DIAG_MISS_PAR "Task {1} has nonexistent recurrence template: {2}"
#define STRING_CMD_DIAG_ENABLED "Enabled"
#define STRING_CMD_DIAG_DISABLED "Disabled"
#define STRING_CMD_DIAG_CONFIG "Configuration"
#define STRING_CMD_DIAG_TESTS "Tests"
#define STRING_CMD_DIAG_UUID_SCAN "Scanned {1} tasks for duplicate UUIDs:"
#define STRING_CMD_DIAG_REF_SCAN "Scanned {1} tasks for broken references:"
#define STRING_CMD_DIAG_REF_OK "No broken references found"
#define STRING_CMD_DIAG_UUID_DUP "Found duplicate {1}"
#define STRING_CMD_DIAG_UUID_NO_DUP "No duplicates found"
#define STRING_CMD_DIAG_NONE "-none-"

View file

@ -502,11 +502,15 @@
#define STRING_CMD_DIAG_COMMIT "Commit"
#define STRING_CMD_DIAG_FOUND "(found)"
#define STRING_CMD_DIAG_MISSING "(missing)"
#define STRING_CMD_DIAG_MISS_DEP "Task {1} depends on nonexistent task: {2}"
#define STRING_CMD_DIAG_MISS_PAR "Task {1} has nonexistent recurrence template: {2}"
#define STRING_CMD_DIAG_ENABLED "Enabled"
#define STRING_CMD_DIAG_DISABLED "Disabled"
#define STRING_CMD_DIAG_CONFIG "Configuration"
#define STRING_CMD_DIAG_TESTS "Tests"
#define STRING_CMD_DIAG_UUID_SCAN "Scanned {1} tasks for duplicate UUIDs:"
#define STRING_CMD_DIAG_REF_SCAN "Scanned {1} tasks for broken references:"
#define STRING_CMD_DIAG_REF_OK "No broken references found"
#define STRING_CMD_DIAG_UUID_DUP "Found duplicate {1}"
#define STRING_CMD_DIAG_UUID_NO_DUP "No duplicates found"
#define STRING_CMD_DIAG_NONE "-none-"

View file

@ -510,11 +510,15 @@
#define STRING_CMD_DIAG_COMMIT "Commit" // |esp-ESP|==|eng-USA|
#define STRING_CMD_DIAG_FOUND "(encontrado)"
#define STRING_CMD_DIAG_MISSING "(no encontrado)"
#define STRING_CMD_DIAG_MISS_DEP "Task {1} depends on nonexistent task: {2}"
#define STRING_CMD_DIAG_MISS_PAR "Task {1} has nonexistent recurrence template: {2}"
#define STRING_CMD_DIAG_ENABLED "Habilitado"
#define STRING_CMD_DIAG_DISABLED "deshabilitado"
#define STRING_CMD_DIAG_CONFIG "Configuración"
#define STRING_CMD_DIAG_TESTS "Comprobaciones"
#define STRING_CMD_DIAG_UUID_SCAN "Exploradas {1} tareas buscando UUIDs duplicados:"
#define STRING_CMD_DIAG_REF_SCAN "Scanned {1} tasks for broken references:"
#define STRING_CMD_DIAG_REF_OK "No broken references found"
#define STRING_CMD_DIAG_UUID_DUP "Encontrado duplicado {1}"
#define STRING_CMD_DIAG_UUID_NO_DUP "No se encontraron duplicados"
#define STRING_CMD_DIAG_NONE "-ninguno-"

View file

@ -502,11 +502,15 @@
#define STRING_CMD_DIAG_COMMIT "Commit"
#define STRING_CMD_DIAG_FOUND "(found)"
#define STRING_CMD_DIAG_MISSING "(missing)"
#define STRING_CMD_DIAG_MISS_DEP "Task {1} depends on nonexistent task: {2}"
#define STRING_CMD_DIAG_MISS_PAR "Task {1} has nonexistent recurrence template: {2}"
#define STRING_CMD_DIAG_ENABLED "Enabled"
#define STRING_CMD_DIAG_DISABLED "Disabled"
#define STRING_CMD_DIAG_CONFIG "Configuration"
#define STRING_CMD_DIAG_TESTS "Tests"
#define STRING_CMD_DIAG_UUID_SCAN "Scanned {1} tasks for duplicate UUIDs:"
#define STRING_CMD_DIAG_REF_SCAN "Scanned {1} tasks for broken references:"
#define STRING_CMD_DIAG_REF_OK "No broken references found"
#define STRING_CMD_DIAG_UUID_DUP "Found duplicate {1}"
#define STRING_CMD_DIAG_UUID_NO_DUP "No duplicates found"
#define STRING_CMD_DIAG_NONE "-none-"

View file

@ -501,11 +501,15 @@
#define STRING_CMD_DIAG_COMMIT "Commit"
#define STRING_CMD_DIAG_FOUND "(trovato)"
#define STRING_CMD_DIAG_MISSING "(mancante)"
#define STRING_CMD_DIAG_MISS_DEP "Task {1} depends on nonexistent task: {2}"
#define STRING_CMD_DIAG_MISS_PAR "Task {1} has nonexistent recurrence template: {2}"
#define STRING_CMD_DIAG_ENABLED "Abilitato"
#define STRING_CMD_DIAG_DISABLED "Disabilitato"
#define STRING_CMD_DIAG_CONFIG "Configurazione"
#define STRING_CMD_DIAG_TESTS "Test"
#define STRING_CMD_DIAG_UUID_SCAN "Valutati {1} task per duplicazione UUID:"
#define STRING_CMD_DIAG_REF_SCAN "Scanned {1} tasks for broken references:"
#define STRING_CMD_DIAG_REF_OK "No broken references found"
#define STRING_CMD_DIAG_UUID_DUP "Trovato duplicato {1}"
#define STRING_CMD_DIAG_UUID_NO_DUP "Nessun duplicato trovato"
#define STRING_CMD_DIAG_NONE "-nessuno-"

View file

@ -502,11 +502,15 @@
#define STRING_CMD_DIAG_COMMIT "Commit"
#define STRING_CMD_DIAG_FOUND "(found)"
#define STRING_CMD_DIAG_MISSING "(missing)"
#define STRING_CMD_DIAG_MISS_DEP "Task {1} depends on nonexistent task: {2}"
#define STRING_CMD_DIAG_MISS_PAR "Task {1} has nonexistent recurrence template: {2}"
#define STRING_CMD_DIAG_ENABLED "Enabled"
#define STRING_CMD_DIAG_DISABLED "Disabled"
#define STRING_CMD_DIAG_CONFIG "Configuration"
#define STRING_CMD_DIAG_TESTS "Tests"
#define STRING_CMD_DIAG_UUID_SCAN "Scanned {1} tasks for duplicate UUIDs:"
#define STRING_CMD_DIAG_REF_SCAN "Scanned {1} tasks for broken references:"
#define STRING_CMD_DIAG_REF_OK "No broken references found"
#define STRING_CMD_DIAG_UUID_DUP "Found duplicate {1}"
#define STRING_CMD_DIAG_UUID_NO_DUP "No duplicates found"
#define STRING_CMD_DIAG_NONE "-none-"

View file

@ -502,11 +502,15 @@
#define STRING_CMD_DIAG_COMMIT "Zatwierdzenie"
#define STRING_CMD_DIAG_FOUND "(jest)"
#define STRING_CMD_DIAG_MISSING "(brak)"
#define STRING_CMD_DIAG_MISS_DEP "Task {1} depends on nonexistent task: {2}"
#define STRING_CMD_DIAG_MISS_PAR "Task {1} has nonexistent recurrence template: {2}"
#define STRING_CMD_DIAG_ENABLED "Włączone"
#define STRING_CMD_DIAG_DISABLED "Wyłączone"
#define STRING_CMD_DIAG_CONFIG "Konfiguracja"
#define STRING_CMD_DIAG_TESTS "Testy"
#define STRING_CMD_DIAG_UUID_SCAN "Zeskanowano {1} zadań w poszukiwaniu zdublowanych UUIDów:"
#define STRING_CMD_DIAG_REF_SCAN "Scanned {1} tasks for broken references:"
#define STRING_CMD_DIAG_REF_OK "No broken references found"
#define STRING_CMD_DIAG_UUID_DUP "Znaleziono duplikaty {1}"
#define STRING_CMD_DIAG_UUID_NO_DUP "Nie znaleziono duplikatów"
#define STRING_CMD_DIAG_NONE "-brak-"

View file

@ -502,11 +502,15 @@
#define STRING_CMD_DIAG_COMMIT "Commit" // |por-PRT|==|eng-USA|
#define STRING_CMD_DIAG_FOUND "(presente)"
#define STRING_CMD_DIAG_MISSING "(em falta)"
#define STRING_CMD_DIAG_MISS_DEP "Task {1} depends on nonexistent task: {2}"
#define STRING_CMD_DIAG_MISS_PAR "Task {1} has nonexistent recurrence template: {2}"
#define STRING_CMD_DIAG_ENABLED "Ativado"
#define STRING_CMD_DIAG_DISABLED "Desativado"
#define STRING_CMD_DIAG_CONFIG "Configuração"
#define STRING_CMD_DIAG_TESTS "Testes"
#define STRING_CMD_DIAG_UUID_SCAN "UUIDs duplicados em {1} tarefas:"
#define STRING_CMD_DIAG_REF_SCAN "Scanned {1} tasks for broken references:"
#define STRING_CMD_DIAG_REF_OK "No broken references found"
#define STRING_CMD_DIAG_UUID_DUP "UUID duplicado {1}"
#define STRING_CMD_DIAG_UUID_NO_DUP "Nenhum duplicado encontrado"
#define STRING_CMD_DIAG_NONE "-nenhum-"