mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
UltraDNS: cleaning up exceptions and test endpoint
Also some comment additions
This commit is contained in:
+18
-22
@@ -8,27 +8,26 @@ from .base import BaseProvider
|
||||
|
||||
|
||||
class UltraClientException(Exception):
|
||||
'''
|
||||
Base Ultra exception type
|
||||
'''
|
||||
pass
|
||||
|
||||
|
||||
class UltraError(UltraClientException):
|
||||
class UltraNoZonesExistException(UltraClientException):
|
||||
'''
|
||||
This exception is thrown for error messages returned from Ultra DNS
|
||||
Specially handling this condition where no zones exist in an account.
|
||||
This is not an error exactly yet ultra treats this scenario as though a
|
||||
failure has occurred.
|
||||
'''
|
||||
def __init__(self, data):
|
||||
try:
|
||||
message = data.json()[0]['errorMessage']
|
||||
except (IndexError, KeyError, TypeError, AttributeError):
|
||||
message = 'Ultra error'
|
||||
super(UltraError, self).__init__(message)
|
||||
|
||||
|
||||
class UltraNoZonesExistException(UltraError):
|
||||
def __init__(self, data):
|
||||
UltraError.__init__(self, data)
|
||||
super(UltraNoZonesExistException, self).__init__('NoZonesExist')
|
||||
|
||||
|
||||
class UltraClientUnauthorized(UltraClientException):
|
||||
'''
|
||||
Exception for invalid credentials.
|
||||
'''
|
||||
def __init__(self):
|
||||
super(UltraClientUnauthorized, self).__init__('Unauthorized')
|
||||
|
||||
@@ -39,7 +38,11 @@ class UltraProvider(BaseProvider):
|
||||
|
||||
Documentation for Ultra REST API requires a login:
|
||||
https://portal.ultradns.com/static/docs/REST-API_User_Guide.pdf
|
||||
Implemented to the July 18, 2017 version of the document
|
||||
Implemented to the May 20, 2020 version of the document (dated on page ii)
|
||||
Also described as Version 2.83.0 (title page)
|
||||
|
||||
Tested against 3.0.0-20200627220036.81047f5
|
||||
As determined by querying https://api.ultradns.com/version
|
||||
|
||||
ultra:
|
||||
class: octodns.provider.ultra.UltraProvider
|
||||
@@ -49,9 +52,6 @@ class UltraProvider(BaseProvider):
|
||||
username: user
|
||||
# Ultra password (required)
|
||||
password: pass
|
||||
# Whether to use the ultradns test endpoint
|
||||
# (optional, default is false)
|
||||
test_endpoint: false
|
||||
'''
|
||||
|
||||
RECORDS_TO_TYPE = {
|
||||
@@ -129,17 +129,13 @@ class UltraProvider(BaseProvider):
|
||||
'Authorization': 'Bearer {}'.format(resp['access_token']),
|
||||
})
|
||||
|
||||
def __init__(self, id, account, username, password,
|
||||
test_endpoint=False, *args, **kwargs):
|
||||
def __init__(self, id, account, username, password, *args, **kwargs):
|
||||
self.log = getLogger('UltraProvider[{}]'.format(id))
|
||||
self.log.debug('__init__: id=%s, account=%s, username=%s, '
|
||||
'password=***, test_endpoint=%s', id,
|
||||
account, username, test_endpoint)
|
||||
'password=***', id, account, username)
|
||||
|
||||
super(UltraProvider, self).__init__(id, *args, **kwargs)
|
||||
self.base_uri = 'https://restapi.ultradns.com'
|
||||
if test_endpoint:
|
||||
self.base_uri = 'https://test-restapi.ultradns.com'
|
||||
self._sess = Session()
|
||||
self._login(username, password)
|
||||
self._account = account
|
||||
|
||||
Reference in New Issue
Block a user