summaryrefslogtreecommitdiffstats
path: root/lib/MiddleWare
diff options
context:
space:
mode:
authorZdenek Prikryl <zprikryl@redhat.com>2009-02-25 11:56:11 +0100
committerZdenek Prikryl <zprikryl@redhat.com>2009-02-25 11:56:11 +0100
commit5c2148b539d7c26175381f3875b517a1a5136d84 (patch)
treeac9aac5256b90e1e9fbb6b578ce0f5266747f42d /lib/MiddleWare
parent546601f1df0536ba7818eec31eb658676e11f56f (diff)
downloadabrt-5c2148b539d7c26175381f3875b517a1a5136d84.tar.gz
abrt-5c2148b539d7c26175381f3875b517a1a5136d84.tar.xz
abrt-5c2148b539d7c26175381f3875b517a1a5136d84.zip
added getting global UUID
Diffstat (limited to 'lib/MiddleWare')
-rw-r--r--lib/MiddleWare/MiddleWare.cpp40
-rw-r--r--lib/MiddleWare/MiddleWare.h4
2 files changed, 36 insertions, 8 deletions
diff --git a/lib/MiddleWare/MiddleWare.cpp b/lib/MiddleWare/MiddleWare.cpp
index 2d5b3330..19cbf8b8 100644
--- a/lib/MiddleWare/MiddleWare.cpp
+++ b/lib/MiddleWare/MiddleWare.cpp
@@ -103,6 +103,7 @@ void CMiddleWare::DebugDump2Report(const std::string& pDebugDumpDir, crash_repor
{
CDebugDump dd;
dd.Open(pDebugDumpDir);
+ dd.LoadText(FILENAME_UUID, pCrashReport.m_sUUID);
dd.LoadText(FILENAME_ARCHITECTURE, pCrashReport.m_sArchitecture);
dd.LoadText(FILENAME_KERNEL, pCrashReport.m_sKernel);
dd.LoadText(FILENAME_PACKAGE, pCrashReport.m_sPackage);
@@ -146,14 +147,13 @@ std::string CMiddleWare::GetLocalUUIDLanguage(const std::string& pLanguage,
return language->GetLocalUUID(pDebugDumpDir);
}
-std::string CMiddleWare::GetLocalUUIDApplication(const std::string& pApplication,
- const std::string& pDebugDumpDir)
+std::string CMiddleWare::GetGlobalUUIDLanguage(const std::string& pLanguage,
+ const std::string& pDebugDumpDir)
{
- CApplication* application = m_pPluginManager->GetApplication(pApplication);
- return application->GetLocalUUID(pDebugDumpDir);
+ CLanguage* language = m_pPluginManager->GetLanguage(pLanguage);
+ return language->GetGlobalUUID(pDebugDumpDir);
}
-
void CMiddleWare::CreateReportLanguage(const std::string& pLanguage,
const std::string& pDebugDumpDir)
{
@@ -161,6 +161,20 @@ void CMiddleWare::CreateReportLanguage(const std::string& pLanguage,
return language->CreateReport(pDebugDumpDir);
}
+std::string CMiddleWare::GetLocalUUIDApplication(const std::string& pApplication,
+ const std::string& pDebugDumpDir)
+{
+ CApplication* application = m_pPluginManager->GetApplication(pApplication);
+ return application->GetLocalUUID(pDebugDumpDir);
+}
+
+std::string CMiddleWare::GetGlobalUUIDApplication(const std::string& pApplication,
+ const std::string& pDebugDumpDir)
+{
+ CApplication* application = m_pPluginManager->GetApplication(pApplication);
+ return application->GetGlobalUUID(pDebugDumpDir);
+}
+
void CMiddleWare::CreateReportApplication(const std::string& pApplication,
const std::string& pDebugDumpDir)
{
@@ -181,24 +195,30 @@ void CMiddleWare::CreateReport(const std::string& pUUID,
if (row.m_sUUID != pUUID)
{
- throw std::string("CMiddleWare::GetReport(): UUID '"+pUUID+"' is not in database.");
+ throw std::string("CMiddleWare::CreateReport(): UUID '"+pUUID+"' is not in database.");
}
std::string appLan;
+ std::string UUID;
CDebugDump dd;
dd.Open(row.m_sDebugDumpDir);
if (dd.Exist(FILENAME_APPLICATION))
{
dd.LoadText(FILENAME_APPLICATION, appLan);
CreateReportApplication(appLan, row.m_sDebugDumpDir);
+ UUID = GetGlobalUUIDApplication(appLan, row.m_sDebugDumpDir);
}
if (dd.Exist(FILENAME_LANGUAGE))
{
dd.LoadText(FILENAME_LANGUAGE, appLan);
CreateReportLanguage(appLan, row.m_sDebugDumpDir);
+ UUID = GetGlobalUUIDLanguage(appLan, row.m_sDebugDumpDir);
}
- DebugDump2Report(row.m_sDebugDumpDir, pCrashReport);
+ dd.SaveText(FILENAME_UUID, UUID);
dd.Close();
+
+ DebugDump2Report(row.m_sDebugDumpDir, pCrashReport);
+
pCrashContext.m_sLanAppPlugin = appLan;
pCrashContext.m_sUUID = pUUID;
pCrashContext.m_sUID = pUID;
@@ -233,6 +253,7 @@ int CMiddleWare::SaveDebugDump(const std::string& pDebugDumpDir, crash_info_t& p
std::string UUID;
std::string UID;
std::string package;
+ std::string description;
std::string executable;
std::string time;
@@ -240,7 +261,7 @@ int CMiddleWare::SaveDebugDump(const std::string& pDebugDumpDir, crash_info_t& p
dd.Open(pDebugDumpDir);
dd.LoadText(FILENAME_EXECUTABLE, executable);
- package = m_RPMInfo.GetPackage(executable);
+ package = m_RPMInfo.GetPackage(executable, description);
std::string packageName = package.substr(0, package.rfind("-", package.rfind("-") - 1));
if (packageName == "" ||
(m_setBlackList.find(packageName) != m_setBlackList.end()))
@@ -260,6 +281,7 @@ int CMiddleWare::SaveDebugDump(const std::string& pDebugDumpDir, crash_info_t& p
}
}
dd.SaveText(FILENAME_PACKAGE, package);
+ dd.SaveText(FILENAME_DESCRIPTION, description);
if (dd.Exist(FILENAME_APPLICATION))
{
@@ -334,6 +356,8 @@ vector_crash_infos_t CMiddleWare::GetCrashInfos(const std::string& pUID)
info.m_sExecutable = data;
dd.LoadText(FILENAME_PACKAGE, data);
info.m_sPackage = data;
+ dd.LoadText(FILENAME_DESCRIPTION, data);
+ info.m_sDescription = data;
dd.Close();
infos.push_back(info);
diff --git a/lib/MiddleWare/MiddleWare.h b/lib/MiddleWare/MiddleWare.h
index d2cd8a28..f0b263ab 100644
--- a/lib/MiddleWare/MiddleWare.h
+++ b/lib/MiddleWare/MiddleWare.h
@@ -50,10 +50,14 @@ class CMiddleWare
std::string GetLocalUUIDLanguage(const std::string& pLanguage,
const std::string& pDebugDumpDir);
+ std::string GetGlobalUUIDLanguage(const std::string& pLanguage,
+ const std::string& pDebugDumpDir);
void CreateReportLanguage(const std::string& pLanguage,
const std::string& pDebugDumpDir);
std::string GetLocalUUIDApplication(const std::string& pApplication,
const std::string& pDebugDumpDir);
+ std::string GetGlobalUUIDApplication(const std::string& pApplication,
+ const std::string& pDebugDumpDir);
void CreateReportApplication(const std::string& pApplication,
const std::string& pDebugDumpDir);