From 69339e424f105e76ff95e3385430528a210707a9 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 25 Oct 2022 18:47:49 +0200 Subject: [PATCH] Oracle --- providers/OracleAPI.png | Bin 0 -> 7945 bytes providers/oracle.go | 74 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 providers/OracleAPI.png create mode 100644 providers/oracle.go diff --git a/providers/OracleAPI.png b/providers/OracleAPI.png new file mode 100644 index 0000000000000000000000000000000000000000..41e61867f1ed69288aa2271b91be7235fd3a930f GIT binary patch literal 7945 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 literal 0 HcmV?d00001 diff --git a/providers/oracle.go b/providers/oracle.go new file mode 100644 index 0000000..f6d1ca7 --- /dev/null +++ b/providers/oracle.go @@ -0,0 +1,74 @@ +// 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 "happydns.org/providers" + +import ( + "github.com/StackExchange/dnscontrol/v3/providers" + _ "github.com/StackExchange/dnscontrol/v3/providers/oracle" + + "git.happydns.org/happydomain/model" +) + +type OracleAPI struct { + Compartment string `json:"compartment,omitempty" happydomain:"label=Compartment,placeholder=ORACLE_COMPARTMENT,description=Compartment."` + Fingerprint string `json:"fingerprint,omitempty" happydomain:"label=Fingerprint,placeholder=ORACLE_FINGERPRINT,required,description=Fingerprint."` + PrivateKey string `json:"private_key,omitempty" happydomain:"label=Private hey,placeholder=ORACLE_PRIVATE_KEY,required,description=Private key."` + Region string `json:"region,omitempty" happydomain:"label=Region,placeholder=ORACLE_REGION,required,description=Region."` + TenancyOcid string `json:"tenancy_ocid,omitempty" happydomain:"label=Tenancy OCID,placeholder=ORACLE_TENANCY_OCID,required,description=Tenancy OCID."` + UserOcid string `json:"user_ocid,omitempty" happydomain:"label=User OCID,placeholder=ORACLE_USER_OCID,required,description=User OCID."` +} + +func (s *OracleAPI) NewDNSServiceProvider() (providers.DNSServiceProvider, error) { + config := map[string]string{ + "compartment": s.Compartment, + "fingerprint": s.Fingerprint, + "private_key": s.PrivateKey, + "region": s.Region, + "tenancy_ocid": s.TenancyOcid, + "user_ocid": s.UserOcid, + } + + return providers.CreateDNSProvider(s.DNSControlName(), config, nil) +} + +func (s *OracleAPI) DNSControlName() string { + return "ORACLE" +} + +func init() { + RegisterProvider(func() happydns.Provider { + return &OracleAPI{} + }, ProviderInfos{ + Name: "Oracle Cloud", + Description: "American multinational computer technology corporation headquartered in Austin, Texas", + }) +}