From 27fb2d06608fbb070ae2c15a5580a4f5b2423d15 Mon Sep 17 00:00:00 2001 From: demx8as6 Date: Tue, 10 Jul 2018 18:07:44 +0200 Subject: Add seed code for sdnr app based on ONF Centennial At this point in time all the Carbon code from ONF Centennial is added to ONAP. Later it needs to be refactored and modified for ODL Oxygen. Change-Id: Iff85dd940c05c3827f1c4e6f9542ecd060c58a46 Issue-ID: SDNC-374 Signed-off-by: demx8as6 --- .../ux/mwtnSpectrum/mwtnSpectrum-bundle/pom.xml | 119 ++++++++++++++++++ .../resources/OSGI-INF/blueprint/blueprint.xml | 19 +++ .../ux/mwtnSpectrum/mwtnSpectrum-module/pom.xml | 15 +++ .../resources/mwtnSpectrum/images/bluelight.gif | Bin 0 -> 61554 bytes .../resources/mwtnSpectrum/images/mwtnSpectrum.png | Bin 0 -> 3229 bytes .../resources/mwtnSpectrum/mwtnSpectrum-custom.css | 45 +++++++ .../mwtnSpectrum/mwtnSpectrum.controller.js | 135 +++++++++++++++++++++ .../resources/mwtnSpectrum/mwtnSpectrum.module.js | 54 +++++++++ .../mwtnSpectrum/mwtnSpectrum.services.js | 90 ++++++++++++++ .../resources/mwtnSpectrum/mwtnSpectrum.tpl.html | 64 ++++++++++ .../code-Carbon-SR1/ux/mwtnSpectrum/pom.xml | 24 ++++ 11 files changed, 565 insertions(+) create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-bundle/pom.xml create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/pom.xml create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/images/bluelight.gif create mode 100755 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/images/mwtnSpectrum.png create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum-custom.css create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum.controller.js create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum.module.js create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum.services.js create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum.tpl.html create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/pom.xml (limited to 'sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum') diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-bundle/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-bundle/pom.xml new file mode 100644 index 00000000..7a50612c --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-bundle/pom.xml @@ -0,0 +1,119 @@ + + + 4.0.0 + + mwtnSpectrum + cn.com.zte.odl.dlux + 0.5.1-SNAPSHOT + .. + + mwtnSpectrum-bundle + ${prefix} ${project.artifactId} + bundle + + + + org.osgi + org.osgi.core + ${osgi.core.version} + + + org.osgi + org.osgi.compendium + ${osgi.core.version} + + + org.apache.felix + org.osgi.compendium + ${apache.felix.compendium} + + + org.opendaylight.dlux + loader + ${dlux.loader.version} + + + cn.com.zte.odl.dlux + mwtnSpectrum-module + 0.5.1-SNAPSHOT + + + + + + target/generated-resources + + + src/main/resources + + + + + org.apache.maven.plugins + maven-dependency-plugin + 2.6 + + + + unpack-loader-resources + + unpack-dependencies + + generate-resources + + ${project.build.directory}/generated-resources + cn.com.zte.odl.dlux + mwtnSpectrum-module + META-INF\/** + true + false + + + + + + org.apache.felix + maven-bundle-plugin + true + + + org.osgi.service.http, + org.osgi.framework;version="1.0.0", + org.opendaylight.dlux.loader + + + + + + + + + + + diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml new file mode 100644 index 00000000..51ddc024 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + src/app/mwtnSpectrum/mwtnSpectrum-custom.css + + + + \ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/pom.xml new file mode 100644 index 00000000..ca8ef939 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/pom.xml @@ -0,0 +1,15 @@ + + + 4.0.0 + + mwtnSpectrum + cn.com.zte.odl.dlux + 0.5.1-SNAPSHOT + .. + + mwtnSpectrum-module + ${prefix} ${project.artifactId} + jar + \ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/images/bluelight.gif b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/images/bluelight.gif new file mode 100644 index 00000000..33de2178 Binary files /dev/null and b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/images/bluelight.gif differ diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/images/mwtnSpectrum.png b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/images/mwtnSpectrum.png new file mode 100755 index 00000000..23956335 Binary files /dev/null and b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/images/mwtnSpectrum.png differ diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum-custom.css b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum-custom.css new file mode 100644 index 00000000..df461795 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum-custom.css @@ -0,0 +1,45 @@ +/** + * Add your application related css here + */ + +.alarm div { + height: 160px; + vertical-align: middle; +} + +.cleared { + color: lightgreen; +} +.cleared span { + color: lightgreen; +} + +.raised { + color: red; +} +.raised span { + color: red; +} + +.mwtnSpectrumGrid { + height: 600px; + background-color: white; +} + +.mwtnSpectrumGrid span { + color: #393939; +} + +.mwtnSpectrumGrid span.mismatch { + font-weight: bold; + color: #428bca; +} + +.mwtnSpectrumGrid .green { + color: darkgreen; +} +.mwtnSpectrumGrid .green span { + color: darkgreen; +} + + \ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum.controller.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum.controller.js new file mode 100644 index 00000000..f2433853 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum.controller.js @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2016 highstreet technologies GmbH and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +define(['app/mwtnSpectrum/mwtnSpectrum.module', + 'app/mwtnSpectrum/mwtnSpectrum.services', + 'app/mwtnCommons/mwtnCommons.services'], function(mwtnSpectrumApp) { + + mwtnSpectrumApp.register.controller('mwtnSpectrumCtrl', ['$scope', '$rootScope', 'uiGridConstants','$mwtnSpectrum', '$mwtnLog', 'OnfNetworkElement', 'MicrowavePhysicalSection', + function($scope, $rootScope, uiGridConstants, $mwtnSpectrum, $mwtnLog, OnfNetworkElement, MicrowavePhysicalSection) { + + var COMPONENT = 'mwtnSpectrumCtrl'; + $mwtnLog.info({component: COMPONENT, message: 'mwtnSpectrumCtrl started!'}); + + $rootScope.section_logo = 'src/app/mwtnSpectrum/images/mwtnSpectrum.png'; // Add your topbar logo location here such as 'assets/images/logo_topology.gif' + + $scope.interference = { + alarmStatus: 'cleared' + }; + + $scope.execute = function() { + $scope.interference.alarmStatus = 'raised'; + $mwtnSpectrum.execute().then(function(success) { + $scope.interference.alarmStatus = 'cleared'; + }, function(error) { + $scope.interference.alarmStatus = 'cleared'; + }); + }; + $scope.clear = function() { + console.log("Cleared"); + $scope.interference.alarmStatus = 'cleared'; + }; + + var updateAirInterface = function(spec, data) { + if (data) { + var radioSignalID = data.airInterfaceConfiguration.radioSignalID; + $scope.gridOptions.data.map(function(row){ + if (row.name === spec.nodeId && row.radioSignalID === radioSignalID) { + row.actualTxFrequency = data.airInterfaceConfiguration.txFrequency; + row.actualRxFrequency = data.airInterfaceConfiguration.rxFrequency; + } + }); + } else { + $scope.gridOptions.data.map(function(row){ + if (row.nodeId === spec.nodeId) { + row.actualTxFrequency = '?'; + row.actualRxFrequency = '?'; + } + }); + } + }; + + $scope.processing = false; + $scope.refresh = function() { + $scope.processing = true; + $scope.interference.alarmStatus = 'cleared'; + $mwtnSpectrum.refresh().then(function(success){ + $scope.processing = false; + $scope.gridOptions.data = success.airInterfaces; + success.actualNodes.map(function(actualNode){ + if (actualNode.connectionStatus !== 'connected') { + return; + } + var revision = '2016-09-01'; + $mwtnSpectrum.getActualNetworkElement(actualNode.id, revision).then(function(onfNe){ + var aOnfNe = new OnfNetworkElement(onfNe.NetworkElement); + aOnfNe.getLTPMwpsList().map(function(ltp){ + var spec = { + nodeId: actualNode.id, + revision: revision, + pacId: 'airinterface', + layerProtocolId: ltp._lpList[0].uuid, + partId: 'Configuration' + }; + $mwtnSpectrum.getPacParts(spec).then(function(success){ + updateAirInterface(spec, success); + }, function(error){ + updateAirInterface(spec, error); + }); + }); + }, function(error){ + // do nothing + }); + }); + }, function(error){ + $scope.processing = false; + $scope.gridOptions.data = []; + }); + }; + + $scope.highlightFilteredHeader = $mwtnSpectrum.highlightFilteredHeader; + + var requiredNesConnectionStatusCellTemplate = [ + '
', + ' ', + ' {{grid.getCellValue(row, col)}}', + '
'].join(''); + + var actualTxFrequencyCellTemplate = [ + '
', + ' {{grid.getCellValue(row, col)}}', + '
'].join(''); + + var actualRxFrequencyCellTemplate = [ + '
', + ' {{grid.getCellValue(row, col)}}', + '
'].join(''); + + $scope.gridOptions = JSON.parse(JSON.stringify($mwtnSpectrum.gridOptions)); + $scope.gridOptions.columnDefs = [ + { field: 'id', type: 'number', displayName: 'Id', headerCellClass: $scope.highlightFilteredHeader, width : 50, cellClass: 'number', pinnedLeft : true , sort: { + direction: uiGridConstants.ASC, + ignoreSort: false, + priority: 0 + }}, + { field: 'name', type: 'string', displayName: 'Name', headerCellClass: $scope.highlightFilteredHeader, width : 140 }, + { field: 'connectionStatus', type: 'string', displayName: 'Connection status', headerCellClass: $scope.highlightFilteredHeader, width : 150, cellTemplate: requiredNesConnectionStatusCellTemplate }, + { field: 'airInterfaceName', type: 'string', displayName: 'Airinterface name', headerCellClass: $scope.highlightFilteredHeader, width : 140 }, + { field: 'radioSignalID', type: 'string', displayName: 'Radio signal id', headerCellClass: $scope.highlightFilteredHeader, width : 130 }, + { field: 'plannedTxFrequency', type: 'number', displayName: 'TX (plan)', headerCellClass: $scope.highlightFilteredHeader, width : 110, cellClass: 'number' }, + { field: 'actualTxFrequency', type: 'number', displayName: 'TX (actual)', headerCellClass: $scope.highlightFilteredHeader, width : 110, cellClass: 'number', cellTemplate: actualTxFrequencyCellTemplate}, + { field: 'plannedRxFrequency', type: 'number', displayName: 'RX (plan)', headerCellClass: $scope.highlightFilteredHeader, width : 110, cellClass: 'number' }, + { field: 'actualRxFrequency', type: 'number', displayName: 'RX (actual)', headerCellClass: $scope.highlightFilteredHeader, width : 110, cellClass: 'number', cellTemplate: actualRxFrequencyCellTemplate} + ]; + + $scope.refresh(); + + }]); + + +}); diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum.module.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum.module.js new file mode 100644 index 00000000..238f3ad3 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum.module.js @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2016 highstreet technologies GmbH and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +define(['angularAMD', + 'app/routingConfig', + 'app/core/core.services', + 'common/config/env.module', + 'app/mwtnCommons/mwtnCommons.module'], function(ng) { + var mwtnSpectrumApp = angular.module('app.mwtnSpectrum', ['ui.grid', 'ui.bootstrap', 'app.core', 'ui.router.state','config']); + + mwtnSpectrumApp.config(function($stateProvider, $compileProvider, $controllerProvider, $provide, NavHelperProvider, $translateProvider) { + mwtnSpectrumApp.register = { + controller : $controllerProvider.register, + directive : $compileProvider.directive, + factory : $provide.factory, + service : $provide.service + + }; + + + NavHelperProvider.addControllerUrl('app/mwtnSpectrum/mwtnSpectrum.controller'); + NavHelperProvider.addToMenu('mwtnSpectrum', { + "link" : "#/mwtnSpectrum", + "active" : "main.mwtnSpectrum", + "title" : "MWTN Spectrum", + "icon" : "fa fa-bar-chart", // Add navigation icon css class here + "page" : { + "title" : "MWTN Spectrum", + "description" : "mwtnSpectrum" + } + }); + + var access = routingConfig.accessLevels; + + $stateProvider.state('main.mwtnSpectrum', { + url: 'mwtnSpectrum', + access: access.admin, + views : { + 'content' : { + templateUrl: 'src/app/mwtnSpectrum/mwtnSpectrum.tpl.html', + controller: 'mwtnSpectrumCtrl' + } + } + }); + + }); + + return mwtnSpectrumApp; +}); diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum.services.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum.services.js new file mode 100644 index 00000000..df822a9b --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum.services.js @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2016 highstreet technologies GmbH and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +define(['app/mwtnSpectrum/mwtnSpectrum.module'],function(mwtnSpectrumApp) { + + + mwtnSpectrumApp.register.factory('$mwtnSpectrum', function($q, $mwtnCommons, $mwtnLog) { + var service = {}; + + service.gridOptions = $mwtnCommons.gridOptions; + service.highlightFilteredHeader = $mwtnCommons.highlightFilteredHeader; + service.getActualNetworkElement = $mwtnCommons.getActualNetworkElement; + service.getPacParts = $mwtnCommons.getPacParts; + + + service.execute = function() { + var request = { + method: 'POST', + url: 'operations/scheduler:next' + }; + var deferred = $q.defer(); + $mwtnCommons.genericRequest(request).then(function(success) { + deferred.resolve(success); + }, function(error) { + deferred.reject(error); + }); + return deferred.promise; + }; + + service.refresh = function() { + var deferred = $q.defer(); + $mwtnCommons.getRequiredNetworkElements(true).then(function(pNes){ + var neIds = pNes.map(function(pNe){ + pNe._source.connectionStatus = 'disconnected'; + return pNe._id; + }); + $mwtnCommons.getMountPoints(). then(function(mountpoints){ + var actualNodes = mountpoints.map(function(mountpoint){ + var pIndex = neIds.indexOf(mountpoint['node-id']); + if (pIndex > -1) { + pNes[pIndex]._source.connectionStatus = mountpoint['netconf-node-topology:connection-status']; + } + return { + id: mountpoint['node-id'], + connectionStatus: mountpoint['netconf-node-topology:connection-status'] + }; + }); + var airInterfaces = []; + pNes.map(function(hit){ + hit._source.MW_AirInterface_Pac.filter(function(airinterface){ + return airinterface.airInterfaceConfiguration; + }).map(function(airinterface){ + airInterfaces.push({ + id: $mwtnCommons.getNodeIntIdFromNodeId(hit._source.nodeId), + name: hit._source.nodeId, + connectionStatus: hit._source.connectionStatus, + airInterfaceName: airinterface.airInterfaceConfiguration.airInterfaceName, + radioSignalID: airinterface.airInterfaceConfiguration.radioSignalID, + plannedTxFrequency: airinterface.airInterfaceConfiguration.txFrequency, + actualTxFrequency: '?', + plannedRxFrequency: airinterface.airInterfaceConfiguration.rxFrequency, + actualRxFrequency: '?' + }); + }); + }); + + airInterfaces.sort(function(a, b){ + if(a.radioSignalID < b.radioSignalID) return -1; + if(a.radioSignalID > b.radioSignalID) return 1; + return 0; + }); + deferred.resolve({airInterfaces: airInterfaces, actualNodes: actualNodes}); + }, function(error){ + deferred.reject([]); + }); + + }, function(error){ + deferred.reject([]); + }); + return deferred.promise; + }; + + return service; + }); +}); diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum.tpl.html b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum.tpl.html new file mode 100644 index 00000000..ae9543dd --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/mwtnSpectrum-module/src/main/resources/mwtnSpectrum/mwtnSpectrum.tpl.html @@ -0,0 +1,64 @@ + +
+
+
+ {{'MWTN_INTERFERENCE_ALARM_STATUS' | translate}}: + + {{interference.alarmStatus}} +
+
+
+
+
+ +
+
+
+ +
+
+ +
+
+
+
+
All frequencies in kHz
+
+
+
+
+ +
+
+
+ ONAP SDN-R | ONF Wireless for @distversion@ - Build: @buildtime@ +
\ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/pom.xml new file mode 100644 index 00000000..06cc878a --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnSpectrum/pom.xml @@ -0,0 +1,24 @@ + + + 4.0.0 + + mwtn + com.highstreet.technologies.odl.dlux + 0.5.1-SNAPSHOT + .. + + pom + cn.com.zte.odl.dlux + mwtnSpectrum + ${prefix} ${project.artifactId} + + + 3.0 + + + + mwtnSpectrum-module + mwtnSpectrum-bundle + + \ No newline at end of file -- cgit 1.2.3-korg