Skip to content

Commit 4132a5e

Browse files
authored
Merge pull request #15 from wungad/master
region list,create,delete,update added
2 parents 85eb02b + f36fc45 commit 4132a5e

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

netbox/dcim.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,46 @@ class Dcim(object):
66
def __init__(self, netbox_con):
77
self.netbox_con = netbox_con
88

9+
def get_regions(self, **kwargs):
10+
"""Returns the available regions"""
11+
return self.netbox_con.get('/dcim/regions/', **kwargs)
12+
13+
def create_region(self, name, slug, **kwargs):
14+
"""Create a new region
15+
16+
:param name: Region name
17+
:param slug: slug name
18+
:param kwargs: optional fields
19+
:return: netbox object if successful otherwise exception raised
20+
"""
21+
required_fields = {"name": name, "slug": slug}
22+
return self.netbox_con.post('/dcim/regions/', required_fields, **kwargs)
23+
24+
def delete_region(self, region_name):
25+
"""Delete region
26+
27+
:param region_name: Region to delete
28+
:return: bool True if succesful otherwase delete exception
29+
"""
30+
try:
31+
region_id = self.get_regions(name=region_name)[0]['id']
32+
except IndexError:
33+
raise exceptions.NotFoundException('region: {}'.format(region_name)) from None
34+
return self.netbox_con.delete('/dcim/regions/', region_id)
35+
36+
def update_region(self, region_name, **kwargs):
37+
"""
38+
39+
:param region_name: Region to update
40+
:param kwargs: requests body dict
41+
:return: bool True if successful otherwise raise UpdateException
42+
"""
43+
try:
44+
region_id = self.get_regions(name=region_name)[0]['id']
45+
except IndexError:
46+
raise exceptions.NotFoundException('region: {}'.format(region_name)) from None
47+
return self.netbox_con.patch('/dcim/regions/', region_id, **kwargs)
48+
949
def get_sites(self, **kwargs):
1050
"""Returns all available sites"""
1151
return self.netbox_con.get('/dcim/sites/', **kwargs)

0 commit comments

Comments
 (0)