summaryrefslogtreecommitdiffstats
path: root/vbd/gui/module/src/main/resources/vpp/vpp.services.js
diff options
context:
space:
mode:
Diffstat (limited to 'vbd/gui/module/src/main/resources/vpp/vpp.services.js')
-rw-r--r--vbd/gui/module/src/main/resources/vpp/vpp.services.js375
1 files changed, 45 insertions, 330 deletions
diff --git a/vbd/gui/module/src/main/resources/vpp/vpp.services.js b/vbd/gui/module/src/main/resources/vpp/vpp.services.js
index 7f082ae1e..49337b109 100644
--- a/vbd/gui/module/src/main/resources/vpp/vpp.services.js
+++ b/vbd/gui/module/src/main/resources/vpp/vpp.services.js
@@ -30,344 +30,59 @@ define(['app/vpp/vpp.module', 'next'], function(vpp) {
}
});
- vpp.register.service('httpService', function($http, dataService, $log, toastService, $q) {
- /*
- this.requestVpps = function() {
- $http.get(vppsUrl, {
- headers: {
- 'Content-Type': 'application/json',
- "Authorization": "Basic " + btoa(username + ":" + password)
- }
- }).then(function successCallback(response) {
- dataService.vpps = processVpps(response.data);
- var counter = 0;
- angular.forEach(dataService.vpps, function(vpp) {
- counter++;
- var isFinalInterfaceRequest = counter === dataService.vpps.length;
- requestInterfaces(vpp, isFinalInterfaceRequest);
- });
- }, function errorCallback(response) {
- toastService.showToast('Error retrieving VPPs');
- $log.error(response);
- });
- };
-
- var requestInterfaces = function(vpp, isFinalInterfaceRequest) {
- $http.get(interfacesUrl+vpp['node-id']+interfacesUri, {
- headers: {
- 'Content-Type': 'application/json',
- "Authorization": "Basic " + btoa(username + ":" + password)
- }
- }).then(function successCallback(response) {
- vpp.interfaces = response.data.interfaces.interface;
- //------
- $http.get(operationalUrl+vpp['node-id']+operationalUri, {
- headers: {
- 'Content-Type': 'application/json',
- "Authorization": "Basic " + btoa(username + ":" + password)
- }
- }).then(function successCallback(response) {
- vpp.operational = response.data;
- var interfaceStates = vpp.operational['ietf-interfaces:interfaces-state'].interface;
- _.forEach(interfaceStates, function(interf) {
- var matchedInterface = _.find(vpp.interfaces,{name: interf.name});
- if (matchedInterface) {
- matchedInterface['oper-status'] = interf['oper-status'];
- matchedInterface['admin-status'] = interf['admin-status'];
- }
- });
- if (isFinalInterfaceRequest) {
- dataService.updateInventoryTopology();
- }
- }, function errorCallback() {
- $log.error('Error receiving interface states for '+vpp['node-id']);
- });
- //-------
- }, function errorCallback() {
- $log.error('Error receiving interfaces for '+vpp['node-id']);
- });
- };
-
- var requestBridgeDomains = function() {
- $http.get(bridgedomainsUrl, {
- headers: {
- 'Content-Type': 'application/json',
- "Authorization": "Basic " + btoa(username + ":" + password)
- }
- }).then(function successCallback(response) {
- dataService.setBridgeDomains(response.data["v3po:vpp-state"]);
- // done loading...
- dataService.requestsFinished();
- }, function errorCallback(response) {
- toastService.showToast('Error retrieving Bridge Domains');
- $log.error(response);
- });
- };
-
- this.deploy = function() {
- var errorOccurred = false;
-
- var success = function(succeeded, lastAssignment) {
- if (!errorOccurred && !succeeded) {
- toastService.showToast('Error deploying configuration!');
- errorOccurred = true;
- } else if (!errorOccurred && succeeded && lastAssignment){
- toastService.showToast('Deployed! Bridge Domain Validated');
- }
- };
- for (var x = 0; x < dataService.changedInterfaces.length; x++) {
- this.updateAssignmentInODL(dataService.changedInterfaces[x], success, x === dataService.changedInterfaces.length - 1);
- }
- dataService.changedInterfaces.length = 0;
- };
-
- this.updateAssignmentInODL = function(interf, success, lastAssignment) {
- var postData = {
- "interface": [
- {
- "name": interf.name,
- "link-up-down-trap-enable": "disabled",
- "v3po:ethernet": {
- "mtu": interf['v3po:ethernet']['mtu']
- },
- "v3po:l2": {
- "bridge-domain": interf['v3po:l2']['bridge-domain'],
- "split-horizon-group": 0,
- "bridged-virtual-interface": false
- },
- "type": interf.type,
- "description": "",
- "enabled": true
- }
- ]
- };
- $http.put(interfacesConfigUrl + encodeURIComponent(interf.name), postData, {
- headers: {
- 'Content-Type': 'application/yang.data+json',
- "Authorization": "Basic " + btoa(username + ":" + password)
- }
- }).then(function successCallback(response) {
- //...
- success(true, lastAssignment);
- }, function errorCallback(response) {
- success(false, lastAssignment);
- $log.error(response);
- });
- };
-
-
- this.addBdToODL = function(bdName, isDone) {
- var putData = {
- "bridge-domain": [
- {
- "name": bdName,
- "flood": "true",
- "forward": "true",
- "learn": "true",
- "unknown-unicast-flood": "true",
- "arp-termination": "false"
- }
- ]
- };
- $http.put(newBridgeDomainUrl+bdName, putData,
- {
- headers: {
- 'Content-Type': 'application/yang.data+json',
- "Authorization": "Basic " + btoa(username + ":" + password)
- }
- }).then(function successCallback() {
- toastService.showToast('Bridge Domain Added!');
- isDone('success');
- }, function errorCallback(response) {
- $log.error(response);
- toastService.showToast('Error adding Bridge Domain.');
- isDone('failure');
- });
- };
-
- this.updateInterface = function(interf, isWaiting, cancel, success) {
- $http.get(interfacesOperUrl + encodeURIComponent(interf.name), {
- headers: {
- 'Content-Type': 'application/json',
- "Authorization": "Basic " + btoa(username + ":" + password)
- }
- }).then(function successCallback(r) {
- var receivedData = r.data.interface[0];
- var postData = {
- "interface": [
- {
- "name": receivedData.name,
- "link-up-down-trap-enable": "disabled",
- "v3po:ethernet": {
- "mtu": receivedData['v3po:ethernet']['mtu']
- },
- "v3po:l2": {
- "bridge-domain": receivedData['v3po:l2']['bridge-domain'],
- "split-horizon-group": 0,
- "bridged-virtual-interface": false
- },
- "type": receivedData.type,
- "description": interf.description,
- "enabled": interf['admin-status'] === 'up' ? true : false
- }
- ]
- };
- $http.put(interfacesConfigUrl + encodeURIComponent(interf.name), postData,
- {
- headers: {
- 'Content-Type': 'application/yang.data+json',
- "Authorization": "Basic " + btoa(username + ":" + password)
- }
- }).then(function successCallback() {
- toastService.showToast('Updated!');
- isWaiting = false;
- success();
- }, function errorCallback(response) {
- $log.error(response);
- toastService.showToast('Error updating');
- isWaiting = false;
- cancel();
- });
- }, function errorCallback(response) {
- $log.error(response);
- toastService.showToast('Error updating');
- isWaiting = false;
- cancel();
- });
- };
-
- this.removeBdFromOdl = function(name,success) {
- $http.delete(newBridgeDomainUrl+name, {
- headers: {
- 'Content-Type': 'application/json',
- "Authorization": "Basic " + btoa(username + ":" + password)
- }
- })
- .then(function successCallback() {
- success(true);
- }, function errorCallback() {
- success(false);
- });
- };
-
- this.configVpp = function(name,ip,port,un,pw,finishedSuccessfullyCallback) {
-
- var putData = '\
- <module xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">\
- <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">prefix:sal-netconf-connector</type>\
- <name>'+name+'</name>\
- <address xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">'+ip+'</address>\
- <port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">'+port+'</port>\
- <username xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">'+un+'</username>\
- <password xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">'+pw+'</password>\
- <tcp-only xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">false</tcp-only>\
- <event-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">\
- <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-event-executor</type>\
- <name>global-event-executor</name>\
- </event-executor>\
- <binding-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">\
- <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-broker-osgi-registry</type>\
- <name>binding-osgi-broker</name>\
- </binding-registry>\
- <dom-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">\
- <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-broker-osgi-registry</type>\
- <name>dom-broker</name>\
- </dom-registry>\
- <client-dispatcher xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">\
- <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:netconf">prefix:netconf-client-dispatcher</type>\
- <name>global-netconf-dispatcher</name>\
- </client-dispatcher>\
- <processing-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">\
- <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:threadpool</type>\
- <name>global-netconf-processing-executor</name>\
- </processing-executor>\
- </module>';
-
- $http.put(configVpp+name, putData, {
- headers: {
- "Accept": 'application/xml',
- "Content-Type": 'application/xml',
- "Authorization": "Basic " + btoa(username + ":" + password)
- }
- }).then(function successCallback(response) {
- //...
- finishedSuccessfullyCallback(true);
- }, function errorCallback(response) {
- finishedSuccessfullyCallback(false);
- $log.error(response);
- });
- };
-
- this.deleteVpp = function(name, finishedSuccessfullyCallback) {
- $http.delete(configVpp+name, {
- headers: {
- "Accept": 'application/xml',
- "Content-Type": 'application/xml',
- "Authorization": "Basic " + btoa(username + ":" + password)
- }
- }).then(function successCallback(response) {
- //...
- finishedSuccessfullyCallback(true);
- }, function errorCallback(response) {
- finishedSuccessfullyCallback(false);
- $log.error(response);
- }); */
- });
-
vpp.register.service('dataService', function() {
nx.graphic.Icons.registerIcon("bd", "src/app/vpp/assets/images/bd1.svg", 45, 45);
nx.graphic.Icons.registerIcon("interf", "src/app/vpp/assets/images/interf.svg", 45, 45);
-/*
- var Topo = function() {
- return new nx.graphic.Topology({
- adaptive:true,
- scalable: true,
- theme:'blue',
- enableGradualScaling:true,
- nodeConfig: {
- color: '#414040',
- label: 'model.label',
- scale: 'model.scale',
- iconType: function(vertex) {
- var type = vertex.get().type;
- if (type === 'bd') {
- return 'bd'
- } else if (type === 'vpp') {
- return 'switch'
- } else {
- return 'interf';
- }
+
+ this.bridgeDomainsTopo = new nx.graphic.Topology({
+ height: 350,
+ width: 500,
+ scalable: true,
+ theme:'blue',
+ enableGradualScaling:true,
+ nodeConfig: {
+ color: '#414040',
+ label: 'model.label',
+ scale: 'model.scale',
+ iconType: function(vertex) {
+ var type = vertex.get().type;
+ if (type === 'bd') {
+ return 'bd'
+ } else if (type === 'vpp') {
+ return 'switch'
+ } else {
+ return 'interf';
}
- },
- linkConfig: {
- label: 'model.label',
- linkType: 'parallel',
- color: function(link) {
- if (link.getData().type === 'tunnel') {
- return '#00FF00';
- } else {
- return '#414040';
- }
- },
- width: function(link) {
- if (link.getData().type === 'tunnel') {
- return 5;
- }
+ }
+ },
+ linkConfig: {
+ label: 'model.label',
+ linkType: 'parallel',
+ color: function(link) {
+ if (link.getData().type === 'tunnel') {
+ return '#00FF00';
+ } else {
+ return '#414040';
}
},
- showIcon: true,
- dataProcessor: 'force',
- autoLayout: true,
- enableSmartNode: false,
- tooltipManagerConfig: {
- nodeTooltipContentClass: 'TooltipNode',
- linkTooltipContentClass: 'TooltipLink'
+ width: function(link) {
+ if (link.getData().type === 'tunnel') {
+ return 5;
+ }
}
- });
- };
+ },
+ showIcon: true,
+ dataProcessor: 'force',
+ autoLayout: true,
+ enableSmartNode: false,
+ tooltipManagerConfig: {
+ nodeTooltipContentClass: 'TooltipNode',
+ linkTooltipContentClass: 'TooltipLink'
+ }
+ });
+ this.nextApp = new nx.ui.Application;
- this.bridgeDomainsTopo = Topo();
this.vpps = [];
this.tableContent = [];
@@ -440,7 +155,7 @@ define(['app/vpp/vpp.module', 'next'], function(vpp) {
this.interfaces[x].assigned = true;
}
}
- }; */
+ };
});