Skip to content

Commit 6393bab

Browse files
authored
Merge pull request #5 from TechConsult/refactor
Code refactor
2 parents aa5b4a5 + 2af1406 commit 6393bab

File tree

7 files changed

+27
-13
lines changed

7 files changed

+27
-13
lines changed

upcloud_api/cloud_manager/base.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,12 @@ def put_request(self, endpoint, body=None, timeout=-1, request_to_api=True):
7474
"""
7575
return self.request('PUT', endpoint, body, timeout, request_to_api=request_to_api)
7676

77+
def delete_request(self, endpoint, body=None, timeout=-1):
78+
"""
79+
Perform a DELETE request to a given endpoint in UpCloud's API.
80+
"""
81+
return self.request('DELETE', endpoint, body, timeout)
82+
7783
def __error_middleware(self, res, res_json):
7884
"""
7985
Middleware that raises an exception when HTTP statuscode is an error code.

upcloud_api/cloud_manager/firewall_mixin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def delete_firewall_rule(self, server_uuid, firewall_rule_position):
5959
Delete a firewall rule based on a server uuid and rule position.
6060
"""
6161
url = '/server/{0}/firewall_rule/{1}'.format(server_uuid, firewall_rule_position)
62-
return self.request('DELETE', url)
62+
return self.delete_request(url)
6363

6464
def configure_firewall(self, server, firewall_rule_bodies):
6565
"""

upcloud_api/cloud_manager/ip_address_mixin.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def attach_ip(self, server, family='IPv4'):
4141
}
4242
}
4343

44-
res = self.request('POST', '/ip_address', body)
44+
res = self.post_request('/ip_address', body)
4545
return IPAddress(cloud_manager=self, **res['ip_address'])
4646

4747
def modify_ip(self, ip_addr, ptr_record):
@@ -56,7 +56,7 @@ def modify_ip(self, ip_addr, ptr_record):
5656
}
5757
}
5858

59-
res = self.request('PUT', '/ip_address/' + str(ip_addr), body)
59+
res = self.put_request('/ip_address/' + str(ip_addr), body)
6060
return IPAddress(cloud_manager=self, **res['ip_address'])
6161

6262
def release_ip(self, ip_addr):
@@ -65,4 +65,4 @@ def release_ip(self, ip_addr):
6565
6666
Accepts an IPAddress instance (object) or its address (string).
6767
"""
68-
return self.request('DELETE', '/ip_address/' + str(ip_addr))
68+
return self.delete_request('/ip_address/' + str(ip_addr))

upcloud_api/cloud_manager/server_mixin.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ def modify_server(self, UUID, **kwargs):
138138
Exception('{0} is not an updateable field'.format(arg))
139139
body['server'][arg] = kwargs[arg]
140140

141-
res = self.request('PUT', '/server/{0}'.format(UUID), body)
141+
res = self.put_request('/server/{0}'.format(UUID), body)
142142
server = res['server']
143143

144144
# Populate subobjects
@@ -164,7 +164,7 @@ def delete_server(self, UUID):
164164
165165
Returns an empty object.
166166
"""
167-
return self.request('DELETE', '/server/{0}'.format(UUID))
167+
return self.delete_request('/server/{0}'.format(UUID))
168168

169169
def get_server_data(self, UUID):
170170
"""

upcloud_api/cloud_manager/storage_mixin.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def _modify_storage(self, storage, size, title, backup_rule={}):
5252
body['storage']['title'] = title
5353
if backup_rule:
5454
body['storage']['backup_rule'] = backup_rule
55-
return self.request('PUT', '/storage/' + str(storage), body)
55+
return self.put_request('/storage/' + str(storage), body)
5656

5757
def modify_storage(self, storage, size, title, backup_rule={}):
5858
"""
@@ -65,7 +65,7 @@ def delete_storage(self, UUID):
6565
"""
6666
Destroy a Storage object.
6767
"""
68-
return self.request('DELETE', '/storage/' + UUID)
68+
return self.delete_request('/storage/' + UUID)
6969

7070
def clone_storage(self, storage, title, zone, tier=None):
7171
"""
@@ -74,14 +74,14 @@ def clone_storage(self, storage, title, zone, tier=None):
7474
body = {'storage': {'title': title, 'zone': zone}}
7575
if tier:
7676
body['storage']['tier'] = tier
77-
res = self.request('POST', '/storage/{0}/clone'.format(str(storage)), body)
77+
res = self.post_request('/storage/{0}/clone'.format(str(storage)), body)
7878
return Storage(cloud_manager=self, **res['storage'])
7979

8080
def cancel_clone_storage(self, storage):
8181
"""
8282
Cancels a running cloning operation and deletes the incomplete copy.
8383
"""
84-
return self.request('POST', '/storage/{0}/cancel'.format(str(storage)))
84+
return self.post_request('/storage/{0}/cancel'.format(str(storage)))
8585

8686
def attach_storage(self, server, storage, storage_type, address):
8787
"""

upcloud_api/cloud_manager/tag_mixin.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def create_tag(self, name, description=None, servers=[]):
3333
"""
3434
servers = [str(server) for server in servers]
3535
body = {'tag': Tag(name, description, servers).to_dict()}
36-
res = self.request('POST', '/tag', body)
36+
res = self.post_request('/tag', body)
3737

3838
return Tag(cloud_manager=self, **res['tag'])
3939

@@ -44,7 +44,7 @@ def _modify_tag(self, name, description, servers, new_name):
4444
Private method used by the Tag class and TagManager.modify_tag.
4545
"""
4646
body = {'tag': Tag(new_name, description, servers).to_dict()}
47-
res = self.request('PUT', '/tag/' + name, body)
47+
res = self.put_request('/tag/' + name, body)
4848
return res['tag']
4949

5050
def modify_tag(self, name, description=None, servers=None, new_name=None):
@@ -82,4 +82,4 @@ def remove_tags(self, server, tags):
8282

8383
def delete_tag(self, tag):
8484
"""Delete the Tag. Returns and empty object."""
85-
return self.request('DELETE', '/tag/' + str(tag))
85+
return self.delete_request('/tag/' + str(tag))

upcloud_api/storage.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,14 @@ def save(self):
7272
res = self.cloud_manager._modify_storage(self, self.size, self.title)
7373
self._reset(**res['storage'])
7474

75+
def update(self, size, title):
76+
"""
77+
Update the storage to the API.
78+
"""
79+
self.size = size
80+
self.title = title
81+
self.save()
82+
7583
def __str__(self):
7684
"""
7785
String representation of Storage.

0 commit comments

Comments
 (0)