18
18
import uuid
19
19
20
20
import requests
21
+ from netman import raw_or_json
21
22
22
23
from netman .core .objects .exceptions import NetmanException
23
24
from netman .core .objects .access_groups import IN , OUT
@@ -97,7 +98,7 @@ def set_vlan_access_group(self, vlan_number, direction, name):
97
98
self .put ('/vlans/{vlan_number}/access-groups/{direction}' .format (
98
99
vlan_number = vlan_number ,
99
100
direction = {IN : 'in' , OUT : 'out' }[direction ]
100
- ), data = name )
101
+ ), raw_data = name )
101
102
102
103
def remove_vlan_access_group (self , vlan_number , direction ):
103
104
self .delete ('/vlans/{vlan_number}/access-groups/{direction}' .format (
@@ -119,37 +120,37 @@ def remove_ip_from_vlan(self, vlan_number, ip_network):
119
120
def set_vlan_vrf (self , vlan_number , vrf_name ):
120
121
self .put ('/vlans/{vlan_number}/vrf-forwarding' .format (
121
122
vlan_number = vlan_number
122
- ), data = str (vrf_name ))
123
+ ), raw_data = str (vrf_name ))
123
124
124
125
def remove_vlan_vrf (self , vlan_number ):
125
126
self .delete ('/vlans/{vlan_number}/vrf-forwarding' .format (vlan_number = vlan_number ))
126
127
127
128
def set_access_mode (self , interface_id ):
128
- self .put ("/interfaces/" + interface_id + '/port-mode' , data = 'access' )
129
+ self .put ("/interfaces/" + interface_id + '/port-mode' , raw_data = 'access' )
129
130
130
131
def set_trunk_mode (self , interface_id ):
131
- self .put ("/interfaces/" + interface_id + '/port-mode' , data = 'trunk' )
132
+ self .put ("/interfaces/" + interface_id + '/port-mode' , raw_data = 'trunk' )
132
133
133
134
def set_bond_access_mode (self , bond_number ):
134
- self .put ("/bonds/" + str (bond_number ) + '/port-mode' , data = 'access' )
135
+ self .put ("/bonds/" + str (bond_number ) + '/port-mode' , raw_data = 'access' )
135
136
136
137
def set_bond_trunk_mode (self , bond_number ):
137
- self .put ("/bonds/" + str (bond_number ) + '/port-mode' , data = 'trunk' )
138
+ self .put ("/bonds/" + str (bond_number ) + '/port-mode' , raw_data = 'trunk' )
138
139
139
140
def set_access_vlan (self , interface_id , vlan ):
140
- self .put ("/interfaces/" + interface_id + '/access-vlan' , data = str (vlan ))
141
+ self .put ("/interfaces/" + interface_id + '/access-vlan' , raw_data = str (vlan ))
141
142
142
143
def remove_access_vlan (self , interface_id ):
143
144
self .delete ("/interfaces/" + interface_id + '/access-vlan' )
144
145
145
146
def configure_native_vlan (self , interface_id , vlan ):
146
- self .put ("/interfaces/" + interface_id + '/trunk-native-vlan' , data = str (vlan ))
147
+ self .put ("/interfaces/" + interface_id + '/trunk-native-vlan' , raw_data = str (vlan ))
147
148
148
149
def remove_native_vlan (self , interface_id ):
149
150
self .delete ("/interfaces/" + interface_id + '/trunk-native-vlan' )
150
151
151
152
def configure_bond_native_vlan (self , bond_number , vlan ):
152
- self .put ("/bonds/" + str (bond_number ) + '/trunk-native-vlan' , data = str (vlan ))
153
+ self .put ("/bonds/" + str (bond_number ) + '/trunk-native-vlan' , raw_data = str (vlan ))
153
154
154
155
def remove_bond_native_vlan (self , bond_number ):
155
156
self .delete ("/bonds/" + str (bond_number ) + '/trunk-native-vlan' )
@@ -167,28 +168,29 @@ def remove_bond_trunk_vlan(self, bond_number, vlan):
167
168
self .delete ("/bonds/" + str (bond_number ) + '/trunk-vlans/' + str (vlan ))
168
169
169
170
def set_interface_description (self , interface_id , description ):
170
- self .put ("/interfaces/" + interface_id + '/description' , data = description )
171
+ self .put ("/interfaces/" + interface_id + '/description' , raw_data = description )
171
172
172
173
def remove_interface_description (self , interface_id ):
173
174
self .delete ("/interfaces/" + interface_id + '/description' )
174
175
175
176
def set_bond_description (self , bond_number , description ):
176
- self .put ("/bonds/" + str (bond_number ) + '/description' , data = description )
177
+ self .put ("/bonds/" + str (bond_number ) + '/description' , raw_data = description )
177
178
178
179
def remove_bond_description (self , bond_number ):
179
180
self .delete ("/bonds/" + str (bond_number ) + '/description' )
180
181
181
- def enable_interface_spanning_tree (self , interface_id ):
182
- self .put ("/interfaces/" + interface_id + '/spanning-tree' , data = 'true' )
182
+ def edit_interface_spanning_tree (self , interface_id , edge = None ):
183
+ data = {}
184
+ if edge is not None :
185
+ data ["edge" ] = edge
183
186
184
- def disable_interface_spanning_tree (self , interface_id ):
185
- self .put ("/interfaces/" + interface_id + '/spanning-tree' , data = 'false' )
187
+ self .put ("/interfaces/" + interface_id + '/spanning-tree' , data = data )
186
188
187
189
def openup_interface (self , interface_id ):
188
- self .put ("/interfaces/" + interface_id + '/shutdown' , data = 'false' )
190
+ self .put ("/interfaces/" + interface_id + '/shutdown' , raw_data = 'false' )
189
191
190
192
def shutdown_interface (self , interface_id ):
191
- self .put ("/interfaces/" + interface_id + '/shutdown' , data = 'true' )
193
+ self .put ("/interfaces/" + interface_id + '/shutdown' , raw_data = 'true' )
192
194
193
195
def add_bond (self , number ):
194
196
self .post ("/bonds" , data = {'number' : number })
@@ -197,19 +199,20 @@ def remove_bond(self, number):
197
199
self .delete ("/bonds/" + str (number ))
198
200
199
201
def add_interface_to_bond (self , interface , bond_number ):
200
- self .put ("/interfaces/" + interface + '/bond-master' , data = str (bond_number ))
202
+ self .put ("/interfaces/" + interface + '/bond-master' , raw_data = str (bond_number ))
201
203
202
204
def remove_interface_from_bond (self , interface ):
203
205
self .delete ("/interfaces/" + interface + '/bond-master' )
204
206
205
207
def set_bond_link_speed (self , number , speed ):
206
- self .put ("/bonds/{0}/link-speed" .format (number ), data = speed )
208
+ self .put ("/bonds/{0}/link-speed" .format (number ), raw_data = speed )
207
209
208
- def enable_bond_spanning_tree (self , number ):
209
- self .put ("/bonds/{0}/spanning-tree" .format (number ), data = 'true' )
210
+ def edit_bond_spanning_tree (self , number , edge = None ):
211
+ data = {}
212
+ if edge is not None :
213
+ data ["edge" ] = edge
210
214
211
- def disable_bond_spanning_tree (self , number ):
212
- self .put ("/bonds/{0}/spanning-tree" .format (number ), data = 'false' )
215
+ self .put ("/bonds/{0}/spanning-tree" .format (number ), data = data )
213
216
214
217
def add_vrrp_group (self , vlan_number , group_id , ips = None , priority = None , hello_interval = None , dead_interval = None ,
215
218
track_id = None , track_decrement = None ):
@@ -233,13 +236,10 @@ def get(self, relative_url):
233
236
return self .validated (self .requests .get (** self .request (relative_url )))
234
237
235
238
def post (self , relative_url , data = None , raw_data = None ):
236
- posting_data = raw_data
237
- if data is not None :
238
- posting_data = json .dumps (data )
239
- return self .validated (self .requests .post (data = posting_data , ** self .request (relative_url )))
239
+ return self .validated (self .requests .post (data = raw_or_json (raw_data , data ), ** self .request (relative_url )))
240
240
241
- def put (self , relative_url , data = None ):
242
- return self .validated (self .requests .put (data = data , ** self .request (relative_url )))
241
+ def put (self , relative_url , data = None , raw_data = None ):
242
+ return self .validated (self .requests .put (data = raw_or_json ( raw_data , data ) , ** self .request (relative_url )))
243
243
244
244
def delete (self , relative_url ):
245
245
return self .validated (self .requests .delete (** self .request (relative_url )))
0 commit comments