Tower: upload cetmix_tower_ovh 16.0.1.0.1 (via marketplace)
This commit is contained in:
273
addons/cetmix_tower_ovh/README.rst
Normal file
273
addons/cetmix_tower_ovh/README.rst
Normal file
@@ -0,0 +1,273 @@
|
||||
================
|
||||
Cetmix Tower OVH
|
||||
================
|
||||
|
||||
..
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!! This file is generated by oca-gen-addon-readme !!
|
||||
!! changes will be overwritten. !!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!! source digest: sha256:ccd66d74df51fff24d12ccf1aa06e22728f13ce8d5aeacf3968af23e4794f591
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
||||
:target: https://odoo-community.org/page/development-status
|
||||
:alt: Beta
|
||||
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
|
||||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||
:alt: License: AGPL-3
|
||||
.. |badge3| image:: https://img.shields.io/badge/github-cetmix%2Fcetmix--tower-lightgray.png?logo=github
|
||||
:target: https://github.com/cetmix/cetmix-tower/tree/16.0/cetmix_tower_ovh
|
||||
:alt: cetmix/cetmix-tower
|
||||
|
||||
|badge1| |badge2| |badge3|
|
||||
|
||||
This module integrates the OVH Python client, enabling seamless
|
||||
interaction with OVH cloud services within the Cetmix Tower.
|
||||
|
||||
**Table of contents**
|
||||
|
||||
.. contents::
|
||||
:local:
|
||||
|
||||
Use Cases / Context
|
||||
===================
|
||||
|
||||
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.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Setting up OVH Access
|
||||
=====================
|
||||
|
||||
Create OVH API Credentials
|
||||
--------------------------
|
||||
|
||||
To use the OVH integration with Cetmix Tower, you need to create OVH API
|
||||
credentials:
|
||||
|
||||
- Follow the `official OVH
|
||||
documentation <https://docs.ovh.com/gb/en/api/first-steps/>`__
|
||||
(https://docs.ovh.com/gb/en/api/first-steps/) for creating an
|
||||
application and generating API keys
|
||||
- It's recommended to create a dedicated application with appropriate
|
||||
permissions for Cetmix Tower
|
||||
- Store your Application Key, Application Secret, and Consumer Key
|
||||
securely—you'll need them in the next step
|
||||
|
||||
Configure OVH Secrets in Cetmix Tower
|
||||
-------------------------------------
|
||||
|
||||
Create three secrets in Cetmix Tower to store your OVH credentials:
|
||||
|
||||
- Navigate to ``Cetmix Tower > Settings > Keys and Secrets``
|
||||
- Create a new Secret with:
|
||||
|
||||
- Name: ``OVH Application Key``
|
||||
- Reference: ``ovh_application_key``
|
||||
- Key Type: ``Secret``
|
||||
|
||||
- Enter your OVH Application Key in the Secret Value tab
|
||||
- Similarly, create another Secret with:
|
||||
|
||||
- Name: ``OVH Application Secret``
|
||||
- Reference: ``ovh_application_secret``
|
||||
- Key Type: ``Secret``
|
||||
|
||||
- Enter your OVH Application Secret in the Secret Value tab
|
||||
- Finally, create a Secret with:
|
||||
|
||||
- Name: ``OVH Consumer Key``
|
||||
- Reference: ``ovh_consumer_key``
|
||||
- Key Type: ``Secret``
|
||||
|
||||
- Enter your OVH Consumer Key in the Secret Value tab
|
||||
|
||||
..
|
||||
|
||||
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.
|
||||
|
||||
Configure OVH Endpoint
|
||||
----------------------
|
||||
|
||||
Create a variable to define your OVH API endpoint (region):
|
||||
|
||||
- Navigate to ``Cetmix Tower > Settings > Variables``
|
||||
- Create a new Variable with:
|
||||
|
||||
- Name: ``OVH Endpoint``
|
||||
- Reference: ``ovh_endpoint``
|
||||
- Type: ``String``
|
||||
|
||||
- Set your OVH endpoint (e.g., ``ovh-eu``, ``ovh-ca``, ``ovh-us``) as
|
||||
the value
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
Cetmix Tower OVHcloud Command Usage
|
||||
===================================
|
||||
|
||||
**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.
|
||||
|
||||
Example of Cetmix Tower Python Command to Create DNS Records
|
||||
------------------------------------------------------------
|
||||
|
||||
- **Navigate to Command Creation**
|
||||
|
||||
- Go to ``Cetmix Tower > Commands > Commands``
|
||||
- Click the ``Create`` button
|
||||
|
||||
- **Configure Command Settings**
|
||||
|
||||
- Set a descriptive ``Name`` (e.g., "List OVHcloud Instances")
|
||||
- Leave ``Reference`` blank to generate automatically (or set a custom
|
||||
reference)
|
||||
- Select ``Action``: "Execute Python code"
|
||||
- Set ``Access Level``: Choose appropriate level (e.g., "Manager")
|
||||
- Optional: Set ``Default Path`` if needed
|
||||
- Optional: Add ``Tags`` (e.g., "ovh", "cloud", "instance") for better
|
||||
organization
|
||||
|
||||
- **Add Required Variables**
|
||||
|
||||
- In the ``Variables`` tab, add the previously configured variable:
|
||||
|
||||
- ``ovh_endpoint`` (e.g., "ovh-eu")
|
||||
|
||||
- **Add Required Secrets**
|
||||
|
||||
- In the ``Secrets`` field, add the previously configured secrets:
|
||||
|
||||
- ``ovh_application_key``
|
||||
- ``ovh_application_secret``
|
||||
- ``ovh_consumer_key``
|
||||
|
||||
- **Write Python Code**
|
||||
|
||||
- Go to the ``Code`` tab
|
||||
- Enter the following Python code:
|
||||
|
||||
.. code:: python
|
||||
|
||||
# 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**
|
||||
|
||||
- Click the ``Save`` button to create the command
|
||||
|
||||
Running the OVHcloud Instance Command
|
||||
-------------------------------------
|
||||
|
||||
- **Navigate to Server**
|
||||
|
||||
- Go to ``Cetmix Tower > Servers > Servers``
|
||||
- Open the server where you want to run the command
|
||||
|
||||
- **Execute Command from Server**
|
||||
|
||||
- Click the ``Command`` button at the top of the server form
|
||||
- In the popup dialog:
|
||||
|
||||
- Select your OVHcloud instance command from the dropdown
|
||||
- Verify the variable values (if any need adjustment)
|
||||
- Click ``Run`` to execute
|
||||
|
||||
- **View Command Results**
|
||||
|
||||
- After execution, the command log will display showing:
|
||||
|
||||
- The command executed
|
||||
- Execution status
|
||||
- Output message containing OVHcloud instance details if successful
|
||||
|
||||
Changelog
|
||||
=========
|
||||
|
||||
14.0.1.3.0 (2025-07-15)
|
||||
-----------------------
|
||||
|
||||
- Features: Improve the way Python libraries are added using custom
|
||||
modules (4832)
|
||||
|
||||
14.0.1.2.0 (2025-06-12)
|
||||
-----------------------
|
||||
|
||||
- Features: Refactor the library import using the latest updates in the
|
||||
cetmix_tower_server module. (4768)
|
||||
|
||||
Bug Tracker
|
||||
===========
|
||||
|
||||
Bugs are tracked on `GitHub Issues <https://github.com/cetmix/cetmix-tower/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 <https://github.com/cetmix/cetmix-tower/issues/new?body=module:%20cetmix_tower_ovh%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
||||
|
||||
Do not contact contributors directly about support or help with technical issues.
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
||||
* Cetmix
|
||||
* Giovanni Serra
|
||||
|
||||
Maintainers
|
||||
-----------
|
||||
|
||||
.. |maintainer-GSLabIt| image:: https://github.com/GSLabIt.png?size=40px
|
||||
:target: https://github.com/GSLabIt
|
||||
:alt: GSLabIt
|
||||
|
||||
Current maintainer:
|
||||
|
||||
|maintainer-GSLabIt|
|
||||
|
||||
This module is part of the `cetmix/cetmix-tower <https://github.com/cetmix/cetmix-tower/tree/16.0/cetmix_tower_ovh>`_ project on GitHub.
|
||||
|
||||
You are welcome to contribute.
|
||||
Reference in New Issue
Block a user