diff options
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-handler.c')
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-handler.c | 59 | 
1 files changed, 48 insertions, 11 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c index 91ae6237c54..0085dce5d4c 100644 --- a/xlators/mgmt/glusterd/src/glusterd-handler.c +++ b/xlators/mgmt/glusterd/src/glusterd-handler.c @@ -2771,6 +2771,8 @@ __glusterd_handle_friend_update (rpcsvc_request_t *req)                          GD_MSG_REQ_FROM_UNKNOWN_PEER,                          "Received friend update request "                          "from unknown peer %s", uuid_utoa (friend_req.uuid)); +                gf_event (EVENT_UNKNOWN_PEER, "peer=%s", +                          uuid_utoa (friend_req.uuid));                  goto out;          } @@ -2867,10 +2869,13 @@ __glusterd_handle_friend_update (rpcsvc_request_t *req)                                  goto unlock;                          }                          ret = glusterd_store_peerinfo (peerinfo); -                        if (ret) +                        if (ret) {                                  gf_msg (this->name, GF_LOG_ERROR, 0,                                          GD_MSG_PEERINFO_CREATE_FAIL,                                          "Failed to store peerinfo"); +                                gf_event (EVENT_PEER_STORE_FAILURE, "peer=%s", +                                          peerinfo->hostname); +                        }                  }  unlock:                  rcu_read_unlock (); @@ -3525,6 +3530,8 @@ glusterd_friend_rpc_create (xlator_t *this, glusterd_peerinfo_t *peerinfo,                          GD_MSG_RPC_CREATE_FAIL,                          "failed to create rpc for"                          " peer %s", peerinfo->hostname); +                gf_event (EVENT_PEER_RPC_CREATE_FAILED, "peer=%s", +                          peerinfo->hostname);                  goto out;          }          peerctx = NULL; @@ -3580,6 +3587,8 @@ glusterd_friend_add (const char *hoststr, int port,                          gf_msg (this->name, GF_LOG_ERROR, 0,                                  GD_MSG_PEERINFO_CREATE_FAIL,                                  "Failed to store peerinfo"); +                        gf_event (EVENT_PEER_STORE_FAILURE, "peer=%s", +                                  (*friend)->hostname);                  }          } @@ -3635,6 +3644,8 @@ glusterd_friend_add_from_peerinfo (glusterd_peerinfo_t *friend,                          gf_msg (this->name, GF_LOG_ERROR, 0,                                  GD_MSG_PEERINFO_CREATE_FAIL,                                  "Failed to store peerinfo"); +                        gf_event (EVENT_PEER_STORE_FAILURE, "peer=%s", +                                  friend->hostname);                  }          } @@ -4999,6 +5010,14 @@ __glusterd_brick_rpc_notify (struct rpc_clnt *rpc, void *mydata,          switch (event) {          case RPC_CLNT_CONNECT: +                ret = get_volinfo_from_brickid (brickid, &volinfo); +                if (ret) { +                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                GD_MSG_VOLINFO_GET_FAIL, +                                "Failed to get volinfo from " +                                "brickid(%s)", brickid); +                        goto out; +                }                  /* If a node on coming back up, already starts a brick                   * before the handshake, and the notification comes after                   * the handshake is done, then we need to check if this @@ -5012,15 +5031,6 @@ __glusterd_brick_rpc_notify (struct rpc_clnt *rpc, void *mydata,                                  "Hence not starting the brick",                                  brickinfo->hostname,                                  brickinfo->path); -                        ret = get_volinfo_from_brickid (brickid, &volinfo); -                        if (ret) { -                                gf_msg (this->name, GF_LOG_ERROR, 0, -                                        GD_MSG_VOLINFO_GET_FAIL, -                                        "Failed to get volinfo from " -                                        "brickid(%s)", brickid); -                                goto out; -                        } -                          ret = glusterd_brick_stop (volinfo, brickinfo,                                                     _gf_false);                          if (ret) { @@ -5037,17 +5047,34 @@ __glusterd_brick_rpc_notify (struct rpc_clnt *rpc, void *mydata,                  gf_msg_debug (this->name, 0, "Connected to %s:%s",                          brickinfo->hostname, brickinfo->path);                  glusterd_set_brick_status (brickinfo, GF_BRICK_STARTED); +                gf_event (EVENT_BRICK_CONNECTED, "peer=%s;volume=%s;brick=%s", +                          brickinfo->hostname, volinfo->volname, +                          brickinfo->path); +                  ret = default_notify (this, GF_EVENT_CHILD_UP, NULL);                  break;          case RPC_CLNT_DISCONNECT:                  rpc_clnt_unset_connected (&rpc->conn); -                if (glusterd_is_brick_started (brickinfo)) +                if (glusterd_is_brick_started (brickinfo)) {                          gf_msg (this->name, GF_LOG_INFO, 0,                                  GD_MSG_BRICK_DISCONNECTED,                                  "Brick %s:%s has disconnected from glusterd.",                                  brickinfo->hostname, brickinfo->path); +                        ret = get_volinfo_from_brickid (brickid, &volinfo); +                        if (ret) { +                                gf_msg (this->name, GF_LOG_ERROR, 0, +                                        GD_MSG_VOLINFO_GET_FAIL, +                                        "Failed to get volinfo from " +                                        "brickid(%s)", brickid); +                                goto out; +                        } +                        gf_event (EVENT_BRICK_DISCONNECTED, +                                  "peer=%s;volume=%s;brick=%s", +                                  brickinfo->hostname, volinfo->volname, +                                  brickinfo->path); +                }                  glusterd_set_brick_status (brickinfo, GF_BRICK_STOPPED);                  break; @@ -5174,6 +5201,11 @@ __glusterd_peer_rpc_notify (struct rpc_clnt *rpc, void *mydata,                          "%s(%s)", peerctx->peername,                          uuid_utoa (peerctx->peerid)); +                if (RPC_CLNT_CONNECT == event) { +                        gf_event (EVENT_PEER_NOT_FOUND, "peer=%s;uuid=%s", +                                  peerctx->peername, +                                  uuid_utoa (peerctx->peerid)); +                }                  ret = -1;                  goto out;          } @@ -5188,6 +5220,8 @@ __glusterd_peer_rpc_notify (struct rpc_clnt *rpc, void *mydata,                  peerinfo->generation = uatomic_add_return                                                     (&conf->generation, 1);                  peerctx->peerinfo_gen = peerinfo->generation; +                gf_event (EVENT_PEER_CONNECT, "host=%s;uuid=%s", +                          peerinfo->hostname, uuid_utoa (peerinfo->uuid));                  ret = glusterd_peer_dump_version (this, rpc, peerctx);                  if (ret) @@ -5212,6 +5246,9 @@ __glusterd_peer_rpc_notify (struct rpc_clnt *rpc, void *mydata,                          "from glusterd.",                          peerinfo->hostname, uuid_utoa (peerinfo->uuid),                          glusterd_friend_sm_state_name_get (peerinfo->state.state)); +                gf_event (EVENT_PEER_DISCONNECT, "peer=%s;uuid=%s;state=%s", +                          peerinfo->hostname, uuid_utoa (peerinfo->uuid), +                          glusterd_friend_sm_state_name_get (peerinfo->state.state));                  if (peerinfo->connected) {                          if (conf->op_version < GD_OP_VERSION_3_6_0) {  | 
