diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 79247dfe..0b28d885 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,10 @@ History ======= +master (XXXX-XX-XX) + +* Feature: Add `mac_address` to Server PrivateNet domain + 1.3.0 (2019-07-10) ------------------ diff --git a/hcloud/servers/client.py b/hcloud/servers/client.py index bb4e7c32..2c5cff1f 100644 --- a/hcloud/servers/client.py +++ b/hcloud/servers/client.py @@ -52,7 +52,7 @@ def __init__(self, client, data, complete=True): private_nets = data.get("private_net") if private_nets: - private_nets = [PrivateNet(network=BoundNetwork(client._client.networks, {"id": private_net['network']}, complete=False), ip=private_net['ip'], alias_ips=private_net['alias_ips']) for private_net in private_nets] + private_nets = [PrivateNet(network=BoundNetwork(client._client.networks, {"id": private_net['network']}, complete=False), ip=private_net['ip'], alias_ips=private_net['alias_ips'], mac_address=private_net['mac_address']) for private_net in private_nets] data['private_net'] = private_nets super(BoundServer, self).__init__(client, data, complete) diff --git a/hcloud/servers/domain.py b/hcloud/servers/domain.py index ad2c6a95..a448c537 100644 --- a/hcloud/servers/domain.py +++ b/hcloud/servers/domain.py @@ -324,18 +324,23 @@ class PrivateNet(BaseDomain): The main IP Address of the server in the Network :param alias_ips: List[str] The alias ips for a server + :param mac_address: str + The mac address of the interface on the server """ __slots__ = ( "network", "ip", - "alias_ips" + "alias_ips", + "mac_address" ) def __init__(self, network, # type: BoundNetwork ip, # type: str alias_ips, # type: List[str] + mac_address, # type: str ): self.network = network self.ip = ip self.alias_ips = alias_ips + self.mac_address = mac_address diff --git a/tests/unit/servers/conftest.py b/tests/unit/servers/conftest.py index 9302941e..25fa02fb 100644 --- a/tests/unit/servers/conftest.py +++ b/tests/unit/servers/conftest.py @@ -33,7 +33,8 @@ def response_simple_server(): { "network": 4711, "ip": "10.1.1.5", - "alias_ips": ["10.1.1.8"] + "alias_ips": ["10.1.1.8"], + "mac_address": "86:00:ff:2a:7d:e1" } ], "server_type": { @@ -450,7 +451,8 @@ def response_simple_servers(): { "network": 4711, "ip": "10.1.1.5", - "alias_ips": ["10.1.1.8"] + "alias_ips": ["10.1.1.8"], + "mac_address": "86:00:ff:2a:7d:e1" } ], "server_type": { @@ -570,7 +572,8 @@ def response_simple_servers(): { "network": 4711, "ip": "10.1.1.7", - "alias_ips": ["10.1.1.99"] + "alias_ips": ["10.1.1.99"], + "mac_address": "86:00:ff:2a:7d:e1" } ], "server_type": { @@ -697,7 +700,8 @@ def response_full_server(): { "network": 4711, "ip": "10.1.1.5", - "alias_ips": ["10.1.1.8"] + "alias_ips": ["10.1.1.8"], + "mac_address": "86:00:ff:2a:7d:e1" } ], "server_type": { diff --git a/tests/unit/servers/test_client.py b/tests/unit/servers/test_client.py index fb487a88..e1e7b570 100644 --- a/tests/unit/servers/test_client.py +++ b/tests/unit/servers/test_client.py @@ -88,6 +88,7 @@ def test_bound_server_init(self, response_full_server): assert isinstance(bound_server.private_net[0], PrivateNet) assert bound_server.private_net[0].network._client == bound_server._client._client.networks assert bound_server.private_net[0].ip == "10.1.1.5" + assert bound_server.private_net[0].mac_address == "86:00:ff:2a:7d:e1" assert len(bound_server.private_net[0].alias_ips) == 1 assert bound_server.private_net[0].alias_ips[0] == "10.1.1.8"