1
0
mirror of https://github.com/github/octodns.git synced 2024-05-11 05:55:00 +00:00

Add healthcheck protocol validation, HTTP or HTTPS

This commit is contained in:
Ross McFarland
2018-03-31 13:22:28 -07:00
parent 9752cb0a12
commit 849a97f161
2 changed files with 11 additions and 5 deletions

View File

@@ -115,6 +115,12 @@ class Record(object):
reasons.append('invalid ttl') reasons.append('invalid ttl')
except KeyError: except KeyError:
reasons.append('missing ttl') reasons.append('missing ttl')
try:
if data['octodns']['healthcheck']['protocol'] \
not in ('HTTP', 'HTTPS'):
reasons.append('invalid healthcheck protocol')
except KeyError:
pass
return reasons return reasons
def __init__(self, zone, name, data, source=None): def __init__(self, zone, name, data, source=None):
@@ -172,12 +178,12 @@ class Record(object):
try: try:
return self._octodns['healthcheck']['protocol'] return self._octodns['healthcheck']['protocol']
except KeyError: except KeyError:
return 'https' return 'HTTPS'
@property @property
def healthcheck_port(self): def healthcheck_port(self):
try: try:
return self._octodns['healthcheck']['port'] return int(self._octodns['healthcheck']['port'])
except KeyError: except KeyError:
return 443 return 443

View File

@@ -755,14 +755,14 @@ class TestRecord(TestCase):
'healthcheck': { 'healthcheck': {
'path': '/_ready', 'path': '/_ready',
'host': 'bleep.bloop', 'host': 'bleep.bloop',
'protocol': 'http', 'protocol': 'HTTP',
'port': 8080, 'port': 8080,
} }
} }
}) })
self.assertEquals('/_ready', new.healthcheck_path) self.assertEquals('/_ready', new.healthcheck_path)
self.assertEquals('bleep.bloop', new.healthcheck_host) self.assertEquals('bleep.bloop', new.healthcheck_host)
self.assertEquals('http', new.healthcheck_protocol) self.assertEquals('HTTP', new.healthcheck_protocol)
self.assertEquals(8080, new.healthcheck_port) self.assertEquals(8080, new.healthcheck_port)
new = Record.new(self.zone, 'a', { new = Record.new(self.zone, 'a', {
@@ -772,7 +772,7 @@ class TestRecord(TestCase):
}) })
self.assertEquals('/_dns', new.healthcheck_path) self.assertEquals('/_dns', new.healthcheck_path)
self.assertEquals('a.unit.tests', new.healthcheck_host) self.assertEquals('a.unit.tests', new.healthcheck_host)
self.assertEquals('https', new.healthcheck_protocol) self.assertEquals('HTTPS', new.healthcheck_protocol)
self.assertEquals(443, new.healthcheck_port) self.assertEquals(443, new.healthcheck_port)
def test_inored(self): def test_inored(self):