]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/callhome: turn service events off by default
authorYaarit Hatuka <yaarit@redhat.com>
Mon, 24 Nov 2025 04:07:09 +0000 (04:07 +0000)
committerYaarit Hatuka <yhatuka@redhat.com>
Mon, 24 Nov 2025 04:32:12 +0000 (04:32 +0000)
The flag `enable_service_events` is now set to False.

Also, move the description field to the payload.

Resolves: rhbz#2408379
Signed-off-by: Yaarit Hatuka <yhatuka@ibm.com>
(cherry picked from commit b8b31e9c1fc6820a756f417a274e90138f3f3689)

src/pybind/mgr/call_home_agent/module.py
src/pybind/mgr/call_home_agent/report.py
src/pybind/mgr/call_home_agent/report_service.py
src/pybind/mgr/call_home_agent/report_status_alerts.py

index 55e6a90c3147a7f1817cc1df248d89c1ffc87491..0f2cb9eb8926490b3c89e70a5a55b5d5d4084913 100644 (file)
@@ -251,10 +251,10 @@ class CallHomeAgent(MgrModule):
             desc='Time interval in seconds to allow a cooldown between level 2 upload snap requests'
         ),
         Option(
-            name='disable_service_events',
+            name='enable_service_events',
             type='bool',
             default=False,
-            desc='Disable service events'
+            desc='Enable service events'
         ),
     ]
 
@@ -376,7 +376,7 @@ class CallHomeAgent(MgrModule):
             setattr(self, opt['name'], self.get_module_option(opt['name']))
             self.log.debug(f" {opt['name']} = {getattr(self, opt['name'])}")
 
-        self.proxies = {'http': proxy, 'https': proxy} if self.proxy else {}
+        self.proxies = {'http': self.proxy, 'https': self.proxy} if self.proxy else {}
 
         self.jwt_jti = self.get_jwt_jti()
 
@@ -991,7 +991,7 @@ class CallHomeAgent(MgrModule):
         except Exception as e:
             return HandleCommandResult(retval=1, stderr=str(e))
         else:
-            return HandleCommandResult(stdout=f'country code is set to {country_code}')
+            return HandleCommandResult()
         finally:
             self.refresh_options()  # This will always run, no matter what.
 
index 706c8e87d66f63977a01c21a18e31867faf2f8ff..225d5a4d6e8e58d4e1b88e833aa14cff393b0481 100644 (file)
@@ -109,7 +109,11 @@ class Report:
                                  data=json.dumps(report),
                                  proxies=self.agent.proxies,
                                  timeout=60)
-            self.agent.log.debug(f"Report response: {resp.text}")  # TODO: remove keys
+            try:
+                self.agent.log.debug(f"Report response: {json.dumps(self.agent._filter_report(resp.json()))}")
+            except:
+                self.agent.log.debug(f"Report response text: {resp.text}")
+
             resp.raise_for_status()
 
             ch_response = resp.json()
index fd29ecf5dccb9e765b07874893db2cb486a073f7..43e8d3b23d620fab772bb2bbd1a3d5cc3825c257 100644 (file)
@@ -15,7 +15,7 @@ class ReportService(Report):
         event = EventService(self.agent).generate(report_times, self.alerts)
         self.add_event(event)
         self.agent.log.debug("Generated service event:")
-        self.agent.log.debug(json.dumps(self.data)) # TODO: remove keys from the output
+        self.agent.log.debug(json.dumps(self.agent._filter_report(self.data)))
         return self.data
 
 class EventService(EventGeneric):
@@ -50,8 +50,10 @@ class EventService(EventGeneric):
         alert_subject = alert_name + ((':' + alert_instance) if alert_instance else '')
         alert_subject = alert_subject[:140]  # Call home 'code' field is limited to 140 characters.
 
-        description = json.dumps(alerts_sorted, sort_keys = True, indent=4)
-        description = description[:10000]
+        # Use this in case of having body.description in addition to
+        # body.payload.description as the former has a 10K characters limitation.
+        # description = json.dumps(alerts_sorted, sort_keys = True, indent=4)
+        # description = description[:10000]
 
         now = time.time()
 
@@ -71,7 +73,6 @@ class EventService(EventGeneric):
                 "timestamp": int(now),  # time in seconds
                 "transid": int(now * 1000)  # time in milliseconds
             },
-            "description": description, # semi described, 10K character limit
             "object_instance_virtual_id": self.agent.ceph_cluster_id,
             "object_instance": self.agent.ceph_cluster_id,
             "object_type": "ceph",
@@ -93,6 +94,8 @@ class EventService(EventGeneric):
             ###############
             "payload": {
                 "ceph_versions": versions,
+                "description": alerts_sorted, # semi described, 10K character limit
+                "error_code": alert_subject,  # the same as body.code above
                 "software": {
                     "diagnostic_provided": True,
                     "ibm_ceph_version": "9.0.0" if self.agent.target_space == "prod" else "8.0.0"
index 4413d671ae170a3820fc957b2ef548f42d66b5c9..b22f2e156369e24696b0ece6593a246e017d844e 100644 (file)
@@ -81,7 +81,7 @@ class EventStatusAlerts(EventGeneric):
         return f"{main_ts}+{tz}"
 
     def service_events(self, alerts: list) -> None:
-        if self.agent.disable_service_events:
+        if not self.agent.enable_service_events:
             return
 
         # Service Events (opening a support case)