From: Sage Weil Date: Thu, 25 Jul 2019 21:45:09 +0000 (-0500) Subject: mgr/telemetry: track telemetry report revisions X-Git-Tag: v12.2.13~15^2~12 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6fccfaebd6579f6472dfd08a0bbc31233109f332;p=ceph.git mgr/telemetry: track telemetry report revisions Assign revisions to track changes to the content of the telemetry reports. Track the revision when the user opts in or out. Signed-off-by: Sage Weil (cherry picked from commit b93e4050261b962449c9721cea713616ce5e03bd) Conflicts: pybind/mgr/telemetry/modules.py Due to set_module_option() -> set_config() --- diff --git a/src/pybind/mgr/telemetry/module.py b/src/pybind/mgr/telemetry/module.py index d0bc4fe6742..a1a2a932590 100644 --- a/src/pybind/mgr/telemetry/module.py +++ b/src/pybind/mgr/telemetry/module.py @@ -22,6 +22,27 @@ LICENSE='sharing-1-0' LICENSE_NAME='Community Data License Agreement - Sharing - Version 1.0' LICENSE_URL='https://cdla.io/sharing-1-0/' +# If the telemetry revision has changed since this point, re-require +# an opt-in. This should happen each time we add new information to +# the telemetry report. +LAST_REVISION_RE_OPT_IN = 2 + +# Latest revision of the telemetry report. Bump this each time we make +# *any* change. +REVISION = 2 + +# History of revisions +# -------------------- +# +# Version 1: +# Mimic and/or nautilus are lumped together here, since +# we didn't track revisions yet. +# +# Version 2: +# - added revision tracking, nagging, etc. +# - added config option changes +# - added channels +# - added explicit license acknowledgement to the opt-in process class Module(MgrModule): config = dict() @@ -46,6 +67,11 @@ class Module(MgrModule): 'name': 'enabled', 'default': False }, + { + 'name': 'last_opt_revision', + 'type': 'int', + 'default': 1, + }, { 'name': 'leaderboard', 'default': False @@ -349,9 +375,11 @@ class Module(MgrModule): if command.get('license') != LICENSE: return -errno.EPERM, '', "Telemetry data is licensed under the " + LICENSE_NAME + " (" + LICENSE_URL + ").\nTo enable, add '--license " + LICENSE + "' to the 'ceph telemetry on' command." self.set_config('enabled', True) + self.set_config('last_opt_revision', REVISION) return 0, '', '' elif command['prefix'] == 'telemetry off': self.set_config('enabled', False) + self.set_config('last_opt_revision', REVISION) return 0, '', '' elif command['prefix'] == 'telemetry send': self.last_report = self.compile_report()