vBDManager services initial commit
[honeycomb.git] / vbd / gui / module / src / main / resources / vpp / services / bdm.bridgedomain.service.js
index 9316cbf..5d3b696 100644 (file)
@@ -5,10 +5,57 @@
  * 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/vpp/vpp.module', 'next'], function(vpp) {
-    vpp.register.factory('bdmBridgeDomainService', function(VPPRestangular, VPPRestangularXml) {
+define(['app/vpp/vpp.module'], function(vpp) {
+    vpp.register.factory('bdmBridgeDomainService', function(VPPRestangular) {
         var s = {};
 
+        var BridgeDomain = function(topologyId) {
+            this['topology-id'] = topologyId || null;
+            this['topology-types'] = {
+                'vbridge-topology:vbridge-topology': {}
+            };
+            this['underlay-topology'] = [
+                {
+                    'topology-ref': 'topology-netconf'
+                }
+            ];
+            this['vbridge-topology:tunnel-type'] = 'tunnel-type-vxlan';
+            this['vbridge-topology:vxlan'] = {
+                'vni': '1'
+            };
+            this['vbridge-topology:flood'] = "true",
+            this['vbridge-topology:forward'] = "true",
+            this['vbridge-topology:learn'] = "true",
+            this['vbridge-topology:unknown-unicast-flood'] = "true",
+            this['vbridge-topology:arp-termination'] = "false"
+        };
+
+        s.createObj = function(topologyId) {
+            return new BridgeDomain(topologyId);
+        };
+
+        s.add = function(bridgeDomain, successCallback, errorCallback) {
+            var restObj = VPPRestangular.one('restconf').one('config').one('network-topology:network-topology').one('topology').one(bridgeDomain['topology-id']);
+            var dataObj = {'topology': [bridgeDomain]};
+
+            restObj.customPUT(dataObj).then(function(data) {
+                successCallback(data);
+            }, function(res) {
+                errorCallback(res.data, res.status);
+            });
+        };
+
+        s.get = function(successCallback, errorCallback) {
+            var restObj = VPPRestangular.one('restconf').one('config').one('network-topology:network-topology');
+
+            restObj.get().then(function(data) {
+                successCallback(data);
+            }, function(res) {
+                errorCallback(res.data, res.status);
+            });
+        };
+
+
         return s;
     });
 });
\ No newline at end of file