| 6308 | } |
| 6309 | |
| 6310 | static void RedisGearsPy_DumpSingleSession(RedisModuleCtx *ctx, PythonSessionCtx* s, int verbose){ |
| 6311 | RedisModule_ReplyWithArray(ctx, 16); |
| 6312 | RedisModule_ReplyWithCString(ctx, "ID"); |
| 6313 | RedisModule_ReplyWithCString(ctx, s->sessionId); |
| 6314 | RedisModule_ReplyWithCString(ctx, "sessionDescription"); |
| 6315 | if (s->sessionDesc) { |
| 6316 | RedisModule_ReplyWithCString(ctx, s->sessionDesc); |
| 6317 | } else { |
| 6318 | RedisModule_ReplyWithNull(ctx); |
| 6319 | } |
| 6320 | RedisModule_ReplyWithCString(ctx, "refCount"); |
| 6321 | RedisModule_ReplyWithLongLong(ctx, s->refCount); |
| 6322 | RedisModule_ReplyWithCString(ctx, "linked"); |
| 6323 | RedisModule_ReplyWithCString(ctx, s->linkedTo == LinkedTo_None ? "None" : s->linkedTo == LinkedTo_PrimaryDict ? "primary" : "temprary"); |
| 6324 | RedisModule_ReplyWithCString(ctx, "dead"); |
| 6325 | RedisModule_ReplyWithCString(ctx, s->deadNode ? "true" : "false"); |
| 6326 | RedisModule_ReplyWithCString(ctx, "requirementInstallationNeeded"); |
| 6327 | RedisModule_ReplyWithLongLong(ctx, s->isInstallationNeeded); |
| 6328 | RedisModule_ReplyWithCString(ctx, "requirements"); |
| 6329 | RedisModule_ReplyWithArray(ctx, array_len(s->requirements)); |
| 6330 | for(size_t i = 0 ; i < array_len(s->requirements) ; ++i) { |
| 6331 | PythonRequirementCtx* req = s->requirements[i]; |
| 6332 | if (verbose) { |
| 6333 | RedisGearsPy_SendReqMetaData(ctx, req); |
| 6334 | } else { |
| 6335 | RedisModule_ReplyWithCString(ctx, req->installName); |
| 6336 | } |
| 6337 | } |
| 6338 | RedisModule_ReplyWithCString(ctx, "registrations"); |
| 6339 | |
| 6340 | PythonSessionCtx_RunWithRegistrationsLock(s, { |
| 6341 | RedisModule_ReplyWithArray(ctx, array_len(s->registrations)); |
| 6342 | for(size_t i = 0 ; i < array_len(s->registrations) ; ++i) { |
| 6343 | const char *registrationId = s->registrations[i]; |
| 6344 | if (verbose) { |
| 6345 | FlatExecutionPlan *fep = RedisGears_GetFepById(registrationId); |
| 6346 | if (!fep) { |
| 6347 | RedisModule_ReplyWithCString(ctx, registrationId); |
| 6348 | } else { |
| 6349 | RedisGears_DumpRegistration(ctx, fep, REGISTRATION_DUMP_NO_PD); |
| 6350 | } |
| 6351 | } else { |
| 6352 | RedisModule_ReplyWithCString(ctx, registrationId); |
| 6353 | } |
| 6354 | } |
| 6355 | }); |
| 6356 | } |
| 6357 | |
| 6358 | static int RedisGearsPy_DumpSessions(RedisModuleCtx *ctx, RedisModuleString **argv, int argc){ |
| 6359 | pthread_mutex_lock(&PySessionsLock); |
no test coverage detected