From 3f41dc1a67b823c00d1ed7e130e1f7ce340db256 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 14 Dec 2023 16:36:38 +0100 Subject: [PATCH] New provider from DNSControl: Exoscale --- providers/ExoscaleAPI.png | Bin 0 -> 22632 bytes providers/exoscale.go | 67 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 providers/ExoscaleAPI.png create mode 100644 providers/exoscale.go diff --git a/providers/ExoscaleAPI.png b/providers/ExoscaleAPI.png new file mode 100644 index 0000000000000000000000000000000000000000..34cf914b011c3ec5ac0e71f28738879c9a78b827 GIT binary patch literal 22632 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 literal 0 HcmV?d00001 diff --git a/providers/exoscale.go b/providers/exoscale.go new file mode 100644 index 0000000..ca1fd0a --- /dev/null +++ b/providers/exoscale.go @@ -0,0 +1,67 @@ +// Copyright or © or Copr. happyDNS (2021) +// +// contact@happydomain.org +// +// This software is a computer program whose purpose is to provide a modern +// interface to interact with DNS systems. +// +// This software is governed by the CeCILL license under French law and abiding +// by the rules of distribution of free software. You can use, modify and/or +// redistribute the software under the terms of the CeCILL license as +// circulated by CEA, CNRS and INRIA at the following URL +// "http://www.cecill.info". +// +// As a counterpart to the access to the provider code and rights to copy, modify +// and redistribute granted by the license, users are provided only with a +// limited warranty and the software's author, the holder of the economic +// rights, and the successive licensors have only limited liability. +// +// In this respect, the user's attention is drawn to the risks associated with +// loading, using, modifying and/or developing or reproducing the software by +// the user in light of its specific status of free software, that may mean +// that it is complicated to manipulate, and that also therefore means that it +// is reserved for developers and experienced professionals having in-depth +// computer knowledge. Users are therefore encouraged to load and test the +// software's suitability as regards their requirements in conditions enabling +// the security of their systems and/or data to be ensured and, more generally, +// to use and operate it in the same conditions as regards security. +// +// The fact that you are presently reading this means that you have had +// knowledge of the CeCILL license and that you accept its terms. + +package providers // import "git.happydns.org/happyDomain/providers" + +import ( + "github.com/StackExchange/dnscontrol/v4/providers" + _ "github.com/StackExchange/dnscontrol/v4/providers/exoscale" + + "git.happydns.org/happyDomain/model" +) + +type ExoscaleAPI struct { + ApiKey string `json:"apikey,omitempty" happydomain:"label=API Key,placeholder=xxxxxxxx,required,description=Your API key."` + SecretKey string `json:"secretkey,omitempty" happydomain:"label=Secret Key,placeholder=xxxxxxxx,required,description=Your secret key."` + DnsEndpoint string `json:"dns_endpoint,omitempty" happydomain:"label=DNS endpoint,placeholder=xxxxxxxx,description=DNS endpointy."` +} + +func (s *ExoscaleAPI) NewDNSServiceProvider() (providers.DNSServiceProvider, error) { + config := map[string]string{ + "apikey": s.ApiKey, + "secretkey": s.SecretKey, + "dns-endpoint": s.DnsEndpoint, + } + return providers.CreateDNSProvider(s.DNSControlName(), config, nil) +} + +func (s *ExoscaleAPI) DNSControlName() string { + return "EXOSCALE" +} + +func init() { + RegisterProvider(func() happydns.Provider { + return &ExoscaleAPI{} + }, ProviderInfos{ + Name: "Exoscale", + Description: "Cloud computing provider based in Switzerland, offering infrastructure-as-a-service (IaaS) solutions.", + }) +}