diff options
author | Zdenek Prikryl <zdeny@dhcp-lab-218.englab.brq.redhat.com> | 2009-04-02 11:39:54 +0200 |
---|---|---|
committer | Zdenek Prikryl <zdeny@dhcp-lab-218.englab.brq.redhat.com> | 2009-04-02 11:39:54 +0200 |
commit | f2658049fa50cb8b9898691263d7147217e78218 (patch) | |
tree | 222412d78d7d4d8e52f5ef3a1d6e93c0479c8097 /lib/MiddleWare | |
parent | 72a763a187a27c3838e87d7a79aeded7a8933ca9 (diff) | |
download | abrt-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.am | 3 | ||||
-rw-r--r-- | lib/MiddleWare/MiddleWare.cpp | 105 | ||||
-rw-r--r-- | lib/MiddleWare/MiddleWare.h | 25 | ||||
-rw-r--r-- | lib/MiddleWare/MiddleWareTypes.h | 2 | ||||
-rw-r--r-- | lib/MiddleWare/PluginManager.cpp | 2 |
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(); |