Skip to content

Commit 6debcc0

Browse files
committed
[protocol] Centralize grpc.isConnectionAlive
Tool: gitpod/catfood.gitpod.cloud
1 parent 06d7fa3 commit 6debcc0

File tree

3 files changed

+16
-17
lines changed

3 files changed

+16
-17
lines changed

components/gitpod-protocol/src/util/grpc.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,3 +179,12 @@ export function createDebugLogInterceptor(): grpc.Interceptor {
179179
export function isGrpcError(err: any): err is grpc.StatusObject {
180180
return err.code && err.details;
181181
}
182+
183+
export function isConnectionAlive(client: grpc.Client) {
184+
const cs = client.getChannel().getConnectivityState(false);
185+
return (
186+
cs == grpc.connectivityState.CONNECTING ||
187+
cs == grpc.connectivityState.IDLE ||
188+
cs == grpc.connectivityState.READY
189+
);
190+
}

components/image-builder-api/typescript/src/sugar.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { ImageBuilderClient } from "./imgbuilder_grpc_pb";
88
import { TraceContext } from "@gitpod/gitpod-protocol/lib/util/tracing";
99
import { Deferred } from "@gitpod/gitpod-protocol/lib/util/deferred";
1010
import { log } from "@gitpod/gitpod-protocol/lib/util/logging";
11-
import { createClientCallMetricsInterceptor, IClientCallMetrics } from "@gitpod/gitpod-protocol/lib/util/grpc";
11+
import { createClientCallMetricsInterceptor, IClientCallMetrics, isConnectionAlive } from "@gitpod/gitpod-protocol/lib/util/grpc";
1212
import * as opentracing from "opentracing";
1313
import { Metadata } from "@grpc/grpc-js";
1414
import {
@@ -130,12 +130,7 @@ export class PromisifiedImageBuilderClient {
130130
) {}
131131

132132
public isConnectionAlive() {
133-
const cs = this.client.getChannel().getConnectivityState(false);
134-
return (
135-
cs == grpc.connectivityState.CONNECTING ||
136-
cs == grpc.connectivityState.IDLE ||
137-
cs == grpc.connectivityState.READY
138-
);
133+
return isConnectionAlive(this.client);
139134
}
140135

141136
public resolveBaseImage(ctx: TraceContext, request: ResolveBaseImageRequest): Promise<ResolveBaseImageResponse> {

components/server/src/util/content-service-sugar.ts

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@
66

77
import { inject, injectable, interfaces, optional } from "inversify";
88
import * as grpc from "@grpc/grpc-js";
9-
import { createClientCallMetricsInterceptor, IClientCallMetrics } from "@gitpod/gitpod-protocol/lib/util/grpc";
9+
import {
10+
createClientCallMetricsInterceptor,
11+
IClientCallMetrics,
12+
isConnectionAlive,
13+
} from "@gitpod/gitpod-protocol/lib/util/grpc";
1014
import { IDEPluginServiceClient } from "@gitpod/content-service/lib/ideplugin_grpc_pb";
1115
import { ContentServiceClient } from "@gitpod/content-service/lib/content_grpc_pb";
1216
import { BlobServiceClient } from "@gitpod/content-service/lib/blobs_grpc_pb";
@@ -142,12 +146,3 @@ export class CachingHeadlessLogServiceClientProvider extends CachingClientProvid
142146
});
143147
}
144148
}
145-
146-
function isConnectionAlive(client: grpc.Client) {
147-
const cs = client.getChannel().getConnectivityState(false);
148-
return (
149-
cs == grpc.connectivityState.CONNECTING ||
150-
cs == grpc.connectivityState.IDLE ||
151-
cs == grpc.connectivityState.READY
152-
);
153-
}

0 commit comments

Comments
 (0)