1
0
Fork 0
mirror of https://github.com/ansible-collections/hetzner.hcloud.git synced 2026-02-04 08:01:49 +00:00
hetzner.hcloud/plugins/module_utils/vendor/hcloud/placement_groups/domain.py
Jonas L 8a6157e8b2
feat: vendor hcloud python dependency (#244)
* chore: ignore venv directories

* chore: ignore integration test generated inventory

* feat: vendor hcloud package

* import https://github.com/hetznercloud/hcloud-python

* use vendored hcloud in modules

* update integration test requirements

* make vendor script self contained

* chore: add  check-hcloud-vendor pre-commit hook

* pin hcloud version to v.1.24.0

* move vendored __version__.py file to _version.py

* update comment about galaxy-importer filename lint
2023-07-11 11:15:08 +02:00

61 lines
1.8 KiB
Python

try:
from dateutil.parser import isoparse
except ImportError:
isoparse = None
from ..core.domain import BaseDomain
class PlacementGroup(BaseDomain):
"""Placement Group Domain
:param id: int
ID of the Placement Group
:param name: str
Name of the Placement Group
:param labels: dict
User-defined labels (key-value pairs)
:param servers: List[ int ]
List of server IDs assigned to the Placement Group
:param type: str
Type of the Placement Group
:param created: datetime
Point in time when the image was created
"""
__slots__ = ("id", "name", "labels", "servers", "type", "created")
"""Placement Group type spread
spreads all servers in the group on different vhosts
"""
TYPE_SPREAD = "spread"
def __init__(
self, id=None, name=None, labels=None, servers=None, type=None, created=None
):
self.id = id
self.name = name
self.labels = labels
self.servers = servers
self.type = type
self.created = isoparse(created) if created else None
class CreatePlacementGroupResponse(BaseDomain):
"""Create Placement Group Response Domain
:param placement_group: :class:`BoundPlacementGroup <hcloud.placement_groups.client.BoundPlacementGroup>`
The Placement Group which was created
:param action: :class:`BoundAction <hcloud.actions.client.BoundAction>`
The Action which shows the progress of the Placement Group Creation
"""
__slots__ = ("placement_group", "action")
def __init__(
self,
placement_group, # type: BoundPlacementGroup
action, # type: BoundAction
):
self.placement_group = placement_group
self.action = action