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/mwtnMediator/mwtnMediator-bundle/pom.xml | 89 +++ .../resources/OSGI-INF/blueprint/blueprint.xml | 19 + .../ux/mwtnMediator/mwtnMediator-module/pom.xml | 14 + .../main/resources/mwtnMediator/class.mediator.js | 569 +++++++++++++++++++ .../resources/mwtnMediator/images/mwtnMediator.png | Bin 0 -> 2923 bytes .../resources/mwtnMediator/mwtnMediator-custom.css | 69 +++ .../mwtnMediator/mwtnMediator.controller.js | 613 +++++++++++++++++++++ .../resources/mwtnMediator/mwtnMediator.module.js | 54 ++ .../mwtnMediator/mwtnMediator.services.js | 113 ++++ .../mwtnMediator/templates/frame.tpl.html | 49 ++ .../templates/mediatorCreateNew.tpl.html | 99 ++++ .../templates/mediatorDetails.tpl.html | 96 ++++ .../templates/mediatorServerConfigCtrl.tpl.html | 41 ++ .../code-Carbon-SR1/ux/mwtnMediator/pom.xml | 24 + 14 files changed, 1849 insertions(+) create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-bundle/pom.xml create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/pom.xml create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/class.mediator.js create mode 100755 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/images/mwtnMediator.png create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/mwtnMediator-custom.css create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/mwtnMediator.controller.js create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/mwtnMediator.module.js create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/mwtnMediator.services.js create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/templates/frame.tpl.html create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/templates/mediatorCreateNew.tpl.html create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/templates/mediatorDetails.tpl.html create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/templates/mediatorServerConfigCtrl.tpl.html create mode 100644 sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/pom.xml (limited to 'sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator') diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-bundle/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-bundle/pom.xml new file mode 100644 index 00000000..0d668ac1 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-bundle/pom.xml @@ -0,0 +1,89 @@ + + + 4.0.0 + + mwtnMediator + com.highstreet.technologies.odl.dlux + 0.5.1-SNAPSHOT + + mwtnMediator-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} + + + com.highstreet.technologies.odl.dlux + mwtnMediator-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 + com.highstreet.technologies.odl.dlux + mwtnMediator-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/mwtnMediator/mwtnMediator-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml new file mode 100644 index 00000000..100f6e7c --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + src/app/mwtnMediator/mwtnMediator-custom.css + + + + \ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/pom.xml new file mode 100644 index 00000000..9269bf11 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/pom.xml @@ -0,0 +1,14 @@ + + + 4.0.0 + + mwtnMediator + com.highstreet.technologies.odl.dlux + 0.5.1-SNAPSHOT + + mwtnMediator-module + ${prefix} ${project.artifactId} + jar + \ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/class.mediator.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/class.mediator.js new file mode 100644 index 00000000..b87a465b --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/class.mediator.js @@ -0,0 +1,569 @@ +function MediatorConfig(obj) { + if (obj !== undefined) { + this.Name = obj.Name; + this.DeviceType = obj.DeviceType; + this.DeviceIp = obj.DeviceIp; + this.DevicePort = 'DevicePort' in obj?obj.DevicePort:161; + this.TrapsPort = obj.TrapPort; + this.IsNetConfConnected = obj.IsNCConnected; + this.IsNetworkElementConnected = obj.IsNeConnected; + this.NeModel = obj.NeXMLFile; + this.NetconfPort = obj.NcPort; + this.PID = obj.pid; + this.IsLocked = obj.islocked; + this.Autorun = obj.autorun; + this.FirewallRuleActive = obj.fwactive; + this.OpenDaylightConfigs = obj.ODLConfig; + } else { + this.Name =""; + this.DeviceType = -1; + this.DeviceIp = ""; + this.DevicePort = 161; + this.TrapsPort = 0; + this.IsNetConfConnected = false; + this.IsNetworkElementConnected = false; + this.NeModel = ""; + this.NetconfPort = 0; + this.PID =0; + this.IsLocked = false; + this.Autorun = false; + this.FirewallRuleActive = false; + this.OpenDaylightConfigs=[]; + } + this.DeviceTypeString = this.getDeviceTypeString(); + this.ConnectionStatus = {Netconf:this.IsNetConfConnected,NetworkElement:this.IsNetworkElementConnected} + +} +MediatorConfig.prototype.refreshData = function(obj) +{ + if(obj!==undefined) + { + //this.Name = obj.Name; + this.DeviceType = obj.DeviceType; + this.DeviceIp = obj.DeviceIp; + this.DevicePort = 'DevicePort' in obj?obj.DevicePort:161; + this.TrapsPort = obj.TrapPort; + this.IsNetConfConnected = obj.IsNCConnected; + this.IsNetworkElementConnected = obj.IsNeConnected; + this.NeModel = obj.NeXMLFile; + this.NetconfPort = obj.NcPort; + this.PID = obj.pid; + this.IsLocked = obj.islocked; + this.Autorun = false; + this.FirewallRuleActive = obj.fwactive; + this.OpenDaylightConfigs = obj.ODLConfig; + } + this.DeviceTypeString = this.getDeviceTypeString(); + this.ConnectionStatus = {Netconf:this.IsNetConfConnected,NetworkElement:this.IsNetworkElementConnected} + +} +MediatorConfig.prototype.getDeviceTypeString = function() +{ + var i; + for(i=0;i 0; +} +MediatorConfig.prototype.TestParams = function() { + if(this.Name===undefined || this.Name.length<=0) + throw "Name is not given"; + // Name without spaces + var inValidName = /\s/; + if(inValidName.test(this.Name)) + throw "Name cannot have whitespaces"; + // DeviceType: int from 0 to ... + if(this.DeviceType<0 || this.DeviceType>MediatorConfig.DeviceTypes[MediatorConfig.DeviceTypes.length-1].Value) + throw "DeviceType is not set"; + // DeviceIp: valid IP-Address + var validIpTest =/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$|^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/; + if(!validIpTest.test(this.DeviceIp)) + throw "IP-Address is not valid"; + // TrapsPort: valid Port + if(this.TrapsPort<=0 || this.TrapsPort>65535) + throw "TrapsPort is not valid"; + // NeModel: valid XMLFilename + if(this.NeModel===undefined || this.NeModel.length<=0) + throw "NE XML Filename is not valid"; + // NetconfPort: valid Port + if(this.NetconfPort<=0 || this.NetconfPort>65535) + throw "Netconf Port is not valid"; + + return true; +} +function PortRange(a) +{ + if(a!==undefined) + { + this.Min=a[0]; + this.Max=a[1]; + } + else + { + this.Min=0; + this.Max=0; + } +} +function JavaMemParam(str) +{ + if(str!==undefined) + { + + + } +} +function ServerConfig(obj){ + if (obj !== undefined) { + this.HomeDir = obj.home; + this.Host = obj.host; + this.Port = obj.port; + this.NetconfRange=new PortRange(obj.ncrange); + this.SnmpRange = new PortRange(obj.snmprange); + this.JmxRange = new PortRange(obj.jmxrange); + this.LogLevel = obj.loglevel; + this.LogFile = obj.logfile; + this.MediatorLogLevel = obj.mediator-loglevel; + this.MediatorDevicePingTimeout=obj.mediator-devicepingtimeout; + this.MediatorSnmpLatency = obj.mediator-snmplatency; + this.MediatorMemory = new JavaMemParam(obj.mediator-memory); + } + else + { + this.HomeDir = ""; + this.Host = ""; + this.Port = 0; + this.NetconfRange=new PortRange(); + this.SnmpRange = new PortRange(); + this.JmxRange = new PortRange(); + this.LogLevel = ""; + this.LogFile = ""; + this.MediatorLogLevel = ""; + this.MediatorDevicePingTimeout=0; + this.MediatorSnmpLatency = 0; + this.MediatorMemory = new JavaMemParam(); + } +} +function MediatorServer(url) { + this._root = url; + // if(this._root.endsWith("/")) + this._root = this._root + "/"; + this._mediatorConfigs = []; + this._neXMLFilenames = undefined; + this.defaultODLConfig = {Server:"sendateodl5.fritz.box",Port:8181,User:"admin",Password:"admin"}; + +} +MediatorServer.prototype.getConfigs = function(){return this._mediatorConfigs;} + +MediatorServer.prototype.SetDefaultODLConfig = function(cfg) +{ + this.defaultODLConfig = cfg; +} +MediatorServer.prototype.GetDefaultODLConfig = function() +{ + return this.defaultODLConfig; +} +MediatorServer.prototype.refreshConfig = function(configs,cb) +{ + var changed = []; + if(this._mediatorConfigs===undefined) + { + if(cb!==undefined) + cb(changed); + return; + } + if(configs!==undefined && configs.length>0) + { + var i,j; + for(i=0;i deviceType: deviceip: trapsPort: + * nexml: ncport: cb: callback-function + */ +MediatorServer.prototype.CreateMediator = function(name,devicetype,deviceip,deviceport,trapsPort,nexml,ncport, cb, cbError) { + + var obj; + try + { + obj=new MediatorConfig({ + Name:name, + DeviceType:devicetype, + DeviceIp:deviceip, + DevicePort:deviceport, + TrapPort:trapsPort, + NeXMLFile:nexml, + NcPort:ncport + }); + obj.TestParams(); + } + catch(e) + { + if(cbError!==undefined) + cbError(e); + } + this.post("create", { + config : JSON.stringify({ + Name : obj.Name, + DeviceType : obj.DeviceType, + DeviceIp : obj.DeviceIp, + DevicePort : obj.DevicePort, + TrapPort : obj.TrapsPort, + NeXMLFile : obj.NeModel, + NcPort : obj.NetconfPort, + ODLConfig:[this.defaultODLConfig] + }) + }, function(response) { + if(response.code==1) + { + if(cb!==undefined) + cb(true) + } + else + { + if(cbError!==undefined) + cbError(response.data); + } + },function(err){ + if(cbError!==undefined) + cbError(err); + }); +} +MediatorServer.prototype.DeleteMediator = function(name, cb, cbError) +{ + var _self = this; + this.post('delete', {name:name}, function(response){ + if(response.code==1) + { + if(cb!==undefined) + cb(true); + } + else + { + if(cb!==undefined) + cb(response.data); + } + + },function(err){ + if(cbError!==undefined) + cbError(err); + }); +} +MediatorServer.prototype.ClearLock = function(name, cb, cbError) { + var _self = this; + this.post("clearlock", { + name : name + }, function(response) { + if (response.code == 1) { + if (cb !== undefined) + cb(true); + } else { + _self.log(response.data); + if (cbError !== undefined) + cbError(response.data); + } + },function(err){ + if(cbError!==undefined) + cbError(err); + }); +} +/* + * do post request + * + * @params task + */ +MediatorServer.prototype.post = function(task, data, callback,callbackError) { + var _self = this; + if (typeof (data) === "function") + { + callbackError = callback; + callback = data; + } + var cb=function(r) { + if (callback !== undefined) { + try { + if (typeof (r) === "string") + r = JSON.parse(r); + callback(r); + } catch (e) { + _self.log(e); + if(callbackError!==undefined) + callbackError(e); + } + } + }; + + if(this.usejQueryv3) + { + $.post({ + url : this._root + "api/?task=" + task, + data : data, + success : cb + }); + } + else //jquery 1.x + { + if(typeof(data)=== "function") + { + $.post(this._root + "api/?task=" + task,cb).done(function() { + _self.log( "second success" ); + }) + .fail(function(e) { + _self.log( "error" +e); + if(callbackError!==undefined) + callbackError(e); + }) + .always(function() { + _self.log( "finished" ); + }); + } + else + { + $.post(this._root + "api/?task=" + task,data,cb).done(function() { + _self.log( "second success" ); + }) + .fail(function(e) { + _self.log( "error" +e); + if(callbackError!==undefined) + callbackError(e); + }) + .always(function() { + _self.log( "finished" ); + }); + } + } +} + +MediatorServer.prototype._error = function(message) { + console.log(message); +} +MediatorServer.prototype.log = function(message) { +// console.log(message); +} \ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/images/mwtnMediator.png b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/images/mwtnMediator.png new file mode 100755 index 00000000..f7c2a6c0 Binary files /dev/null and b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/images/mwtnMediator.png differ diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/mwtnMediator-custom.css b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/mwtnMediator-custom.css new file mode 100644 index 00000000..15a684f1 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/mwtnMediator-custom.css @@ -0,0 +1,69 @@ +/** + * Add your application related css here + */ +.mwtnMediatorGrid { + height: 600px; + background-color: white; +} + +.mwtnMediatorGrid span { + color: #393939; +} +span.mwtnMediatorStatusRunning{ + color: darkgreen; +} +span.mwtnMediatorStatusNotRunning{ + color: darkred; +} +span.mwtnMediatorCStatusIcon{ + font-size:2rem; + vertical-align:middle; +} +span.mwtnMediatorOStatusIcon{ + font-size:2.5rem; + vertical-align:middle; +} + +#mediatorserver-list{ + list-style-type:none; + padding:0; + margin:0; + display:block; + +} +#mediatorserver-list > li +{ + padding:0.3rem; + display:block; + position:relative; +} +#mediatorserver-list > li:nth-child(even) +{ + background:#FFF; +} +#mediatorserver-list > li:nth-child(odd) +{ + background:#EEE; +} +#mediatorserver-list > li.selected +{ + background:#EBFF7F; +} +#mediatorserver-list > li > span.desc +{ + display:block; +} +#mediatorserver-list > li > div.icons +{ + position:absolute; + right:0;top:0;bottom:0;width:auto; +} +#mediatorserver-list > li > div.icons > span.fa +{ + position:relative;margin-right:.6rem;margin-top:.3rem;font-size:2rem;cursor:pointer; +} +#mediatorserver-list > li > div.icons > span.fa:hover +{ + font-weight:bold; +} +.acc-mediatorlog > .panel-group .panel-body{padding:0;} \ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/mwtnMediator.controller.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/mwtnMediator.controller.js new file mode 100644 index 00000000..5f35ba66 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/mwtnMediator.controller.js @@ -0,0 +1,613 @@ +/* + * @copyright 2017 highstreet technologies GmbH and others. All rights reserved. + * + * @license + * 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/mwtnMediator/mwtnMediator.module', + 'app/mwtnMediator/mwtnMediator.services'], + function(mwtnMediatorApp) { + + var mediatorServer; + var autoRefresh; + mwtnMediatorApp.register.controller('mwtnMediatorCtrl', ['$scope', '$rootScope','$uibModal', '$mwtnLog', '$mwtnMediator', + function($scope, $rootScope, $uibModal, $mwtnLog, $mwtnMediator) { + autoRefresh=false; + var COMPONENT = 'mwtnMediatorCtrl'; + $mwtnLog.info({component: COMPONENT, message: 'mwtnMediatorCtrl started!'}); + $rootScope.section_logo = 'src/app/mwtnMediator/images/mwtnMediator.png'; // Add your topbar logo location here such as 'assets/images/logo_topology.gif' + $scope.highlightFilteredHeader = $mwtnMediator.highlightFilteredHeader; + + + + $scope.gridOptions = JSON.parse(JSON.stringify($mwtnMediator.gridOptions)); + $scope.gridOptions.rowHeight = 44; + + var statusCellTemplate = [ + '
', + 'running ({{grid.getCellValue(row, col)}})', + 'stopped', + '
' + ].join(''); + var connectionStatusCellTemplate = [ + '
', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '
'].join(''); + + var requiredNesActionCellTemplate = [ + '', + '', + '', + '', + '' ].join(' '); + + $scope.gridOptions.columnDefs = [ + { field: 'Name', type: 'string', displayName: 'Mediator', headerCellClass: $scope.highlightFilteredHeader, width : 200 }, + { field: 'PID', type: 'int', name: 'Status', cellTemplate:statusCellTemplate, headerCellClass: $scope.highlightFilteredHeader, width : 120 }, + { field: 'DeviceIp', type: 'string', displayName: 'IP address', headerCellClass: $scope.highlightFilteredHeader, width : 120 }, + { + field: 'ConnectionStatus', + type: 'object', + name: 'Connection', + enableSorting : false, + enableFiltering: false, + cellTemplate:connectionStatusCellTemplate, + width : 150 + }, + { name : 'actions', + enableSorting : false, + enableFiltering: false, + cellTemplate: requiredNesActionCellTemplate, + width : 280, + pinnedRight : true + } + ]; + + + + var refreshMediators = function() + { + var i=$('#btn_refreshMediators > i'); + i.addClass("fa-spin"); + console.log("refresh mediators list"); + if(mediatorServer!==undefined) + { + mediatorServer.LoadConfigs(function(configs){ + $scope.data = configs; + $scope.$apply(); + i.removeClass("fa-spin"); + }, + function(err){ + $scope.data = []; + $scope.$apply(); + i.removeClass("fa-spin"); + console.log("cannot reach mediatorserver:"+err); + }); + } + } + var refreshMediator = function(name) + { + console.log("refresh mediators list"); + if(mediatorServer!==undefined) + { + mediatorServer.ReloadConfig(name,function(changes){ + $scope.$apply(); + }, + function(err){ + console.log("cannot reach mediatorserver:"+err); + }); + } + } + var onServerSelectedChanged = function(item){ + var serverURL; + if(item!==undefined) + { + if(typeof(item)==='object') + serverURL=item.url; + else if(typeof(item)==='string') + { + try + { + $mwtnMediator.getServerData(parseInt(item)).then(function(data){ + if(data!==undefined) + { + serverURL=data.url; + mediatorServer = new MediatorServer(serverURL); + $mwtnLog.info({component: COMPONENT, message: 'loading server configs for '+serverURL}); + refreshMediators(); + } + else + console.log("search for server data failed. should never happened") + }); + } + catch(e) + {"error loading server:n"+console.log(e);} + } + } + } + + /* GUI Events =======================================*/ + $scope.onAutoRefreshChanged = function() + { + autoRefresh = $('#ckbx_mediatorAutorefresh').prop('checked'); + console.log("set autorefresh to "+autoRefresh); + } + $scope.editMediatorServers = function() + { + var modalInstance = $uibModal.open({ + animation:true, + ariaLabelledBy: 'modal-title', + ariaDescribedBy: 'modal-body', + templateUrl: 'src/app/mwtnMediator/templates/mediatorServerConfigCtrl.tpl.html', + controller: 'MediatorServerConfigCtrl', + size: 'lg', + resolve: { + currentElement: function () { + return $scope.currentElement; + } + } + + }); + } + $scope.createNewMediator = function() + { + if(mediatorServer!==undefined) + { + console.log("create new mediator"); + var modalInstance = $uibModal.open({ + animation:true, + ariaLabelledBy: 'modal-title', + ariaDescribedBy: 'modal-body', + templateUrl: 'src/app/mwtnMediator/templates/mediatorCreateNew.tpl.html', + controller: 'MediatorNewCtrl', + size: 'lg', + resolve: { + currentElement: function () { + return $scope.currentElement; + } + } + + }); + } + else + { + console.log("no mediatorserver selected"); + } + } + $scope.refreshMediators = refreshMediators; + + $scope.startMediator = function(el) + { + var btn=$(this); + if(btn!==undefined) + btn.prop('disabled',true); + console.log("starting mediator "+el.Name+" ..."); + if(mediatorServer!==undefined) + { + mediatorServer.StartMediator(el.Name,function(res){ + refreshMediator(el.Name); + //console.log(res); + },function(err){ + if(btn!==undefined) + btn.prop('disabled',false); + // console.log("error starting mediator"); + }); + } + } + $scope.stopMediator = function(el) + { + var btn=$(this); + if(btn!==undefined) + btn.prop('disabled',true); + console.log("stopping mediator "+el.Name+" ..."); + if(mediatorServer!==undefined) + { + mediatorServer.StopMediator(el.Name,function(res){ + refreshMediator(el.Name); + //console.log(res); + },function(err){ + if(btn!==undefined) + btn.prop('disabled',false); + // console.log("error stopping mediator"); + }); + } + } + $scope.showDetails = function(el) + { + $scope.currentElement = el; + var modalInstance = $uibModal.open({ + animation:true, + ariaLabelledBy: 'modal-title', + ariaDescribedBy: 'modal-body', + templateUrl: 'src/app/mwtnMediator/templates/mediatorDetails.tpl.html', + controller: 'MediatorDetailsCtrl', + size: 'lg', + resolve: { + currentElement: function () { + return $scope.currentElement; + } + } + + }); + } + $scope.onchangeserver = function(){ + autoRefresh=false; + $('#ckbx_mediatorAutorefresh').prop('checked',autoRefresh); + onServerSelectedChanged($scope.medserver); + } + /* End of GUI Events===========================*/ + + + $scope.gridOptions.data = 'data'; + $scope.options={ + + } + + //load mediator servers from database + $mwtnMediator.getServerData().then(function(data){ + //set as option source for GUI selector + $scope.options.medservers=data; + //autoselect first item + if(data!==undefined && data.length>0) + { + onServerSelectedChanged(data[0]); + //$scope.medserver= + } + }); + var timer = setInterval(function(){ + if(autoRefresh && mediatorServer!==undefined) + { + refreshMediators(); + } + + },30000); + + }]); + + + /************************************************************************************ + * medaitorDetails Controller definition + ************************************************************************************/ + mwtnMediatorApp.register.controller('MediatorDetailsCtrl', ['$scope', '$uibModalInstance', '$uibModal', '$mwtnConnect', '$mwtnLog', '$mwtnMediator','currentElement', + function ($scope, $uibModalInstance, $uibModal, $mwtnConnect, $mwtnLog, $mwtnMediator, currentElement) { + + var COMPONENT = 'MediatorDetailsCtrl'; + var element = currentElement; + var error = function(msg) + { + $scope.statusmessage=''; + $scope.errormessage=msg; + $scope.$apply(); + } + var status = function(msg) + { + $scope.statusmessage=msg; + $scope.errormessage=''; + $scope.$apply(); + } + var reloadDelayed = function() + { + setTimeout(function(){ + mediatorServer.ReloadConfig(element.Name,function(res){ + $scope.$apply(); + },function(err){error(err);}); + },1000); + } + var refreshLogs = function() + { + mediatorServer.LoadLogs(currentElement.Name,function(res){ + $scope.logdata=res; + $scope.$apply(); + + },function(err){ + $scope.logdata=[]; + $scope.$apply(); + }); + } + $scope.statusmessage=''; + $scope.errormessage=''; + $scope.logGridOptions = JSON.parse(JSON.stringify($mwtnMediator.logGridOptions)); + //$scope.logGridOptions.rowHeight = 44; + $scope.logGridOptions.columnDefs = [ + { field: 'ts', type: 'string', displayName: 'Timestamp', headerCellClass: $scope.highlightFilteredHeader, width : 180 }, + { field: 'lvl', type: 'String', displayName: 'LogLevel', headerCellClass: $scope.highlightFilteredHeader, width : 90 }, + { field: 'src', type: 'string', displayName: 'Source', headerCellClass: $scope.highlightFilteredHeader, width : 120 }, + { field: 'msg', type: 'string', displayName: 'Message', headerCellClass: $scope.highlightFilteredHeader, width : 300 }, + + ]; + $scope.logGridOptions.data = 'logdata'; + // $mwtnLog.info({component: COMPONENT, message: 'MediatorDetailsCtrl started!'}); + $scope.data = { + el:currentElement + }; + $scope.ok = function () { + $uibModalInstance.close({el: currentElement}); + }; + $scope.start = function(){ + var btn=$(this); + if(btn!==undefined) + btn.prop('disabled', true); + mediatorServer.StartMediator(element.Name,function(res){ + if(btn!==undefined) + btn.prop('disabled', true); + status(res); + reloadDelayed(); + },function(err){ + if(btn!==undefined) + btn.prop('disabled', false); + error(err); + + }); + }; + $scope.stop = function(){ + var btn=$(this); + if(btn!==undefined) + btn.prop('disabled', true); + mediatorServer.StopMediator(element.Name,function(res){ + if(btn!==undefined) + btn.prop('disabled', true); + status(res); + reloadDelayed(); + },function(err){ + if(btn!==undefined) + btn.prop('disabled', false); + error(err); + + }); + }; + $scope.delete = function(){ + var btn=$(this); + if(btn!==undefined) + btn.prop('disabled', true); + if(confirm("Do you really want to delete this mediator?")) + { + mediatorServer.DeleteMediator(element.Name,function(res){ + status(res); + },function(err){ + if(btn!==undefined) + btn.prop('disabled', false); + error(err); + }); + } + else + { + if(btn!==undefined) + btn.prop('disabled', false); + } + }; + $scope.unlock = function(){ + var btn=$(this); + if(btn!==undefined) + btn.prop('disabled', true); + mediatorServer.ClearLock(element.Name,function(res){ + status(res); + reloadDelayed(); + },function(err){ + if(btn!==undefined) + btn.prop('disabled', false); + error(err); + }); + } + refreshLogs(); + } + ]); + /************************************************************************************ + * medaitorCreateNew Controller definition + ************************************************************************************/ + mwtnMediatorApp.register.controller('MediatorNewCtrl', ['$scope', '$uibModalInstance', '$uibModal', '$mwtnConnect', '$mwtnLog', + function ($scope, $uibModalInstance, $uibModal, $mwtnConnect, $mwtnLog) { + + var COMPONENT = 'MediatorNewCtrl'; + // $mwtnLog.info({component: COMPONENT, message: COMPONENT + ' started!'}); + var status = function(msg) + { + $scope.statusmessage=msg; + $scope.errormessage=""; + $scope.$apply(); + } + var error = function(msg) + { + $scope.statusmessage=""; + $scope.errormessage=msg; + $scope.$apply(); + } + $scope.options={ + nexmlmodel:[], + nedevicetype:MediatorConfig.DeviceTypes + }; + $scope.mediator={name:'',devicetype:0,remoteip:'',remoteport:161,trapsport:0,ncport:0,nexml:''}; + $scope.odlconfig=mediatorServer.GetDefaultODLConfig(); + $scope.odlsavebtn={enabled:false}; + + //=======load data + mediatorServer.LoadNetworkElementXMLFiles(function(xmlNames){ + $scope.options.nexmlmodel=xmlNames; + $scope.$apply(); + },function(err){ + error(err); + }); + mediatorServer.LoadAvailableNCPorts(function(portValues){ + if(portValues!==undefined && portValues.length>0) + { + $scope.mediator.ncport = portValues[0]; + } + },function(err){error(err);}); + mediatorServer.LoadAvailableSnmpPorts(function(portValues){ + if(portValues!==undefined && portValues.length>0) + { + $scope.mediator.trapsport = portValues[0]; + } + },function(err){error(err);}); + + + $scope.errormessage=''; + $scope.statusmessage=''; + + //====handle events======== + $scope.odledit = function(){ + $scope.odlsavebtn.enabled=true; + console.log("enable odl configs") + $scope.$apply(); + } + $scope.odlsave = function(){ + mediatorServer.SetDefaultODLConfig($scope.odlconfig); + } + $scope.ok = function () { + var btn=$(this); + if(btn!==undefined) + btn.prop('disabled', true); + mediatorServer.CreateMediator($scope.mediator.name, + $scope.mediator.devicetype, + $scope.mediator.remoteip, + $scope.mediator.remoteport, + $scope.mediator.trapsport, + $scope.mediator.nexml, + $scope.mediator.ncport, + function(e){ + if(e==true) + { + status("mediator created"); + setTimeout(function(){$uibModalInstance.close();},2000); + } + else + { + if(btn!==undefined) + btn.prop('disabled', false); + error(e); + + } + },function(err){ + if(btn!==undefined) + btn.prop('disabled', false); + error(err); + + }); + + }; + $scope.cancel = function(){ + $uibModalInstance.close(); + }; + + } + ]); + /************************************************************************************ + * medaitorServerConfig Controller definition + ************************************************************************************/ + mwtnMediatorApp.register.controller('MediatorServerConfigCtrl', ['$scope', '$uibModalInstance', '$uibModal', '$mwtnConnect', '$mwtnLog', '$mwtnMediator', + function ($scope, $uibModalInstance, $uibModal, $mwtnConnect, $mwtnLog, $mwtnMediator) { + + var COMPONENT = 'MediatorServerConfigCtrl'; + // $mwtnLog.info({component: COMPONENT, message: COMPONENT + ' started!'}); + var onServerRowSelect = function(obj,id) + { + if(obj!=undefined) + $(obj).addClass("selected"); + var tbxId=$('#tbx_mediatorserver-id'); + var tbxName=$('#tbx_mediatorserver-name'); + var tbxHost = $('#tbx_mediatorserver-host'); + var tbxVersion = $('#tbx_mediatorserver-version'); + var tbxVersionMed = $('#tbx_mediatorserver-medversion'); + tbxId.prop('disabled',true); + tbxName.prop('disabled',true); + tbxHost.prop('disabled',true); + tbxVersion.prop('disabled',true); + tbxVersionMed.prop('disabled',true); + + $mwtnMediator.getServerData(id).then(function(data){ + if(data!==undefined) + { + tbxId.val(data.id); + tbxName.val(data.name); + tbxHost.val(data.url); + tbxVersion.val(""); + tbxVersionMed.val(""); + var s=new MediatorServer(data.url); + s.LoadVersion(function(d){ + tbxVersion.val(d.server); + tbxVersionMed.val(d.mediator); + + },function(err){ + + }); + } + }); + } + var create = function(host,name,port) + { + var url=host+":"+port; + $mwtnMediator.addServer(name,url).then(function(data){ + reload(); + }); + } + var onEdit = function(id) + { + var tbxName=$('#tbx_mediatorserver-name'); + var tbxHost = $('#tbx_mediatorserver-host'); + tbxName.prop('disabled',false); + tbxHost.prop('disabled',false); + + } + var onDelete = function(id) + { + if(confirm("Do you really want to delete?")) + { + // console.log("delete server with id="+id); + $mwtnMediator.removeServer(id).then(function(){reload();}); + } + } + var reload = function(){ + $mwtnMediator.getServerData().then(function(data){ + + //fill table + var list=$('#mediatorserver-list'); + list.html(''); + if(data!==undefined && data.length>0) + { + for(var i=0;i'+data[i].name+''); + var li=$('
  • '); + var iconsbox=$('
    '); + var edit=$(''); + var del=$(''); + iconsbox.html([edit,del]); + li.html([desc,iconsbox]); + if(i==0) + li.addClass("selected"); + //register click handlers + desc.click(function(){ + $('#mediatorserver-list > li').removeClass('selected'); + onServerRowSelect(this.parentNode,$(this).prop('id').substr(5)); + }); + edit.click(function(){ + onEdit($(this).prop('id').substr(10)); + }); + del.click(function(){ + onDelete($(this).prop('id').substr(9)); + }); + list.append(li); + } + onServerRowSelect(undefined,data[0].id); + } + }); + } + reload(); + $scope.close = function(){ + $uibModalInstance.close(); + }; + }]); + +}); diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/mwtnMediator.module.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/mwtnMediator.module.js new file mode 100644 index 00000000..19c9142d --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/mwtnMediator.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', + 'app/mwtnCommons/bower_components/angular-clipboard/angular-clipboard', + 'src/app/mwtnMediator/class.mediator.js'], function(ng) { + var mwtnMediatorApp = angular.module('app.mwtnMediator', ['ui.grid', 'ui.bootstrap', 'app.core', 'ui.router.state', 'config', 'angular-clipboard']); + + mwtnMediatorApp.config(function($stateProvider, $compileProvider, $controllerProvider, $provide, NavHelperProvider, $translateProvider) { + mwtnMediatorApp.register = { + controller : $controllerProvider.register, + directive : $compileProvider.directive, + factory : $provide.factory, + service : $provide.service + }; + + NavHelperProvider.addControllerUrl('app/mwtnMediator/mwtnMediator.controller'); + NavHelperProvider.addToMenu('mwtnMediator', { + "link" : "#/pnfMediator", + "active" : "main.mwtnMediator", + "title" : "pnf Mediator", + "icon" : "fa fa-globe", // Add navigation icon css class here + "page" : { + "title" : "pnf Mediator", + "description" : "mwtnMediator" + } + }); + + var access = routingConfig.accessLevels; + + $stateProvider.state('main.mwtnMediator', { + url: 'pnfMediator', + access: access.admin, + views : { + content : { + templateUrl: 'src/app/mwtnMediator/templates/frame.tpl.html', + controller: 'mwtnMediatorCtrl' + } + } + }); + + }); + + return mwtnMediatorApp; +}); diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/mwtnMediator.services.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/mwtnMediator.services.js new file mode 100644 index 00000000..363b79a8 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/mwtnMediator.services.js @@ -0,0 +1,113 @@ +/* + * @copyright 2017 highstreet technologies 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/mwtnCommons/mwtnCommons.module', 'app/mwtnMediator/mwtnMediator.module'],function(mwtnMediatorApp) { + + mwtnMediatorApp.register.factory('$mwtnMediator', function($http, $q, $mwtnCommons, $mwtnDatabase, $mwtnLog) { + + var COMPONENT = '$mwtnMediator'; + $mwtnLog.info({component: COMPONENT, message: '$mwtnMediator started!'}); + + var service = {}; + + // import of mwtnCommons + service.gridOptions = $mwtnCommons.gridOptions; + service.highlightFilteredHeader = $mwtnCommons.highlightFilteredHeader; + + service.getAllData = $mwtnDatabase.getAllData; + service.getFilteredSortedData = $mwtnDatabase.getFilteredSortedData; + service.logGridOptions = $mwtnCommons.gridOptions; + + // service specific functions + service.getServerData = function(id){ + var deferred = $q.defer(); + var functionid="mwtn"; + var type="mediator-server"; + var sort = [ { 'id' : {order : 'asc'}}]; + + if(id===undefined)//get all + $mwtnDatabase.getAllData(functionid,type,0,99,sort,null).then(function(success){ + var list=[]; + success.data.hits.hits.map(function(entry){ + var row = { + id: entry._source.id, + url: entry._source.url, + name: entry._source.name + }; + list.push(row); + }); + deferred.resolve(list); + }, function(error){ + $mwtnLog.error({component: 'private getAlldata', message: JSON.stringify(error.data)}); + deferred.reject(error); + }); + else //get by id + $mwtnDatabase.getFilteredSortedData(functionid,type,0,99,sort,{'match':{'id':id}}).then(function(success){ + var list=[]; + success.data.hits.hits.map(function(entry){ + var row = { + id: entry._source.id, + url: entry._source.url, + name: entry._source.name + }; + list.push(row); + }); + deferred.resolve(list.length>0?list[0]:undefined); + }, function(error){ + $mwtnLog.error({component: 'private getFilteredSortedData', message: JSON.stringify(error.data)}); + deferred.reject(error); + }); + + return deferred.promise; + + + }; + /* + service.getMaxId = function(){ + var deferred = $q.defer(); + $mwtnDatabase.getAllData(functionid,type,0,99,sort,{'match'}).then(function(success){ + + return deferred.promise; + }; + */ + service.addServer = function(name,url){ + var deferred = $q.defer(); + var functionId="mwtn"; + var docType="mediator-server"; + //check params + var data={name:name,url:url}; + //check if contains + //insert into db + $mwtnDatabase.createSingleDocument(functionId, docType, id, data).then(function(success){ + + + deferred.resolve(data); + },function(error){ + $mwtnLog.error({component: 'private addServer', message: JSON.stringify(error.data)}); + deferred.reject(error); + }); + return deferred.promise; + }; + service.removeServer = function(id){ + var deferred = $q.defer(); + var functionId="mwtn"; + var docType="mediator-server"; + + $mwtnDatabase.deleteSingleDocument(functionId, docType, id).then(function(success){ + deferred.resolve(data); + },function(error){ + $mwtnLog.error({component: 'private removeServer', message: JSON.stringify(error.data)}); + deferred.reject(error); + }); + return deferred.promise; + }; + + return service; + }); + +}); diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/templates/frame.tpl.html b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/templates/frame.tpl.html new file mode 100644 index 00000000..debf0c21 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/templates/frame.tpl.html @@ -0,0 +1,49 @@ + +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    + +
    + + + +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + 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/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/templates/mediatorCreateNew.tpl.html b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/templates/mediatorCreateNew.tpl.html new file mode 100644 index 00000000..5934eb8b --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/templates/mediatorCreateNew.tpl.html @@ -0,0 +1,99 @@ + + + diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/templates/mediatorDetails.tpl.html b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/templates/mediatorDetails.tpl.html new file mode 100644 index 00000000..5223df03 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/templates/mediatorDetails.tpl.html @@ -0,0 +1,96 @@ + + + diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/templates/mediatorServerConfigCtrl.tpl.html b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/templates/mediatorServerConfigCtrl.tpl.html new file mode 100644 index 00000000..c3e96585 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/mwtnMediator-module/src/main/resources/mwtnMediator/templates/mediatorServerConfigCtrl.tpl.html @@ -0,0 +1,41 @@ + + \ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/pom.xml new file mode 100644 index 00000000..d19f85ed --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnMediator/pom.xml @@ -0,0 +1,24 @@ + + + 4.0.0 + + mwtn + com.highstreet.technologies.odl.dlux + 0.5.1-SNAPSHOT + .. + + pom + com.highstreet.technologies.odl.dlux + mwtnMediator + 0.5.1-SNAPSHOT + ${prefix} ${project.artifactId} + + + 3.0 + + + + mwtnMediator-module + mwtnMediator-bundle + + \ No newline at end of file -- cgit 1.2.3-korg