Unit test for ovsdb.southbound.ovsdb.transact
[netvirt.git] / ovsdb-ui / module / src / main / resources / ovsdb / ovsdb.services.js
1 /*\r
2  * Copyright (c) 2015 Inocybe Technologies and others.  All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 \r
9 define(['app/ovsdb/ovsdb.module'],function(ovsdb) {\r
10   'use strict';\r
11 \r
12   ovsdb.register.factory('TopologyNetworkRestangular', function(Restangular, ENV) {\r
13     return Restangular.withConfig(function(RestangularConfig) {\r
14       RestangularConfig.setBaseUrl(ENV.getBaseURL("AD_SAL"));\r
15     });\r
16   });\r
17 \r
18   ovsdb.register.factory('TopologyNetworkSvc', function(TopologyNetworkRestangular) {\r
19     var svc = {\r
20       base: function(name) {\r
21         return TopologyNetworkRestangular.one('restconf', name).one('network-topology:network-topology');\r
22       },\r
23       data : null\r
24     };\r
25 \r
26     svc.getCurrentData = function() {\r
27       return svc.data;\r
28     };\r
29 \r
30     svc.getTopologiesIds = function() {\r
31       svc.data = svc.base('operational').getList();\r
32       return svc.data;\r
33     };\r
34 \r
35     svc.getConfigNode = function(topologyId, nodeId) {\r
36       return svc.base('config').one('topology', topologyId).one('node', nodeId).get();\r
37     };\r
38 \r
39     svc.addConfigNode = function(topologyId, nodeId, data) {\r
40       return svc.base('config').one('topology', topologyId).one('node').put(nodeId, data);\r
41     };\r
42 \r
43     svc.addConfigBridge = function(topologyId, nodeId, data) {\r
44         return svc.base('config').one('topology', topologyId).put(nodeId, data);\r
45     };\r
46 \r
47     svc.removeConfigNode = function(topologyId, nodeId) {\r
48       return svc.base('config').one('topology', topologyId).one('node', nodeId).remove();\r
49     };\r
50 \r
51     svc.addTerminationPointConfig = function(topologyId, nodeId, terminationId, data) {\r
52       return svc.base('config').one('topology', topologyId).one('node', nodeId).one('termination-point').put(terminationId, data);\r
53     };\r
54 \r
55     svc.getTerminationPointConfig = function(topologyId, nodeId, terminationId) {\r
56       return svc.base('config').one('topology', topologyId).one('node', nodeId).one('termination-point', terminationId).get();\r
57     };\r
58 \r
59     svc.removeTerminationPointConfig = function(topologyId, nodeId, terminationId) {\r
60       return svc.base('config').one('topology', topologyId).one('node', nodeId).one('termination-point', terminationId).remove();\r
61     };\r
62     return svc;\r
63   });\r
64 \r
65 \r
66   ovsdb.register.factory('TopologyNetworkFactory', function() {\r
67 \r
68     var factory = {\r
69         createOvsdbNodeObject: function(nodeId, nodePort, nodeRemoteIp) {\r
70             return {\r
71                 "network-topology:node": [\r
72                     {\r
73                         "node-id": nodeId,\r
74                         "connection-info": {\r
75                             "ovsdb:remote-port": nodePort,\r
76                             "ovsdb:remote-ip": nodeRemoteIp\r
77                         }\r
78                     }\r
79                 ]\r
80             };\r
81         },\r
82         createConfigNode: function(nodeId, bridgeName,datapathId, protocolEntries, controllerEntries, managedBy) {\r
83             var configNode = {\r
84                 "network-topology:node": [\r
85                     {\r
86                         "node-id": nodeId,\r
87                         "ovsdb:bridge-name": bridgeName,\r
88                         "ovsdb:datapath-id": datapathId,\r
89                         "ovsdb:protocol-entry": [ ],\r
90                         "ovsdb:controller-entry": [ ],\r
91                         "ovsdb:managed-by": managedBy\r
92                     }\r
93                 ]\r
94             };\r
95 \r
96             for (var protocolEntry in protocolEntries) {\r
97                 configNode[0]['ovsdb:protocal-entry'].push({\r
98                     "protocol": protocolEntry\r
99                 });\r
100             }\r
101 \r
102             for (var controllerEntry in controllerEntries) {\r
103                 configNode[0]['ovsdb:controller-entry'].push({\r
104                     "protocol" : controllerEntry\r
105                 });\r
106             }\r
107 \r
108             return configNode;\r
109 \r
110         },\r
111         createEndPoint: function(ovsdb_options, name, interface_type, tp_id, vlan_tag, trunks, vlan_mode) {\r
112             var termination_point = {\r
113                 "network-topology:termination-point": [\r
114                     {\r
115                         "ovsdb:options": [ ],\r
116                         "ovsdb:name": name,\r
117                         "ovsdb:interface-type": interface_type,\r
118                         "tp-id": tp_id,\r
119                         "vlan-tag": vlan_tag,\r
120                         "trunks": [ ],\r
121                         "vlan-mode":vlan_mode\r
122                     }\r
123                 ]\r
124             };\r
125 \r
126             for (var ovsdb_option in ovsdb_options) {\r
127                    termination_point[0]['ovsdb:options'].push({\r
128                         "ovsdb:option": ovsdb_option.option,\r
129                         "ovsdb:value" : ovsdb_option.value\r
130                    });\r
131             }\r
132 \r
133             for (var trunk in trunks) {\r
134                 termination_point[0]['trunks'].push({\r
135                     "trunk":trunk\r
136                 });\r
137             }\r
138 \r
139             return termination_point;\r
140         }\r
141     };\r
142 \r
143     return factory;\r
144 \r
145   });\r
146 \r
147 });\r