From 0f482bb018c1d272185b65791e85cde356a8bdc6 Mon Sep 17 00:00:00 2001 From: tigro Date: Wed, 20 Dec 2023 20:06:20 +0300 Subject: [PATCH] MSVSphere plugin initial implementation --- doc/Makefile.am | 5 +- doc/msvsphere_report_event.conf.5 | 1 + doc/report_MSVSphereBugTracker.conf.txt | 45 +++++++++++++ doc/report_msvsphere.conf.txt | 41 ++++++++++++ po/POTFILES.in | 10 +++ src/plugins/Makefile.am | 12 ++-- src/plugins/mantisbt.c | 4 +- src/plugins/msvsphere_report_event.conf | 38 +++++++++++ src/plugins/report_MSVSphereBugTracker.conf | 4 ++ src/plugins/report_MSVSphereBugTracker.xml.in | 66 +++++++++++++++++++ src/plugins/reporter-mantisbt.c | 4 +- src/plugins/reporter-ureport.c | 2 +- src/plugins/ureport.conf | 2 +- src/workflows/Makefile.am | 25 ++++++- src/workflows/report_msvsphere.conf | 31 +++++++++ src/workflows/workflow_MSVSphereCCpp.xml.in | 12 ++++ src/workflows/workflow_MSVSphereJava.xml.in | 11 ++++ .../workflow_MSVSphereJavaScript.xml.in | 11 ++++ .../workflow_MSVSphereKerneloops.xml.in | 11 ++++ .../workflow_MSVSphereLibreport.xml.in | 9 +++ src/workflows/workflow_MSVSpherePython.xml.in | 11 ++++ .../workflow_MSVSpherePython3.xml.in | 11 ++++ src/workflows/workflow_MSVSphereVmcore.xml.in | 12 ++++ src/workflows/workflow_MSVSphereXorg.xml.in | 9 +++ 24 files changed, 373 insertions(+), 14 deletions(-) create mode 100644 doc/msvsphere_report_event.conf.5 create mode 100644 doc/report_MSVSphereBugTracker.conf.txt create mode 100644 doc/report_msvsphere.conf.txt create mode 100644 src/plugins/msvsphere_report_event.conf create mode 100644 src/plugins/report_MSVSphereBugTracker.conf create mode 100644 src/plugins/report_MSVSphereBugTracker.xml.in create mode 100644 src/workflows/report_msvsphere.conf create mode 100644 src/workflows/workflow_MSVSphereCCpp.xml.in create mode 100644 src/workflows/workflow_MSVSphereJava.xml.in create mode 100644 src/workflows/workflow_MSVSphereJavaScript.xml.in create mode 100644 src/workflows/workflow_MSVSphereKerneloops.xml.in create mode 100644 src/workflows/workflow_MSVSphereLibreport.xml.in create mode 100644 src/workflows/workflow_MSVSpherePython.xml.in create mode 100644 src/workflows/workflow_MSVSpherePython3.xml.in create mode 100644 src/workflows/workflow_MSVSphereVmcore.xml.in create mode 100644 src/workflows/workflow_MSVSphereXorg.xml.in diff --git a/doc/Makefile.am b/doc/Makefile.am index 837036b..6fb4b7a 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -55,6 +55,7 @@ MAN5_TXT += report_Bugzilla.conf.txt MAN5_TXT += report_event.conf.txt MAN5_TXT += report_fedora.conf.txt MAN5_TXT += report_centos.conf.txt +MAN5_TXT += report_msvsphere.conf.txt MAN5_TXT += report_Logger.conf.txt MAN5_TXT += report_rhel.conf.txt MAN5_TXT += report_rhel_bugzilla.conf.txt @@ -64,6 +65,7 @@ MAN5_TXT += report_mailx.conf.txt MAN5_TXT += report_uploader.conf.txt MAN5_TXT += report_Uploader.conf.txt MAN5_TXT += report_CentOSBugTracker.conf.txt +MAN5_TXT += report_MSVSphereBugTracker.conf.txt MAN5_TXT += rhtsupport.conf.txt MAN5_TXT += rhtsupport_event.conf.txt MAN5_TXT += uploader_event.conf.txt @@ -71,7 +73,8 @@ MAN5_TXT += ureport.conf.txt MAN5_TXT += upload.conf.txt MAN5_PREFORMATTED = -MAN5_PREFORMATTED += centos_report_event.conf.5 +MAN5_PREFORMATTED += centos_report_event.conf.5 \ + msvsphere_report_event.conf.5 # Manual pages are generated from .txt via Docbook man1_MANS = ${MAN1_TXT:%.txt=%.1} diff --git a/doc/msvsphere_report_event.conf.5 b/doc/msvsphere_report_event.conf.5 new file mode 100644 index 0000000..71c3fcb --- /dev/null +++ b/doc/msvsphere_report_event.conf.5 @@ -0,0 +1 @@ +.so man5/report_event.conf.5 diff --git a/doc/report_MSVSphereBugTracker.conf.txt b/doc/report_MSVSphereBugTracker.conf.txt new file mode 100644 index 0000000..ddd5bc4 --- /dev/null +++ b/doc/report_MSVSphereBugTracker.conf.txt @@ -0,0 +1,45 @@ +report_MSVSphereBugTracker.conf(5) +================================== + +NAME +---- +report_MSVSphereBugTracker.conf - libreport's configuration file for 'report_MSVSphereBugTracker' events. + +DESCRIPTION +----------- +This configuration file contains values for options defined in +/usr/share/libreport/events/report_MSVSphereBugTracker.xml + +Configuration file lines should have 'PARAM = VALUE' format. The parameters are: + +'Mantisbt_Login':: + Login to MantisBT account. + +'Mantisbt_Password':: + Password to MantisBT account. + +'Mantisbt_MantisbtURL':: + MantisBT HTTP(S) address. (default: https://bugs.msvsphere-os.ru) + +'Mantisbt_SSLVerify':: + Use yes/true/on/1 to verify server's SSL certificate. (default: yes) + +'Mantisbt_Project':: + Project issue field value. Useful if you needed different project than specified in /etc/os-release + +'Mantisbt_ProjectVersion':: + Version issue field value. Useful if you needed different project version than specified in /etc/os-release + +'http_proxy':: + the proxy server to use for HTTP + +'HTTPS_PROXY':: + the proxy server to use for HTTPS + +SEE ALSO +-------- +report_event.conf(5), reporter-mantisbt(1) + +AUTHOR +------ +* MSVSphere Packaging Team diff --git a/doc/report_msvsphere.conf.txt b/doc/report_msvsphere.conf.txt new file mode 100644 index 0000000..90259d4 --- /dev/null +++ b/doc/report_msvsphere.conf.txt @@ -0,0 +1,41 @@ +report_msvsphere.conf(5) +======================== + +NAME +---- +report_msvsphere.conf - configuration file for libreport. + +DESCRIPTION +----------- +This configuration file specifies which of the reporting work flow definitions +are applicable for all problems types on MSVSphere. + +All applicable work flows are presented to users in User Interface as +possibilities for processing of any problems. A particular work flow becomes +applicable if its conditions are satisfied. + +This configuration file consists from one condition per line. + +Each condition line must start with EVENT=workflow_NAME where "workflow_" is +constant prefix and "workflow_NAME" is base name of path to reporting work flow +configuration file. + +The rest of condition line has form VAR=VAL, VAR!=VAL or VAL~=REGEX, where VAR +is a name of problem directory element to be checked (for example, +"executable", "package", hostname" etc). The condition may consists +from as many element checks as it is necessary. + +EXAMPLES +-------- +Condition line:: + EVENT=workflow_MSVSphereCCpp analyzer=CCpp + +The condition line above expects existence of /usr/share/libreport/workflows/workflow_MSVSphereCCpp.xml + +SEE ALSO +-------- +report-gtk(1) + +AUTHOR +------ +* MSVSphere Packaging Team diff --git a/po/POTFILES.in b/po/POTFILES.in index fc740ff..70fc837 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -46,6 +46,7 @@ src/plugins/reporter-systemd-journal.c src/plugins/reporter-upload.c src/plugins/reporter-mantisbt.c src/plugins/report_CentOSBugTracker.xml.in +src/plugins/report_MSVSphereBugTracker.xml.in src/plugins/report_Kerneloops.xml.in src/plugins/report_Logger.xml.in src/plugins/report_Mailx.xml.in @@ -81,6 +82,15 @@ src/workflows/workflow_FedoraXorg.xml.in src/workflows/workflow_FedoraLibreport.xml.in src/workflows/workflow_FedoraJava.xml.in src/workflows/workflow_FedoraJavaScript.xml.in +src/workflows/workflow_MSVSphereCCpp.xml.in +src/workflows/workflow_MSVSphereJava.xml.in +src/workflows/workflow_MSVSphereJavaScript.xml.in +src/workflows/workflow_MSVSphereKerneloops.xml.in +src/workflows/workflow_MSVSphereLibreport.xml.in +src/workflows/workflow_MSVSpherePython.xml.in +src/workflows/workflow_MSVSpherePython3.xml.in +src/workflows/workflow_MSVSphereVmcore.xml.in +src/workflows/workflow_MSVSphereXorg.xml.in src/workflows/workflow_LoggerCCpp.xml.in src/workflows/workflow_Logger.xml.in src/workflows/workflow_MailxCCpp.xml.in diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am index f73e7dc..a418690 100644 --- a/src/plugins/Makefile.am +++ b/src/plugins/Makefile.am @@ -70,9 +70,11 @@ reporters_events_conf += report_Bugzilla.conf endif if BUILD_MANTISBT -reporters_events += report_CentOSBugTracker.xml +reporters_events += report_CentOSBugTracker.xml \ + report_MSVSphereBugTracker.xml -reporters_events_conf += report_CentOSBugTracker.conf +reporters_events_conf += report_CentOSBugTracker.conf \ + report_MSVSphereBugTracker.conf endif if BUILD_UREPORT @@ -102,7 +104,8 @@ dist_eventsdef_DATA = \ rhtsupport_event.conf \ uploader_event.conf \ emergencyanalysis_event.conf \ - centos_report_event.conf + centos_report_event.conf \ + msvsphere_report_event.conf reporters_extra_dist = if BUILD_BUGZILLA @@ -116,7 +119,8 @@ reporters_extra_dist += report_uReport.xml.in endif if BUILD_MANTISBT -reporters_extra_dist += report_CentOSBugTracker.xml.in +reporters_extra_dist += report_CentOSBugTracker.xml.in \ + report_MSVSphereBugTracker.xml.in endif EXTRA_DIST = $(reporters_extra_dist) \ diff --git a/src/plugins/mantisbt.c b/src/plugins/mantisbt.c index 1750dc5..92804d4 100644 --- a/src/plugins/mantisbt.c +++ b/src/plugins/mantisbt.c @@ -336,7 +336,7 @@ soap_add_new_issue_parameters(soap_request_t *req, free(type); } - soap_node_add_child_node(issue_node, "os_build", SOAP_STRING, version); + soap_node_add_child_node(issue_node, "version", SOAP_STRING, version); soap_node_add_child_node(issue_node, "category", SOAP_STRING, category); soap_node_add_child_node(issue_node, "summary", SOAP_STRING, summary); soap_node_add_child_node(issue_node, "description", SOAP_STRING, description); @@ -891,7 +891,7 @@ mantisbt_search_duplicate_issues(mantisbt_settings_t *settings, const char *cate // version if (version != NULL) - soap_filter_add_new_array_parameter(filter_node, "os_build", SOAP_STRINGARRAY, version); + soap_filter_add_new_array_parameter(filter_node, "version", SOAP_STRINGARRAY, version); soap_request_add_method_parameter(req, "page_number", SOAP_INTEGER, "1"); soap_request_add_method_parameter(req, "per_page", SOAP_INTEGER, /* -1 means get all issues */ "-1"); diff --git a/src/plugins/msvsphere_report_event.conf b/src/plugins/msvsphere_report_event.conf new file mode 100644 index 0000000..da36775 --- /dev/null +++ b/src/plugins/msvsphere_report_event.conf @@ -0,0 +1,38 @@ +EVENT=report_MSVSphereBugTracker type=xorg + reporter-mantisbt + +EVENT=report_MSVSphereBugTracker type=Kerneloops + reporter-mantisbt + +EVENT=report_MSVSphereBugTracker type=vmcore + reporter-mantisbt + +EVENT=report_MSVSphereBugTracker type=Python component!=anaconda + test -f component || abrt-action-save-package-data + reporter-mantisbt \ + -F /etc/libreport/plugins/mantisbt_format.conf \ + -A /etc/libreport/plugins/mantisbt_formatdup.conf + +EVENT=report_MSVSphereBugTracker type=Python3 component!=anaconda + test -f component || abrt-action-save-package-data + reporter-mantisbt \ + -F /etc/libreport/plugins/mantisbt_format.conf \ + -A /etc/libreport/plugins/mantisbt_formatdup.conf + +EVENT=report_MSVSphereBugTracker type=CCpp duphash!= + test -f component || abrt-action-save-package-data + component="`cat component`" + format="mantisbt_format.conf" + test -f "/etc/libreport/plugins/mantisbt_format_$component.conf" \ + && format="mantisbt_format_$component.conf" + formatdup="mantisbt_formatdup.conf" + test -f "/etc/libreport/plugins/mantisbt_formatdup_$component.conf" \ + && formatdup="mantisbt_formatdup_$component.conf" + reporter-mantisbt \ + -F "/etc/libreport/plugins/$format" \ + -A "/etc/libreport/plugins/$formatdup" + +EVENT=report_MSVSphereBugTracker analyzer=libreport + reporter-mantisbt \ + -F /etc/libreport/plugins/mantisbt_format_analyzer_libreport.conf \ + -A /etc/libreport/plugins/mantisbt_formatdup_analyzer_libreport.conf diff --git a/src/plugins/report_MSVSphereBugTracker.conf b/src/plugins/report_MSVSphereBugTracker.conf new file mode 100644 index 0000000..25391d1 --- /dev/null +++ b/src/plugins/report_MSVSphereBugTracker.conf @@ -0,0 +1,4 @@ +Mantisbt_MantisbtURL = https://bugs.msvsphere-os.ru +Mantisbt_Login = +Mantisbt_Password = +Mantisbt_SSLVerify = yes diff --git a/src/plugins/report_MSVSphereBugTracker.xml.in b/src/plugins/report_MSVSphereBugTracker.xml.in new file mode 100644 index 0000000..71706fd --- /dev/null +++ b/src/plugins/report_MSVSphereBugTracker.xml.in @@ -0,0 +1,66 @@ + + + <_name>MSVSphere Bug Tracker + <_description>Report to MSVSphere Bug Tracker + + component,duphash,os_release + coredump,count,event_log,reported_to,vmcore + + no + + 3 + yes + yes + + + + + + + + + + + + + + + diff --git a/src/plugins/reporter-mantisbt.c b/src/plugins/reporter-mantisbt.c index 67597d5..16f94b9 100644 --- a/src/plugins/reporter-mantisbt.c +++ b/src/plugins/reporter-mantisbt.c @@ -25,11 +25,11 @@ static void parse_osinfo_for_mantisbt(map_string_t *osinfo, char** project, char** version) { - const char *name = get_map_string_item_or_NULL(osinfo, "CENTOS_MANTISBT_PROJECT"); + const char *name = get_map_string_item_or_NULL(osinfo, "MSVSPHERE_MANTISBT_PROJECT"); if (!name) name = get_map_string_item_or_NULL(osinfo, OSINFO_NAME); - const char *version_id = get_map_string_item_or_NULL(osinfo, "CENTOS_MANTISBT_PROJECT_VERSION"); + const char *version_id = get_map_string_item_or_NULL(osinfo, "MSVSPHERE_MANTISBT_PROJECT_VERSION"); if (!version_id) version_id = get_map_string_item_or_NULL(osinfo, OSINFO_VERSION_ID); diff --git a/src/plugins/reporter-ureport.c b/src/plugins/reporter-ureport.c index 0aa3324..fac29cf 100644 --- a/src/plugins/reporter-ureport.c +++ b/src/plugins/reporter-ureport.c @@ -22,7 +22,7 @@ #include "ureport.h" #include "libreport_curl.h" -#define DEFAULT_WEB_SERVICE_URL "https://bug-report.redhat.com" +#define DEFAULT_WEB_SERVICE_URL "https://retrace.msvsphere-os.ru/faf" int main(int argc, char **argv) { diff --git a/src/plugins/ureport.conf b/src/plugins/ureport.conf index 11f4531..15c7b2a 100644 --- a/src/plugins/ureport.conf +++ b/src/plugins/ureport.conf @@ -1,5 +1,5 @@ # Base URL to uReport server -# URL = https://bug-report.redhat.com +# URL = https://retrace.msvsphere-os.ru/faf # no means that ssl certificates will not be checked # SSLVerify = no diff --git a/src/workflows/Makefile.am b/src/workflows/Makefile.am index e4d7b26..26a19d3 100644 --- a/src/workflows/Makefile.am +++ b/src/workflows/Makefile.am @@ -44,7 +44,16 @@ dist_workflows_DATA += \ workflow_CentOSXorg.xml \ workflow_CentOSLibreport.xml \ workflow_CentOSJava.xml \ - workflow_CentOSJavaScript.xml + workflow_CentOSJavaScript.xml \ + workflow_MSVSphereCCpp.xml \ + workflow_MSVSphereKerneloops.xml \ + workflow_MSVSpherePython.xml \ + workflow_MSVSpherePython3.xml \ + workflow_MSVSphereVmcore.xml \ + workflow_MSVSphereXorg.xml \ + workflow_MSVSphereLibreport.xml \ + workflow_MSVSphereJava.xml \ + workflow_MSVSphereJavaScript.xml endif if BUILD_BUGZILLA @@ -73,7 +82,8 @@ dist_workflowsdef_DATA =\ report_mailx.conf \ report_logger.conf \ report_uploader.conf \ - report_centos.conf + report_centos.conf \ + report_msvsphere.conf if BUILD_BUGZILLA dist_workflowsdef_DATA += \ @@ -144,5 +154,14 @@ EXTRA_DIST += \ workflow_CentOSXorg.xml.in \ workflow_CentOSLibreport.xml.in \ workflow_CentOSJava.xml.in \ - workflow_CentOSJavaScript.xml.in + workflow_CentOSJavaScript.xml.in \ + workflow_MSVSphereCCpp.xml.in \ + workflow_MSVSphereKerneloops.xml.in \ + workflow_MSVSpherePython.xml.in \ + workflow_MSVSpherePython3.xml.in \ + workflow_MSVSphereVmcore.xml.in \ + workflow_MSVSphereXorg.xml.in \ + workflow_MSVSphereLibreport.xml.in \ + workflow_MSVSphereJava.xml.in \ + workflow_MSVSphereJavaScript.xml.in endif diff --git a/src/workflows/report_msvsphere.conf b/src/workflows/report_msvsphere.conf new file mode 100644 index 0000000..136e22a --- /dev/null +++ b/src/workflows/report_msvsphere.conf @@ -0,0 +1,31 @@ +EVENT=workflow_MSVSphereLibreport analyzer=libreport +# this is just a meta event which consists of other events +# the list is defined in the xml file + +EVENT=workflow_MSVSphereCCpp type=CCpp +# this is just a meta event which consists of other events +# the list is defined in the xml file + +EVENT=workflow_MSVSpherePython type=Python component!=anaconda +# this is just a meta event which consists of other events +# the list is defined in the xml file + +EVENT=workflow_MSVSpherePython3 type=Python3 component!=anaconda +# this is just a meta event which consists of other events +# the list is defined in the xml file + +EVENT=workflow_MSVSphereKerneloops type=Kerneloops +# this is just a meta event which consists of other events +# the list is defined in the xml file + +EVENT=workflow_MSVSphereVmcore type=vmcore +# this is just a meta event which consists of other events +# the list is defined in the xml file + +EVENT=workflow_MSVSphereXorg type=xorg +# this is just a meta event which consists of other events +# the list is defined in the xml file + +EVENT=workflow_MSVSphereJava type=Java +# this is just a meta event which consists of other events +# the list is defined in the xml file diff --git a/src/workflows/workflow_MSVSphereCCpp.xml.in b/src/workflows/workflow_MSVSphereCCpp.xml.in new file mode 100644 index 0000000..863da8c --- /dev/null +++ b/src/workflows/workflow_MSVSphereCCpp.xml.in @@ -0,0 +1,12 @@ + + + <_name>Report to MSVSphere Bug Tracker + <_description>Process the C/C++ crash using the MSVSphere infrastructure + + + report_uReport + collect_* + analyze_CCpp + report_MSVSphereBugTracker + + diff --git a/src/workflows/workflow_MSVSphereJava.xml.in b/src/workflows/workflow_MSVSphereJava.xml.in new file mode 100644 index 0000000..ab1cb02 --- /dev/null +++ b/src/workflows/workflow_MSVSphereJava.xml.in @@ -0,0 +1,11 @@ + + + <_name>Report to MSVSphere Bug Tracker + <_description>Process the Java exception using the MSVSphere infrastructure + + + report_uReport + collect_* + report_MSVSphereBugTracker + + diff --git a/src/workflows/workflow_MSVSphereJavaScript.xml.in b/src/workflows/workflow_MSVSphereJavaScript.xml.in new file mode 100644 index 0000000..1b4bf13 --- /dev/null +++ b/src/workflows/workflow_MSVSphereJavaScript.xml.in @@ -0,0 +1,11 @@ + + + <_name>Report to MSVSphere Bug Tracker + <_description>Process the JavaScript exception using the MSVSphere infrastructure + + + report_uReport + collect_* + report_MSVSphereBugTracker + + diff --git a/src/workflows/workflow_MSVSphereKerneloops.xml.in b/src/workflows/workflow_MSVSphereKerneloops.xml.in new file mode 100644 index 0000000..1f92d6e --- /dev/null +++ b/src/workflows/workflow_MSVSphereKerneloops.xml.in @@ -0,0 +1,11 @@ + + + <_name>Report to MSVSphere Bug Tracker + <_description>Process the kerneloops using the MSVSphere infrastructure + + + report_uReport + collect_* + report_MSVSphereBugTracker + + diff --git a/src/workflows/workflow_MSVSphereLibreport.xml.in b/src/workflows/workflow_MSVSphereLibreport.xml.in new file mode 100644 index 0000000..e5a4750 --- /dev/null +++ b/src/workflows/workflow_MSVSphereLibreport.xml.in @@ -0,0 +1,9 @@ + + + <_name>Report to MSVSphere Bug Tracker + <_description>Process the problem using the MSVSphere infrastructure + + + report_MSVSphereBugTracker + + diff --git a/src/workflows/workflow_MSVSpherePython.xml.in b/src/workflows/workflow_MSVSpherePython.xml.in new file mode 100644 index 0000000..b0c856b --- /dev/null +++ b/src/workflows/workflow_MSVSpherePython.xml.in @@ -0,0 +1,11 @@ + + + <_name>Report to MSVSphere Bug Tracker + <_description>Process the python exception using the MSVSphere infrastructure + + + report_uReport + collect_* + report_MSVSphereBugTracker + + diff --git a/src/workflows/workflow_MSVSpherePython3.xml.in b/src/workflows/workflow_MSVSpherePython3.xml.in new file mode 100644 index 0000000..27f7272 --- /dev/null +++ b/src/workflows/workflow_MSVSpherePython3.xml.in @@ -0,0 +1,11 @@ + + + <_name>Report to MSVSphere Bug Tracker + <_description>Process the python 3 exception using the MSVSphere infrastructure + + + report_uReport + collect_* + report_MSVSphereBugTracker + + diff --git a/src/workflows/workflow_MSVSphereVmcore.xml.in b/src/workflows/workflow_MSVSphereVmcore.xml.in new file mode 100644 index 0000000..0eaf33b --- /dev/null +++ b/src/workflows/workflow_MSVSphereVmcore.xml.in @@ -0,0 +1,12 @@ + + + <_name>Report to MSVSphere Bug Tracker + <_description>Process the kernel crash using the MSVSphere infrastructure + + + analyze_VMcore + report_uReport + collect_* + report_MSVSphereBugTracker + + diff --git a/src/workflows/workflow_MSVSphereXorg.xml.in b/src/workflows/workflow_MSVSphereXorg.xml.in new file mode 100644 index 0000000..aeb9d7f --- /dev/null +++ b/src/workflows/workflow_MSVSphereXorg.xml.in @@ -0,0 +1,9 @@ + + + <_name>Report to MSVSphere Bug Tracker + <_description>Process the X Server problem using the MSVSphere infrastructure + + + report_MSVSphereBugTracker + + -- 2.43.0