From 4b87cf4d3c50dacb356c8e53a80bbabcba14b621 Mon Sep 17 00:00:00 2001 From: Aijana Schumann Date: Thu, 9 Apr 2020 02:07:03 +0200 Subject: Connect App Bugfix Fix too many network calls made for gui cuttrough Issue-ID: SDNC-1152 Signed-off-by: Aijana Schumann Change-Id: I3f63d2f81ace802768d3e8814899de8d32dd4d11 --- .../src/actions/commonNetworkElementsActions.ts | 57 ++++++++++++++-------- .../src/handlers/connectAppRootHandler.ts | 10 ++-- sdnr/wt/odlux/framework/pom.xml | 2 +- 3 files changed, 45 insertions(+), 24 deletions(-) (limited to 'sdnr/wt/odlux') diff --git a/sdnr/wt/odlux/apps/connectApp/src/actions/commonNetworkElementsActions.ts b/sdnr/wt/odlux/apps/connectApp/src/actions/commonNetworkElementsActions.ts index a6d81c10c..a3bdc6828 100644 --- a/sdnr/wt/odlux/apps/connectApp/src/actions/commonNetworkElementsActions.ts +++ b/sdnr/wt/odlux/apps/connectApp/src/actions/commonNetworkElementsActions.ts @@ -38,7 +38,7 @@ export class SetPanelAction extends Action { } export class AddWebUriList extends Action { - constructor(public searchedElements: guiCutThrough[], public notSearchedElements: string[], public newlySearchedElements?: string[]) { + constructor(public searchedElements: guiCutThrough[], public notSearchedElements: string[], public unsupportedElements: string[], public newlySearchedElements?: string[] ) { super(); } } @@ -72,35 +72,52 @@ export const findWebUrisForGuiCutThroughAsyncAction = (networkElements: NetworkE let notConnectedElements: string[] = []; let elementsToSearch: string[] = []; let prevFoundElements: string[] = []; + let unsupportedElements: string[]= []; networkElements.forEach(item => { - const id = item.id as string; - if (item.status === "Connected") { - - // element is connected and is added to search list, if it doesn't exist already - const exists = guiCutThrough.searchedElements.filter(element => element.nodeId === id).length > 0; - if (!exists) { - elementsToSearch.push(id); - - //element was found previously, but not searched for a weburi - if (guiCutThrough.notSearchedElements.length > 0 && guiCutThrough.notSearchedElements.includes(id)) { - prevFoundElements.push(id); + const id = item.id as string; + if (item.status === "Connected") { + + if(item.coreModelCapability!== "Unsupported"){ + // element is connected and is added to search list, if it doesn't exist already + const exists = guiCutThrough.searchedElements.filter(element => element.nodeId === id).length > 0; + if (!exists) { + elementsToSearch.push(id); + + //element was found previously, but wasn't connected + if (guiCutThrough.notSearchedElements.length > 0 && guiCutThrough.notSearchedElements.includes(id)) { + prevFoundElements.push(id); + } + } + }else{ + // element does not support core model and must not be searched for a weburi + const id = item.id as string; + const exists = guiCutThrough.unsupportedElements.filter(element => element === id).length > 0; + if(!exists){ + unsupportedElements.push(id); + + //element was found previously, but wasn't connected + if (guiCutThrough.notSearchedElements.length > 0 && guiCutThrough.notSearchedElements.includes(id)) { + prevFoundElements.push(id); + } + } } } - } - else { - // element isn't connected and cannot be searched for a weburi - if (!guiCutThrough.notSearchedElements.includes(id)) { - notConnectedElements.push(item.id as string); + else { + // element isn't connected and cannot be searched for a weburi + if (!guiCutThrough.notSearchedElements.includes(id)) { + notConnectedElements.push(item.id as string); + } } - } }); - if (elementsToSearch.length > 0 || notConnectedElements.length > 0) { + + if (elementsToSearch.length > 0 || notConnectedElements.length > 0 || unsupportedElements.length>0 ) { const result = await connectService.getAllWebUriExtensionsForNetworkElementListAsync(elementsToSearch); - dispatcher(new AddWebUriList(result, notConnectedElements, prevFoundElements)); + dispatcher(new AddWebUriList(result, notConnectedElements, unsupportedElements, prevFoundElements)); } + isBusy = false; } diff --git a/sdnr/wt/odlux/apps/connectApp/src/handlers/connectAppRootHandler.ts b/sdnr/wt/odlux/apps/connectApp/src/handlers/connectAppRootHandler.ts index 23a801424..302a981eb 100644 --- a/sdnr/wt/odlux/apps/connectApp/src/handlers/connectAppRootHandler.ts +++ b/sdnr/wt/odlux/apps/connectApp/src/handlers/connectAppRootHandler.ts @@ -43,14 +43,17 @@ const currentOpenPanelHandler: IActionHandler = (state = null, action) interface guiCutThroughState { searchedElements: guiCutThrough[]; notSearchedElements: string[]; + unsupportedElements: string[]; } -const guiCutThroughHandler: IActionHandler = (state = { searchedElements: [], notSearchedElements: [] }, action) => { +const guiCutThroughHandler: IActionHandler = (state = { searchedElements: [], notSearchedElements: [], unsupportedElements:[] }, action) => { if (action instanceof AddWebUriList) { let notSearchedElements: string[]; let searchedElements: guiCutThrough[]; + let unsupportedElements: string[]; notSearchedElements = state.notSearchedElements.concat(action.notSearchedElements); + unsupportedElements = state.unsupportedElements.concat(action.unsupportedElements); //remove elements, which were just searched if (action.newlySearchedElements) { @@ -61,13 +64,14 @@ const guiCutThroughHandler: IActionHandler = (state = { sear searchedElements = state.searchedElements.concat(action.searchedElements); - state = { searchedElements: searchedElements, notSearchedElements: notSearchedElements } + state = { searchedElements: searchedElements, notSearchedElements: notSearchedElements, unsupportedElements: unsupportedElements } } else if (action instanceof RemoveWebUri) { const nodeId = action.element; const webUris = state.searchedElements.filter(item => item.nodeId !== nodeId); const knownElements = state.notSearchedElements.filter(item => item !== nodeId); - state = { notSearchedElements: knownElements, searchedElements: webUris }; + const unsupportedElement = state.unsupportedElements.filter(item => item != nodeId); + state = { notSearchedElements: knownElements, searchedElements: webUris, unsupportedElements: unsupportedElement }; } return state; } diff --git a/sdnr/wt/odlux/framework/pom.xml b/sdnr/wt/odlux/framework/pom.xml index 5c7f846f0..b125a4537 100644 --- a/sdnr/wt/odlux/framework/pom.xml +++ b/sdnr/wt/odlux/framework/pom.xml @@ -46,7 +46,7 @@ ${maven.build.timestamp} ONAP Frankfurt (Neon, mdsal ${odl.mdsal.version}) - 50.53aa73a(20/03/12) + 52.3b24c2d(20/04/08) ONAP SDN-R | ONF Wireless for ${distversion} - Build: ${buildtime} ${buildno} ${project.version} -- cgit 1.2.3-korg