summaryrefslogtreecommitdiffstats
path: root/lib/MiddleWare
diff options
context:
space:
mode:
authorZdenek Prikryl <zdeny@dhcp-lab-218.englab.brq.redhat.com>2009-04-02 11:39:54 +0200
committerZdenek Prikryl <zdeny@dhcp-lab-218.englab.brq.redhat.com>2009-04-02 11:39:54 +0200
commitf2658049fa50cb8b9898691263d7147217e78218 (patch)
tree222412d78d7d4d8e52f5ef3a1d6e93c0479c8097 /lib/MiddleWare
parent72a763a187a27c3838e87d7a79aeded7a8933ca9 (diff)
downloadabrt-f2658049fa50cb8b9898691263d7147217e78218.tar.gz
abrt-f2658049fa50cb8b9898691263d7147217e78218.tar.xz
abrt-f2658049fa50cb8b9898691263d7147217e78218.zip
added new interface frof settings
Diffstat (limited to 'lib/MiddleWare')
-rw-r--r--lib/MiddleWare/Makefile.am3
-rw-r--r--lib/MiddleWare/MiddleWare.cpp105
-rw-r--r--lib/MiddleWare/MiddleWare.h25
-rw-r--r--lib/MiddleWare/MiddleWareTypes.h2
-rw-r--r--lib/MiddleWare/PluginManager.cpp2
5 files changed, 55 insertions, 82 deletions
diff --git a/lib/MiddleWare/Makefile.am b/lib/MiddleWare/Makefile.am
index 0a618a8b..f5280eaf 100644
--- a/lib/MiddleWare/Makefile.am
+++ b/lib/MiddleWare/Makefile.am
@@ -10,9 +10,6 @@ libMiddleWare_la_LIBADD = $(DL_LIBS) ../Utils/libUtils.la $(RPM_LIBS)
libMiddleWare_la_LDFLAGS = -version-info 0:1:0
libMiddleWare_la_CPPFLAGS = -I$(srcdir)/../Utils $(RPM_CFLAGS)
-middlewareconfdir = $(CONF_DIR)
-dist_middlewareconf_DATA = abrt.conf
-
check_PROGRAMS = test
test_SOURCES = test.cpp
test_LDADD = ../Utils/libUtils.la libMiddleWare.la $(DL_LIBS) $(RPM_LIBS)
diff --git a/lib/MiddleWare/MiddleWare.cpp b/lib/MiddleWare/MiddleWare.cpp
index 00eca794..109fc3a8 100644
--- a/lib/MiddleWare/MiddleWare.cpp
+++ b/lib/MiddleWare/MiddleWare.cpp
@@ -21,27 +21,14 @@
#include "MiddleWare.h"
#include "DebugDump.h"
-#include "Settings.h"
CMiddleWare::CMiddleWare(const std::string& pPlugisConfDir,
- const std::string& pPlugisLibDir,
- const std::string& pMiddleWareConfFile) :
+ const std::string& pPlugisLibDir) :
m_pPluginManager(NULL),
m_bOpenGPGCheck(true)
{
m_pPluginManager = new CPluginManager(pPlugisConfDir, pPlugisLibDir);
- if (m_pPluginManager == NULL)
- {
- throw std::string("Not enought memory.");
- }
m_pPluginManager->LoadPlugins();
- LoadSettings(pMiddleWareConfFile);
-
- set_enabled_plugins_t::iterator it_p;
- for (it_p = m_setEnabledPlugins.begin(); it_p != m_setEnabledPlugins.end(); it_p++)
- {
- m_pPluginManager->RegisterPlugin(*it_p);
- }
}
CMiddleWare::~CMiddleWare()
@@ -50,55 +37,6 @@ CMiddleWare::~CMiddleWare()
delete m_pPluginManager;
}
-void CMiddleWare::LoadSettings(const std::string& pPath)
-{
- map_settings_t settings;
- load_settings(pPath, settings);
- if (settings.find("BlackList") != settings.end())
- {
- parse_settings(settings["BlackList"], m_setBlackList);
- }
- if (settings.find("EnabledPlugins") != settings.end())
- {
- parse_settings(settings["EnabledPlugins"], m_setEnabledPlugins);
- }
- if (settings.find("OpenGPGPublicKeys") != settings.end())
- {
- parse_settings(settings["OpenGPGPublicKeys"], m_setOpenGPGKeys);
- set_opengpg_keys_t::iterator it_k;
- for (it_k = m_setOpenGPGKeys.begin(); it_k != m_setOpenGPGKeys.end(); it_k++)
- {
- m_RPM.LoadOpenGPGPublicKey(*it_k);
- }
- }
- if (settings.find("EnableOpenGPG") != settings.end())
- {
- m_bOpenGPGCheck = settings["EnableOpenGPG"] == "yes";
- }
- if (settings.find("Database") != settings.end())
- {
- m_sDatabase = settings["Database"];
- if (m_setEnabledPlugins.find(m_sDatabase) == m_setEnabledPlugins.end())
- {
- throw std::string("Database plugin '"+m_sDatabase+"' isn't enabled.");
- }
- }
- else
- {
- throw std::string("No database plugin is selected.");
- }
- set_enabled_plugins_t::iterator it_p;
- for (it_p = m_setEnabledPlugins.begin(); it_p != m_setEnabledPlugins.end(); it_p++)
- {
- if (settings.find(*it_p) != settings.end())
- {
- set_reporters_t reporters;
- parse_settings(settings[*it_p], reporters);
- m_mapPlugin2Reporters[*it_p] = reporters;
- }
- }
-}
-
void CMiddleWare::DebugDumpToCrashReport(const std::string& pDebugDumpDir, crash_report_t& pCrashReport)
{
CDebugDump dd;
@@ -109,7 +47,8 @@ void CMiddleWare::DebugDumpToCrashReport(const std::string& pDebugDumpDir, crash
if (!dd.Exist(FILENAME_UUID) ||
!dd.Exist(FILENAME_ARCHITECTURE) ||
!dd.Exist(FILENAME_KERNEL) ||
- !dd.Exist(FILENAME_PACKAGE))
+ !dd.Exist(FILENAME_PACKAGE) ||
+ !dd.Exist(FILENAME_EXECUTABLE))
{
dd.Close();
throw std::string("CMiddleWare::DebugDumpToCrashReport(): One or more of important file(s)'re missing.");
@@ -222,11 +161,11 @@ void CMiddleWare::Report(const crash_report_t& pCrashReport)
std::string UID = pCrashReport.find("_MWUID")->second.m_sContent;
std::string UUID = pCrashReport.find("_MWUUID")->second.m_sContent;;
- if (m_mapPlugin2Reporters.find(analyzer) != m_mapPlugin2Reporters.end())
+ if (m_mapAnalyzerReporters.find(analyzer) != m_mapAnalyzerReporters.end())
{
set_reporters_t::iterator it_r;
- for (it_r = m_mapPlugin2Reporters[analyzer].begin();
- it_r != m_mapPlugin2Reporters[analyzer].end();
+ for (it_r = m_mapAnalyzerReporters[analyzer].begin();
+ it_r != m_mapAnalyzerReporters[analyzer].end();
it_r++)
{
CReporter* reporter = m_pPluginManager->GetReporter(*it_r);
@@ -477,3 +416,35 @@ vector_crash_infos_t CMiddleWare::GetCrashInfos(const std::string& pUID)
return infos;
}
+void CMiddleWare::SetOpenGPGCheck(const bool& pCheck)
+{
+ m_bOpenGPGCheck = pCheck;
+}
+
+void CMiddleWare::SetDatabase(const std::string& pDatabase)
+{
+ m_sDatabase = pDatabase;
+}
+
+void CMiddleWare::AddOpenGPGPublicKey(const std::string& pKey)
+{
+ m_RPM.LoadOpenGPGPublicKey(pKey);
+}
+
+void CMiddleWare::AddBlackListedPackage(const std::string& pPackage)
+{
+ m_setBlackList.insert(pPackage);
+}
+
+void CMiddleWare::AddAnalyzerReporter(const std::string& pAnalyzer,
+ const std::string& pReporter)
+{
+ m_mapAnalyzerReporters[pAnalyzer].insert(pReporter);
+}
+
+void CMiddleWare::AddAnalyzerAction(const std::string& pAnalyzer,
+ const std::string& pAction,
+ const vector_strings_t& pArgs)
+{
+ m_mapAnalyzerActions[pAnalyzer][pAction] = pArgs;
+}
diff --git a/lib/MiddleWare/MiddleWare.h b/lib/MiddleWare/MiddleWare.h
index 82b734b7..2986b7ef 100644
--- a/lib/MiddleWare/MiddleWare.h
+++ b/lib/MiddleWare/MiddleWare.h
@@ -35,16 +35,16 @@ class CMiddleWare
typedef set_strings_t set_blacklist_t;
typedef set_strings_t set_enabled_plugins_t;
typedef set_strings_t set_reporters_t;
- typedef set_strings_t set_opengpg_keys_t;
- typedef std::map<std::string, set_reporters_t> map_plugin2reporters_t;
+ typedef std::map<std::string, set_reporters_t> map_reporter_associations_t;
+ typedef std::map<std::string, vector_strings_t> map_single_actions_t;
+ typedef std::map<std::string, map_single_actions_t> map_action_associations_t;
CPluginManager* m_pPluginManager;
CRPM m_RPM;
set_blacklist_t m_setBlackList;
- set_enabled_plugins_t m_setEnabledPlugins;
- set_opengpg_keys_t m_setOpenGPGKeys;
std::string m_sDatabase;
- map_plugin2reporters_t m_mapPlugin2Reporters;
+ map_reporter_associations_t m_mapAnalyzerReporters;
+ map_action_associations_t m_mapAnalyzerActions;
bool m_bOpenGPGCheck;
@@ -55,8 +55,6 @@ class CMiddleWare
void CreateReport(const std::string& pAnalyzer,
const std::string& pDebugDumpDir);
- void LoadSettings(const std::string& pPath);
-
void DebugDumpToCrashReport(const std::string& pDebugDumpDir,
crash_report_t& pCrashReport);
@@ -70,8 +68,7 @@ class CMiddleWare
public:
CMiddleWare(const std::string& pPlugisConfDir,
- const std::string& pPlugisLibDir,
- const std::string& pMiddleWareConfFile);
+ const std::string& pPlugisLibDir);
~CMiddleWare();
@@ -93,6 +90,16 @@ class CMiddleWare
int SaveDebugDump(const std::string& pDebugDumpDir, crash_info_t& pCrashInfo);
vector_crash_infos_t GetCrashInfos(const std::string& pUID);
+
+ void SetOpenGPGCheck(const bool& pCheck);
+ void SetDatabase(const std::string& pDatabase);
+ void AddOpenGPGPublicKey(const std::string& pKey);
+ void AddBlackListedPackage(const std::string& pPackage);
+ void AddAnalyzerReporter(const std::string& pAnalyzer,
+ const std::string& pReporter);
+ void AddAnalyzerAction(const std::string& pAnalyzer,
+ const std::string& pAction,
+ const vector_strings_t& pArgs);
};
#endif /*MIDDLEWARE_H_*/
diff --git a/lib/MiddleWare/MiddleWareTypes.h b/lib/MiddleWare/MiddleWareTypes.h
index f2350560..5f8ee6ac 100644
--- a/lib/MiddleWare/MiddleWareTypes.h
+++ b/lib/MiddleWare/MiddleWareTypes.h
@@ -6,7 +6,7 @@
#include <vector>
#include <string>
-typedef std::vector<std::string> vector_string_t;
+typedef std::vector<std::string> vector_strings_t;
typedef std::map<std::string, std::string> map_string_string_t;
typedef std::set<std::string> set_strings_t;
diff --git a/lib/MiddleWare/PluginManager.cpp b/lib/MiddleWare/PluginManager.cpp
index 03e636ca..00c54fa6 100644
--- a/lib/MiddleWare/PluginManager.cpp
+++ b/lib/MiddleWare/PluginManager.cpp
@@ -24,7 +24,6 @@
#include <dirent.h>
#include <stdio.h>
#include <sys/types.h>
-#include "Settings.h"
CPluginManager::CPluginManager(const std::string& pPlugisConfDir,
const std::string& pPlugisLibDir) :
@@ -115,7 +114,6 @@ void CPluginManager::RegisterPlugin(const std::string& pName)
{
if (m_mapPlugins.find(pName) == m_mapPlugins.end())
{
- map_settings_t settings;
std::string path = m_sPlugisConfDir + "/" + pName + "." + PLUGINS_CONF_EXTENSION;
CPlugin* plugin = m_mapABRTPlugins[pName]->PluginNew();
plugin->Init();