Skip to content

Commit ec87fb2

Browse files
committed
Merge branch 'feature/RI-3238/prepare_for_docker' into feature/RI-966_virtual-table-resize
2 parents 422fcfe + e25d3f3 commit ec87fb2

File tree

18 files changed

+130
-46
lines changed

18 files changed

+130
-46
lines changed

redisinsight/api/src/core.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@ import { DatabaseModule } from 'src/modules/database/database.module';
55
import { CertificateModule } from 'src/modules/certificate/certificate.module';
66
import { EventEmitterModule } from '@nestjs/event-emitter';
77
import { RedisModule } from 'src/modules/redis/redis.module';
8+
import { AnalyticsModule } from 'src/modules/analytics/analytics.module';
89

910
@Global()
1011
@Module({
1112
imports: [
1213
EventEmitterModule.forRoot(),
14+
AnalyticsModule,
1315
EncryptionModule.register(),
1416
SettingsModule.register(),
1517
CertificateModule.register(),
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { Module } from '@nestjs/common';
2+
import { AnalyticsService } from 'src/modules/analytics/analytics.service';
3+
4+
@Module({
5+
providers: [
6+
AnalyticsService,
7+
],
8+
})
9+
export class AnalyticsModule {}

redisinsight/api/src/modules/database/providers/database.factory.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ export class DatabaseFactory {
4545
}
4646

4747
model.modules = await this.databaseInfoProvider.determineDatabaseModules(client);
48+
model.lastConnection = new Date();
4849
await client.disconnect();
4950

5051
return model;

redisinsight/api/src/modules/redis/redis.service.ts

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,15 @@ export class RedisService {
5454
): Promise<Redis> {
5555
const config = await this.getRedisConnectionConfig(database);
5656

57-
const client = await new Promise((resolve, reject) => {
57+
return await new Promise((resolve, reject) => {
5858
try {
5959
const connection = new Redis({
6060
...config,
6161
showFriendlyErrorStack: true,
6262
maxRetriesPerRequest: REDIS_CLIENTS_CONFIG.maxRetriesPerRequest,
6363
connectionName,
6464
retryStrategy: useRetry ? this.retryStrategy : () => undefined,
65-
db: 0, // create connection to 0 index always and select db later if needed
65+
db: config.db > 0 && !database.sentinelMaster ? config.db : 0,
6666
});
6767
connection.on('error', (e): void => {
6868
this.logger.error('Failed connection to the redis database.', e);
@@ -79,19 +79,6 @@ export class RedisService {
7979
reject(e);
8080
}
8181
}) as Redis;
82-
83-
// do not add db index in the client construcot to avoid Sentinel select command
84-
// todo: rethink how we can avoid such logic
85-
if (config.db > 0 && !database.sentinelMaster) {
86-
try {
87-
await client.select(config.db);
88-
} catch (e) {
89-
client.disconnect();
90-
throw e;
91-
}
92-
}
93-
94-
return client;
9582
}
9683

9784
public async createClusterClient(

redisinsight/api/src/modules/workbench/entities/command-execution.entity.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ export class CommandExecutionEntity {
8181
encryption: string;
8282

8383
@Column({ nullable: true })
84+
@Expose()
8485
executionTime?: number;
8586

8687
@CreateDateColumn()

redisinsight/api/test/api/database/PUT-databases-id.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,8 @@ describe(`PUT /databases/:id`, () => {
182182
},
183183
after: async () => {
184184
newDatabase = await localDb.getInstanceById(constants.TEST_INSTANCE_ID_3);
185-
expect(_.omit(newDatabase, ['modules', 'provider'])).to.deep.eq({
186-
..._.omit(oldDatabase, ['modules', 'provider']),
185+
expect(newDatabase).to.contain({
186+
..._.omit(oldDatabase, ['modules', 'provider', 'lastConnection']),
187187
host: constants.TEST_REDIS_HOST,
188188
port: constants.TEST_REDIS_PORT,
189189
});

redisinsight/api/test/api/workbench/GET-databases-id-workbench-command_executions-id.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ const responseSchema = Joi.object().keys({
3232
mode: Joi.string().required(),
3333
summary: Joi.string().allow(null),
3434
resultsMode: Joi.string().allow(null),
35-
executionTime: Joi.number().allow(null),
35+
executionTime: Joi.number().required(),
3636
nodeOptions: Joi.object().keys({
3737
host: Joi.string().required(),
3838
port: Joi.number().required(),

redisinsight/api/test/api/workbench/GET-databases-id-workbench-command_executions.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ const responseSchema = Joi.array().items(Joi.object().keys({
2020
mode: Joi.string().required(),
2121
summary: Joi.string().allow(null),
2222
resultsMode: Joi.string().allow(null),
23-
executionTime: Joi.number().allow(null),
23+
executionTime: Joi.number().required(),
2424
nodeOptions: Joi.object().keys({
2525
host: Joi.string().required(),
2626
port: Joi.number().required(),

redisinsight/api/test/api/workbench/POST-databases-id-workbench-command_executions.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ const responseSchema = Joi.array().items(Joi.object().keys({
7171
enableRedirection: Joi.boolean().required(),
7272
}).allow(null),
7373
createdAt: Joi.date().required(),
74-
executionTime: Joi.number().integer().allow(null),
74+
executionTime: Joi.number().integer(),
7575
isNotStored: Joi.boolean(),
7676
summary: Joi.object({
7777
total: Joi.number(),

redisinsight/api/test/helpers/local-db.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ export const generateNCommandExecutions = async (
119119
role: 'ALL',
120120
mode: 'ASCII',
121121
encryption: constants.TEST_ENCRYPTION_STRATEGY,
122+
executionTime: Math.round(Math.random() * 10000),
122123
createdAt: new Date(),
123124
...partial,
124125
}));

0 commit comments

Comments
 (0)