]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr: Remove service_daemon handling from MMgrUpdate
authorPrashant D <pdhange@redhat.com>
Fri, 24 Jun 2022 15:10:03 +0000 (11:10 -0400)
committerPrashant D <pdhange@redhat.com>
Thu, 8 Sep 2022 05:49:44 +0000 (01:49 -0400)
The service_daemon is only required if client services
needs to be registered with mgr. The service_daemon
handling is not required in case of MMgrUpdate as it
handles mon metadata updates only.

Fixes: https://tracker.ceph.com/issues/55322
Resolves: rhbz#2121265

Signed-off-by: Prashant D <pdhange@redhat.com>
(cherry picked from commit 6540937a6d1865642dd799b4996d85d2ee9a99ad)

src/messages/MMgrUpdate.h
src/mgr/DaemonServer.cc
src/mgr/MgrClient.cc

index 71a528d3150bfa2ea8e136b660d647b81ac77a42..5e1f27b5fa8a08dc54717b4fd5d0af17d318ca4f 100644 (file)
@@ -19,7 +19,7 @@
 
 class MMgrUpdate : public Message {
 private:
-  static constexpr int HEAD_VERSION = 3;
+  static constexpr int HEAD_VERSION = 2;
   static constexpr int COMPAT_VERSION = 1;
 
 public:
@@ -27,7 +27,6 @@ public:
   std::string daemon_name;
   std::string service_name;  // optional; otherwise infer from entity type
 
-  bool service_daemon = false;
   std::map<std::string,std::string> daemon_metadata;
   std::map<std::string,std::string> daemon_status;
 
@@ -40,27 +39,23 @@ public:
     decode(daemon_name, p);
     if (header.version >= 2) {
       decode(service_name, p);
-      decode(service_daemon, p);
-      if (service_daemon) {
+      decode(need_metadata_update, p);
+      if (need_metadata_update) {
        decode(daemon_metadata, p);
        decode(daemon_status, p);
       }
     }
-    if (header.version >= 3) {
-      decode(need_metadata_update, p);
-    }
   }
 
   void encode_payload(uint64_t features) override {
     using ceph::encode;
     encode(daemon_name, payload);
     encode(service_name, payload);
-    encode(service_daemon, payload);
-    if (service_daemon) {
+    encode(need_metadata_update, payload);
+    if (need_metadata_update) {
       encode(daemon_metadata, payload);
       encode(daemon_status, payload);
     }
-    encode(need_metadata_update, payload);
   }
 
   std::string_view get_type_name() const override { return "mgrupdate"; }
@@ -72,9 +67,6 @@ public:
       out << ceph_entity_type_name(get_source().type());
     }
     out << "." << daemon_name;
-    if (service_daemon) {
-      out << " daemon";
-    }
     out << ")";
   }
 
index 03a5867a3382198e5dc95f0dea718a7f03dee229..b1545b1a3767357a84fa17a563f65ece1677ece2 100644 (file)
@@ -567,7 +567,7 @@ bool DaemonServer::handle_update(const ref_t<MMgrUpdate>& m)
       dout(20) << "updating existing DaemonState for " << key << dendl;
 
       daemon = daemon_state.get(key);
-      if (m->need_metadata_update == true &&
+      if (m->need_metadata_update &&
           !m->daemon_metadata.empty()) {
         daemon_state.update_metadata(daemon, m->daemon_metadata);
       }
index cfb2e99672ec7bfe2066772de5efc63e5162bccd..6253d267034335267af3530d227ffc0012968832 100644 (file)
@@ -256,8 +256,7 @@ void MgrClient::_send_update()
     } else {
       update->daemon_name = cct->_conf->name.get_id();
     }
-    if (service_daemon) {
-      update->service_daemon = service_daemon;
+    if (need_metadata_update) {
       update->daemon_metadata = daemon_metadata;
     }
     update->need_metadata_update = need_metadata_update;
@@ -596,13 +595,12 @@ int MgrClient::update_daemon_metadata(
     return -EEXIST;
   }
   ldout(cct,1) << service << "." << name << " metadata " << metadata << dendl;
-  service_daemon = true;
   service_name = service;
   daemon_name = name;
   daemon_metadata = metadata;
   daemon_dirty_status = true;
 
-  if (need_metadata_update == true &&
+  if (need_metadata_update &&
       !daemon_metadata.empty()) {
     _send_update();
     need_metadata_update = false;