@hpcc-js/comms 3.14.1 → 3.14.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +43 -43
- package/README.md +50 -50
- package/dist/browser/index.js +1 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/index.umd.cjs +1 -1
- package/dist/browser/index.umd.cjs.map +1 -1
- package/dist/node/index.cjs +6 -6
- package/dist/node/index.cjs.map +4 -4
- package/dist/node/index.js +6 -6
- package/dist/node/index.js.map +4 -4
- package/package.json +5 -5
- package/src/__package__.ts +3 -3
- package/src/clienttools/eclMeta.ts +506 -506
- package/src/clienttools/eclcc.ts +628 -628
- package/src/connection.ts +288 -288
- package/src/ecl/activity.ts +82 -82
- package/src/ecl/dfuWorkunit.ts +363 -363
- package/src/ecl/graph.ts +196 -196
- package/src/ecl/logicalFile.ts +196 -196
- package/src/ecl/machine.ts +63 -63
- package/src/ecl/query.ts +265 -265
- package/src/ecl/queryGraph.ts +813 -813
- package/src/ecl/resource.ts +39 -39
- package/src/ecl/result.ts +245 -245
- package/src/ecl/scope.ts +188 -188
- package/src/ecl/sourceFile.ts +34 -34
- package/src/ecl/store.ts +154 -154
- package/src/ecl/targetCluster.ts +149 -149
- package/src/ecl/timer.ts +42 -42
- package/src/ecl/topology.ts +131 -131
- package/src/ecl/workunit.ts +1340 -1340
- package/src/ecl/xsdParser.ts +267 -267
- package/src/espConnection.ts +164 -164
- package/src/index.browser.ts +1 -1
- package/src/index.common.ts +40 -40
- package/src/index.node.ts +48 -48
- package/src/pem/trustwave.ts +909 -909
- package/src/services/fileSpray.ts +48 -48
- package/src/services/wsAccess.ts +8 -8
- package/src/services/wsAccount.ts +27 -27
- package/src/services/wsCloud.ts +73 -73
- package/src/services/wsCodesign.ts +18 -18
- package/src/services/wsDFU.ts +34 -34
- package/src/services/wsDFUXRef.ts +121 -121
- package/src/services/wsDali.ts +8 -8
- package/src/services/wsEcl.ts +123 -123
- package/src/services/wsElk.ts +8 -8
- package/src/services/wsLogaccess.ts +267 -263
- package/src/services/wsMachine.ts +89 -89
- package/src/services/wsPackageProcess.ts +8 -8
- package/src/services/wsResources.ts +8 -8
- package/src/services/wsSMC.ts +80 -80
- package/src/services/wsSasha.ts +7 -7
- package/src/services/wsStore.ts +32 -32
- package/src/services/wsTopology.ts +45 -45
- package/src/services/wsWorkunits.ts +151 -151
- package/src/services/wsdl/FileSpray/v1.23/FileSpray.ts +1008 -1008
- package/src/services/wsdl/FileSpray/v1.25/FileSpray.ts +1040 -1040
- package/src/services/wsdl/FileSpray/v1.26/FileSpray.ts +929 -929
- package/src/services/wsdl/FileSpray/v1.27/FileSpray.ts +930 -930
- package/src/services/wsdl/WsCloud/v1/WsCloud.ts +38 -38
- package/src/services/wsdl/WsCloud/v1.02/WsCloud.ts +77 -77
- package/src/services/wsdl/WsDFUXRef/v1.02/WsDFUXRef.ts +224 -224
- package/src/services/wsdl/WsDFUXRef/v1.04/WsDFUXRef.ts +227 -227
- package/src/services/wsdl/WsDali/v1.04/WsDali.ts +216 -216
- package/src/services/wsdl/WsDfu/v1.62/WsDfu.ts +1455 -1455
- package/src/services/wsdl/WsDfu/v1.63/WsDfu.ts +1465 -1465
- package/src/services/wsdl/WsDfu/v1.65/WsDfu.ts +1244 -1244
- package/src/services/wsdl/WsDfu/v1.66/WsDfu.ts +1267 -1267
- package/src/services/wsdl/WsDfu/v1.67/WsDfu.ts +1268 -1268
- package/src/services/wsdl/WsFileIO/v1.01/WsFileIO.ts +104 -104
- package/src/services/wsdl/WsPackageProcess/v1.04/WsPackageProcess.ts +519 -519
- package/src/services/wsdl/WsPackageProcess/v1.07/WsPackageProcess.ts +500 -500
- package/src/services/wsdl/WsResources/v1.01/WsResources.ts +119 -119
- package/src/services/wsdl/WsSMC/v1.24/WsSMC.ts +665 -665
- package/src/services/wsdl/WsSMC/v1.27/WsSMC.ts +591 -591
- package/src/services/wsdl/WsSMC/v1.28/WsSMC.ts +645 -645
- package/src/services/wsdl/WsSMC/v1.29/WsSMC.ts +660 -660
- package/src/services/wsdl/WsTopology/v1.31/WsTopology.ts +856 -856
- package/src/services/wsdl/WsTopology/v1.32/WsTopology.ts +786 -786
- package/src/services/wsdl/WsTopology/v1.33/WsTopology.ts +835 -835
- package/src/services/wsdl/WsWorkunits/v1.88/WsWorkunits.ts +2944 -2944
- package/src/services/wsdl/WsWorkunits/v1.94/WsWorkunits.ts +3072 -3072
- package/src/services/wsdl/WsWorkunits/v1.95/WsWorkunits.ts +3073 -3073
- package/src/services/wsdl/WsWorkunits/v1.97/WsWorkunits.ts +3134 -3134
- package/src/services/wsdl/WsWorkunits/v1.98/WsWorkunits.ts +3182 -3182
- package/src/services/wsdl/WsWorkunits/v1.99/WsWorkunits.ts +3162 -3162
- package/src/services/wsdl/WsWorkunits/v2/WsWorkunits.ts +3153 -3153
- package/src/services/wsdl/WsWorkunits/v2.02/WsWorkunits.ts +3162 -3162
- package/src/services/wsdl/WsWorkunits/v2.03/WsWorkunits.ts +3164 -3164
- package/src/services/wsdl/WsWorkunits/v2.04/WsWorkunits.ts +3171 -0
- package/src/services/wsdl/ws_access/v1.16/ws_access.ts +1086 -1086
- package/src/services/wsdl/ws_access/v1.17/ws_access.ts +1023 -1023
- package/src/services/wsdl/ws_account/v1.05/ws_account.ts +111 -111
- package/src/services/wsdl/ws_account/v1.06/ws_account.ts +109 -109
- package/src/services/wsdl/ws_account/v1.07/ws_account.ts +114 -114
- package/src/services/wsdl/ws_codesign/v1.1/ws_codesign.ts +95 -95
- package/src/services/wsdl/ws_elk/v1/ws_elk.ts +47 -47
- package/src/services/wsdl/ws_logaccess/v1/ws_logaccess.ts +83 -83
- package/src/services/wsdl/ws_logaccess/v1.02/ws_logaccess.ts +161 -161
- package/src/services/wsdl/ws_logaccess/v1.03/ws_logaccess.ts +190 -190
- package/src/services/wsdl/ws_logaccess/v1.04/ws_logaccess.ts +215 -215
- package/src/services/wsdl/ws_logaccess/v1.05/ws_logaccess.ts +219 -219
- package/src/services/wsdl/ws_logaccess/v1.08/ws_logaccess.ts +267 -267
- package/src/services/wsdl/ws_machine/v1.17/ws_machine.ts +567 -567
- package/src/services/wsdl/ws_machine/v1.18/ws_machine.ts +497 -497
- package/src/services/wsdl/ws_machine/v1.19/ws_machine.ts +497 -497
- package/src/services/wsdl/wsstore/v1.02/wsstore.ts +239 -239
- package/types/services/wsWorkunits.d.ts +1 -1
- package/types/services/wsdl/WsWorkunits/{v2.03 → v2.04}/WsWorkunits.d.ts +9 -3
package/src/ecl/timer.ts
CHANGED
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
import { espTime2Seconds, StateObject } from "@hpcc-js/util";
|
|
2
|
-
import { IConnection, IOptions } from "../connection.ts";
|
|
3
|
-
import { WorkunitsService, WsWorkunits } from "../services/wsWorkunits.ts";
|
|
4
|
-
|
|
5
|
-
export interface ECLTimerEx extends WsWorkunits.ECLTimer {
|
|
6
|
-
Wuid: string;
|
|
7
|
-
Seconds: number;
|
|
8
|
-
HasSubGraphId: boolean;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export class Timer extends StateObject<ECLTimerEx, ECLTimerEx> implements ECLTimerEx {
|
|
12
|
-
protected connection: WorkunitsService;
|
|
13
|
-
|
|
14
|
-
get properties(): WsWorkunits.ECLTimer { return this.get(); }
|
|
15
|
-
get Wuid(): string { return this.get("Wuid"); }
|
|
16
|
-
get Name(): string { return this.get("Name"); }
|
|
17
|
-
get Value(): string { return this.get("Value"); }
|
|
18
|
-
get Seconds(): number { return this.get("Seconds"); }
|
|
19
|
-
get GraphName(): string { return this.get("GraphName"); }
|
|
20
|
-
get SubGraphId(): number { return this.get("SubGraphId"); }
|
|
21
|
-
get HasSubGraphId(): boolean { return this.get("HasSubGraphId"); }
|
|
22
|
-
get count(): number { return this.get("count"); }
|
|
23
|
-
get Timestamp(): number { return this.get("Timestamp"); }
|
|
24
|
-
get When(): string { return this.get("When"); }
|
|
25
|
-
|
|
26
|
-
constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclTimer: WsWorkunits.ECLTimer) {
|
|
27
|
-
super();
|
|
28
|
-
if (optsConnection instanceof WorkunitsService) {
|
|
29
|
-
this.connection = optsConnection;
|
|
30
|
-
} else {
|
|
31
|
-
this.connection = new WorkunitsService(optsConnection);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const secs = espTime2Seconds(eclTimer.Value);
|
|
35
|
-
this.set({
|
|
36
|
-
Wuid: wuid,
|
|
37
|
-
Seconds: Math.round(secs * 1000) / 1000,
|
|
38
|
-
HasSubGraphId: eclTimer.SubGraphId !== undefined,
|
|
39
|
-
...eclTimer
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
}
|
|
1
|
+
import { espTime2Seconds, StateObject } from "@hpcc-js/util";
|
|
2
|
+
import { IConnection, IOptions } from "../connection.ts";
|
|
3
|
+
import { WorkunitsService, WsWorkunits } from "../services/wsWorkunits.ts";
|
|
4
|
+
|
|
5
|
+
export interface ECLTimerEx extends WsWorkunits.ECLTimer {
|
|
6
|
+
Wuid: string;
|
|
7
|
+
Seconds: number;
|
|
8
|
+
HasSubGraphId: boolean;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export class Timer extends StateObject<ECLTimerEx, ECLTimerEx> implements ECLTimerEx {
|
|
12
|
+
protected connection: WorkunitsService;
|
|
13
|
+
|
|
14
|
+
get properties(): WsWorkunits.ECLTimer { return this.get(); }
|
|
15
|
+
get Wuid(): string { return this.get("Wuid"); }
|
|
16
|
+
get Name(): string { return this.get("Name"); }
|
|
17
|
+
get Value(): string { return this.get("Value"); }
|
|
18
|
+
get Seconds(): number { return this.get("Seconds"); }
|
|
19
|
+
get GraphName(): string { return this.get("GraphName"); }
|
|
20
|
+
get SubGraphId(): number { return this.get("SubGraphId"); }
|
|
21
|
+
get HasSubGraphId(): boolean { return this.get("HasSubGraphId"); }
|
|
22
|
+
get count(): number { return this.get("count"); }
|
|
23
|
+
get Timestamp(): number { return this.get("Timestamp"); }
|
|
24
|
+
get When(): string { return this.get("When"); }
|
|
25
|
+
|
|
26
|
+
constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclTimer: WsWorkunits.ECLTimer) {
|
|
27
|
+
super();
|
|
28
|
+
if (optsConnection instanceof WorkunitsService) {
|
|
29
|
+
this.connection = optsConnection;
|
|
30
|
+
} else {
|
|
31
|
+
this.connection = new WorkunitsService(optsConnection);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const secs = espTime2Seconds(eclTimer.Value);
|
|
35
|
+
this.set({
|
|
36
|
+
Wuid: wuid,
|
|
37
|
+
Seconds: Math.round(secs * 1000) / 1000,
|
|
38
|
+
HasSubGraphId: eclTimer.SubGraphId !== undefined,
|
|
39
|
+
...eclTimer
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
package/src/ecl/topology.ts
CHANGED
|
@@ -1,131 +1,131 @@
|
|
|
1
|
-
import { Cache, exists, StateCallback, StateEvents, StateObject, StatePropCallback } from "@hpcc-js/util";
|
|
2
|
-
import { IConnection, IOptions } from "../connection.ts";
|
|
3
|
-
import { TopologyService, WsTopology } from "../services/wsTopology.ts";
|
|
4
|
-
import { TargetCluster } from "./targetCluster.ts";
|
|
5
|
-
|
|
6
|
-
export class TopologyCache extends Cache<{ BaseUrl: string }, Topology> {
|
|
7
|
-
constructor() {
|
|
8
|
-
super((obj) => {
|
|
9
|
-
return obj.BaseUrl;
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
const _topology = new TopologyCache();
|
|
14
|
-
|
|
15
|
-
export interface TopologyStateEx {
|
|
16
|
-
TargetClusters?: WsTopology.TpTargetCluster[];
|
|
17
|
-
LogicalClusters?: WsTopology.TpLogicalCluster[];
|
|
18
|
-
Services?: WsTopology.ServiceList;
|
|
19
|
-
}
|
|
20
|
-
export class Topology extends StateObject<TopologyStateEx, TopologyStateEx> implements TopologyStateEx {
|
|
21
|
-
protected connection: TopologyService;
|
|
22
|
-
get BaseUrl() { return this.connection.baseUrl; }
|
|
23
|
-
|
|
24
|
-
// Accessors ---
|
|
25
|
-
get properties(): TopologyStateEx { return this.get(); }
|
|
26
|
-
get TargetClusters(): WsTopology.TpTargetCluster[] { return this.get("TargetClusters"); }
|
|
27
|
-
get CTargetClusters(): TargetCluster[] {
|
|
28
|
-
return this.TargetClusters.map(tc => TargetCluster.attach(this.connection, tc.Name, tc));
|
|
29
|
-
}
|
|
30
|
-
get LogicalClusters(): WsTopology.TpLogicalCluster[] { return this.get("LogicalClusters"); }
|
|
31
|
-
get Services(): WsTopology.ServiceList { return this.get("Services"); }
|
|
32
|
-
|
|
33
|
-
static attach(optsConnection: IOptions | IConnection | TopologyService, state?: TopologyStateEx): Topology {
|
|
34
|
-
const retVal: Topology = _topology.get({ BaseUrl: optsConnection.baseUrl }, () => {
|
|
35
|
-
return new Topology(optsConnection);
|
|
36
|
-
});
|
|
37
|
-
if (state) {
|
|
38
|
-
retVal.set(state);
|
|
39
|
-
}
|
|
40
|
-
return retVal;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
protected constructor(optsConnection: IOptions | IConnection | TopologyService) {
|
|
44
|
-
super();
|
|
45
|
-
if (optsConnection instanceof TopologyService) {
|
|
46
|
-
this.connection = optsConnection;
|
|
47
|
-
} else {
|
|
48
|
-
this.connection = new TopologyService(optsConnection);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
GetESPServiceBaseURL(type: string = ""): Promise<string> {
|
|
53
|
-
return this.connection.TpServiceQuery({}).then(response => {
|
|
54
|
-
const rootProtocol = this.connection.protocol();
|
|
55
|
-
const ip = this.connection.ip();
|
|
56
|
-
let port = rootProtocol === "https:" ? "18002" : "8002";
|
|
57
|
-
if (exists("ServiceList.TpEspServers.TpEspServer", response)) {
|
|
58
|
-
for (const item of response.ServiceList.TpEspServers.TpEspServer) {
|
|
59
|
-
if (exists("TpBindings.TpBinding", item)) {
|
|
60
|
-
for (const binding of item.TpBindings.TpBinding) {
|
|
61
|
-
if (binding.Service === type && binding.Protocol + ":" === rootProtocol) {
|
|
62
|
-
port = binding.Port;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return `${rootProtocol}//${ip}:${port}/`;
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
fetchTargetClusters(): Promise<TargetCluster[]> {
|
|
73
|
-
return this.connection.TpTargetClusterQuery({ Type: "ROOT" }).then(response => {
|
|
74
|
-
this.set({
|
|
75
|
-
TargetClusters: response.TpTargetClusters?.TpTargetCluster ?? []
|
|
76
|
-
});
|
|
77
|
-
return this.CTargetClusters;
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
fetchLogicalClusters(request: WsTopology.TpLogicalClusterQueryRequest = {}): Promise<WsTopology.TpLogicalCluster[]> {
|
|
82
|
-
return this.connection.TpLogicalClusterQuery(request).then(response => {
|
|
83
|
-
this.set({
|
|
84
|
-
LogicalClusters: response.TpLogicalClusters.TpLogicalCluster
|
|
85
|
-
});
|
|
86
|
-
return this.LogicalClusters;
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
fetchServices(request: WsTopology.TpServiceQueryRequest = {}): Promise<WsTopology.ServiceList> {
|
|
91
|
-
return this.connection.TpServiceQuery(request).then(response => {
|
|
92
|
-
this.set({
|
|
93
|
-
Services: response.ServiceList
|
|
94
|
-
});
|
|
95
|
-
return this.Services;
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
protected _prevRefresh;
|
|
100
|
-
refresh(force: boolean = false): Promise<this> {
|
|
101
|
-
if (!this._prevRefresh || force) {
|
|
102
|
-
this._prevRefresh = Promise.all([this.fetchTargetClusters(), this.fetchLogicalClusters(), this.fetchServices()]).then(() => {
|
|
103
|
-
return this;
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
return this._prevRefresh;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// Monitoring ---
|
|
110
|
-
|
|
111
|
-
// Events ---
|
|
112
|
-
on(eventID: StateEvents, propIDorCallback: StateCallback | keyof TopologyStateEx, callback?: StatePropCallback): this {
|
|
113
|
-
if (this.isCallback(propIDorCallback)) {
|
|
114
|
-
switch (eventID) {
|
|
115
|
-
case "changed":
|
|
116
|
-
super.on(eventID, propIDorCallback);
|
|
117
|
-
break;
|
|
118
|
-
default:
|
|
119
|
-
}
|
|
120
|
-
} else {
|
|
121
|
-
switch (eventID) {
|
|
122
|
-
case "changed":
|
|
123
|
-
super.on(eventID, propIDorCallback, callback!);
|
|
124
|
-
break;
|
|
125
|
-
default:
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
this._monitor();
|
|
129
|
-
return this;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
1
|
+
import { Cache, exists, StateCallback, StateEvents, StateObject, StatePropCallback } from "@hpcc-js/util";
|
|
2
|
+
import { IConnection, IOptions } from "../connection.ts";
|
|
3
|
+
import { TopologyService, WsTopology } from "../services/wsTopology.ts";
|
|
4
|
+
import { TargetCluster } from "./targetCluster.ts";
|
|
5
|
+
|
|
6
|
+
export class TopologyCache extends Cache<{ BaseUrl: string }, Topology> {
|
|
7
|
+
constructor() {
|
|
8
|
+
super((obj) => {
|
|
9
|
+
return obj.BaseUrl;
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
const _topology = new TopologyCache();
|
|
14
|
+
|
|
15
|
+
export interface TopologyStateEx {
|
|
16
|
+
TargetClusters?: WsTopology.TpTargetCluster[];
|
|
17
|
+
LogicalClusters?: WsTopology.TpLogicalCluster[];
|
|
18
|
+
Services?: WsTopology.ServiceList;
|
|
19
|
+
}
|
|
20
|
+
export class Topology extends StateObject<TopologyStateEx, TopologyStateEx> implements TopologyStateEx {
|
|
21
|
+
protected connection: TopologyService;
|
|
22
|
+
get BaseUrl() { return this.connection.baseUrl; }
|
|
23
|
+
|
|
24
|
+
// Accessors ---
|
|
25
|
+
get properties(): TopologyStateEx { return this.get(); }
|
|
26
|
+
get TargetClusters(): WsTopology.TpTargetCluster[] { return this.get("TargetClusters"); }
|
|
27
|
+
get CTargetClusters(): TargetCluster[] {
|
|
28
|
+
return this.TargetClusters.map(tc => TargetCluster.attach(this.connection, tc.Name, tc));
|
|
29
|
+
}
|
|
30
|
+
get LogicalClusters(): WsTopology.TpLogicalCluster[] { return this.get("LogicalClusters"); }
|
|
31
|
+
get Services(): WsTopology.ServiceList { return this.get("Services"); }
|
|
32
|
+
|
|
33
|
+
static attach(optsConnection: IOptions | IConnection | TopologyService, state?: TopologyStateEx): Topology {
|
|
34
|
+
const retVal: Topology = _topology.get({ BaseUrl: optsConnection.baseUrl }, () => {
|
|
35
|
+
return new Topology(optsConnection);
|
|
36
|
+
});
|
|
37
|
+
if (state) {
|
|
38
|
+
retVal.set(state);
|
|
39
|
+
}
|
|
40
|
+
return retVal;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
protected constructor(optsConnection: IOptions | IConnection | TopologyService) {
|
|
44
|
+
super();
|
|
45
|
+
if (optsConnection instanceof TopologyService) {
|
|
46
|
+
this.connection = optsConnection;
|
|
47
|
+
} else {
|
|
48
|
+
this.connection = new TopologyService(optsConnection);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
GetESPServiceBaseURL(type: string = ""): Promise<string> {
|
|
53
|
+
return this.connection.TpServiceQuery({}).then(response => {
|
|
54
|
+
const rootProtocol = this.connection.protocol();
|
|
55
|
+
const ip = this.connection.ip();
|
|
56
|
+
let port = rootProtocol === "https:" ? "18002" : "8002";
|
|
57
|
+
if (exists("ServiceList.TpEspServers.TpEspServer", response)) {
|
|
58
|
+
for (const item of response.ServiceList.TpEspServers.TpEspServer) {
|
|
59
|
+
if (exists("TpBindings.TpBinding", item)) {
|
|
60
|
+
for (const binding of item.TpBindings.TpBinding) {
|
|
61
|
+
if (binding.Service === type && binding.Protocol + ":" === rootProtocol) {
|
|
62
|
+
port = binding.Port;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return `${rootProtocol}//${ip}:${port}/`;
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
fetchTargetClusters(): Promise<TargetCluster[]> {
|
|
73
|
+
return this.connection.TpTargetClusterQuery({ Type: "ROOT" }).then(response => {
|
|
74
|
+
this.set({
|
|
75
|
+
TargetClusters: response.TpTargetClusters?.TpTargetCluster ?? []
|
|
76
|
+
});
|
|
77
|
+
return this.CTargetClusters;
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
fetchLogicalClusters(request: WsTopology.TpLogicalClusterQueryRequest = {}): Promise<WsTopology.TpLogicalCluster[]> {
|
|
82
|
+
return this.connection.TpLogicalClusterQuery(request).then(response => {
|
|
83
|
+
this.set({
|
|
84
|
+
LogicalClusters: response.TpLogicalClusters.TpLogicalCluster
|
|
85
|
+
});
|
|
86
|
+
return this.LogicalClusters;
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
fetchServices(request: WsTopology.TpServiceQueryRequest = {}): Promise<WsTopology.ServiceList> {
|
|
91
|
+
return this.connection.TpServiceQuery(request).then(response => {
|
|
92
|
+
this.set({
|
|
93
|
+
Services: response.ServiceList
|
|
94
|
+
});
|
|
95
|
+
return this.Services;
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
protected _prevRefresh;
|
|
100
|
+
refresh(force: boolean = false): Promise<this> {
|
|
101
|
+
if (!this._prevRefresh || force) {
|
|
102
|
+
this._prevRefresh = Promise.all([this.fetchTargetClusters(), this.fetchLogicalClusters(), this.fetchServices()]).then(() => {
|
|
103
|
+
return this;
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return this._prevRefresh;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// Monitoring ---
|
|
110
|
+
|
|
111
|
+
// Events ---
|
|
112
|
+
on(eventID: StateEvents, propIDorCallback: StateCallback | keyof TopologyStateEx, callback?: StatePropCallback): this {
|
|
113
|
+
if (this.isCallback(propIDorCallback)) {
|
|
114
|
+
switch (eventID) {
|
|
115
|
+
case "changed":
|
|
116
|
+
super.on(eventID, propIDorCallback);
|
|
117
|
+
break;
|
|
118
|
+
default:
|
|
119
|
+
}
|
|
120
|
+
} else {
|
|
121
|
+
switch (eventID) {
|
|
122
|
+
case "changed":
|
|
123
|
+
super.on(eventID, propIDorCallback, callback!);
|
|
124
|
+
break;
|
|
125
|
+
default:
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
this._monitor();
|
|
129
|
+
return this;
|
|
130
|
+
}
|
|
131
|
+
}
|