Update log message and implement recursive diff delete

This commit is contained in:
Michael Friedrich 2018-10-23 18:29:53 +02:00
parent 2acf3a6941
commit 604a8a041d
1 changed files with 5 additions and 4 deletions

View File

@ -132,23 +132,24 @@ bool ApiListener::UpdateConfigDir(const ConfigDirInformation& oldConfigInfo, con
}
}
/* Update with staging information TODO - use `authoritative` as flag. */
/* Log something whether we're authoritative or receing a staged config. */
Log(LogInformation, "ApiListener")
<< "Applying configuration file update for path '" << configDir << "' (" << numBytes << " Bytes). Received timestamp '"
<< "Applying configuration file update for " << (authoritative ? "" : "stage ")
<< "path '" << configDir << "' (" << numBytes << " Bytes). Received timestamp '"
<< Utility::FormatDateTime("%Y-%m-%d %H:%M:%S %z", newTimestamp) << "' ("
<< std::fixed << std::setprecision(6) << newTimestamp
<< "), Current timestamp '"
<< Utility::FormatDateTime("%Y-%m-%d %H:%M:%S %z", oldTimestamp) << "' ("
<< oldTimestamp << ").";
/* TODO: Deal with recursive directories. */
/* If the update removes a path, delete it on disk. */
ObjectLock xlock(oldConfig);
for (const Dictionary::Pair& kv : oldConfig) {
if (!newConfig->Contains(kv.first)) {
configChange = true;
String path = configDir + "/" + kv.first;
(void) unlink(path.CStr());
Utility::RemoveDirRecursive(path);
}
}