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"; << "\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"; out << "\n";
output = out.str (); output = out.str ();
return 0; return 0;

View file

@ -502,11 +502,15 @@
#define STRING_CMD_DIAG_COMMIT "Commit" #define STRING_CMD_DIAG_COMMIT "Commit"
#define STRING_CMD_DIAG_FOUND "(found)" #define STRING_CMD_DIAG_FOUND "(found)"
#define STRING_CMD_DIAG_MISSING "(missing)" #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_ENABLED "Enabled"
#define STRING_CMD_DIAG_DISABLED "Disabled" #define STRING_CMD_DIAG_DISABLED "Disabled"
#define STRING_CMD_DIAG_CONFIG "Configuration" #define STRING_CMD_DIAG_CONFIG "Configuration"
#define STRING_CMD_DIAG_TESTS "Tests" #define STRING_CMD_DIAG_TESTS "Tests"
#define STRING_CMD_DIAG_UUID_SCAN "Scanned {1} tasks for duplicate UUIDs:" #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_DUP "Found duplicate {1}"
#define STRING_CMD_DIAG_UUID_NO_DUP "No duplicates found" #define STRING_CMD_DIAG_UUID_NO_DUP "No duplicates found"
#define STRING_CMD_DIAG_NONE "-none-" #define STRING_CMD_DIAG_NONE "-none-"

View file

@ -500,11 +500,15 @@
#define STRING_CMD_DIAG_COMMIT "Commit" #define STRING_CMD_DIAG_COMMIT "Commit"
#define STRING_CMD_DIAG_FOUND "(found)" #define STRING_CMD_DIAG_FOUND "(found)"
#define STRING_CMD_DIAG_MISSING "(missing)" #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_ENABLED "Enabled"
#define STRING_CMD_DIAG_DISABLED "Disabled" #define STRING_CMD_DIAG_DISABLED "Disabled"
#define STRING_CMD_DIAG_CONFIG "Configuration" #define STRING_CMD_DIAG_CONFIG "Configuration"
#define STRING_CMD_DIAG_TESTS "Tests" #define STRING_CMD_DIAG_TESTS "Tests"
#define STRING_CMD_DIAG_UUID_SCAN "Scanned {1} tasks for duplicate UUIDs:" #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_DUP "Found duplicate {1}"
#define STRING_CMD_DIAG_UUID_NO_DUP "No duplicates found" #define STRING_CMD_DIAG_UUID_NO_DUP "No duplicates found"
#define STRING_CMD_DIAG_NONE "-none-" #define STRING_CMD_DIAG_NONE "-none-"

View file

@ -502,11 +502,15 @@
#define STRING_CMD_DIAG_COMMIT "Commit" #define STRING_CMD_DIAG_COMMIT "Commit"
#define STRING_CMD_DIAG_FOUND "(found)" #define STRING_CMD_DIAG_FOUND "(found)"
#define STRING_CMD_DIAG_MISSING "(missing)" #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_ENABLED "Enabled"
#define STRING_CMD_DIAG_DISABLED "Disabled" #define STRING_CMD_DIAG_DISABLED "Disabled"
#define STRING_CMD_DIAG_CONFIG "Configuration" #define STRING_CMD_DIAG_CONFIG "Configuration"
#define STRING_CMD_DIAG_TESTS "Tests" #define STRING_CMD_DIAG_TESTS "Tests"
#define STRING_CMD_DIAG_UUID_SCAN "Scanned {1} tasks for duplicate UUIDs:" #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_DUP "Found duplicate {1}"
#define STRING_CMD_DIAG_UUID_NO_DUP "No duplicates found" #define STRING_CMD_DIAG_UUID_NO_DUP "No duplicates found"
#define STRING_CMD_DIAG_NONE "-none-" #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_COMMIT "Commit" // |esp-ESP|==|eng-USA|
#define STRING_CMD_DIAG_FOUND "(encontrado)" #define STRING_CMD_DIAG_FOUND "(encontrado)"
#define STRING_CMD_DIAG_MISSING "(no 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_ENABLED "Habilitado"
#define STRING_CMD_DIAG_DISABLED "deshabilitado" #define STRING_CMD_DIAG_DISABLED "deshabilitado"
#define STRING_CMD_DIAG_CONFIG "Configuración" #define STRING_CMD_DIAG_CONFIG "Configuración"
#define STRING_CMD_DIAG_TESTS "Comprobaciones" #define STRING_CMD_DIAG_TESTS "Comprobaciones"
#define STRING_CMD_DIAG_UUID_SCAN "Exploradas {1} tareas buscando UUIDs duplicados:" #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_DUP "Encontrado duplicado {1}"
#define STRING_CMD_DIAG_UUID_NO_DUP "No se encontraron duplicados" #define STRING_CMD_DIAG_UUID_NO_DUP "No se encontraron duplicados"
#define STRING_CMD_DIAG_NONE "-ninguno-" #define STRING_CMD_DIAG_NONE "-ninguno-"

View file

@ -502,11 +502,15 @@
#define STRING_CMD_DIAG_COMMIT "Commit" #define STRING_CMD_DIAG_COMMIT "Commit"
#define STRING_CMD_DIAG_FOUND "(found)" #define STRING_CMD_DIAG_FOUND "(found)"
#define STRING_CMD_DIAG_MISSING "(missing)" #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_ENABLED "Enabled"
#define STRING_CMD_DIAG_DISABLED "Disabled" #define STRING_CMD_DIAG_DISABLED "Disabled"
#define STRING_CMD_DIAG_CONFIG "Configuration" #define STRING_CMD_DIAG_CONFIG "Configuration"
#define STRING_CMD_DIAG_TESTS "Tests" #define STRING_CMD_DIAG_TESTS "Tests"
#define STRING_CMD_DIAG_UUID_SCAN "Scanned {1} tasks for duplicate UUIDs:" #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_DUP "Found duplicate {1}"
#define STRING_CMD_DIAG_UUID_NO_DUP "No duplicates found" #define STRING_CMD_DIAG_UUID_NO_DUP "No duplicates found"
#define STRING_CMD_DIAG_NONE "-none-" #define STRING_CMD_DIAG_NONE "-none-"

