-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(manager): Loadbalancer service support with raw dictionary objects
- Loading branch information
Antti Myyrä
committed
Aug 7, 2023
1 parent
7fa674a
commit a1625fd
Showing
3 changed files
with
116 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
from upcloud_api.api import API | ||
|
||
|
||
class LoadBalancerManager: | ||
""" | ||
Functions for managing UpCloud loadbalancer instances and their properties with basic dictionary objects | ||
""" | ||
|
||
api: API | ||
|
||
def get_loadbalancers(self): | ||
""" | ||
Returns a list of loadbalancer dictionary objects | ||
""" | ||
|
||
url = '/load-balancer' | ||
return self.api.get_request(url) | ||
|
||
def get_loadbalancer(self, lb_uuid: str): | ||
""" | ||
Returns details for a single loadbalancer as a dictionary | ||
:param lb_uuid: | ||
:return: LB details | ||
""" | ||
url = f'/load-balancer/{lb_uuid}' | ||
return self.api.get_request(url) | ||
|
||
def create_loadbalancer(self, body: dict): | ||
""" | ||
Creates a loadbalancer service specified in body and returns its details | ||
:param body: | ||
:return: LB details | ||
""" | ||
|
||
url = '/load-balancer' | ||
return self.api.post_request(url, body) | ||
|
||
def delete_loadbalancer(self, lb_uuid: str): | ||
""" | ||
Deletes a loadbalancer service | ||
:param lb_uuid: | ||
""" | ||
|
||
url = f'/load-balancer/{lb_uuid}' | ||
return self.api.delete_request(url) | ||
|
||
def get_loadbalancer_backends(self, lb_uuid: str): | ||
""" | ||
Returns a list of backends for a loadbalancer service | ||
:param lb_uuid: | ||
:return: List of LB backends | ||
""" | ||
|
||
url = f'/load-balancer/{lb_uuid}/backends' | ||
return self.api.get_request(url) | ||
|
||
def get_loadbalancer_backend(self, lb_uuid: str, backend: str): | ||
""" | ||
Returns details for a single loadbalancer backend | ||
:param lb_uuid: | ||
:param backend: | ||
:return: LB backend details | ||
""" | ||
|
||
url = f'/load-balancer/{lb_uuid}/backends/{backend}' | ||
return self.api.get_request(url) | ||
|
||
def create_loadbalancer_backend(self, lb_uuid: str, body: dict): | ||
""" | ||
Creates a new backend for a loadbalancer and returns its details | ||
:param lb_uuid: | ||
:param body: | ||
:return: LB backend details | ||
""" | ||
|
||
url = f'/load-balancer/{lb_uuid}/backends' | ||
return self.api.post_request(url, body) | ||
|
||
def modify_loadbalancer_backend(self, lb_uuid: str, backend: str, body: dict): | ||
""" | ||
Modifies an existing loadbalancer backend and returns its details | ||
:param lb_uuid: | ||
:param backend: | ||
:param body: | ||
:return: LB backend details | ||
""" | ||
|
||
url = f'/load-balancer/{lb_uuid}/backends/{backend}' | ||
return self.api.patch_request(url, body) | ||
|
||
def delete_loadbalancer_backend(self, lb_uuid: str, backend: str): | ||
""" | ||
Deletes a loadbalancer backend | ||
:param lb_uuid: | ||
:param backend: | ||
:return: | ||
""" | ||
|
||
url = f'/load-balancer/{lb_uuid}/backends/{backend}' | ||
return self.api.delete_request(url) |