2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 define(['app/vpp/vpp.module'], function(vpp) {
9 vpp.register.factory('bdmBridgeDomainService', function(VPPRestangular) {
12 var BridgeDomain = function(topologyId) {
13 this['topology-id'] = topologyId || null;
14 this['topology-types'] = {
15 'vbridge-topology:vbridge-topology': {}
17 this['underlay-topology'] = [
19 'topology-ref': 'topology-netconf'
22 this['vbridge-topology:tunnel-type'] = 'tunnel-type-vxlan';
23 this['vbridge-topology:vxlan'] = {
26 this['vbridge-topology:flood'] = "true",
27 this['vbridge-topology:forward'] = "true",
28 this['vbridge-topology:learn'] = "true",
29 this['vbridge-topology:unknown-unicast-flood'] = "true",
30 this['vbridge-topology:arp-termination'] = "false"
33 s.createObj = function(topologyId) {
34 return new BridgeDomain(topologyId);
37 s.add = function(bridgeDomain, successCallback, errorCallback) {
38 var restObj = VPPRestangular.one('restconf').one('config').one('network-topology:network-topology').one('topology').one(bridgeDomain['topology-id']);
39 var dataObj = {'topology': [bridgeDomain]};
41 restObj.customPUT(dataObj).then(function(data) {
42 successCallback(data);
44 errorCallback(res.data, res.status);
48 s.get = function(successCallback, errorCallback) {
49 var restObj = VPPRestangular.one('restconf').one('config').one('network-topology:network-topology');
50 var bridgeDomainList = [];
52 restObj.get().then(function(data) {
53 if(data['network-topology'].topology) {
54 bridgeDomainList = data['network-topology'].topology.filter(function (topology) {
55 if (topology['topology-types'] && topology['topology-types']['vbridge-topology:vbridge-topology']) {
56 return topology['topology-types']['vbridge-topology:vbridge-topology'] !== undefined;
60 successCallback(bridgeDomainList);
62 errorCallback(res.data, res.status);
66 s.getOne = function(bdId, successCallback, errorCallback) {
67 var restObj = VPPRestangular.one('restconf').one('config').one('network-topology:network-topology').one('topology').one(bdId);
69 restObj.get().then(function(data) {
70 successCallback(data.topology[0]);
72 errorCallback(res.data, res.status);
76 s.remove = function(bdName,successCallback,errorCallback) {
77 //http://localhost:8181/restconf/config/network-topology:network-topology/topology/testBD
78 var restObj = VPPRestangular.one('restconf').one('config').one('network-topology:network-topology').one('topology').one(bdName);
80 restObj.remove().then(function(data) {
81 successCallback(data);
83 errorCallback(res.data, res.status);