View file

@ -501,11 +501,15 @@
#define STRING_CMD_DIAG_COMMIT "Commit" #define STRING_CMD_DIAG_COMMIT "Commit"
#define STRING_CMD_DIAG_FOUND "(trovato)" #define STRING_CMD_DIAG_FOUND "(trovato)"
#define STRING_CMD_DIAG_MISSING "(mancante)" #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_ENABLED "Abilitato"
#define STRING_CMD_DIAG_DISABLED "Disabilitato" #define STRING_CMD_DIAG_DISABLED "Disabilitato"
#define STRING_CMD_DIAG_CONFIG "Configurazione" #define STRING_CMD_DIAG_CONFIG "Configurazione"
#define STRING_CMD_DIAG_TESTS "Test" #define STRING_CMD_DIAG_TESTS "Test"
#define STRING_CMD_DIAG_UUID_SCAN "Valutati {1} task per duplicazione UUID:" #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_DUP "Trovato duplicato {1}"
#define STRING_CMD_DIAG_UUID_NO_DUP "Nessun duplicato trovato" #define STRING_CMD_DIAG_UUID_NO_DUP "Nessun duplicato trovato"
#define STRING_CMD_DIAG_NONE "-nessuno-" #define STRING_CMD_DIAG_NONE "-nessuno-"

View file

@ -502,11 +502,15 @@
#define STRING_CMD_DIAG_COMMIT "Commit" #define STRING_CMD_DIAG_COMMIT "Commit"
#define STRING_CMD_DIAG_FOUND "(found)" #define STRING_CMD_DIAG_FOUND "(found)"
#define STRING_CMD_DIAG_MISSING "(missing)" #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_ENABLED "Enabled"
#define STRING_CMD_DIAG_DISABLED "Disabled" #define STRING_CMD_DIAG_DISABLED "Disabled"
#define STRING_CMD_DIAG_CONFIG "Configuration" #define STRING_CMD_DIAG_CONFIG "Configuration"
#define STRING_CMD_DIAG_TESTS "Tests" #define STRING_CMD_DIAG_TESTS "Tests"
#define STRING_CMD_DIAG_UUID_SCAN "Scanned {1} tasks for duplicate UUIDs:" #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_DUP "Found duplicate {1}"
#define STRING_CMD_DIAG_UUID_NO_DUP "No duplicates found" #define STRING_CMD_DIAG_UUID_NO_DUP "No duplicates found"
#define STRING_CMD_DIAG_NONE "-none-" #define STRING_CMD_DIAG_NONE "-none-"

View file

@ -502,11 +502,15 @@
#define STRING_CMD_DIAG_COMMIT "Zatwierdzenie" #define STRING_CMD_DIAG_COMMIT "Zatwierdzenie"
#define STRING_CMD_DIAG_FOUND "(jest)" #define STRING_CMD_DIAG_FOUND "(jest)"
#define STRING_CMD_DIAG_MISSING "(brak)" #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_ENABLED "Włączone"
#define STRING_CMD_DIAG_DISABLED "Wyłączone" #define STRING_CMD_DIAG_DISABLED "Wyłączone"
#define STRING_CMD_DIAG_CONFIG "Konfiguracja" #define STRING_CMD_DIAG_CONFIG "Konfiguracja"
#define STRING_CMD_DIAG_TESTS "Testy" #define STRING_CMD_DIAG_TESTS "Testy"
#define STRING_CMD_DIAG_UUID_SCAN "Zeskanowano {1} zadań w poszukiwaniu zdublowanych UUIDów:" #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_DUP "Znaleziono duplikaty {1}"
#define STRING_CMD_DIAG_UUID_NO_DUP "Nie znaleziono duplikatów" #define STRING_CMD_DIAG_UUID_NO_DUP "Nie znaleziono duplikatów"
#define STRING_CMD_DIAG_NONE "-brak-" #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_COMMIT "Commit" // |por-PRT|==|eng-USA|
#define STRING_CMD_DIAG_FOUND "(presente)" #define STRING_CMD_DIAG_FOUND "(presente)"
#define STRING_CMD_DIAG_MISSING "(em falta)" #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_ENABLED "Ativado"
#define STRING_CMD_DIAG_DISABLED "Desativado" #define STRING_CMD_DIAG_DISABLED "Desativado"
#define STRING_CMD_DIAG_CONFIG "Configuração" #define STRING_CMD_DIAG_CONFIG "Configuração"
#define STRING_CMD_DIAG_TESTS "Testes" #define STRING_CMD_DIAG_TESTS "Testes"
#define STRING_CMD_DIAG_UUID_SCAN "UUIDs duplicados em {1} tarefas:" #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_DUP "UUID duplicado {1}"
#define STRING_CMD_DIAG_UUID_NO_DUP "Nenhum duplicado encontrado" #define STRING_CMD_DIAG_UUID_NO_DUP "Nenhum duplicado encontrado"
#define STRING_CMD_DIAG_NONE "-nenhum-" #define STRING_CMD_DIAG_NONE "-nenhum-"