mirror of https://github.com/grpc/grpc-node.git
Merge pull request #1972 from murgatroid99/grpc-js-xds_no_missing_names_handling
grpc-js-xds: Remove LDS and CDS code for removing RDS and EDS entries
This commit is contained in:
commit
db39ba245c
|
@ -149,14 +149,9 @@ export class CdsState implements XdsStreamState<Cluster__Output> {
|
||||||
}
|
}
|
||||||
this.latestResponses = validResponses;
|
this.latestResponses = validResponses;
|
||||||
this.latestIsV2 = isV2;
|
this.latestIsV2 = isV2;
|
||||||
const allEdsServiceNames: Set<string> = new Set<string>();
|
|
||||||
const allClusterNames: Set<string> = new Set<string>();
|
const allClusterNames: Set<string> = new Set<string>();
|
||||||
for (const message of validResponses) {
|
for (const message of validResponses) {
|
||||||
allClusterNames.add(message.name);
|
allClusterNames.add(message.name);
|
||||||
const edsServiceName = message.eds_cluster_config?.service_name ?? '';
|
|
||||||
allEdsServiceNames.add(
|
|
||||||
edsServiceName === '' ? message.name : edsServiceName
|
|
||||||
);
|
|
||||||
const watchers = this.watchers.get(message.name) ?? [];
|
const watchers = this.watchers.get(message.name) ?? [];
|
||||||
for (const watcher of watchers) {
|
for (const watcher of watchers) {
|
||||||
watcher.onValidUpdate(message, isV2);
|
watcher.onValidUpdate(message, isV2);
|
||||||
|
@ -164,7 +159,6 @@ export class CdsState implements XdsStreamState<Cluster__Output> {
|
||||||
}
|
}
|
||||||
trace('Received CDS updates for cluster names ' + Array.from(allClusterNames));
|
trace('Received CDS updates for cluster names ' + Array.from(allClusterNames));
|
||||||
this.handleMissingNames(allClusterNames);
|
this.handleMissingNames(allClusterNames);
|
||||||
this.edsState.handleMissingNames(allEdsServiceNames);
|
|
||||||
return errorMessage;
|
return errorMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -128,23 +128,6 @@ export class EdsState implements XdsStreamState<ClusterLoadAssignment__Output> {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Given a list of edsServiceNames (which may actually be the cluster name),
|
|
||||||
* for each watcher watching a name not on the list, call that watcher's
|
|
||||||
* onResourceDoesNotExist method.
|
|
||||||
* @param allClusterNames
|
|
||||||
*/
|
|
||||||
handleMissingNames(allEdsServiceNames: Set<string>) {
|
|
||||||
for (const [edsServiceName, watcherList] of this.watchers.entries()) {
|
|
||||||
if (!allEdsServiceNames.has(edsServiceName)) {
|
|
||||||
trace('Reporting EDS resource does not exist for edsServiceName ' + edsServiceName);
|
|
||||||
for (const watcher of watcherList) {
|
|
||||||
watcher.onResourceDoesNotExist();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
handleResponses(responses: ClusterLoadAssignment__Output[], isV2: boolean) {
|
handleResponses(responses: ClusterLoadAssignment__Output[], isV2: boolean) {
|
||||||
const validResponses: ClusterLoadAssignment__Output[] = [];
|
const validResponses: ClusterLoadAssignment__Output[] = [];
|
||||||
let errorMessage: string | null = null;
|
let errorMessage: string | null = null;
|
||||||
|
|
|
@ -167,13 +167,8 @@ export class LdsState implements XdsStreamState<Listener__Output> {
|
||||||
this.latestResponses = validResponses;
|
this.latestResponses = validResponses;
|
||||||
this.latestIsV2 = isV2;
|
this.latestIsV2 = isV2;
|
||||||
const allTargetNames = new Set<string>();
|
const allTargetNames = new Set<string>();
|
||||||
const allRouteConfigNames = new Set<string>();
|
|
||||||
for (const message of validResponses) {
|
for (const message of validResponses) {
|
||||||
allTargetNames.add(message.name);
|
allTargetNames.add(message.name);
|
||||||
const httpConnectionManager = decodeSingleResource(HTTP_CONNECTION_MANGER_TYPE_URL_V3, message.api_listener!.api_listener!.value);
|
|
||||||
if (httpConnectionManager.rds) {
|
|
||||||
allRouteConfigNames.add(httpConnectionManager.rds.route_config_name);
|
|
||||||
}
|
|
||||||
const watchers = this.watchers.get(message.name) ?? [];
|
const watchers = this.watchers.get(message.name) ?? [];
|
||||||
for (const watcher of watchers) {
|
for (const watcher of watchers) {
|
||||||
watcher.onValidUpdate(message, isV2);
|
watcher.onValidUpdate(message, isV2);
|
||||||
|
@ -181,7 +176,6 @@ export class LdsState implements XdsStreamState<Listener__Output> {
|
||||||
}
|
}
|
||||||
trace('Received RDS response with route config names ' + Array.from(allTargetNames));
|
trace('Received RDS response with route config names ' + Array.from(allTargetNames));
|
||||||
this.handleMissingNames(allTargetNames);
|
this.handleMissingNames(allTargetNames);
|
||||||
this.rdsState.handleMissingNames(allRouteConfigNames);
|
|
||||||
return errorMessage;
|
return errorMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -172,16 +172,6 @@ export class RdsState implements XdsStreamState<RouteConfiguration__Output> {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
handleMissingNames(allRouteConfigNames: Set<string>) {
|
|
||||||
for (const [routeConfigName, watcherList] of this.watchers.entries()) {
|
|
||||||
if (!allRouteConfigNames.has(routeConfigName)) {
|
|
||||||
for (const watcher of watcherList) {
|
|
||||||
watcher.onResourceDoesNotExist();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
handleResponses(responses: RouteConfiguration__Output[], isV2: boolean): string | null {
|
handleResponses(responses: RouteConfiguration__Output[], isV2: boolean): string | null {
|
||||||
const validResponses: RouteConfiguration__Output[] = [];
|
const validResponses: RouteConfiguration__Output[] = [];
|
||||||
let errorMessage: string | null = null;
|
let errorMessage: string | null = null;
|
||||||
|
|
Loading…
Reference in New Issue