]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: Monitor: forward session entity name to leader
authorJoao Eduardo Luis <joao@redhat.com>
Fri, 14 Nov 2014 21:09:27 +0000 (21:09 +0000)
committerJoao Eduardo Luis <joao@redhat.com>
Mon, 17 Nov 2014 15:40:49 +0000 (15:40 +0000)
And populate mock session (for forwarded request) with forwarded entity
name.

Backport: giant

Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
src/mon/Monitor.cc

index a0229aed8102a4a52ce78b800ec4dafa467e6f52..f4188024fdc5434055554db3f51d181b12bf1dda 100644 (file)
@@ -2748,6 +2748,11 @@ void Monitor::forward_request_leader(PaxosServiceMessage *req)
                                     rr->con_features,
                                     rr->session->caps);
     forward->set_priority(req->get_priority());
+    if (session->auth_handler) {
+      forward->entity_name = session->entity_name;
+    } else if (req->get_source().is_mon()) {
+      forward->entity_name.set_type(CEPH_ENTITY_TYPE_MON);
+    }
     messenger->send_message(forward, monmap->get_inst(mon));
   } else {
     dout(10) << "forward_request no session for request " << *req << dendl;
@@ -2781,6 +2786,9 @@ void Monitor::handle_forward(MForward *m)
 
     s->caps = m->client_caps;
     dout(10) << " caps are " << s->caps << dendl;
+    s->entity_name = m->entity_name;
+    dout(10) << " entity name '" << s->entity_name << "' type "
+             << s->entity_name.get_type() << dendl;
     s->proxy_con = m->get_connection();
     s->proxy_tid = m->tid;