Skip to content

Commit 32056b2

Browse files
LKaemmerlingLD250
authored andcommitted
Define all missing methods
1 parent f86d73e commit 32056b2

2 files changed

Lines changed: 91 additions & 1 deletion

File tree

hcloud/networks/client.py

Lines changed: 74 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ def __init__(self, client, data, complete=True):
2121
data['routes'] = routes
2222

2323
from hcloud.servers.client import BoundServer
24-
servers = data.get("servers",[])
24+
servers = data.get("servers", [])
2525
if servers is not None:
2626
servers = [BoundServer(client._client.servers, {"id": server}, complete=False) for server in servers]
2727
data['servers'] = servers
@@ -76,6 +76,36 @@ def get_actions(self, status=None, sort=None):
7676
"""
7777
return self._client.get_actions(self, status, sort)
7878

79+
def add_subnet(self, subnet):
80+
# type: (NetworkSubnet) -> List[BoundAction]
81+
return self._client.add_subnet(self, subnet=subnet)
82+
83+
def remove_subnet(self, subnet):
84+
# type: (NetworkSubnet) -> List[BoundAction]
85+
return self._client.remove_subnet(self, subnet=subnet)
86+
87+
def add_route(self, route):
88+
# type: (NetworkRoute) -> List[BoundAction]
89+
return self._client.add_route(self, route=route)
90+
91+
def remove_route(self, route):
92+
# type: (NetworkRoute) -> List[BoundAction]
93+
return self._client.remove_route(self, route=route)
94+
95+
def change_ip_range(self, ip_range):
96+
# type: (str) -> List[BoundAction]
97+
return self._client.change_ip_range(self, ip_range=ip_range)
98+
99+
def change_protection(self, delete=None):
100+
# type: (Optional[bool]) -> BoundAction
101+
"""Changes the protection configuration of a network.
102+
103+
:param delete: boolean
104+
If True, prevents the network from being deleted
105+
:return: :class:`BoundAction <hcloud.actions.client.BoundAction>`
106+
"""
107+
return self._client.change_protection(self, delete=delete)
108+
79109

80110
class NetworksClient(ClientEntityBase, GetEntityByNameMixin):
81111
results_list_attribute_name = "networks"
@@ -274,3 +304,46 @@ def get_actions(self, network, status=None, sort=None):
274304
return super(NetworksClient, self).get_actions(
275305
network, status=status, sort=sort
276306
)
307+
308+
def add_subnet(self, network, subnet):
309+
# type: (Union[Network, BoundNetwork], NetworkSubnet) -> List[BoundAction]
310+
# TODO
311+
pass
312+
313+
def remove_subnet(self, network, subnet):
314+
# type: (Union[Network, BoundNetwork], NetworkSubnet) -> List[BoundAction]
315+
# TODO
316+
pass
317+
318+
def add_route(self, network, route):
319+
# type: (Union[Network, BoundNetwork], NetworkRoute) -> List[BoundAction]
320+
# TODO
321+
pass
322+
323+
def remove_route(self, network, route):
324+
# type: (Union[Network, BoundNetwork], NetworkRoute) -> List[BoundAction]
325+
# TODO
326+
pass
327+
328+
def change_ip_range(self, network, ip_range):
329+
# type: (Union[Network, BoundNetwork], str) -> List[BoundAction]
330+
# TODO
331+
pass
332+
333+
def change_protection(self, network, delete=None):
334+
# type: (Union[Network, BoundNetwork], Optional[bool]) -> BoundAction
335+
"""Changes the protection configuration of a network.
336+
337+
:param network: :class:`BoundNetwork <hcloud.networks.client.BoundNetwork>` or :class:`Network <hcloud.networks.domain.Network>`
338+
:param delete: boolean
339+
If True, prevents the network from being deleted
340+
:return: :class:`BoundAction <hcloud.actions.client.BoundAction>`
341+
"""
342+
data = {}
343+
if delete is not None:
344+
data.update({"delete": delete})
345+
346+
response = self._client.request(
347+
url="/networks/{network_id}/actions/change_protection".format(network_id=network.id),
348+
method="POST", json=data)
349+
return BoundAction(self._client.actions, response['action'])

hcloud/servers/client.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
from hcloud.images.client import BoundImage
1313
from hcloud.server_types.client import BoundServerType
1414
from hcloud.datacenters.client import BoundDatacenter
15+
from hcloud.networks.client import BoundNetwork # noqa
16+
from hcloud.networks.domain import Network # noqa
1517

1618

1719
class BoundServer(BoundModelBase):
@@ -751,3 +753,18 @@ def request_console(self, server):
751753
method="POST")
752754
return RequestConsoleResponse(action=BoundAction(self._client.actions, response['action']),
753755
wss_url=response['wss_url'], password=response['password'])
756+
757+
def attach_to_network(self, server, network, ip=None, alias_ips=None):
758+
# type: (Union[Server,BoundServer], Union[Network,BoundNetwork],Optional[str], Optional[List[str]]) -> BoundAction
759+
# TODO
760+
pass
761+
762+
def detach_from_network(self, server, network):
763+
# type: (Union[Server,BoundServer], Union[Network,BoundNetwork]) -> BoundAction
764+
# TODO
765+
pass
766+
767+
def change_alias_ips(self, server, network, alias_ips):
768+
# type: (Union[Server,BoundServer], Union[Network,BoundNetwork], List[str]) -> BoundAction
769+
# TODO
770+
pass

0 commit comments

Comments
 (0)