type CapabilityResponse = {
'network-topology:node': {
'node-id': string;
- 'netconf-node-topology:available-capabilities': {
- 'available-capability': {
- 'capability-origin': string;
- 'capability': string;
- }[];
- };
- 'netconf-node-topology:unavailable-capabilities': {
- 'unavailable-capability': {
- 'capability': string;
- 'failure-reason': string;
- }[];
+ 'netconf-node-topology:netconf-node':{
+ 'available-capabilities': {
+ 'available-capability': {
+ 'capability-origin': string;
+ 'capability': string;
+ }[];
+ };
+ 'unavailable-capabilities': {
+ 'unavailable-capability': {
+ 'capability': string;
+ 'failure-reason': string;
+ }[];
+ };
};
}[];
};
const path = this.getNetworkElementUri(nodeId);
const capabilitiesResult = await requestRest<CapabilityResponse>(path, { method: 'GET' });
const availableCapabilities = capabilitiesResult && capabilitiesResult['network-topology:node'] && capabilitiesResult['network-topology:node'].length > 0 &&
- (capabilitiesResult['network-topology:node'][0]['netconf-node-topology:available-capabilities'] &&
- capabilitiesResult['network-topology:node'][0]['netconf-node-topology:available-capabilities']['available-capability'] &&
- capabilitiesResult['network-topology:node'][0]['netconf-node-topology:available-capabilities']['available-capability'].map<any>(obj => convertPropertyNames(obj, replaceHyphen)) || [])
+ (capabilitiesResult['network-topology:node'][0]['netconf-node-topology:netconf-node']['available-capabilities'] &&
+ capabilitiesResult['network-topology:node'][0]['netconf-node-topology:netconf-node']['available-capabilities']['available-capability'] &&
+ capabilitiesResult['network-topology:node'][0]['netconf-node-topology:netconf-node']['available-capabilities']['available-capability'].map<any>(obj => convertPropertyNames(obj, replaceHyphen)) || [])
.map(cap => {
const capMatch = cap && capParser.exec(cap.capability);
return capMatch ? {
}).filter((cap) => cap != null) || [] as any;
const unavailableCapabilities = capabilitiesResult && capabilitiesResult['network-topology:node'] && capabilitiesResult['network-topology:node'].length > 0 &&
- (capabilitiesResult['network-topology:node'][0]['netconf-node-topology:unavailable-capabilities'] &&
- capabilitiesResult['network-topology:node'][0]['netconf-node-topology:unavailable-capabilities']['unavailable-capability'] &&
- capabilitiesResult['network-topology:node'][0]['netconf-node-topology:unavailable-capabilities']['unavailable-capability'].map<any>(obj => convertPropertyNames(obj, replaceHyphen)) || [])
+ (capabilitiesResult['network-topology:node'][0]['netconf-node-topology:netconf-node']['unavailable-capabilities'] &&
+ capabilitiesResult['network-topology:node'][0]['netconf-node-topology:netconf-node']['unavailable-capabilities']['unavailable-capability'] &&
+ capabilitiesResult['network-topology:node'][0]['netconf-node-topology:netconf-node']['unavailable-capabilities']['unavailable-capability'].map<any>(obj => convertPropertyNames(obj, replaceHyphen)) || [])
.map(cap => {
const capMatch = cap && capParser.exec(cap.capability);
return capMatch ? {
render(): JSX.Element {
const setting = settings[this.props.mode];
- const availableCapabilities = this.props.state.connect.elementInfo.elementInfo['netconf-node-topology:available-capabilities']['available-capability'];
+ const availableCapabilities = this.props.state.connect.elementInfo.elementInfo['netconf-node-topology:netconf-node']['available-capabilities']['available-capability'];
let yangFeatures = this.props.state.connect.elementFeatureInfo.elementFeatureInfo;
let yangCapabilities: AvailableCapabilities[] = [];
const infoNetworkElementsStateInit: IInfoNetworkElementsState = {
elementInfo: {
'node-id': '',
- 'netconf-node-topology:available-capabilities': {
+ 'netconf-node-topology:netconf-node':{
+ 'available-capabilities': {
'available-capability': [],
+ },
},
},
busy: false,
export interface TopologyNode {
'node-id': string;
- 'netconf-node-topology:available-capabilities': NetconfNodeTopologyAvailableCapabilities;
+ 'netconf-node-topology:netconf-node':{
+ 'available-capabilities': NetconfNodeTopologyAvailableCapabilities;
+ };
}
export interface Topology {
`<host xmlns="urn:opendaylight:netconf-node-topology">${networkElement.host}</host>`,
`<port xmlns="urn:opendaylight:netconf-node-topology">${networkElement.port}</port>`,
`<login-password-unencrypted xmlns="urn:opendaylight:netconf-node-topology">`,
- `<username xmlns="urn:opendaylight:netconf-node-topology">${networkElement.username}</username>`,
- `<password xmlns="urn:opendaylight:netconf-node-topology">${networkElement.password}</password>`,
+ `<username xmlns="urn:opendaylight:netconf-node-topology">${networkElement.username}</username>`,
+ `<password xmlns="urn:opendaylight:netconf-node-topology">${networkElement.password}</password>`,
`</login-password-unencrypted>`,
' <tcp-only xmlns="urn:opendaylight:netconf-node-topology">false</tcp-only>',
-
' <!-- non-mandatory fields with default values, you can safely remove these if you do not wish to override any of these values-->',
' <reconnect-on-changed-schema xmlns="urn:opendaylight:netconf-node-topology">false</reconnect-on-changed-schema>',
' <connection-timeout-millis xmlns="urn:opendaylight:netconf-node-topology">20000</connection-timeout-millis>',
' <max-connection-attempts xmlns="urn:opendaylight:netconf-node-topology">100</max-connection-attempts>',
+ ' <min-backoff-millis xmlns="urn:opendaylight:netconf-node-topology">2000</min-backoff-millis>',
' <backoff-multiplier xmlns="urn:opendaylight:netconf-node-topology">1.5</backoff-multiplier>',
-
' <!-- keepalive-delay set to 0 turns off keepalives-->',
' <keepalive-delay xmlns="urn:opendaylight:netconf-node-topology">120</keepalive-delay>',
'</netconf-node>',
const tlsXml = [
'<node xmlns="urn:TBD:params:xml:ns:yang:network-topology">',
`<node-id>${networkElement.nodeId}</node-id>`,
- '<netconf-node xmlns="urn:opendaylight:netconf-node-topology">',
- '<key-based xmlns="urn:opendaylight:netconf-node-topology">',
+ `<netconf-node xmlns="urn:opendaylight:netconf-node-topology">`,
+ `<key-based xmlns="urn:opendaylight:netconf-node-topology">`,
`<key-id xmlns="urn:opendaylight:netconf-node-topology">${networkElement.tlsKey}</key-id>`,
`<username xmlns="urn:opendaylight:netconf-node-topology">${networkElement.username}</username>`,
- '</key-based>',
+ `</key-based>`,
`<host xmlns="urn:opendaylight:netconf-node-topology">${networkElement.host}</host>`,
`<port xmlns="urn:opendaylight:netconf-node-topology">${networkElement.port}</port>`,
- '<tcp-only xmlns="urn:opendaylight:netconf-node-topology">false</tcp-only>',
- '<protocol xmlns="urn:opendaylight:netconf-node-topology">',
- '<name xmlns="urn:opendaylight:netconf-node-topology">TLS</name>',
- ' </protocol>',
- '<max-connection-attempts xmlns="urn:opendaylight:netconf-node-topology">2</max-connection-attempts>',
- '</netconf-node>',
+ `<tcp-only xmlns="urn:opendaylight:netconf-node-topology">false</tcp-only>`,
+ `<protocol xmlns="urn:opendaylight:netconf-node-topology">`,
+ `<name xmlns="urn:opendaylight:netconf-node-topology">TLS</name>`,
+ ` </protocol>`,
+ `<max-connection-attempts xmlns="urn:opendaylight:netconf-node-topology">2</max-connection-attempts>`,
+ `</netconf-node>`,
'</node>'].join('');
let bodyXml;
if (networkElement.password) {
<properties>
<buildtime>${maven.build.timestamp}</buildtime>
<distversion>ONAP Frankfurt (Neon, mdsal ${odl.mdsal.version})</distversion>
- <buildno>179.f46d0ef0(25/03/03)</buildno>
+ <buildno>181.11d19876(25/11/03)</buildno>
<odlux.version>ONAP SDN-R | ONF Wireless for ${distversion} - Build: ${buildtime} ${buildno} ${project.version}</odlux.version>
</properties>
odlux.framework.buildno=177.c57a218f(24/03/14)
-odlux.apps.configurationApp.buildno=179.f46d0ef0(25/03/03)
-odlux.apps.connectApp.buildno=173.1f72e324(23/12/14)
+odlux.apps.configurationApp.buildno=181.11d19876(25/11/03)
+odlux.apps.connectApp.buildno=181.11d19876(25/11/03)
odlux.apps.eventLogApp.buildno=179.f46d0ef0(25/03/03)
odlux.apps.faultApp.buildno=179.f46d0ef0(25/03/03)
odlux.apps.helpApp.buildno=172.b89e2c2b(23/10/04)