Maintainers
+Current maintainer:
+ +This module is part of the cetmix/cetmix-tower project on GitHub.
+You are welcome to contribute.
+diff --git a/addons/cetmix_tower_ovh/static/description/index.html b/addons/cetmix_tower_ovh/static/description/index.html new file mode 100644 index 0000000..e4a58ac --- /dev/null +++ b/addons/cetmix_tower_ovh/static/description/index.html @@ -0,0 +1,653 @@ + + +
+ + +This module integrates the OVH Python client, enabling seamless +interaction with OVH cloud services within the Cetmix Tower.
+Table of contents
+Although OVH allows API calls without using an SDK, we found that +integrating the OVH SDK into Cetmix Tower makes provisioning, +configuring, and maintaining OVH instances more convenient for the end +user. However, not all Cetmix Tower users require this functionality, so +to avoid overloading the system, we have included it in a separate +module.
+To use the OVH integration with Cetmix Tower, you need to create OVH API +credentials:
+Create three secrets in Cetmix Tower to store your OVH credentials:
++Note: These secrets will be accessible as +#!cxtower.secret.ovh_application_key!#, +#!cxtower.secret.ovh_application_secret!#, and +#!cxtower.secret.ovh_consumer_key!# in your commands.+
Create a variable to define your OVH API endpoint (region):
++Disclaimer: The following example demonstrates one of many +possible commands you can create and run with this module. The +ovh Python library provides access to the full range of OVHcloud +APIs – this is just a starting point to help you get familiar with +the integration.+
Navigate to Command Creation
+Configure Command Settings
+Add Required Variables
+Add Required Secrets
+Write Python Code
++# List OVHcloud instances using ovh API + result = {"exit_code": 0, "message": None} + +client = ovh.Client( + endpoint={{ ovh_endpoint }}, + application_key=#!cxtower.secret.ovh_application_key!#, + application_secret=#!cxtower.secret.ovh_application_secret!#, + consumer_key=#!cxtower.secret.ovh_consumer_key!# +) + +# Required variables: +# - domain_name: The main domain (e.g., "example.com") +# - subdomain: The subdomain to create (e.g., "test") + +try: + # Create a new subdomain by adding a DNS entry (A record as example) + ip_address = "1.2.3.4" # Replace with the desired IP address + response = client.post( + "/domain/zone/" + domain_name + "/record", + fieldType="A", + subDomain=subdomain, + target=ip_address, + ttl=3600 + ) + # Refresh the zone to apply changes + client.post("/domain/zone/" + domain_name + "/refresh") + result["message"] = "Subdomain '" + subdomain + "." + domain_name + "' created and DNS zone refreshed." +except Exception as e: + result["exit_code"] = 1 + result["message"] = "Error: " + str(e) ++
Save the Command
+Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.
+Do not contact contributors directly about support or help with technical issues.
+Current maintainer:
+ +This module is part of the cetmix/cetmix-tower project on GitHub.
+You are welcome to contribute.
+