summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2018-04-01 16:20:57 +0200
committerantirez <antirez@gmail.com>2018-04-01 16:20:57 +0200
commit27f9c8108c1c6a803ad8e386d655c7065feda394 (patch)
tree60f0a60dc8aa7a8ee620c50a6e628fd09ccf37b3
parent19c42c901b71e5ce34bc78834a91ea0c49018fc6 (diff)
downloadredis-27f9c8108c1c6a803ad8e386d655c7065feda394.tar.gz
Modules Cluster API: GetMyClusterID() added.
-rw-r--r--src/module.c8
-rw-r--r--src/redismodule.h3
2 files changed, 10 insertions, 1 deletions
diff --git a/src/module.c b/src/module.c
index 2a11b8507..78e6aea49 100644
--- a/src/module.c
+++ b/src/module.c
@@ -3961,6 +3961,13 @@ void RM_FreeClusterNodesList(char **ids) {
zfree(ids);
}
+/* Return this node ID (REDISMODULE_CLUSTER_ID_LEN bytes) or NULL if the cluster
+ * is disabled. */
+const char *RM_GetMyClusterID(void) {
+ if (!server.cluster_enabled) return NULL;
+ return server.cluster->myself->name;
+}
+
/* Populate the specified info for the node having as ID the specified 'id',
* then returns REDISMODULE_OK. Otherwise if the node ID does not exist from
* the POV of this local node, REDISMODULE_ERR is returned.
@@ -4557,4 +4564,5 @@ void moduleRegisterCoreAPI(void) {
REGISTER_API(CreateTimer);
REGISTER_API(StopTimer);
REGISTER_API(GetTimerInfo);
+ REGISTER_API(GetMyClusterID);
}
diff --git a/src/redismodule.h b/src/redismodule.h
index 47fc6668a..e16031a4f 100644
--- a/src/redismodule.h
+++ b/src/redismodule.h
@@ -276,6 +276,7 @@ void REDISMODULE_API_FUNC(RedisModule_FreeClusterNodesList)(char **ids);
RedisModuleTimerID REDISMODULE_API_FUNC(RedisModule_CreateTimer)(RedisModuleCtx *ctx, mstime_t period, RedisModuleTimerProc callback, void *data);
int REDISMODULE_API_FUNC(RedisModule_StopTimer)(RedisModuleCtx *ctx, RedisModuleTimerID id, void **data);
int REDISMODULE_API_FUNC(RedisModule_GetTimerInfo)(RedisModuleCtx *ctx, RedisModuleTimerID id, uint64_t *remaining, void **data);
+const char *REDISMODULE_API_FUNC(RM_GetMyClusterID)(void);
/* Experimental APIs */
#ifdef REDISMODULE_EXPERIMENTAL_API
@@ -407,6 +408,7 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
REDISMODULE_GET_API(CreateTimer);
REDISMODULE_GET_API(StopTimer);
REDISMODULE_GET_API(GetTimerInfo);
+ REDISMODULE_GET_API(GetMyClusterID);
#ifdef REDISMODULE_EXPERIMENTAL_API
REDISMODULE_GET_API(GetThreadSafeContext);
@@ -420,7 +422,6 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
REDISMODULE_GET_API(GetBlockedClientPrivateData);
REDISMODULE_GET_API(AbortBlock);
REDISMODULE_GET_API(SubscribeToKeyspaceEvents);
-
#endif
if (RedisModule_IsModuleNameBusy && RedisModule_IsModuleNameBusy(name)) return REDISMODULE_ERR;