@@ -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