summaryrefslogtreecommitdiffstats
path: root/sdnr/wt/odlux/apps/configurationApp
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wt/odlux/apps/configurationApp')
-rw-r--r--sdnr/wt/odlux/apps/configurationApp/src/actions/deviceActions.ts18
-rw-r--r--sdnr/wt/odlux/apps/configurationApp/src/services/restServices.ts7
2 files changed, 14 insertions, 11 deletions
diff --git a/sdnr/wt/odlux/apps/configurationApp/src/actions/deviceActions.ts b/sdnr/wt/odlux/apps/configurationApp/src/actions/deviceActions.ts
index 5b4498df8..45cdfe64d 100644
--- a/sdnr/wt/odlux/apps/configurationApp/src/actions/deviceActions.ts
+++ b/sdnr/wt/odlux/apps/configurationApp/src/actions/deviceActions.ts
@@ -40,23 +40,19 @@ export class UpdatViewDescription extends Action {
}
export const updateNodeIdAsyncActionCreator = (nodeId: string) => async (dispatch: Dispatch, getState: () => IApplicationStoreState ) => {
- const { configuration: { connectedNetworkElements : { rows }} } = getState();
- dispatch(new SetCollectingSelectionData(true));
- const networkElement = rows.find(r => r.nodeId === nodeId) || await restService.getMountedNetworkElementByMountId(nodeId);
- if (!networkElement) {
- console.error(new Error(`NetworkElement : [${nodeId}] does not exist.`));
- return dispatch(new UpdateDeviceDescription("", { }, [ ]));
- }
- if (!networkElement.nodeDetails || !networkElement.nodeDetails.availableCapabilities) {
+ const availableCapabilities = await restService.getCapabilitiesByMoutId(nodeId);
+
+ if (!availableCapabilities || availableCapabilities.length <= 0) {
throw new Error(`NetworkElement : [${nodeId}] has no capabilities.`);
}
+
const parser = new YangParser();
const capParser = /^\(.*\?revision=(\d{4}-\d{2}-\d{2})\)(\S+)$/i;
- for (let i = 0; i < networkElement.nodeDetails.availableCapabilities.length; ++i){
- const capRaw = networkElement.nodeDetails.availableCapabilities[i];
- const capMatch = capRaw && capParser.exec(capRaw);
+ for (let i = 0; i < availableCapabilities.length; ++i){
+ const capRaw = availableCapabilities[i];
+ const capMatch = capRaw && capParser.exec(capRaw.capability);
try {
capMatch && await parser.addCapability(capMatch[2], capMatch[1]);
} catch (err) {
diff --git a/sdnr/wt/odlux/apps/configurationApp/src/services/restServices.ts b/sdnr/wt/odlux/apps/configurationApp/src/services/restServices.ts
index d0ed03a8d..0d28e6653 100644
--- a/sdnr/wt/odlux/apps/configurationApp/src/services/restServices.ts
+++ b/sdnr/wt/odlux/apps/configurationApp/src/services/restServices.ts
@@ -22,6 +22,13 @@ import { convertPropertyNames, replaceHyphen } from "../../../../framework/src/u
import { NetworkElementConnection } from "../models/networkElementConnection";
class RestService {
+ public async getCapabilitiesByMoutId(nodeId: string): Promise<{ "capabilityOrigin": string, "capability": string }[] | null> {
+ const path = `/restconf/operational/network-topology:network-topology/topology/topology-netconf/node/${nodeId}`;
+ const capabilitiesResult = await requestRest<{ node: { "node-id": string, "netconf-node-topology:available-capabilities": { "available-capability": { "capabilityOrigin": string, "capability": string }[] }}[] }>(path, { method: "GET" });
+ return capabilitiesResult && capabilitiesResult.node && capabilitiesResult.node.length > 0 &&
+ capabilitiesResult.node[0]["netconf-node-topology:available-capabilities"]["available-capability"].map(obj => convertPropertyNames(obj, replaceHyphen)) || null;
+ }
+
public async getMountedNetworkElementByMountId(nodeId: string): Promise<NetworkElementConnection | null> {
// const path = 'restconf/operational/network-topology:network-topology/topology/topology-netconf/node/' + nodeId;
// const connectedNetworkElement = await requestRest<NetworkElementConnection>(path, { method: "GET" });