mirror of
https://github.com/ansible-collections/hetzner.hcloud.git
synced 2026-02-04 08:01:49 +00:00
wip
This commit is contained in:
parent
a7507bc340
commit
2d19f88856
19 changed files with 34 additions and 25 deletions
|
|
@ -1,3 +1,3 @@
|
|||
from __future__ import annotations
|
||||
|
||||
__version__ = "2.11.0" # x-releaser-pleaser-version
|
||||
__version__ = "2.11.1" # x-releaser-pleaser-version
|
||||
|
|
|
|||
|
|
@ -202,7 +202,7 @@ class CertificatesClient(ResourceClientBase):
|
|||
Used to get certificate by name.
|
||||
:return: :class:`BoundCertificate <hcloud.certificates.client.BoundCertificate>`
|
||||
"""
|
||||
return self._get_first_by(name=name)
|
||||
return self._get_first_by(self.get_list, name=name)
|
||||
|
||||
def create(
|
||||
self,
|
||||
|
|
|
|||
|
|
@ -46,10 +46,8 @@ class ResourceClientBase:
|
|||
|
||||
return results
|
||||
|
||||
def _get_first_by(self, **kwargs): # type: ignore[no-untyped-def]
|
||||
assert hasattr(self, "get_list")
|
||||
# pylint: disable=no-member
|
||||
entities, _ = self.get_list(**kwargs)
|
||||
def _get_first_by(self, list_function: Callable, *args, **kwargs): # type: ignore[no-untyped-def]
|
||||
entities, _ = list_function(*args, **kwargs)
|
||||
return entities[0] if entities else None
|
||||
|
||||
|
||||
|
|
@ -105,10 +103,13 @@ class BoundModelBase:
|
|||
value = getattr(self.data_model, name)
|
||||
return value
|
||||
|
||||
def reload(self) -> None:
|
||||
"""Reloads the model and tries to get all data from the APIx"""
|
||||
def _get_self(self) -> BoundModelBase:
|
||||
assert hasattr(self._client, "get_by_id")
|
||||
bound_model = self._client.get_by_id(self.data_model.id)
|
||||
return self._client.get_by_id(self.data_model.id)
|
||||
|
||||
def reload(self) -> None:
|
||||
"""Reloads the model and tries to get all data from the API"""
|
||||
bound_model = self._get_self()
|
||||
self.data_model = bound_model.data_model
|
||||
self.complete = True
|
||||
|
||||
|
|
|
|||
|
|
@ -115,4 +115,4 @@ class DatacentersClient(ResourceClientBase):
|
|||
Used to get datacenter by name.
|
||||
:return: :class:`BoundDatacenter <hcloud.datacenters.client.BoundDatacenter>`
|
||||
"""
|
||||
return self._get_first_by(name=name)
|
||||
return self._get_first_by(self.get_list, name=name)
|
||||
|
|
|
|||
|
|
@ -351,7 +351,7 @@ class FirewallsClient(ResourceClientBase):
|
|||
Used to get Firewall by name.
|
||||
:return: :class:`BoundFirewall <hcloud.firewalls.client.BoundFirewall>`
|
||||
"""
|
||||
return self._get_first_by(name=name)
|
||||
return self._get_first_by(self.get_list, name=name)
|
||||
|
||||
def create(
|
||||
self,
|
||||
|
|
|
|||
|
|
@ -293,7 +293,7 @@ class FloatingIPsClient(ResourceClientBase):
|
|||
Used to get Floating IP by name.
|
||||
:return: :class:`BoundFloatingIP <hcloud.floating_ips.client.BoundFloatingIP>`
|
||||
"""
|
||||
return self._get_first_by(name=name)
|
||||
return self._get_first_by(self.get_list, name=name)
|
||||
|
||||
def create(
|
||||
self,
|
||||
|
|
|
|||
|
|
@ -329,7 +329,7 @@ class ImagesClient(ResourceClientBase):
|
|||
DeprecationWarning,
|
||||
stacklevel=2,
|
||||
)
|
||||
return self._get_first_by(name=name)
|
||||
return self._get_first_by(self.get_list, name=name)
|
||||
|
||||
def get_by_name_and_architecture(
|
||||
self,
|
||||
|
|
@ -349,6 +349,7 @@ class ImagesClient(ResourceClientBase):
|
|||
:return: :class:`BoundImage <hcloud.images.client.BoundImage>`
|
||||
"""
|
||||
return self._get_first_by(
|
||||
self.get_list,
|
||||
name=name,
|
||||
architecture=[architecture],
|
||||
include_deprecated=include_deprecated,
|
||||
|
|
|
|||
|
|
@ -99,4 +99,4 @@ class IsosClient(ResourceClientBase):
|
|||
Used to get iso by name.
|
||||
:return: :class:`BoundIso <hcloud.isos.client.BoundIso>`
|
||||
"""
|
||||
return self._get_first_by(name=name)
|
||||
return self._get_first_by(self.get_list, name=name)
|
||||
|
|
|
|||
|
|
@ -81,4 +81,4 @@ class LoadBalancerTypesClient(ResourceClientBase):
|
|||
Used to get Load Balancer type by name.
|
||||
:return: :class:`BoundLoadBalancerType <hcloud.load_balancer_types.client.BoundLoadBalancerType>`
|
||||
"""
|
||||
return self._get_first_by(name=name)
|
||||
return self._get_first_by(self.get_list, name=name)
|
||||
|
|
|
|||
|
|
@ -470,7 +470,7 @@ class LoadBalancersClient(ResourceClientBase):
|
|||
Used to get Load Balancer by name.
|
||||
:return: :class:`BoundLoadBalancer <hcloud.load_balancers.client.BoundLoadBalancer>`
|
||||
"""
|
||||
return self._get_first_by(name=name)
|
||||
return self._get_first_by(self.get_list, name=name)
|
||||
|
||||
def create(
|
||||
self,
|
||||
|
|
|
|||
|
|
@ -76,4 +76,4 @@ class LocationsClient(ResourceClientBase):
|
|||
Used to get location by name.
|
||||
:return: :class:`BoundLocation <hcloud.locations.client.BoundLocation>`
|
||||
"""
|
||||
return self._get_first_by(name=name)
|
||||
return self._get_first_by(self.get_list, name=name)
|
||||
|
|
|
|||
|
|
@ -252,7 +252,7 @@ class NetworksClient(ResourceClientBase):
|
|||
Used to get network by name.
|
||||
:return: :class:`BoundNetwork <hcloud.networks.client.BoundNetwork>`
|
||||
"""
|
||||
return self._get_first_by(name=name)
|
||||
return self._get_first_by(self.get_list, name=name)
|
||||
|
||||
def create(
|
||||
self,
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@ class PlacementGroupsClient(ResourceClientBase):
|
|||
Used to get Placement Group by name
|
||||
:return: class:`BoundPlacementGroup <hcloud.placement_groups.client.BoundPlacementGroup>`
|
||||
"""
|
||||
return self._get_first_by(name=name)
|
||||
return self._get_first_by(self.get_list, name=name)
|
||||
|
||||
def create(
|
||||
self,
|
||||
|
|
|
|||
|
|
@ -189,7 +189,7 @@ class PrimaryIPsClient(ResourceClientBase):
|
|||
Used to get Primary IP by name.
|
||||
:return: :class:`BoundPrimaryIP <hcloud.primary_ips.client.BoundPrimaryIP>`
|
||||
"""
|
||||
return self._get_first_by(name=name)
|
||||
return self._get_first_by(self.get_list, name=name)
|
||||
|
||||
def create(
|
||||
self,
|
||||
|
|
|
|||
|
|
@ -99,4 +99,4 @@ class ServerTypesClient(ResourceClientBase):
|
|||
Used to get Server type by name.
|
||||
:return: :class:`BoundServerType <hcloud.server_types.client.BoundServerType>`
|
||||
"""
|
||||
return self._get_first_by(name=name)
|
||||
return self._get_first_by(self.get_list, name=name)
|
||||
|
|
|
|||
|
|
@ -599,7 +599,7 @@ class ServersClient(ResourceClientBase):
|
|||
Used to get server by name.
|
||||
:return: :class:`BoundServer <hcloud.servers.client.BoundServer>`
|
||||
"""
|
||||
return self._get_first_by(name=name)
|
||||
return self._get_first_by(self.get_list, name=name)
|
||||
|
||||
# pylint: disable=too-many-branches,too-many-locals
|
||||
def create(
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ class SSHKeysClient(ResourceClientBase):
|
|||
Used to get ssh key by name.
|
||||
:return: :class:`BoundSSHKey <hcloud.ssh_keys.client.BoundSSHKey>`
|
||||
"""
|
||||
return self._get_first_by(name=name)
|
||||
return self._get_first_by(self.get_list, name=name)
|
||||
|
||||
def get_by_fingerprint(self, fingerprint: str) -> BoundSSHKey | None:
|
||||
"""Get ssh key by fingerprint
|
||||
|
|
@ -130,7 +130,7 @@ class SSHKeysClient(ResourceClientBase):
|
|||
Used to get ssh key by fingerprint.
|
||||
:return: :class:`BoundSSHKey <hcloud.ssh_keys.client.BoundSSHKey>`
|
||||
"""
|
||||
return self._get_first_by(fingerprint=fingerprint)
|
||||
return self._get_first_by(self.get_list, fingerprint=fingerprint)
|
||||
|
||||
def create(
|
||||
self,
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ class VolumesClient(ResourceClientBase):
|
|||
Used to get volume by name.
|
||||
:return: :class:`BoundVolume <hcloud.volumes.client.BoundVolume>`
|
||||
"""
|
||||
return self._get_first_by(name=name)
|
||||
return self._get_first_by(self.get_list, name=name)
|
||||
|
||||
def create(
|
||||
self,
|
||||
|
|
|
|||
|
|
@ -406,6 +406,13 @@ class BoundZoneRRSet(BoundModelBase, ZoneRRSet):
|
|||
|
||||
super().__init__(client, data, complete)
|
||||
|
||||
def _get_self(self) -> BoundZoneRRSet:
|
||||
return self._client.get_rrset(
|
||||
self.data_model.zone,
|
||||
self.data_model.name,
|
||||
self.data_model.type,
|
||||
)
|
||||
|
||||
def update_rrset(
|
||||
self,
|
||||
*,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue