@@ -33,26 +33,25 @@ def create_ip_address(self, address, **kwargs):
33
33
required_fields = {"address" : address }
34
34
return self .netbox_con .post ('/ipam/ip-addresses/' , required_fields , ** kwargs )
35
35
36
+ def update_ip (self , ip_address , ** kwargs ):
37
+ """Update ip address
38
+
39
+ :param ip_address: ip address with prefix. Format: 1.1.1.1/32
40
+ :param kwargs: requests body dict
41
+ :return: bool True if successful otherwise raise UpdateException
42
+ """
43
+ ip_id = self .get_ip (q = ip_address )[0 ]['id' ]
44
+ return self .netbox_con .patch ('/ipam/ip-addresses/' , ip_id , ** kwargs )
45
+
36
46
def delete_ip_address (self , address ):
37
47
"""Delete IP address
38
48
39
49
:param address: IP address to delete
40
50
:return: bool True if successful otherwise raise DeleteException
41
51
"""
42
- ip_address_id = self .get_ip (address )
52
+ ip_address_id = self .get_ip (q = address )[ 0 ][ 'id' ]
43
53
return self .netbox_con .delete ('/ipam/ip-addresses/' , ip_address_id )
44
54
45
- def __convert_ip_address (self , ip_address ):
46
- """Convert IP address to id
47
-
48
- :param ip_address: The IP address
49
- :return: ip address id if found otherwise bool False
50
- """
51
- for item in self .get_ip_addresses ()['results' ]:
52
- if item ['address' ] == ip_address :
53
- return item ['id' ]
54
- return False
55
-
56
55
def get_ip_prefixes (self ):
57
56
"""Return all ip prefixes"""
58
57
return self .netbox_con .get ('/ipam/prefixes/' )
@@ -86,6 +85,16 @@ def delete_ip_prefix(self, **kwargs):
86
85
ip_prefix_id = self .get_ip_prefix (** kwargs )[0 ]['id' ]
87
86
return self .netbox_con .delete ('/ipam/prefixes/' , ip_prefix_id )
88
87
88
+ def update_ip_prefix (self , ip_prefix , ** kwargs ):
89
+ """Update ip address
90
+
91
+ :param ip_prefix: ip prefix to update
92
+ :param kwargs: requests body dict
93
+ :return: bool True if successful otherwise raise UpdateException
94
+ """
95
+ ip_prefix_id = self .get_ip_prefix (q = ip_prefix )[0 ]['id' ]
96
+ return self .netbox_con .patch ('/ipam/prefixes/' , ip_prefix_id , ** kwargs )
97
+
89
98
def get_next_available_ip (self , ** kwargs ):
90
99
"""Return next available ip in prefix
91
100
@@ -128,10 +137,27 @@ def delete_vrf(self, vrf):
128
137
vrf_id = self .get_vrf (name = vrf )[0 ]['id' ]
129
138
return self .netbox_con .delete ('/ipam/vrfs/' , vrf_id )
130
139
140
+ def update_vrf (self , vrf_name , ** kwargs ):
141
+ """Update vrf
142
+
143
+ :param vrf_name: name of the vrf to update
144
+ :param kwargs: requests body dict
145
+ :return: bool True if successful otherwise raise UpdateException
146
+ """
147
+ vrf_id = self .get_vrf (name = vrf_name )[0 ]['id' ]
148
+ return self .netbox_con .patch ('/ipam/vrfs/' , vrf_id , ** kwargs )
149
+
131
150
def get_aggregates (self ):
132
151
"""Return all aggregates"""
133
152
return self .netbox_con .get ('/ipam/aggregates/' )
134
153
154
+ def get_aggregate (self , ** kwargs ):
155
+ """Return aggregate
156
+
157
+ :param kwargs: arguments
158
+ :return: aggregate
159
+ """
160
+
135
161
def create_aggregate (self , prefix , rir , ** kwargs ):
136
162
"""Creates a new aggregate
137
163
@@ -146,6 +172,16 @@ def create_aggregate(self, prefix, rir, **kwargs):
146
172
if ipaddress .ip_network (prefix , strict = True ):
147
173
return self .netbox_con .post ('/ipam/aggregates/' , required_fields , ** kwargs )
148
174
175
+ def update_aggregate (self , prefix , ** kwargs ):
176
+ """Update aggregate
177
+
178
+ :param prefix: Prefix of the aggregate
179
+ :param kwargs: requests body dict
180
+ :return: bool True if successful otherwise raise UpdateException
181
+ """
182
+ aggregate_id = self .get_aggregate (prefix = prefix )[0 ]['id' ]
183
+ return self .netbox_con .patch ('/ipam/aggregates/' , aggregate_id , ** kwargs )
184
+
149
185
def get_rirs (self ):
150
186
"""Return all rirs"""
151
187
return self .netbox_con .get ('/ipam/rirs/' )
@@ -177,6 +213,16 @@ def delete_rir(self, rir_name):
177
213
rir_id = self .get_rir (name = rir_name )[0 ]['id' ]
178
214
return self .netbox_con .delete ('/ipam/rirs/' , rir_id )
179
215
216
+ def update_rir (self , name , ** kwargs ):
217
+ """Update rir
218
+
219
+ :param name: Name of the rir
220
+ :param kwargs: requests body dict
221
+ :return: bool True if successful otherwise raise UpdateException
222
+ """
223
+ rir_id = self .get_rir (name = name )[0 ]['id' ]
224
+ return self .netbox_con .patch ('/ipam/rirs/' , rir_id , ** kwargs )
225
+
180
226
def get_prefix_roles (self ):
181
227
"""Return all roles"""
182
228
return self .netbox_con .get ('/ipam/roles/' )
@@ -208,7 +254,15 @@ def delete_prefix_role(self, prefix_role):
208
254
prefix_role_id = self .get_prefix_role (name = prefix_role )[0 ]['id' ]
209
255
return self .netbox_con .delete ('/ipam/role/' , prefix_role_id )
210
256
257
+ def update_prefix_role (self , name , ** kwargs ):
258
+ """Update prefix role
211
259
260
+ :param name: Name of the prefix role
261
+ :param kwargs: requests body dict
262
+ :return: bool True if successful otherwise raise UpdateException
263
+ """
264
+ prefix_role_id = self .get_prefix_role (name = name )[0 ]['id' ]
265
+ return self .netbox_con .patch ('/ipam/roles/' , prefix_role_id , ** kwargs )
212
266
213
267
def get_vlans (self ):
214
268
"""Return all vlans"""
@@ -241,4 +295,14 @@ def delete_vlan(self, vid):
241
295
vid_id = self .get_vlan (vid = vid )[0 ]['id' ]
242
296
return self .netbox_con .delete ('/ipam/vlans/' , vid_id )
243
297
298
+ def update_vlan (self , name , ** kwargs ):
299
+ """Update vlan
300
+
301
+ :param name: Name of the vlan
302
+ :param kwargs: requests body dict
303
+ :return: bool True if successful otherwise raise UpdateException
304
+ """
305
+ vlan_id = self .get_vlan (name = name )[0 ]['id' ]
306
+ return self .netbox_con .patch ('/ipam/vlans/' , vlan_id , ** kwargs )
307
+
244
308
0 commit comments