Remove Akamai (eDNS SOAP API) backend
The Akamai eDNS SOAP API this backend uses no longer exists at Akamai. Related-Bug: 1946340 Change-Id: I6545781f263c6a3d124364785aedcf2518116485
This commit is contained in:
committed by
Michael Johnson
parent
897fc7925b
commit
771197c2f3
@@ -1,259 +0,0 @@
|
|||||||
# Copyright 2012-2015 Hewlett-Packard Development Company, L.P.
|
|
||||||
#
|
|
||||||
# Author: Kiall Mac Innes <kiall@hpe.com>
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
from oslo_log import log as logging
|
|
||||||
from oslo_config import cfg
|
|
||||||
from oslo_utils import importutils
|
|
||||||
|
|
||||||
from designate import exceptions
|
|
||||||
from designate import utils
|
|
||||||
from designate.backend import base
|
|
||||||
|
|
||||||
|
|
||||||
try:
|
|
||||||
SudsClient = importutils.import_class("suds.client.Client")
|
|
||||||
HttpAuthenticated = importutils.import_class(
|
|
||||||
"suds.transport.https.HttpAuthenticated")
|
|
||||||
|
|
||||||
except ImportError:
|
|
||||||
SudsClient = None
|
|
||||||
|
|
||||||
class HttpAuthenticated(object):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
|
||||||
CONF = cfg.CONF
|
|
||||||
|
|
||||||
|
|
||||||
class EnhancedDNSException(exceptions.Backend):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class DelegationExists(exceptions.BadRequest, EnhancedDNSException):
|
|
||||||
"""
|
|
||||||
Raised when an attempt to delete a zone which is still delegated to Akamai
|
|
||||||
is made
|
|
||||||
"""
|
|
||||||
error_type = 'delegation_exists'
|
|
||||||
|
|
||||||
|
|
||||||
class DuplicateZone(exceptions.DuplicateZone, EnhancedDNSException):
|
|
||||||
"""
|
|
||||||
Raised when an attempt to create a zone which is registered to another
|
|
||||||
Akamai account is made
|
|
||||||
"""
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class Forbidden(exceptions.Forbidden, EnhancedDNSException):
|
|
||||||
"""
|
|
||||||
Raised when an attempt to modify a zone which is registered to another
|
|
||||||
Akamai account is made.
|
|
||||||
|
|
||||||
This appears to be returned when creating a new subzone of zone which
|
|
||||||
already exists in another Akamai account.
|
|
||||||
"""
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class EnhancedDNSHttpAuthenticated(HttpAuthenticated):
|
|
||||||
def addenhanceddnsheaders(self, request):
|
|
||||||
request.headers['Pragma'] = ('akamai-x-get-request-id, '
|
|
||||||
'akamai-x-cache-on, '
|
|
||||||
'akamai-x-cache-remote-on, '
|
|
||||||
'akamai-x-get-cache-key')
|
|
||||||
|
|
||||||
def logenhanceddnsheaders(self, response):
|
|
||||||
request_id = response.headers.get('x-akamai-request-id', '-')
|
|
||||||
cache = response.headers.get('x-cache', '-')
|
|
||||||
cache_key = response.headers.get('x-cache-key', '-')
|
|
||||||
cache_remote = response.headers.get('x-cache-remote', '-')
|
|
||||||
|
|
||||||
LOG.debug('Akamai Request-ID: %s, Cache-Key: %s, Cache: %s, '
|
|
||||||
'Cache-Remote: %s', request_id, cache_key, cache,
|
|
||||||
cache_remote)
|
|
||||||
|
|
||||||
def send(self, request):
|
|
||||||
self.addenhanceddnsheaders(request)
|
|
||||||
|
|
||||||
response = HttpAuthenticated.send(self, request)
|
|
||||||
|
|
||||||
self.logenhanceddnsheaders(response)
|
|
||||||
|
|
||||||
return response
|
|
||||||
|
|
||||||
|
|
||||||
class EnhancedDNSClient(object):
|
|
||||||
"""EnhancedDNS SOAP API Client"""
|
|
||||||
|
|
||||||
def __init__(self, username, password):
|
|
||||||
# Ensure Suds (or suds-jerko) have been installed
|
|
||||||
if SudsClient is None:
|
|
||||||
raise EnhancedDNSException(
|
|
||||||
"Dependency missing, please install suds or suds-jurko")
|
|
||||||
|
|
||||||
# Prepare a SUDS transport with the appropriate credentials
|
|
||||||
transport = EnhancedDNSHttpAuthenticated(
|
|
||||||
username=username,
|
|
||||||
password=password,
|
|
||||||
proxy=utils.get_proxies())
|
|
||||||
|
|
||||||
# Prepare a SUDS client
|
|
||||||
self.client = SudsClient(CONF['backend:akamai'].enhanceddns_wsdl,
|
|
||||||
transport=transport)
|
|
||||||
|
|
||||||
def buildZone(self, zoneName, masters, endCustomerId, tsigKeyName=None,
|
|
||||||
tsigKey=None, tsigAlgorithm=None):
|
|
||||||
zone = self.client.factory.create('ns3:Zone')
|
|
||||||
|
|
||||||
# Set some defaults
|
|
||||||
zone.transferMode = "axfr"
|
|
||||||
zone.type = "edns"
|
|
||||||
zone.notify = 1
|
|
||||||
zone.dnssec = False
|
|
||||||
|
|
||||||
# Set the remaining options
|
|
||||||
zone.zoneName = self._sanitizeZoneName(zoneName)
|
|
||||||
zone.masters = masters
|
|
||||||
zone.tsigKeyName = tsigKeyName
|
|
||||||
zone.tsigKey = tsigKey
|
|
||||||
zone.tsigAlgorithm = tsigAlgorithm
|
|
||||||
zone.endCustomerId = endCustomerId
|
|
||||||
|
|
||||||
return zone
|
|
||||||
|
|
||||||
def getZone(self, zoneName):
|
|
||||||
LOG.debug("Performing getZone with zoneName: %s", zoneName)
|
|
||||||
zoneName = self._sanitizeZoneName(zoneName)
|
|
||||||
|
|
||||||
try:
|
|
||||||
return self.client.service.getZone(zoneName=zoneName)
|
|
||||||
except Exception as e:
|
|
||||||
raise EnhancedDNSException('Akamai Communication Failure: %s', e)
|
|
||||||
|
|
||||||
def setZones(self, zones):
|
|
||||||
LOG.debug("Performing setZones")
|
|
||||||
try:
|
|
||||||
return self.client.service.setZones(zones=zones)
|
|
||||||
except Exception as e:
|
|
||||||
if 'You do not have permission to view this zone' in str(e):
|
|
||||||
raise DuplicateZone()
|
|
||||||
elif 'You do not have access to edit this zone' in str(e):
|
|
||||||
raise Forbidden()
|
|
||||||
elif 'basic auth failed' in str(e):
|
|
||||||
raise exceptions.ConfigurationError(
|
|
||||||
'Invalid Akamai credentials')
|
|
||||||
else:
|
|
||||||
raise EnhancedDNSException('Akamai Communication Failure: %s'
|
|
||||||
% e)
|
|
||||||
|
|
||||||
def setZone(self, zone):
|
|
||||||
LOG.debug("Performing setZone with zoneName: %s", zone.zoneName)
|
|
||||||
try:
|
|
||||||
self.client.service.setZone(zone=zone)
|
|
||||||
except Exception as e:
|
|
||||||
if 'You do not have permission to view this zone' in str(e):
|
|
||||||
raise DuplicateZone()
|
|
||||||
elif 'You do not have access to edit this zone' in str(e):
|
|
||||||
raise Forbidden()
|
|
||||||
elif 'basic auth failed' in str(e):
|
|
||||||
raise exceptions.ConfigurationError(
|
|
||||||
'Invalid Akamai credentials')
|
|
||||||
else:
|
|
||||||
raise EnhancedDNSException('Akamai Communication Failure: %s'
|
|
||||||
% e)
|
|
||||||
|
|
||||||
def deleteZone(self, zoneName):
|
|
||||||
LOG.debug("Performing deleteZone with zoneName: %s", zoneName)
|
|
||||||
zoneName = self._sanitizeZoneName(zoneName)
|
|
||||||
|
|
||||||
self.deleteZones(zoneNames=[zoneName])
|
|
||||||
|
|
||||||
def deleteZones(self, zoneNames):
|
|
||||||
LOG.debug("Performing deleteZones with zoneNames: %r", zoneNames)
|
|
||||||
zoneNames = [self._sanitizeZoneName(zN) for zN in zoneNames]
|
|
||||||
|
|
||||||
try:
|
|
||||||
self.client.service.deleteZones(zoneNames=zoneNames)
|
|
||||||
except Exception as e:
|
|
||||||
# *READ THIS SECTION BEFORE MAKING ANY CHANGES*
|
|
||||||
# Added 01/2017 by Graham Hayes.
|
|
||||||
# If you have run a spell checking tool against the repo, and it
|
|
||||||
# changes the line below - the patch will get -2'd.
|
|
||||||
# This is matching a string that comes back from the akamai API.
|
|
||||||
# If the akamai API changes - then this should change, but no
|
|
||||||
# other reason.
|
|
||||||
if 'Could not retrive object ID for zone' in str(e):
|
|
||||||
# The zone has already been purged, ignore and move on
|
|
||||||
pass
|
|
||||||
elif 'The following zones are still delegated to Akamai' in str(e):
|
|
||||||
raise DelegationExists()
|
|
||||||
elif 'basic auth failed' in str(e):
|
|
||||||
raise exceptions.ConfigurationError(
|
|
||||||
'Invalid Akamai credentials')
|
|
||||||
else:
|
|
||||||
raise EnhancedDNSException('Akamai Communication Failure: %s'
|
|
||||||
% e)
|
|
||||||
|
|
||||||
def _sanitizeZoneName(self, zoneName):
|
|
||||||
return zoneName.rstrip('.').lower()
|
|
||||||
|
|
||||||
|
|
||||||
def build_zone(client, target, zone):
|
|
||||||
masters = [m.host for m in target.masters]
|
|
||||||
|
|
||||||
if target.options.get("tsig_key_name", None):
|
|
||||||
return client.buildZone(
|
|
||||||
zone.name,
|
|
||||||
masters,
|
|
||||||
zone.id,
|
|
||||||
target.options.get("tsig_key_name", None),
|
|
||||||
target.options.get("tsig_key_secret", None),
|
|
||||||
target.options.get("tsig_key_algorithm", None))
|
|
||||||
else:
|
|
||||||
return client.buildZone(
|
|
||||||
zone.name,
|
|
||||||
masters,
|
|
||||||
zone.id)
|
|
||||||
|
|
||||||
|
|
||||||
class AkamaiBackend(base.Backend):
|
|
||||||
__plugin_name__ = 'akamai'
|
|
||||||
|
|
||||||
__backend_status__ = 'untested'
|
|
||||||
|
|
||||||
def __init__(self, target):
|
|
||||||
super(AkamaiBackend, self).__init__(target)
|
|
||||||
|
|
||||||
self.username = self.options.get('username')
|
|
||||||
self.password = self.options.get('password')
|
|
||||||
|
|
||||||
self.client = EnhancedDNSClient(self.username, self.password)
|
|
||||||
|
|
||||||
for m in self.masters:
|
|
||||||
if m.port != 53:
|
|
||||||
raise exceptions.ConfigurationError(
|
|
||||||
"Akamai only supports mDNS instances on port 53")
|
|
||||||
|
|
||||||
def create_zone(self, context, zone):
|
|
||||||
"""Create a DNS zone"""
|
|
||||||
zone = build_zone(self.client, self.target, zone)
|
|
||||||
|
|
||||||
self.client.setZone(zone=zone)
|
|
||||||
|
|
||||||
def delete_zone(self, context, zone):
|
|
||||||
"""Delete a DNS zone"""
|
|
||||||
self.client.deleteZone(zoneName=zone['name'])
|
|
||||||
@@ -14,7 +14,6 @@
|
|||||||
from oslo_config import cfg
|
from oslo_config import cfg
|
||||||
|
|
||||||
from designate.conf import base # noqa
|
from designate.conf import base # noqa
|
||||||
from designate.conf import akamai
|
|
||||||
from designate.conf import agent
|
from designate.conf import agent
|
||||||
from designate.conf import api
|
from designate.conf import api
|
||||||
from designate.conf import bind9
|
from designate.conf import bind9
|
||||||
@@ -41,7 +40,6 @@ from designate.conf import worker
|
|||||||
CONF = cfg.CONF
|
CONF = cfg.CONF
|
||||||
|
|
||||||
base.register_opts(CONF)
|
base.register_opts(CONF)
|
||||||
akamai.register_opts(CONF)
|
|
||||||
agent.register_opts(CONF)
|
agent.register_opts(CONF)
|
||||||
api.register_opts(CONF)
|
api.register_opts(CONF)
|
||||||
bind9.register_opts(CONF)
|
bind9.register_opts(CONF)
|
||||||
|
|||||||
@@ -1,47 +0,0 @@
|
|||||||
# Copyright 2012-2015 Hewlett-Packard Development Company, L.P.
|
|
||||||
#
|
|
||||||
# Author: Kiall Mac Innes <kiall@hpe.com>
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
import os
|
|
||||||
|
|
||||||
from oslo_config import cfg
|
|
||||||
|
|
||||||
WSDL_PATH = os.path.abspath(
|
|
||||||
os.path.join(
|
|
||||||
os.path.dirname(__file__), '..', 'resources', 'wsdl', 'EnhancedDNS.xml'
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
AKAMAI_GROUP = cfg.OptGroup(
|
|
||||||
name='backend:akamai',
|
|
||||||
title='Backend options for Akamai'
|
|
||||||
)
|
|
||||||
|
|
||||||
AKAMAI_OPTS = [
|
|
||||||
cfg.StrOpt('enhanceddns_wsdl',
|
|
||||||
default='file://%s' % WSDL_PATH,
|
|
||||||
sample_default=os.path.join('/path', 'to', 'EnhancedDNS.xml'),
|
|
||||||
help='Akamai EnhancedDNS WSDL URL'),
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
def register_opts(conf):
|
|
||||||
conf.register_group(AKAMAI_GROUP)
|
|
||||||
conf.register_opts(AKAMAI_OPTS, group=AKAMAI_GROUP)
|
|
||||||
|
|
||||||
|
|
||||||
def list_opts():
|
|
||||||
return {
|
|
||||||
AKAMAI_GROUP: AKAMAI_OPTS,
|
|
||||||
}
|
|
||||||
@@ -1,238 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:akaawsdt="https://control.akamai.com/AWS.xsd" xmlns:akaedns="https://control.akamai.com/2007/May/EnhancedDNS.xsd" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:zoneinfo="https://control.akamai.com/Edns.xsd" targetNamespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd">
|
|
||||||
<!--WSDL created by Apache Axis version: 1.3
|
|
||||||
Built on Jan 26, 2006 (05:12:02 PST)-->
|
|
||||||
<wsdl:types>
|
|
||||||
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd">
|
|
||||||
<import namespace="https://control.akamai.com/AWS.xsd" />
|
|
||||||
<import namespace="https://control.akamai.com/Edns.xsd" />
|
|
||||||
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
|
|
||||||
<complexType name="ArrayOfString">
|
|
||||||
<complexContent>
|
|
||||||
<restriction base="soapenc:Array">
|
|
||||||
<attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]" />
|
|
||||||
</restriction>
|
|
||||||
</complexContent>
|
|
||||||
</complexType>
|
|
||||||
<complexType name="ArrayOfZone">
|
|
||||||
<complexContent>
|
|
||||||
<restriction base="soapenc:Array">
|
|
||||||
<attribute ref="soapenc:arrayType" wsdl:arrayType="zoneinfo:Zone[]" />
|
|
||||||
</restriction>
|
|
||||||
</complexContent>
|
|
||||||
</complexType>
|
|
||||||
</schema>
|
|
||||||
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="https://control.akamai.com/Edns.xsd">
|
|
||||||
<import namespace="https://control.akamai.com/AWS.xsd" />
|
|
||||||
<import namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" />
|
|
||||||
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
|
|
||||||
<complexType name="Zone">
|
|
||||||
<sequence>
|
|
||||||
<element name="currentDNSKEYRecord" nillable="true" type="xsd:string" />
|
|
||||||
<element name="currentDSRecord" nillable="true" type="xsd:string" />
|
|
||||||
<element name="currentKeyDate" nillable="true" type="xsd:dateTime" />
|
|
||||||
<element name="deletePending" type="xsd:boolean" />
|
|
||||||
<element name="deleteRequested" nillable="true" type="xsd:dateTime" />
|
|
||||||
<element name="dnssec" type="xsd:boolean" />
|
|
||||||
<element name="endCustomerId" nillable="true" type="xsd:string" />
|
|
||||||
<element name="lastAttempt" nillable="true" type="xsd:dateTime" />
|
|
||||||
<element name="lastModifiedDate" nillable="true" type="xsd:dateTime" />
|
|
||||||
<element name="lastStatus" nillable="true" type="xsd:string" />
|
|
||||||
<element name="lastSuccess" nillable="true" type="xsd:dateTime" />
|
|
||||||
<element name="masters" nillable="true" type="akaedns:ArrayOfString" />
|
|
||||||
<element name="newDNSKEYRecord" nillable="true" type="xsd:string" />
|
|
||||||
<element name="newDSRecord" nillable="true" type="xsd:string" />
|
|
||||||
<element name="newKeyDate" nillable="true" type="xsd:dateTime" />
|
|
||||||
<element name="notify" type="xsd:int" />
|
|
||||||
<element name="toplevels" nillable="true" type="akaedns:ArrayOfString" />
|
|
||||||
<element name="transferMode" nillable="true" type="xsd:string" />
|
|
||||||
<element name="tsigAlgorithm" nillable="true" type="xsd:string" />
|
|
||||||
<element name="tsigKey" nillable="true" type="xsd:string" />
|
|
||||||
<element name="tsigKeyName" nillable="true" type="xsd:string" />
|
|
||||||
<element name="type" nillable="true" type="xsd:string" />
|
|
||||||
<element name="zoneName" nillable="true" type="xsd:string" />
|
|
||||||
</sequence>
|
|
||||||
</complexType>
|
|
||||||
</schema>
|
|
||||||
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="https://control.akamai.com/AWS.xsd">
|
|
||||||
<import namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" />
|
|
||||||
<import namespace="https://control.akamai.com/Edns.xsd" />
|
|
||||||
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
|
|
||||||
<complexType name="AWSFault">
|
|
||||||
<sequence />
|
|
||||||
</complexType>
|
|
||||||
</schema>
|
|
||||||
</wsdl:types>
|
|
||||||
<wsdl:message name="reassignTopLevelsResponse">
|
|
||||||
<wsdl:part name="reassignTopLevelsReturn" type="xsd:boolean" />
|
|
||||||
</wsdl:message>
|
|
||||||
<wsdl:message name="setZonesRequest">
|
|
||||||
<wsdl:part name="zones" type="akaedns:ArrayOfZone" />
|
|
||||||
</wsdl:message>
|
|
||||||
<wsdl:message name="getZoneResponse">
|
|
||||||
<wsdl:part name="getZoneReturn" type="zoneinfo:Zone" />
|
|
||||||
</wsdl:message>
|
|
||||||
<wsdl:message name="cancelDeleteZonesResponse">
|
|
||||||
<wsdl:part name="cancelDeleteZonesReturn" type="xsd:boolean" />
|
|
||||||
</wsdl:message>
|
|
||||||
<wsdl:message name="deleteZonesResponse">
|
|
||||||
<wsdl:part name="deleteZonesReturn" type="xsd:boolean" />
|
|
||||||
</wsdl:message>
|
|
||||||
<wsdl:message name="getZonesRequest" />
|
|
||||||
<wsdl:message name="AWSFault">
|
|
||||||
<wsdl:part name="fault" type="akaawsdt:AWSFault" />
|
|
||||||
</wsdl:message>
|
|
||||||
<wsdl:message name="setZoneResponse">
|
|
||||||
<wsdl:part name="setZoneReturn" type="xsd:boolean" />
|
|
||||||
</wsdl:message>
|
|
||||||
<wsdl:message name="reassignTopLevelsRequest">
|
|
||||||
<wsdl:part name="zones" type="akaedns:ArrayOfZone" />
|
|
||||||
</wsdl:message>
|
|
||||||
<wsdl:message name="getZoneRequest">
|
|
||||||
<wsdl:part name="zoneName" type="xsd:string" />
|
|
||||||
</wsdl:message>
|
|
||||||
<wsdl:message name="setZonesResponse">
|
|
||||||
<wsdl:part name="setZonesReturn" type="xsd:boolean" />
|
|
||||||
</wsdl:message>
|
|
||||||
<wsdl:message name="cancelDeleteZonesRequest">
|
|
||||||
<wsdl:part name="zoneNames" type="akaedns:ArrayOfString" />
|
|
||||||
</wsdl:message>
|
|
||||||
<wsdl:message name="deleteZonesRequest">
|
|
||||||
<wsdl:part name="zoneNames" type="akaedns:ArrayOfString" />
|
|
||||||
</wsdl:message>
|
|
||||||
<wsdl:message name="getZonesResponse">
|
|
||||||
<wsdl:part name="getZonesReturn" type="akaedns:ArrayOfZone" />
|
|
||||||
</wsdl:message>
|
|
||||||
<wsdl:message name="setZoneRequest">
|
|
||||||
<wsdl:part name="zone" type="zoneinfo:Zone" />
|
|
||||||
</wsdl:message>
|
|
||||||
<wsdl:portType name="EDNSService">
|
|
||||||
<wsdl:operation name="getZone" parameterOrder="zoneName">
|
|
||||||
<wsdl:input message="akaedns:getZoneRequest" name="getZoneRequest" />
|
|
||||||
<wsdl:output message="akaedns:getZoneResponse" name="getZoneResponse" />
|
|
||||||
<wsdl:fault message="akaedns:AWSFault" name="AWSFault" />
|
|
||||||
</wsdl:operation>
|
|
||||||
<wsdl:operation name="setZone" parameterOrder="zone">
|
|
||||||
<wsdl:input message="akaedns:setZoneRequest" name="setZoneRequest" />
|
|
||||||
<wsdl:output message="akaedns:setZoneResponse" name="setZoneResponse" />
|
|
||||||
<wsdl:fault message="akaedns:AWSFault" name="AWSFault" />
|
|
||||||
</wsdl:operation>
|
|
||||||
<wsdl:operation name="getZones">
|
|
||||||
<wsdl:input message="akaedns:getZonesRequest" name="getZonesRequest" />
|
|
||||||
<wsdl:output message="akaedns:getZonesResponse" name="getZonesResponse" />
|
|
||||||
<wsdl:fault message="akaedns:AWSFault" name="AWSFault" />
|
|
||||||
</wsdl:operation>
|
|
||||||
<wsdl:operation name="setZones" parameterOrder="zones">
|
|
||||||
<wsdl:input message="akaedns:setZonesRequest" name="setZonesRequest" />
|
|
||||||
<wsdl:output message="akaedns:setZonesResponse" name="setZonesResponse" />
|
|
||||||
<wsdl:fault message="akaedns:AWSFault" name="AWSFault" />
|
|
||||||
</wsdl:operation>
|
|
||||||
<wsdl:operation name="reassignTopLevels" parameterOrder="zones">
|
|
||||||
<wsdl:input message="akaedns:reassignTopLevelsRequest" name="reassignTopLevelsRequest" />
|
|
||||||
<wsdl:output message="akaedns:reassignTopLevelsResponse" name="reassignTopLevelsResponse" />
|
|
||||||
<wsdl:fault message="akaedns:AWSFault" name="AWSFault" />
|
|
||||||
</wsdl:operation>
|
|
||||||
<wsdl:operation name="deleteZones" parameterOrder="zoneNames">
|
|
||||||
<wsdl:input message="akaedns:deleteZonesRequest" name="deleteZonesRequest" />
|
|
||||||
<wsdl:output message="akaedns:deleteZonesResponse" name="deleteZonesResponse" />
|
|
||||||
<wsdl:fault message="akaedns:AWSFault" name="AWSFault" />
|
|
||||||
</wsdl:operation>
|
|
||||||
<wsdl:operation name="cancelDeleteZones" parameterOrder="zoneNames">
|
|
||||||
<wsdl:input message="akaedns:cancelDeleteZonesRequest" name="cancelDeleteZonesRequest" />
|
|
||||||
<wsdl:output message="akaedns:cancelDeleteZonesResponse" name="cancelDeleteZonesResponse" />
|
|
||||||
<wsdl:fault message="akaedns:AWSFault" name="AWSFault" />
|
|
||||||
</wsdl:operation>
|
|
||||||
</wsdl:portType>
|
|
||||||
<wsdl:binding name="EnhancedDNS" type="akaedns:EDNSService">
|
|
||||||
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
|
|
||||||
<wsdl:operation name="getZone">
|
|
||||||
<wsdlsoap:operation soapAction="" />
|
|
||||||
<wsdl:input name="getZoneRequest">
|
|
||||||
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:input>
|
|
||||||
<wsdl:output name="getZoneResponse">
|
|
||||||
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:output>
|
|
||||||
<wsdl:fault name="AWSFault">
|
|
||||||
<wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="AWSFault" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:fault>
|
|
||||||
</wsdl:operation>
|
|
||||||
<wsdl:operation name="setZone">
|
|
||||||
<wsdlsoap:operation soapAction="" />
|
|
||||||
<wsdl:input name="setZoneRequest">
|
|
||||||
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:input>
|
|
||||||
<wsdl:output name="setZoneResponse">
|
|
||||||
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:output>
|
|
||||||
<wsdl:fault name="AWSFault">
|
|
||||||
<wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="AWSFault" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:fault>
|
|
||||||
</wsdl:operation>
|
|
||||||
<wsdl:operation name="getZones">
|
|
||||||
<wsdlsoap:operation soapAction="" />
|
|
||||||
<wsdl:input name="getZonesRequest">
|
|
||||||
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:input>
|
|
||||||
<wsdl:output name="getZonesResponse">
|
|
||||||
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:output>
|
|
||||||
<wsdl:fault name="AWSFault">
|
|
||||||
<wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="AWSFault" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:fault>
|
|
||||||
</wsdl:operation>
|
|
||||||
<wsdl:operation name="setZones">
|
|
||||||
<wsdlsoap:operation soapAction="" />
|
|
||||||
<wsdl:input name="setZonesRequest">
|
|
||||||
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:input>
|
|
||||||
<wsdl:output name="setZonesResponse">
|
|
||||||
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:output>
|
|
||||||
<wsdl:fault name="AWSFault">
|
|
||||||
<wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="AWSFault" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:fault>
|
|
||||||
</wsdl:operation>
|
|
||||||
<wsdl:operation name="reassignTopLevels">
|
|
||||||
<wsdlsoap:operation soapAction="" />
|
|
||||||
<wsdl:input name="reassignTopLevelsRequest">
|
|
||||||
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:input>
|
|
||||||
<wsdl:output name="reassignTopLevelsResponse">
|
|
||||||
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:output>
|
|
||||||
<wsdl:fault name="AWSFault">
|
|
||||||
<wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="AWSFault" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:fault>
|
|
||||||
</wsdl:operation>
|
|
||||||
<wsdl:operation name="deleteZones">
|
|
||||||
<wsdlsoap:operation soapAction="" />
|
|
||||||
<wsdl:input name="deleteZonesRequest">
|
|
||||||
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:input>
|
|
||||||
<wsdl:output name="deleteZonesResponse">
|
|
||||||
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:output>
|
|
||||||
<wsdl:fault name="AWSFault">
|
|
||||||
<wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="AWSFault" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:fault>
|
|
||||||
</wsdl:operation>
|
|
||||||
<wsdl:operation name="cancelDeleteZones">
|
|
||||||
<wsdlsoap:operation soapAction="" />
|
|
||||||
<wsdl:input name="cancelDeleteZonesRequest">
|
|
||||||
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:input>
|
|
||||||
<wsdl:output name="cancelDeleteZonesResponse">
|
|
||||||
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:output>
|
|
||||||
<wsdl:fault name="AWSFault">
|
|
||||||
<wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="AWSFault" namespace="https://control.akamai.com/2007/May/EnhancedDNS.xsd" use="encoded" />
|
|
||||||
</wsdl:fault>
|
|
||||||
</wsdl:operation>
|
|
||||||
</wsdl:binding>
|
|
||||||
<wsdl:service name="EnhancedDNS">
|
|
||||||
<wsdl:port binding="akaedns:EnhancedDNS" name="EnhancedDNS">
|
|
||||||
<wsdlsoap:address location="https://control.akamai.com/webservices/services/EnhancedDNS" />
|
|
||||||
</wsdl:port>
|
|
||||||
</wsdl:service>
|
|
||||||
</wsdl:definitions>
|
|
||||||
@@ -1,150 +0,0 @@
|
|||||||
# Configure the Akamai backend
|
|
||||||
|
|
||||||
# Requirements:
|
|
||||||
# An active Akamai account / contract will be requied to use this DevStack
|
|
||||||
# plugin.
|
|
||||||
|
|
||||||
# Enable with:
|
|
||||||
# DESIGNATE_BACKEND_DRIVER=akamai
|
|
||||||
|
|
||||||
# Dependencies:
|
|
||||||
# ``functions`` file
|
|
||||||
# ``designate`` configuration
|
|
||||||
|
|
||||||
# install_designate_backend - install any external requirements
|
|
||||||
# configure_designate_backend - make configuration changes, including those to other services
|
|
||||||
# init_designate_backend - initialize databases, etc.
|
|
||||||
# start_designate_backend - start any external services
|
|
||||||
# stop_designate_backend - stop any external services
|
|
||||||
# cleanup_designate_backend - remove transient data and cache
|
|
||||||
|
|
||||||
# Save trace setting
|
|
||||||
DP_AKAMAI_XTRACE=$(set +o | grep xtrace)
|
|
||||||
set +o xtrace
|
|
||||||
|
|
||||||
# Defaults
|
|
||||||
# --------
|
|
||||||
|
|
||||||
DESIGNATE_AKAMAI_USERNAME=${DESIGNATE_AKAMAI_USERNAME:-username}
|
|
||||||
DESIGNATE_AKAMAI_PASSWORD=${DESIGNATE_AKAMAI_PASSWORD:-password}
|
|
||||||
DESIGNATE_AKAMAI_MASTERS=${DESIGNATE_AKAMAI_MASTERS:-"$DESIGNATE_SERVICE_HOST:$DESIGNATE_SERVICE_PORT_MDNS"}
|
|
||||||
DESIGNATE_AKAMAI_NAMESERVERS=${DESIGNATE_AKAMAI_NAMESERVERS:-""}
|
|
||||||
DESIGNATE_AKAMAI_ALSO_NOTIFIES=${DESIGNATE_AKAMAI_ALSO_NOTIFIES:-"193.108.155.34,23.73.134.141,80.67.64.148,23.73.134.237,23.73.133.141,23.73.133.237,80.67.64.10,72.246.0.10,72.247.45.157,72.246.192.168,193.108.152.143,60.254.128.45,72.247.45.110,72.247.45.65,72.247.45.25"}
|
|
||||||
|
|
||||||
# Pull in DESIGNATE_3RDPARTY_CREDS user/pass if set
|
|
||||||
if [ -n "$DESIGNATE_3RDPARTY_CREDS" ]; then
|
|
||||||
DESIGNATE_AKAMAI_USERNAME=`echo $DESIGNATE_3RDPARTY_CREDS | cut -f1 -d:`
|
|
||||||
DESIGNATE_AKAMAI_PASSWORD=`echo $DESIGNATE_3RDPARTY_CREDS | cut -f2- -d:`
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Sanity Checks
|
|
||||||
# -------------
|
|
||||||
if [ -z "$DESIGNATE_AKAMAI_NAMESERVERS" ]; then
|
|
||||||
die $LINENO "You must configure DESIGNATE_AKAMAI_NAMESERVERS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$DESIGNATE_SERVICE_PORT_MDNS" != "53" ]; then
|
|
||||||
die $LINENO "Akamai requires DESIGNATE_SERVICE_PORT_MDNS is set to '53'"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Entry Points
|
|
||||||
# ------------
|
|
||||||
|
|
||||||
# install_designate_backend - install any external requirements
|
|
||||||
function install_designate_backend {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
# configure_designate_backend - make configuration changes, including those to other services
|
|
||||||
function configure_designate_backend {
|
|
||||||
# Generate Designate pool.yaml file
|
|
||||||
sudo tee $DESIGNATE_CONF_DIR/pools.yaml > /dev/null <<EOF
|
|
||||||
---
|
|
||||||
- name: default
|
|
||||||
description: DevStack Akamai Pool
|
|
||||||
attributes: {}
|
|
||||||
|
|
||||||
targets:
|
|
||||||
- type: akamai
|
|
||||||
description: Akamai API
|
|
||||||
|
|
||||||
options:
|
|
||||||
username: $DESIGNATE_AKAMAI_USERNAME
|
|
||||||
password: $DESIGNATE_AKAMAI_PASSWORD
|
|
||||||
|
|
||||||
masters:
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Create a Pool Master for each of the Akamai Masters
|
|
||||||
IFS=',' read -a masters <<< "$DESIGNATE_AKAMAI_MASTERS"
|
|
||||||
|
|
||||||
for master in "${masters[@]}"; do
|
|
||||||
sudo tee -a $DESIGNATE_CONF_DIR/pools.yaml > /dev/null <<EOF
|
|
||||||
- host: $master
|
|
||||||
port: 53
|
|
||||||
EOF
|
|
||||||
done
|
|
||||||
|
|
||||||
# Create a Pool NS Record for each of the Akamai Nameservers
|
|
||||||
IFS=',' read -a nameservers <<< "$DESIGNATE_AKAMAI_NAMESERVERS"
|
|
||||||
|
|
||||||
sudo tee -a $DESIGNATE_CONF_DIR/pools.yaml > /dev/null <<EOF
|
|
||||||
ns_records:
|
|
||||||
EOF
|
|
||||||
|
|
||||||
for nameserver in "${nameservers[@]}"; do
|
|
||||||
sudo tee -a $DESIGNATE_CONF_DIR/pools.yaml > /dev/null <<EOF
|
|
||||||
- hostname: $nameserver
|
|
||||||
priority: 1
|
|
||||||
EOF
|
|
||||||
done
|
|
||||||
|
|
||||||
# Create a Pool Nameserver for each of the Akamai Nameservers
|
|
||||||
sudo tee -a $DESIGNATE_CONF_DIR/pools.yaml > /dev/null <<EOF
|
|
||||||
nameservers:
|
|
||||||
EOF
|
|
||||||
|
|
||||||
for nameserver in "${nameservers[@]}"; do
|
|
||||||
sudo tee -a $DESIGNATE_CONF_DIR/pools.yaml > /dev/null <<EOF
|
|
||||||
- host: `dig +short A $nameserver | head -n 1`
|
|
||||||
port: 53
|
|
||||||
EOF
|
|
||||||
done
|
|
||||||
|
|
||||||
# Create a Pool Also Notifies for each of the Akamai Also Notifies
|
|
||||||
IFS=',' read -a also_notifies <<< "$DESIGNATE_AKAMAI_ALSO_NOTIFIES"
|
|
||||||
|
|
||||||
sudo tee -a $DESIGNATE_CONF_DIR/pools.yaml > /dev/null <<EOF
|
|
||||||
also_notifies:
|
|
||||||
EOF
|
|
||||||
|
|
||||||
for also_notify in "${also_notifies[@]}"; do
|
|
||||||
sudo tee -a $DESIGNATE_CONF_DIR/pools.yaml > /dev/null <<EOF
|
|
||||||
- host: $also_notify
|
|
||||||
port: 53
|
|
||||||
EOF
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# init_designate_backend - initialize databases, etc.
|
|
||||||
function init_designate_backend {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
# start_designate_backend - start any external services
|
|
||||||
function start_designate_backend {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
# stop_designate_backend - stop any external services
|
|
||||||
function stop_designate_backend {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
# cleanup_designate_backend - remove transient data and cache
|
|
||||||
function cleanup_designate_backend {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
# Restore xtrace
|
|
||||||
$DP_AKAMAI_XTRACE
|
|
||||||
@@ -47,11 +47,6 @@ source $SCRIPT_DIR/settings
|
|||||||
# Used with dig to look up in DNS
|
# Used with dig to look up in DNS
|
||||||
DIG_TIMEOUT=30
|
DIG_TIMEOUT=30
|
||||||
|
|
||||||
if [ "$DESIGNATE_BACKEND_DRIVER" == "akamai" ]; then
|
|
||||||
# Akamai can be slow to propagate changes out
|
|
||||||
DIG_TIMEOUT=300
|
|
||||||
fi
|
|
||||||
|
|
||||||
# used with dig to look up in DNS
|
# used with dig to look up in DNS
|
||||||
DIG_FLAGS="-p $DESIGNATE_SERVICE_PORT_DNS @$DESIGNATE_SERVICE_HOST"
|
DIG_FLAGS="-p $DESIGNATE_SERVICE_PORT_DNS @$DESIGNATE_SERVICE_HOST"
|
||||||
|
|
||||||
|
|||||||
@@ -180,9 +180,6 @@ function configure_designate_tempest() {
|
|||||||
bind9)
|
bind9)
|
||||||
nameservers="$DESIGNATE_SERVICE_HOST:$DESIGNATE_SERVICE_PORT_DNS"
|
nameservers="$DESIGNATE_SERVICE_HOST:$DESIGNATE_SERVICE_PORT_DNS"
|
||||||
;;
|
;;
|
||||||
akamai)
|
|
||||||
nameservers="$DESIGNATE_AKAMAI_NAMESERVERS"
|
|
||||||
;;
|
|
||||||
dynect)
|
dynect)
|
||||||
nameservers="$DESIGNATE_DYNECT_NAMESERVERS"
|
nameservers="$DESIGNATE_DYNECT_NAMESERVERS"
|
||||||
;;
|
;;
|
||||||
|
|||||||
@@ -75,7 +75,8 @@ status=untested
|
|||||||
status=untested
|
status=untested
|
||||||
|
|
||||||
[backends.backend-impl-akamai]
|
[backends.backend-impl-akamai]
|
||||||
status=known-broken
|
status=end-of-life
|
||||||
|
in-tree=False
|
||||||
notes=Akamai has turned off the eDNS API - see https://community.akamai.com/customers/s/article/Big-Changes-Coming-to-Fast-DNS-in-2018
|
notes=Akamai has turned off the eDNS API - see https://community.akamai.com/customers/s/article/Big-Changes-Coming-to-Fast-DNS-in-2018
|
||||||
|
|
||||||
[backends.backend-impl-akamai_v2]
|
[backends.backend-impl-akamai_v2]
|
||||||
@@ -117,7 +118,7 @@ type=agent
|
|||||||
status=untested
|
status=untested
|
||||||
|
|
||||||
[grades]
|
[grades]
|
||||||
valid-grades=integrated,master-compatible,release-compatible,untested,failing,known-broken,experimental,deprecated
|
valid-grades=integrated,master-compatible,release-compatible,untested,failing,known-broken,experimental,deprecated,end-of-life
|
||||||
|
|
||||||
[grades.integrated]
|
[grades.integrated]
|
||||||
title=Integrated
|
title=Integrated
|
||||||
@@ -166,3 +167,9 @@ title=Deprecated
|
|||||||
notes=Backends have been superseded, and will be removed in the future
|
notes=Backends have been superseded, and will be removed in the future
|
||||||
in-tree=optional
|
in-tree=optional
|
||||||
css-class=warning
|
css-class=warning
|
||||||
|
|
||||||
|
[grades.end-of-life]
|
||||||
|
title=End of Life
|
||||||
|
notes=A backend that has reached it's end of life and has been removed from the code.
|
||||||
|
in-tree=optional
|
||||||
|
css-class=danger
|
||||||
|
|||||||
@@ -12,15 +12,6 @@ Backend Base
|
|||||||
:undoc-members:
|
:undoc-members:
|
||||||
:show-inheritance:
|
:show-inheritance:
|
||||||
|
|
||||||
|
|
||||||
Backend Akamai
|
|
||||||
==============
|
|
||||||
|
|
||||||
.. automodule:: designate.backend.impl_akamai
|
|
||||||
:members:
|
|
||||||
:undoc-members:
|
|
||||||
:show-inheritance:
|
|
||||||
|
|
||||||
Backend Bind9
|
Backend Bind9
|
||||||
=============
|
=============
|
||||||
|
|
||||||
|
|||||||
@@ -132,7 +132,6 @@ sqlparse==0.2.4
|
|||||||
statsd==3.2.2
|
statsd==3.2.2
|
||||||
stestr==2.0.0
|
stestr==2.0.0
|
||||||
stevedore==1.20.0
|
stevedore==1.20.0
|
||||||
suds-jurko==0.6
|
|
||||||
tempest==21.0.0
|
tempest==21.0.0
|
||||||
Tempita==0.5.2
|
Tempita==0.5.2
|
||||||
tenacity==6.0.0
|
tenacity==6.0.0
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
deprecations:
|
||||||
|
- |
|
||||||
|
The Akamai eDNS backend has reached it's end of life and has been removed.
|
||||||
|
Please upgrade to the Akamai v2 backend.
|
||||||
@@ -33,7 +33,6 @@ tenacity>=6.0.0 # Apache-2.0
|
|||||||
SQLAlchemy>=1.2.19 # MIT
|
SQLAlchemy>=1.2.19 # MIT
|
||||||
sqlalchemy-migrate>=0.11.0 # Apache-2.0
|
sqlalchemy-migrate>=0.11.0 # Apache-2.0
|
||||||
stevedore>=1.20.0 # Apache-2.0
|
stevedore>=1.20.0 # Apache-2.0
|
||||||
suds-jurko>=0.6 # LGPLv3+
|
|
||||||
WebOb>=1.7.1 # MIT
|
WebOb>=1.7.1 # MIT
|
||||||
dnspython>=1.16.0 # http://www.dnspython.org/LICENSE
|
dnspython>=1.16.0 # http://www.dnspython.org/LICENSE
|
||||||
oslo.db>=8.3.0 # Apache-2.0
|
oslo.db>=8.3.0 # Apache-2.0
|
||||||
|
|||||||
@@ -74,7 +74,6 @@ designate.backend =
|
|||||||
designate = designate.backend.impl_designate:DesignateBackend
|
designate = designate.backend.impl_designate:DesignateBackend
|
||||||
pdns4 = designate.backend.impl_pdns4:PDNS4Backend
|
pdns4 = designate.backend.impl_pdns4:PDNS4Backend
|
||||||
dynect = designate.backend.impl_dynect:DynECTBackend
|
dynect = designate.backend.impl_dynect:DynECTBackend
|
||||||
akamai = designate.backend.impl_akamai:AkamaiBackend
|
|
||||||
akamai_v2 = designate.backend.impl_akamai_v2:AkamaiBackend
|
akamai_v2 = designate.backend.impl_akamai_v2:AkamaiBackend
|
||||||
nsd4 = designate.backend.impl_nsd4:NSD4Backend
|
nsd4 = designate.backend.impl_nsd4:NSD4Backend
|
||||||
infoblox = designate.backend.impl_infoblox:InfobloxBackend
|
infoblox = designate.backend.impl_infoblox:InfobloxBackend
|
||||||
|
|||||||
Reference in New Issue
Block a user