summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZdenek Prikryl <zprikryl@redhat.com>2009-07-24 10:54:10 +0200
committerZdenek Prikryl <zprikryl@redhat.com>2009-07-24 10:54:10 +0200
commita2a1ec29e008936654a146df244e4265668bfb31 (patch)
treeb22e4948feea83fecde1bb5ed5d1b4bd368b5bd6
parente105dd726b9a7313eb64e2c59d336452439d2f97 (diff)
downloadabrt-a2a1ec29e008936654a146df244e4265668bfb31.tar.gz
abrt-a2a1ec29e008936654a146df244e4265668bfb31.tar.xz
abrt-a2a1ec29e008936654a146df244e4265668bfb31.zip
Added first part of gui support in reporting
-rw-r--r--lib/MiddleWare/ABRTPlugin.cpp6
-rw-r--r--lib/MiddleWare/ABRTPlugin.h5
-rw-r--r--lib/MiddleWare/Makefile.am4
-rw-r--r--lib/MiddleWare/MiddleWare.cpp5
-rw-r--r--lib/MiddleWare/MiddleWare.h8
-rw-r--r--lib/MiddleWare/Plugin.h6
-rw-r--r--lib/MiddleWare/PluginManager.cpp16
-rw-r--r--lib/MiddleWare/PluginManager.h8
-rw-r--r--lib/MiddleWare/test.cpp10
-rw-r--r--lib/Plugins/Bugzilla.h3
-rw-r--r--lib/Plugins/CCpp.h3
-rw-r--r--lib/Plugins/FileTransfer.h3
-rw-r--r--lib/Plugins/Kerneloops.h3
-rw-r--r--lib/Plugins/KerneloopsReporter.h3
-rw-r--r--lib/Plugins/KerneloopsScanner.h3
-rw-r--r--lib/Plugins/Logger.h3
-rw-r--r--lib/Plugins/Mailx.h3
-rw-r--r--lib/Plugins/Makefile.am9
-rw-r--r--lib/Plugins/Python.h3
-rw-r--r--lib/Plugins/RunApp.h3
-rw-r--r--lib/Plugins/SOSreport.h3
-rw-r--r--lib/Plugins/SQLite3.h3
22 files changed, 90 insertions, 23 deletions
diff --git a/lib/MiddleWare/ABRTPlugin.cpp b/lib/MiddleWare/ABRTPlugin.cpp
index 56e58b94..f2afa416 100644
--- a/lib/MiddleWare/ABRTPlugin.cpp
+++ b/lib/MiddleWare/ABRTPlugin.cpp
@@ -69,6 +69,12 @@ const std::string& CABRTPlugin::GetWWW()
return m_pPluginInfo->m_sWWW;
}
+const std::string& CABRTPlugin::GetGTKBuilder()
+{
+ return m_pPluginInfo->m_sGTKBuilder;
+}
+
+
const plugin_type_t CABRTPlugin::GetType()
{
return m_pPluginInfo->m_Type;
diff --git a/lib/MiddleWare/ABRTPlugin.h b/lib/MiddleWare/ABRTPlugin.h
index e585f2af..cdf72bb3 100644
--- a/lib/MiddleWare/ABRTPlugin.h
+++ b/lib/MiddleWare/ABRTPlugin.h
@@ -93,6 +93,11 @@ class CABRTPlugin
*/
const std::string& GetWWW();
/**
+ * It is used for getting a path to gui description.
+ * @return home page
+ */
+ const std::string& GetGTKBuilder();
+ /**
* It is used for getting loaded plugin's type.
* @return type
*/
diff --git a/lib/MiddleWare/Makefile.am b/lib/MiddleWare/Makefile.am
index 1023aa06..016d6ead 100644
--- a/lib/MiddleWare/Makefile.am
+++ b/lib/MiddleWare/Makefile.am
@@ -12,8 +12,8 @@ libABRTMiddleWare_la_CPPFLAGS = -I$(srcdir)/../../inc -I$(srcdir)/../Utils -I$(s
check_PROGRAMS = test
test_SOURCES = test.cpp
-test_LDADD = ../Utils/libABRTUtils.la libABRTMiddleWare.la $(DL_LIBS) $(RPM_LIBS)
-test_CPPFLAGS = -I$(srcdir)/../Utils \
+test_LDADD = ../Utils/libABRTUtils.la libABRTMiddleWare.la $(DL_LIBS) $(RPM_LIBS) ../CommLayer/libABRTCommLayer.la
+test_CPPFLAGS = -I$(srcdir)/../Utils -I$(srcdir)/../../inc -I$(srcdir)/../CommLayer\
-DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\" \
-DPLUGINS_CONF_DIR=\"$(PLUGINS_CONF_DIR)\" \
-DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" \
diff --git a/lib/MiddleWare/MiddleWare.cpp b/lib/MiddleWare/MiddleWare.cpp
index f520189c..34b4391e 100644
--- a/lib/MiddleWare/MiddleWare.cpp
+++ b/lib/MiddleWare/MiddleWare.cpp
@@ -566,6 +566,11 @@ vector_pair_string_string_t CMiddleWare::GetUUIDsOfCrash(const std::string& pUID
return UUIDsUIDs;
}
+map_string_string_t CMiddleWare::GetPluginInfo(const std::string& pName)
+{
+ return m_pPluginManager->GetPluginInfo(pName);
+}
+
void CMiddleWare::SetOpenGPGCheck(const bool& pCheck)
{
m_bOpenGPGCheck = pCheck;
diff --git a/lib/MiddleWare/MiddleWare.h b/lib/MiddleWare/MiddleWare.h
index d0bc9f79..625e037e 100644
--- a/lib/MiddleWare/MiddleWare.h
+++ b/lib/MiddleWare/MiddleWare.h
@@ -287,7 +287,13 @@ class CMiddleWare
* @return A vector of pairs (local UUID, UID).
*/
vector_pair_string_string_t GetUUIDsOfCrash(const std::string& pUID);
-
+ /**
+ * A method, which gets all needed plugin info. It can be send via DBus
+ * to GUI and displayed to an user.
+ * @param pName A Name of plugin.
+ * @return A map <key, vaule>
+ */
+ map_string_string_t GetPluginInfo(const std::string& pName);
/**
* A method, which set a GPG finger print check.
* @param pCheck Is it enabled?
diff --git a/lib/MiddleWare/Plugin.h b/lib/MiddleWare/Plugin.h
index b6bfb3e5..ef107e3d 100644
--- a/lib/MiddleWare/Plugin.h
+++ b/lib/MiddleWare/Plugin.h
@@ -26,7 +26,7 @@
#include <string>
#include <map>
-#define PLUGINS_MAGIC_NUMBER 2
+#define PLUGINS_MAGIC_NUMBER 3
#define PLUGINS_CONF_EXTENSION "conf"
#define PLUGINS_LIB_EXTENSION "so"
@@ -81,12 +81,13 @@ typedef struct SPluginInfo
const std::string m_sDescription; /**< Plugin description.*/
const std::string m_sEmail; /**< Plugin author's email.*/
const std::string m_sWWW; /**< Plugin's home page.*/
+ const std::string m_sGTKBuilder; /**< Plugin's gui description.*/
const int m_nMagicNumber; /**< Plugin magical number.*/
} plugin_info_t;
#define PLUGIN_IFACE extern "C"
-#define PLUGIN_INFO(type, plugin_class, name, version, description, email, www)\
+#define PLUGIN_INFO(type, plugin_class, name, version, description, email, www, gtk_builder)\
PLUGIN_IFACE CPlugin* plugin_new()\
{\
return new plugin_class();\
@@ -99,6 +100,7 @@ typedef struct SPluginInfo
description,\
email,\
www,\
+ gtk_builder,\
PLUGINS_MAGIC_NUMBER,\
};
diff --git a/lib/MiddleWare/PluginManager.cpp b/lib/MiddleWare/PluginManager.cpp
index 8ce32f45..9f8857a8 100644
--- a/lib/MiddleWare/PluginManager.cpp
+++ b/lib/MiddleWare/PluginManager.cpp
@@ -226,3 +226,19 @@ plugin_type_t CPluginManager::GetPluginType(const std::string& pName)
return m_mapABRTPlugins[pName]->GetType();
}
+map_string_string_t CPluginManager::GetPluginInfo(const std::string& pName)
+{
+ map_string_string_t ret;
+ if (m_mapABRTPlugins.find(pName) != m_mapABRTPlugins.end())
+ {
+ ret["Type"] = plugin_type_str_t[m_mapABRTPlugins[pName]->GetType()];
+ ret["Name"] = m_mapABRTPlugins[pName]->GetName();
+ ret["Version"] = m_mapABRTPlugins[pName]->GetVersion();
+ ret["Description"] = m_mapABRTPlugins[pName]->GetDescription();
+ ret["Email"] = m_mapABRTPlugins[pName]->GetEmail();
+ ret["WWW"] = m_mapABRTPlugins[pName]->GetWWW();
+ ret["GTKBuilder"] = m_mapABRTPlugins[pName]->GetGTKBuilder();
+ }
+ return ret;
+}
+
diff --git a/lib/MiddleWare/PluginManager.h b/lib/MiddleWare/PluginManager.h
index 2e2e7975..574c9ff7 100644
--- a/lib/MiddleWare/PluginManager.h
+++ b/lib/MiddleWare/PluginManager.h
@@ -31,6 +31,7 @@
#include "Reporter.h"
#include "Database.h"
#include "Action.h"
+#include "MiddleWareTypes.h"
/**
* A class. It takes care of loading, registering and manipulating with
@@ -130,6 +131,13 @@ class CPluginManager
* @return A plugin type.
*/
plugin_type_t GetPluginType(const std::string& pName);
+ /**
+ * A method, which gets all needed plugin info. It can be send via DBus
+ * to GUI and displayed to an user.
+ * @param pName A Name of plugin.
+ * @return A map <key, vaule>
+ */
+ map_string_string_t GetPluginInfo(const std::string& pName);
};
#endif /*PLUGINMANAGER_H_*/
diff --git a/lib/MiddleWare/test.cpp b/lib/MiddleWare/test.cpp
index 79cadd3e..94ea5cc4 100644
--- a/lib/MiddleWare/test.cpp
+++ b/lib/MiddleWare/test.cpp
@@ -34,6 +34,7 @@ int main(int argc, char** argv)
if (argc < 2)
{
std::cerr << "Usage: " << argv[0] << " <DebugDumpDir>" << std::endl;
+ return -1;
}
try
{
@@ -46,9 +47,11 @@ int main(int argc, char** argv)
middleWare.RegisterPlugin("SQLite3");
middleWare.SetDatabase("SQLite3");
middleWare.SetOpenGPGCheck(false);
- middleWare.AddReporter("Logger");
- middleWare.AddAnalyzerReporter("CCpp", "Mailx");
- middleWare.AddAnalyzerAction("CCpp", "RunApp", "date");
+ middleWare.AddActionOrReporter("Logger", "");
+ middleWare.AddAnalyzerActionOrReporter("CCpp", "Mailx", "");
+ middleWare.AddAnalyzerActionOrReporter("CCpp", "RunApp", "date");
+
+ std::cout << "Mailx GTKBuilder path: " << middleWare.GetPluginInfo("Mailx")["GTKBuilder"];
/* Try to save it into DB */
map_crash_info_t crashInfo;
if (middleWare.SaveDebugDump(argv[1], crashInfo))
@@ -58,7 +61,6 @@ int main(int argc, char** argv)
crashInfo[CD_EXECUTABLE][CD_CONTENT] << ", " <<
crashInfo[CD_COUNT][CD_CONTENT] << ", " << std::endl;
- middleWare.Report(argv[1]);
/* Get Report, so user can change data (remove private stuff)
* If we do not want user interaction, just send data immediately
*/
diff --git a/lib/Plugins/Bugzilla.h b/lib/Plugins/Bugzilla.h
index 88d5b179..cc01153d 100644
--- a/lib/Plugins/Bugzilla.h
+++ b/lib/Plugins/Bugzilla.h
@@ -47,7 +47,8 @@ PLUGIN_INFO(REPORTER,
"Check if a bug isn't already reported in a bugzilla "
"and if not, report it.",
"zprikryl@redhat.com",
- "https://fedorahosted.org/abrt/wiki");
+ "https://fedorahosted.org/abrt/wiki",
+ PLUGINS_LIB_DIR"/Bugzilla.GTKBuilder");
#endif /* BUGZILLA_H_ */
diff --git a/lib/Plugins/CCpp.h b/lib/Plugins/CCpp.h
index 1bdf230e..d60c9a41 100644
--- a/lib/Plugins/CCpp.h
+++ b/lib/Plugins/CCpp.h
@@ -58,6 +58,7 @@ PLUGIN_INFO(ANALYZER,
"0.0.1",
"Simple C/C++ analyzer plugin.",
"zprikryl@redhat.com",
- "https://fedorahosted.org/crash-catcher/wiki");
+ "https://fedorahosted.org/abrt/wiki",
+ "");
#endif /* CCPP */
diff --git a/lib/Plugins/FileTransfer.h b/lib/Plugins/FileTransfer.h
index 03e788d3..ad2aded8 100644
--- a/lib/Plugins/FileTransfer.h
+++ b/lib/Plugins/FileTransfer.h
@@ -62,7 +62,8 @@ PLUGIN_INFO(ACTION,
"0.0.6",
"Sends a report via FTP or SCTP",
"dnovotny@redhat.com",
- "https://fedorahosted.org/crash-catcher/wiki");
+ "https://fedorahosted.org/crash-catcher/wiki",
+ "");
#endif /* FILETRANSFER_H_ */
diff --git a/lib/Plugins/Kerneloops.h b/lib/Plugins/Kerneloops.h
index 00b4ea0e..6dc440f9 100644
--- a/lib/Plugins/Kerneloops.h
+++ b/lib/Plugins/Kerneloops.h
@@ -49,6 +49,7 @@ PLUGIN_INFO(ANALYZER,
"0.0.2",
"Abrt's Kerneloops plugin.",
"anton@redhat.com",
- "https://people.redhat.com/aarapov");
+ "https://people.redhat.com/aarapov",
+ "");
#endif
diff --git a/lib/Plugins/KerneloopsReporter.h b/lib/Plugins/KerneloopsReporter.h
index dc01b533..aea774d8 100644
--- a/lib/Plugins/KerneloopsReporter.h
+++ b/lib/Plugins/KerneloopsReporter.h
@@ -51,6 +51,7 @@ PLUGIN_INFO(REPORTER,
"0.0.1",
"Sends the Kerneloops crash information to Kerneloopsoops.org",
"anton@redhat.com",
- "http://people.redhat.com/aarapov");
+ "http://people.redhat.com/aarapov",
+ PLUGINS_LIB_DIR"/KerneloopsReporter.GTKBuilder");
#endif
diff --git a/lib/Plugins/KerneloopsScanner.h b/lib/Plugins/KerneloopsScanner.h
index f823d1fc..2f28239c 100644
--- a/lib/Plugins/KerneloopsScanner.h
+++ b/lib/Plugins/KerneloopsScanner.h
@@ -33,6 +33,7 @@ PLUGIN_INFO(ACTION,
"0.0.1",
"Save new Kerneloops crashes into debug dump dir",
"anton@redhat.com",
- "http://people.redhat.com/aarapov");
+ "http://people.redhat.com/aarapov",
+ "");
#endif /* KERNELOOPSSCANNER_H_ */
diff --git a/lib/Plugins/Logger.h b/lib/Plugins/Logger.h
index 62b6a1d1..07e7576d 100644
--- a/lib/Plugins/Logger.h
+++ b/lib/Plugins/Logger.h
@@ -46,6 +46,7 @@ PLUGIN_INFO(REPORTER,
"0.0.1",
"Write a report to a specific file",
"zprikryl@redhat.com",
- "https://fedorahosted.org/crash-catcher/wiki");
+ "https://fedorahosted.org/abrt/wiki",
+ PLUGINS_LIB_DIR"/Logger.GTKBuilder");
#endif /* LOGGER_H_ */
diff --git a/lib/Plugins/Mailx.h b/lib/Plugins/Mailx.h
index 2f5c343d..4235764e 100644
--- a/lib/Plugins/Mailx.h
+++ b/lib/Plugins/Mailx.h
@@ -54,6 +54,7 @@ PLUGIN_INFO(REPORTER,
"0.0.2",
"Sends an email with a report via mailx command",
"zprikryl@redhat.com",
- "https://fedorahosted.org/crash-catcher/wiki");
+ "https://fedorahosted.org/abrt/wiki",
+ PLUGINS_LIB_DIR"/Mailx.GTKBuilder");
#endif /* MAILX_H_ */
diff --git a/lib/Plugins/Makefile.am b/lib/Plugins/Makefile.am
index a67757f7..740b40f7 100644
--- a/lib/Plugins/Makefile.am
+++ b/lib/Plugins/Makefile.am
@@ -13,9 +13,12 @@ pluginslib_LTLIBRARIES = libCCpp.la \
libPython.la \
libFileTransfer.la
+dist_pluginslib_DATA = KerneloopsReporter.GTKBuilder Logger.GTKBuilder Mailx.GTKBuilder Bugzilla.GTKBuilder
+
pluginsconfdir=$(PLUGINS_CONF_DIR)
dist_pluginsconf_DATA = CCpp.conf Mailx.conf SQLite3.conf Logger.conf KerneloopsScanner.conf KerneloopsReporter.conf Bugzilla.conf FileTransfer.conf
+
man_MANS = abrt-FileTransfer.7 abrt-Bugzilla.7 abrt-KerneloopsReporter.7\
abrt-KerneloopsScanner.7 abrt-Logger.7 abrt-Mailx.7 abrt-plugins.7\
abrt-SQLite3.7 abrt-RunApp.7
@@ -42,7 +45,7 @@ libKerneloops_la_CPPFLAGS = -I$(srcdir)/../CommLayer -I$(srcdir)/../../inc -I$(s
libKerneloopsReporter_la_SOURCES = KerneloopsReporter.cpp KerneloopsReporter.h PluginSettings.h
libKerneloopsReporter_la_LDFLAGS = -avoid-version
libKerneloopsReporter_la_LIBADD = $(CURL_LIBS)
-libKerneloopsReporter_la_CPPFLAGS = -I$(srcdir)/../CommLayer -I$(srcdir)/../../inc -I$(srcdir)/../MiddleWare $(CURL_CFLAGS)
+libKerneloopsReporter_la_CPPFLAGS = -I$(srcdir)/../CommLayer -I$(srcdir)/../../inc -I$(srcdir)/../MiddleWare $(CURL_CFLAGS) -DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\"
# KerneloopsScanner
libKerneloopsScanner_la_SOURCES = KerneloopsScanner.cpp KerneloopsScanner.h KerneloopsSysLog.cpp KerneloopsSysLog.h PluginSettings.h
@@ -52,6 +55,7 @@ libKerneloopsScanner_la_CPPFLAGS = -I$(srcdir)/../CommLayer -I$(srcdir)/../../in
# Mailx
libMailx_la_SOURCES = Mailx.cpp Mailx.h PluginSettings.h
libMailx_la_LDFLAGS = -avoid-version
+libMailx_la_CPPFLAGS = -I$(srcdir)/../../inc -I$(srcdir)/../MiddleWare -I$(srcdir)/../Utils -I$(srcdir)/../CommLayer -DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\"
# SQLite3
libSQLite3_la_SOURCES = SQLite3.cpp SQLite3.h PluginSettings.h
@@ -62,6 +66,7 @@ libSQLite3_la_CPPFLAGS = -I$(srcdir)/../CommLayer -I$(srcdir)/../../inc -I$(srcd
# Logger
libLogger_la_SOURCES = Logger.cpp Logger.h PluginSettings.h
libLogger_la_LDFLAGS = -avoid-version
+libLogger_la_CPPFLAGS = -I$(srcdir)/../../inc -I$(srcdir)/../MiddleWare -I$(srcdir)/../Utils -I$(srcdir)/../CommLayer -DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\"
# RunApp
libRunApp_la_SOURCES = RunApp.h RunApp.cpp
@@ -75,7 +80,7 @@ libSOSreport_la_LDFLAGS = -avoid-version
libBugzilla_la_SOURCES = Bugzilla.h Bugzilla.cpp PluginSettings.h
libBugzilla_la_LIBADD = $(XMLRPC_CPP_LIBS) $(XMLRPC_CLIENT_CPP_LIBS) $(NSS_LIBS)
libBugzilla_la_LDFLAGS = -avoid-version
-libBugzilla_la_CPPFLAGS = $(XMLRPC_CPP_CFLAGS) $(XMLRPC_CLIENT_CPP_CFLAGS) $(NSS_CFLAGS) -I$(srcdir)/../CommLayer -I$(srcdir)/../../inc -I$(srcdir)/../MiddleWare -I$(srcdir)/../Utils
+libBugzilla_la_CPPFLAGS = $(XMLRPC_CPP_CFLAGS) $(XMLRPC_CLIENT_CPP_CFLAGS) $(NSS_CFLAGS) -I$(srcdir)/../CommLayer -I$(srcdir)/../../inc -I$(srcdir)/../MiddleWare -I$(srcdir)/../Utils -DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\"
# Python
libPython_la_SOURCES = Python.h Python.cpp
diff --git a/lib/Plugins/Python.h b/lib/Plugins/Python.h
index 3c23e08b..62a43222 100644
--- a/lib/Plugins/Python.h
+++ b/lib/Plugins/Python.h
@@ -24,7 +24,8 @@ PLUGIN_INFO(ANALYZER,
"0.0.1",
"Simple Python analyzer plugin.",
"zprikryl@redhat.com, jmoskovc@redhat.com",
- "https://fedorahosted.org/abrt/wiki");
+ "https://fedorahosted.org/abrt/wiki",
+ "");
#endif /* PYTHON_H_ */
diff --git a/lib/Plugins/RunApp.h b/lib/Plugins/RunApp.h
index bbefc0a0..839992b0 100644
--- a/lib/Plugins/RunApp.h
+++ b/lib/Plugins/RunApp.h
@@ -45,6 +45,7 @@ PLUGIN_INFO(ACTION,
"Simple action plugin which runs a command "
"and it can save command's output",
"zprikryl@redhat.com",
- "https://fedorahosted.org/crash-catcher/wiki");
+ "https://fedorahosted.org/abrt/wiki",
+ "");
#endif
diff --git a/lib/Plugins/SOSreport.h b/lib/Plugins/SOSreport.h
index f08cd8ce..d70494ad 100644
--- a/lib/Plugins/SOSreport.h
+++ b/lib/Plugins/SOSreport.h
@@ -44,6 +44,7 @@ PLUGIN_INFO(ACTION,
"0.0.2",
"Run sosreport, save the output in the crash dump",
"gavin@redhat.com",
- "https://fedorahosted.org/abrt/wiki");
+ "https://fedorahosted.org/abrt/wiki",
+ "");
#endif
diff --git a/lib/Plugins/SQLite3.h b/lib/Plugins/SQLite3.h
index 2280f332..e283e3c0 100644
--- a/lib/Plugins/SQLite3.h
+++ b/lib/Plugins/SQLite3.h
@@ -67,6 +67,7 @@ PLUGIN_INFO(DATABASE,
"0.0.1",
"SQLite3 database plugin.",
"zprikryl@redhat.com,jmoskovc@redhat.com",
- "https://fedorahosted.org/crash-catcher/wiki");
+ "https://fedorahosted.org/abrt/wiki",
+ "");
#endif /* SQLITE3_H_ */