mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
PowerDNS: Support pre-release versions
This commit strips any superfluous -alphaN (or beta or rc) from the version number's minor number so it can be cast to an int. This will allow octodns to sync to/from PowerDNS pre-releases.
This commit is contained in:
@@ -183,7 +183,8 @@ class PowerDnsBaseProvider(BaseProvider):
|
||||
version = resp.json()['version']
|
||||
self.log.debug('powerdns_version: got version %s from server',
|
||||
version)
|
||||
self._powerdns_version = [int(p) for p in version.split('.')]
|
||||
self._powerdns_version = [
|
||||
int(p.split('-')[0]) for p in version.split('.')[:3]]
|
||||
|
||||
return self._powerdns_version
|
||||
|
||||
|
||||
@@ -82,6 +82,20 @@ class TestPowerDnsProvider(TestCase):
|
||||
provider._powerdns_version = None
|
||||
self.assertNotEquals(provider.powerdns_version, [4, 1, 10])
|
||||
|
||||
# Test version detection with pre-releases
|
||||
with requests_mock() as mock:
|
||||
# Reset version, so detection will try again
|
||||
provider._powerdns_version = None
|
||||
mock.get('http://non.existent:8081/api/v1/servers/localhost',
|
||||
status_code=200, json={'version': "4.4.0-alpha1"})
|
||||
self.assertEquals(provider.powerdns_version, [4, 4, 0])
|
||||
|
||||
provider._powerdns_version = None
|
||||
mock.get('http://non.existent:8081/api/v1/servers/localhost',
|
||||
status_code=200,
|
||||
json={'version': "4.5.0-alpha0.435.master.gcb114252b"})
|
||||
self.assertEquals(provider.powerdns_version, [4, 5, 0])
|
||||
|
||||
def test_provider_version_config(self):
|
||||
provider = PowerDnsProvider('test', 'non.existent', 'api-key',
|
||||
nameserver_values=['8.8.8.8.',
|
||||
|
||||
Reference in New Issue
Block a user