Tower: upload cetmix_tower_ovh 16.0.1.0.1 (via marketplace)
This commit is contained in:
180
addons/cetmix_tower_ovh/demo/demo_data.xml
Normal file
180
addons/cetmix_tower_ovh/demo/demo_data.xml
Normal file
@@ -0,0 +1,180 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<odoo noupdate="1">
|
||||||
|
<!-- ===============================================
|
||||||
|
Keys
|
||||||
|
================================================ -->
|
||||||
|
<record id="ovh_application_key" model="cx.tower.key">
|
||||||
|
<field name="name">OVH Application Key</field>
|
||||||
|
<field name="reference">ovh_application_key</field>
|
||||||
|
<field name="key_type">s</field>
|
||||||
|
<field name="secret_value" />
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="ovh_application_secret" model="cx.tower.key">
|
||||||
|
<field name="name">OVH Application Secret</field>
|
||||||
|
<field name="reference">ovh_application_secret</field>
|
||||||
|
<field name="key_type">s</field>
|
||||||
|
<field name="secret_value" />
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="ovh_consumer_key" model="cx.tower.key">
|
||||||
|
<field name="name">OVH Consumer Key</field>
|
||||||
|
<field name="reference">ovh_consumer_key</field>
|
||||||
|
<field name="key_type">s</field>
|
||||||
|
<field name="secret_value" />
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- ===============================================
|
||||||
|
Variables
|
||||||
|
================================================ -->
|
||||||
|
|
||||||
|
|
||||||
|
<record id="variable_ovh_endpoint" model="cx.tower.variable">
|
||||||
|
<field name="name">OVH Endpoint</field>
|
||||||
|
<field name="reference">ovh_endpoint</field>
|
||||||
|
<field name="variable_type">o</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="variable_ovh_zone_name" model="cx.tower.variable">
|
||||||
|
<field name="name">OVH Zone Name</field>
|
||||||
|
<field name="reference">ovh_zone_name</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- ===============================================
|
||||||
|
Global Variable values
|
||||||
|
================================================ -->
|
||||||
|
|
||||||
|
<record id="value_ovh_zone_name" model="cx.tower.variable.value">
|
||||||
|
<field name="variable_id" ref="variable_ovh_zone_name" />
|
||||||
|
<field name="value_char">your_zone.name</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="option_ovh_endpoint_eu" model="cx.tower.variable.option">
|
||||||
|
<field name="variable_id" ref="variable_ovh_endpoint" />
|
||||||
|
<field name="name">ovh-eu</field>
|
||||||
|
<field name="reference">ovh-eu</field>
|
||||||
|
<field name="value_char">ovh-eu</field>
|
||||||
|
<field name="sequence">10</field>
|
||||||
|
</record>
|
||||||
|
<record id="option_ovh_endpoint_us" model="cx.tower.variable.option">
|
||||||
|
<field name="variable_id" ref="variable_ovh_endpoint" />
|
||||||
|
<field name="name">ovh-us</field>
|
||||||
|
<field name="reference">ovh-us</field>
|
||||||
|
<field name="value_char">ovh-us</field>
|
||||||
|
<field name="sequence">20</field>
|
||||||
|
</record>
|
||||||
|
<record id="option_ovh_endpoint_ca" model="cx.tower.variable.option">
|
||||||
|
<field name="variable_id" ref="variable_ovh_endpoint" />
|
||||||
|
<field name="name">ovh-ca</field>
|
||||||
|
<field name="reference">ovh-ca</field>
|
||||||
|
<field name="value_char">ovh-ca</field>
|
||||||
|
<field name="sequence">30</field>
|
||||||
|
</record>
|
||||||
|
<record id="option_ovh_endpoint_soyoustart_eu" model="cx.tower.variable.option">
|
||||||
|
<field name="variable_id" ref="variable_ovh_endpoint" />
|
||||||
|
<field name="name">soyoustart-eu</field>
|
||||||
|
<field name="reference">soyoustart-eu</field>
|
||||||
|
<field name="value_char">soyoustart-eu</field>
|
||||||
|
<field name="sequence">40</field>
|
||||||
|
</record>
|
||||||
|
<record id="option_ovh_endpoint_soyoustart_ca" model="cx.tower.variable.option">
|
||||||
|
<field name="variable_id" ref="variable_ovh_endpoint" />
|
||||||
|
<field name="name">soyoustart-ca</field>
|
||||||
|
<field name="reference">soyoustart-ca</field>
|
||||||
|
<field name="value_char">soyoustart-ca</field>
|
||||||
|
<field name="sequence">50</field>
|
||||||
|
</record>
|
||||||
|
<record id="option_ovh_endpoint_kimsufi_eu" model="cx.tower.variable.option">
|
||||||
|
<field name="variable_id" ref="variable_ovh_endpoint" />
|
||||||
|
<field name="name">kimsufi-eu</field>
|
||||||
|
<field name="reference">kimsufi-eu</field>
|
||||||
|
<field name="value_char">kimsufi-eu</field>
|
||||||
|
<field name="sequence">60</field>
|
||||||
|
</record>
|
||||||
|
<record id="option_ovh_endpoint_kimsufi_ca" model="cx.tower.variable.option">
|
||||||
|
<field name="variable_id" ref="variable_ovh_endpoint" />
|
||||||
|
<field name="name">kimsufi-ca</field>
|
||||||
|
<field name="reference">kimsufi-ca</field>
|
||||||
|
<field name="value_char">kimsufi-ca</field>
|
||||||
|
<field name="sequence">70</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- ===============================================
|
||||||
|
Commands
|
||||||
|
================================================ -->
|
||||||
|
<!-- prettier-ignore-start -->
|
||||||
|
<record id="command_ovh_register_domain" model="cx.tower.command">
|
||||||
|
<field name="name">Register OVH DNS Record</field>
|
||||||
|
<field name="action">python_code</field>
|
||||||
|
<field name="code">
|
||||||
|
# ----------------
|
||||||
|
# Tower properties
|
||||||
|
# ----------------
|
||||||
|
cetmix_tower = env["cetmix.tower"]
|
||||||
|
|
||||||
|
# Ensure the domain in your server URL matches your OVH DNS Zone name!
|
||||||
|
# Example: If your DNS Zone is "example.com", your URL should be "*.example.com"
|
||||||
|
|
||||||
|
instance_url = {{ tower.server.url }}
|
||||||
|
ovh_endpoint = env["cx.tower.variable.option"].get_by_reference("option_ovh_endpoint_eu").value_char
|
||||||
|
ovh_application_key = #!cxtower.secret.ovh_application_key!#
|
||||||
|
ovh_application_secret = #!cxtower.secret.ovh_application_secret!#
|
||||||
|
ovh_consumer_key = #!cxtower.secret.ovh_consumer_key!#
|
||||||
|
ovh_zone_name = {{ ovh_zone_name }}
|
||||||
|
# ----------------
|
||||||
|
# Request settings
|
||||||
|
# ----------------
|
||||||
|
|
||||||
|
path = "/domain/zone/"+ovh_zone_name+"/record"
|
||||||
|
|
||||||
|
# Subdomain extraction with tldextract:
|
||||||
|
sub_domain = tldextract.extract(instance_url).subdomain
|
||||||
|
|
||||||
|
# Send request to Ovh
|
||||||
|
exit_code = 0
|
||||||
|
message = ""
|
||||||
|
|
||||||
|
try:
|
||||||
|
client = ovh.Client(
|
||||||
|
endpoint=ovh_endpoint,
|
||||||
|
application_key=ovh_application_key,
|
||||||
|
application_secret=ovh_application_secret,
|
||||||
|
consumer_key=ovh_consumer_key
|
||||||
|
)
|
||||||
|
records = client.get(path, subDomain=sub_domain, fieldType="A")
|
||||||
|
if not records:
|
||||||
|
records = client.post(
|
||||||
|
path,
|
||||||
|
fieldType="A",
|
||||||
|
subDomain=sub_domain,
|
||||||
|
target={{ tower.server.ipv4 }},
|
||||||
|
ttl=3600
|
||||||
|
)
|
||||||
|
client.post("/domain/zone/" + ovh_zone_name + "/refresh")
|
||||||
|
if records:
|
||||||
|
exit_code = 0
|
||||||
|
message = "subDomain " + sub_domain + " registered"
|
||||||
|
else:
|
||||||
|
exit_code = 0
|
||||||
|
message = "subDomain " + sub_domain + " already exists"
|
||||||
|
except Exception as e:
|
||||||
|
exit_code = 500
|
||||||
|
message = str(e)
|
||||||
|
|
||||||
|
result = {
|
||||||
|
"exit_code": exit_code,
|
||||||
|
"message": message,
|
||||||
|
}
|
||||||
|
</field>
|
||||||
|
<!-- prettier-ignore-end -->
|
||||||
|
<field name="user_ids" eval="[(6, 0, [ref('base.user_admin')])]" />
|
||||||
|
<field name="manager_ids" eval="[(6, 0, [ref('base.user_admin')])]" />
|
||||||
|
<field
|
||||||
|
name="tag_ids"
|
||||||
|
eval="[(6, 0, [ref('cetmix_tower_server.tag_custom')])]"
|
||||||
|
/>
|
||||||
|
<field
|
||||||
|
name="note"
|
||||||
|
>Register or check DNS A record for current server in OVH DNS zone</field>
|
||||||
|
</record>
|
||||||
|
</odoo>
|
||||||
Reference in New Issue
Block a user