1
0
Fork 0
mirror of https://github.com/ansible-collections/hetzner.hcloud.git synced 2026-02-04 16:11:49 +00:00
hetzner.hcloud/plugins/module_utils/experimental.py
Jonas L. 5394c6f246
feat: add support for Storage Boxes (#676)
##### SUMMARY

We collect all changes for the Storage Box support in this PR. It will
only be merged when everything is implemented through smaller pull
requests targeting the `storage-boxes` branch.

---------

Co-authored-by: Julian Tölle <julian.toelle@hetzner-cloud.de>
2025-12-10 13:18:36 +01:00

41 lines
1.2 KiB
Python

# Copyright: (c) 2025, Hetzner Cloud GmbH <info@hetzner-cloud.de>
from __future__ import annotations
from .hcloud import AnsibleModule
def experimental_warning_function(product: str, maturity: str, url: str):
"""
Create a reusable experimental warning function.
Usage:
product_experimental_warning = experimental_warning_function(
"Product",
"in beta",
"https://docs.hetzner.cloud/changelog#new-product",
)
class AnsibleProduct(AnsibleHCloud):
def __init__(self, module: AnsibleModule):
product_experimental_warning(module)
super().__init__(module)
:param product: Name of the product.
:param maturity: Maturity of the product.
:param url: Changelog URL announcing the product.
"""
message = f"Experimental: {product} is {maturity}, breaking changes may occur within minor releases. See {url} for more details."
def fn(module: AnsibleModule):
module.warn(message)
return fn
storage_box_experimental_warning = experimental_warning_function(
"Storage Box support",
"experimental",
"https://github.com/ansible-collections/hetzner.hcloud/issues/756",
)