wsd: Storage logs updated

Change-Id: Ib3083e833fdc2891ab0c89231bf2ec3e81285803
Reviewed-on: https://gerrit.libreoffice.org/32560
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
This commit is contained in:
Ashod Nakashian
2016-12-22 16:41:05 -05:00
committed by Ashod Nakashian
parent de4a7a139e
commit aef5af8114
2 changed files with 43 additions and 28 deletions

View File

@ -108,14 +108,14 @@ bool isLocalhost(const std::string& targetHost)
}
catch (const Poco::Exception& exc)
{
Log::warn("Poco::Net::DNS::resolveOne(\"" + targetHost + "\") failed: " + exc.displayText());
LOG_WRN("Poco::Net::DNS::resolveOne(\"" << targetHost << "\") failed: " << exc.displayText());
try
{
targetAddress = Poco::Net::IPAddress(targetHost).toString();
}
catch (const Poco::Exception& exc1)
{
Log::warn("Poco::Net::IPAddress(\"" + targetHost + "\") failed: " + exc1.displayText());
LOG_WRN("Poco::Net::IPAddress(\"" << targetHost << "\") failed: " << exc1.displayText());
}
}
@ -192,7 +192,7 @@ std::atomic<unsigned> LocalStorage::LastLocalStorageId;
std::unique_ptr<LocalStorage::LocalFileInfo> LocalStorage::getLocalFileInfo(const Poco::URI& uriPublic)
{
const auto path = Poco::Path(uriPublic.getPath());
Log::debug("Getting info for local uri [" + uriPublic.toString() + "], path [" + path.toString() + "].");
LOG_DBG("Getting info for local uri [" << uriPublic.toString() << "], path [" << path.toString() << "].");
const auto& filename = path.getFileName();
const auto file = Poco::File(path);
@ -213,7 +213,7 @@ std::string LocalStorage::loadStorageFileToLocal()
const auto filename = Poco::Path(_uri.getPath()).getFileName();
_jailedFilePath = Poco::Path(rootPath, filename).toString();
LOG_INF("Public URI [" << _uri.getPath() <<
"] jailed to [" + _jailedFilePath + "].");
"] jailed to [" << _jailedFilePath << "].");
// Despite the talk about URIs it seems that _uri is actually just a pathname here
const auto publicFilePath = _uri.getPath();
@ -227,7 +227,7 @@ std::string LocalStorage::loadStorageFileToLocal()
if (!Poco::File(_jailedFilePath).exists() && link(publicFilePath.c_str(), _jailedFilePath.c_str()) == -1)
{
// Failed
Log::warn("link(\"" + publicFilePath + "\", \"" + _jailedFilePath + "\") failed. Will copy.");
LOG_WRN("link(\"" << publicFilePath << "\", \"" << _jailedFilePath << "\") failed. Will copy.");
}
try
@ -242,7 +242,7 @@ std::string LocalStorage::loadStorageFileToLocal()
}
catch (const Poco::Exception& exc)
{
Log::error("copyTo(\"" + publicFilePath + "\", \"" + _jailedFilePath + "\") failed: " + exc.displayText());
LOG_ERR("copyTo(\"" << publicFilePath << "\", \"" << _jailedFilePath << "\") failed: " << exc.displayText());
throw;
}
@ -357,7 +357,7 @@ void getWOPIValue(const Poco::JSON::Object::Ptr &object, const std::string& key,
std::unique_ptr<WopiStorage::WOPIFileInfo> WopiStorage::getWOPIFileInfo(const Poco::URI& uriPublic)
{
LOG_DBG("Getting info for wopi uri [" + uriPublic.toString() + "].");
LOG_DBG("Getting info for wopi uri [" << uriPublic.toString() << "].");
std::string resMsg;
const auto startTime = std::chrono::steady_clock::now();
@ -374,13 +374,17 @@ std::unique_ptr<WopiStorage::WOPIFileInfo> WopiStorage::getWOPIFileInfo(const Po
std::istream& rs = psession->receiveResponse(response);
callDuration = (std::chrono::steady_clock::now() - startTime);
auto logger = Log::trace();
logger << "WOPI::CheckFileInfo header for URI [" << uriPublic.toString() << "]:\n";
for (auto& pair : response)
if (Log::traceEnabled())
{
logger << '\t' + pair.first + ": " + pair.second << " / ";
auto logger = Log::trace();
logger << "WOPI::CheckFileInfo header for URI [" << uriPublic.toString() << "]:\n";
for (const auto& pair : response)
{
logger << '\t' << pair.first << ": " << pair.second << " / ";
}
logger << Log::end;
}
logger << Log::end;
Poco::StreamCopier::copyToString(rs, resMsg);
}
@ -408,7 +412,7 @@ std::unique_ptr<WopiStorage::WOPIFileInfo> WopiStorage::getWOPIFileInfo(const Po
bool disableCopy = false;
std::string lastModifiedTime;
LOG_DBG("WOPI::CheckFileInfo returned: " + resMsg + ". Call duration: " + std::to_string(callDuration.count()) + "s");
LOG_DBG("WOPI::CheckFileInfo returned: " << resMsg << ". Call duration: " << callDuration.count() << "s");
const auto index = resMsg.find_first_of('{');
if (index != std::string::npos)
{
@ -433,7 +437,9 @@ std::unique_ptr<WopiStorage::WOPIFileInfo> WopiStorage::getWOPIFileInfo(const Po
getWOPIValue(object, "LastModifiedTime", lastModifiedTime);
}
else
{
LOG_ERR("WOPI::CheckFileInfo is missing JSON payload");
}
Poco::Timestamp modifiedTime = Poco::Timestamp::fromEpochTime(0);
if (lastModifiedTime != "")
@ -448,12 +454,15 @@ std::unique_ptr<WopiStorage::WOPIFileInfo> WopiStorage::getWOPIFileInfo(const Po
}
catch (const Poco::SyntaxException& exc)
{
LOG_WRN("LastModifiedTime property [" + lastModifiedTime + "] was invalid format: " << exc.displayText() <<
LOG_WRN("LastModifiedTime property [" << lastModifiedTime << "] was invalid format: " << exc.displayText() <<
(exc.nested() ? " (" + exc.nested()->displayText() + ")" : ""));
}
if (valid)
{
modifiedTime = dateTime.timestamp();
}
}
_fileInfo = FileInfo({filename, ownerId, modifiedTime, size});
return std::unique_ptr<WopiStorage::WOPIFileInfo>(new WOPIFileInfo({userId, userName, canWrite, postMessageOrigin, hidePrintOption, hideSaveOption, hideExportOption, enableOwnerTermination, disablePrint, disableExport, disableCopy, callDuration}));
@ -466,7 +475,7 @@ std::string WopiStorage::loadStorageFileToLocal()
// Add it here to get the payload instead of file info.
Poco::URI uriObject(_uri);
uriObject.setPath(uriObject.getPath() + "/contents");
LOG_DBG("Wopi requesting: " + uriObject.toString());
LOG_DBG("Wopi requesting: " << uriObject.toString());
const auto startTime = std::chrono::steady_clock::now();
try
@ -482,13 +491,17 @@ std::string WopiStorage::loadStorageFileToLocal()
const std::chrono::duration<double> diff = (std::chrono::steady_clock::now() - startTime);
_wopiLoadDuration += diff;
auto logger = Log::trace();
logger << "WOPI::GetFile header for URI [" << uriObject.toString() << "]:\n";
for (auto& pair : response)
if (Log::traceEnabled())
{
logger << '\t' + pair.first + ": " + pair.second << " / ";
auto logger = Log::trace();
logger << "WOPI::GetFile header for URI [" << uriObject.toString() << "]:\n";
for (const auto& pair : response)
{
logger << '\t' << pair.first << ": " << pair.second << " / ";
}
logger << Log::end;
}
logger << Log::end;
_jailedFilePath = Poco::Path(getLocalRootPath(), _fileInfo._filename).toString();
std::ofstream ofs(_jailedFilePath);
@ -517,6 +530,7 @@ StorageBase::SaveResult WopiStorage::saveLocalFileToStorage(const Poco::URI& uri
LOG_INF("Uploading URI [" << uriPublic.toString() << "] from [" << _jailedFilePath + "].");
// TODO: Check if this URI has write permission (canWrite = true)
const auto size = getFileSize(_jailedFilePath);
Poco::URI uriObject(uriPublic);
uriObject.setPath(uriObject.getPath() + "/contents");
LOG_DBG("Wopi posting: " + uriObject.toString());

View File

@ -70,7 +70,7 @@ public:
_fileInfo("", "lool", Poco::Timestamp::fromEpochTime(0), 0),
_isLoaded(false)
{
Log::debug("Storage ctor: " + uri.toString());
LOG_DBG("Storage ctor: " << uri.toString());
}
std::string getLocalRootPath() const;
@ -123,11 +123,12 @@ public:
StorageBase(uri, localStorePath, jailPath),
_isCopy(false)
{
Log::info("LocalStorage ctor with localStorePath: [" + localStorePath +
"], jailPath: [" + jailPath + "], uri: [" + uri.toString() + "].");
LOG_INF("LocalStorage ctor with localStorePath: [" << localStorePath <<
"], jailPath: [" << jailPath << "], uri: [" << uri.toString() << "].");
}
class LocalFileInfo {
class LocalFileInfo
{
public:
LocalFileInfo(const std::string& userid,
const std::string& username)
@ -165,8 +166,8 @@ public:
StorageBase(uri, localStorePath, jailPath),
_wopiLoadDuration(0)
{
Log::info("WopiStorage ctor with localStorePath: [" + localStorePath +
"], jailPath: [" + jailPath + "], uri: [" + uri.toString() + "].");
LOG_INF("WopiStorage ctor with localStorePath: [" << localStorePath <<
"], jailPath: [" << jailPath << "], uri: [" << uri.toString() << "].");
}
class WOPIFileInfo
@ -254,8 +255,8 @@ public:
StorageBase(uri, localStorePath, jailPath),
_authAgent(std::move(authAgent))
{
Log::info("WebDAVStorage ctor with localStorePath: [" + localStorePath +
"], jailPath: [" + jailPath + "], uri: [" + uri.toString() + "].");
LOG_INF("WebDAVStorage ctor with localStorePath: [" << localStorePath <<
"], jailPath: [" << jailPath << "], uri: [" << uri.toString() << "].");
}
// Implement me