From f7de35acb8e8cb2c42a69f6b0bdd5cde412792de Mon Sep 17 00:00:00 2001 From: Zhiwei Liang Date: Mon, 29 Sep 2025 16:51:19 -0400 Subject: [PATCH 1/5] Rename `interfaces` property to `linode_interfaces` --- linode_api4/objects/linode.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linode_api4/objects/linode.py b/linode_api4/objects/linode.py index fd4f990de..490c13359 100644 --- a/linode_api4/objects/linode.py +++ b/linode_api4/objects/linode.py @@ -2006,7 +2006,7 @@ def interfaces_settings(self) -> LinodeInterfacesSettings: return self._interfaces_settings @property - def interfaces(self) -> List[LinodeInterface]: + def linode_interfaces(self) -> list[LinodeInterface]: """ All interfaces for this Linode. From 3f52e9e8465c6e185b1ec2316298fb44a29a219a Mon Sep 17 00:00:00 2001 From: Zhiwei Liang Date: Mon, 29 Sep 2025 17:06:39 -0400 Subject: [PATCH 2/5] Return `None` when interface generation is not `linode` --- linode_api4/objects/linode.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/linode_api4/objects/linode.py b/linode_api4/objects/linode.py index 490c13359..899a8ef3d 100644 --- a/linode_api4/objects/linode.py +++ b/linode_api4/objects/linode.py @@ -2006,7 +2006,7 @@ def interfaces_settings(self) -> LinodeInterfacesSettings: return self._interfaces_settings @property - def linode_interfaces(self) -> list[LinodeInterface]: + def linode_interfaces(self) -> Optional[list[LinodeInterface]]: """ All interfaces for this Linode. @@ -2015,6 +2015,8 @@ def linode_interfaces(self) -> list[LinodeInterface]: :returns: An ordered list of interfaces under this Linode. """ + if self.interface_generation != "linode": + return None if not hasattr(self, "_interfaces"): result = self._client.get( "{}/interfaces".format(Instance.api_endpoint), From fb9c7ebece0a00ec7609e58b671eae81e8d879c6 Mon Sep 17 00:00:00 2001 From: Zhiwei Liang Date: Mon, 29 Sep 2025 17:12:10 -0400 Subject: [PATCH 3/5] Update docstring --- linode_api4/objects/linode.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/linode_api4/objects/linode.py b/linode_api4/objects/linode.py index 899a8ef3d..49e68d718 100644 --- a/linode_api4/objects/linode.py +++ b/linode_api4/objects/linode.py @@ -2012,7 +2012,8 @@ def linode_interfaces(self) -> Optional[list[LinodeInterface]]: API Documentation: https://techdocs.akamai.com/linode-api/reference/get-linode-interface - :returns: An ordered list of interfaces under this Linode. + :returns: An ordered list of linode interfaces under this Linode. If the linode is with legacy config interfaces, returns None. + :rtype: Optional[list[LinodeInterface]] """ if self.interface_generation != "linode": From 796a314c7c21d8107fb23f3e80cdbea012c338cf Mon Sep 17 00:00:00 2001 From: Zhiwei Liang Date: Tue, 30 Sep 2025 03:28:15 -0400 Subject: [PATCH 4/5] Fix test --- test/unit/objects/linode_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/objects/linode_test.py b/test/unit/objects/linode_test.py index 4945ff423..d20b9f1c0 100644 --- a/test/unit/objects/linode_test.py +++ b/test/unit/objects/linode_test.py @@ -481,7 +481,7 @@ def test_get_interfaces(self): assert instance.interface_generation == InterfaceGeneration.LINODE - interfaces = instance.interfaces + interfaces = instance.linode_interfaces LinodeInterfaceTest.assert_linode_124_interface_123( next(iface for iface in interfaces if iface.id == 123) From 2130c6638227ac419cc0b6356e7d3a867fbf5f2c Mon Sep 17 00:00:00 2001 From: Zhiwei Liang Date: Tue, 30 Sep 2025 03:29:08 -0400 Subject: [PATCH 5/5] Use enum --- linode_api4/objects/linode.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linode_api4/objects/linode.py b/linode_api4/objects/linode.py index 49e68d718..d14261d74 100644 --- a/linode_api4/objects/linode.py +++ b/linode_api4/objects/linode.py @@ -2016,7 +2016,7 @@ def linode_interfaces(self) -> Optional[list[LinodeInterface]]: :rtype: Optional[list[LinodeInterface]] """ - if self.interface_generation != "linode": + if self.interface_generation != InterfaceGeneration.LINODE: return None if not hasattr(self, "_interfaces"): result = self._client.get(