mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
Merge branch 'master' into constellix_healthcheck
This commit is contained in:
@@ -1934,8 +1934,8 @@ class TestAzureDnsProvider(TestCase):
|
||||
ttl=60, target_resource=SubResource(id=None))
|
||||
azrecord.name = record.name or '@'
|
||||
azrecord.type = f'Microsoft.Network/dnszones/{record._type}'
|
||||
record2 = provider._populate_record(zone, azrecord)
|
||||
self.assertEqual(record2.values, ['255.255.255.255'])
|
||||
record2 = provider._populate_record(zone, azrecord, lenient=True)
|
||||
self.assertEqual(record2.values, [])
|
||||
|
||||
# test that same record gets populated back from traffic managers
|
||||
tm_list = provider._tm_client.profiles.list_by_resource_group
|
||||
@@ -2016,8 +2016,8 @@ class TestAzureDnsProvider(TestCase):
|
||||
ttl=60, target_resource=SubResource(id=None))
|
||||
azrecord.name = record.name or '@'
|
||||
azrecord.type = f'Microsoft.Network/dnszones/{record._type}'
|
||||
record2 = provider._populate_record(zone, azrecord)
|
||||
self.assertEqual(record2.values, ['::1'])
|
||||
record2 = provider._populate_record(zone, azrecord, lenient=True)
|
||||
self.assertEqual(record2.values, [])
|
||||
|
||||
# test that same record gets populated back from traffic managers
|
||||
tm_list = provider._tm_client.profiles.list_by_resource_group
|
||||
@@ -2259,8 +2259,8 @@ class TestAzureDnsProvider(TestCase):
|
||||
azrecord.name = record1.name or '@'
|
||||
azrecord.type = f'Microsoft.Network/dnszones/{record1._type}'
|
||||
|
||||
record2 = provider._populate_record(zone, azrecord)
|
||||
self.assertEqual(record2.value, 'iam.invalid.')
|
||||
record2 = provider._populate_record(zone, azrecord, lenient=True)
|
||||
self.assertIsNone(record2.value)
|
||||
|
||||
change = Update(record2, record1)
|
||||
provider._apply_Update(change)
|
||||
|
||||
@@ -1961,7 +1961,7 @@ class TestNs1ProviderDynamic(TestCase):
|
||||
'meta': {
|
||||
'priority': 1,
|
||||
'weight': 12,
|
||||
'note': f'from:{catchall_pool_name}',
|
||||
'note': f'pool:iad from:{catchall_pool_name}',
|
||||
'up': {},
|
||||
},
|
||||
'region': catchall_pool_name,
|
||||
@@ -2009,6 +2009,45 @@ class TestNs1ProviderDynamic(TestCase):
|
||||
'value': 'value.unit.tests.',
|
||||
}, data)
|
||||
|
||||
def test_data_for_invalid_dynamic_CNAME(self):
|
||||
provider = Ns1Provider('test', 'api-key')
|
||||
|
||||
# Potential setup created outside of octoDNS, so it could be missing
|
||||
# notes and region names can be arbitrary
|
||||
filters = provider._get_updated_filter_chain(False, False)
|
||||
ns1_record = {
|
||||
'answers': [{
|
||||
'answer': ['iad.unit.tests.'],
|
||||
'meta': {
|
||||
'priority': 1,
|
||||
'weight': 12,
|
||||
'up': {},
|
||||
},
|
||||
'region': 'global',
|
||||
}, {
|
||||
'answer': ['value.unit.tests.'],
|
||||
'meta': {
|
||||
'priority': 2,
|
||||
'up': {},
|
||||
},
|
||||
'region': 'global',
|
||||
}],
|
||||
'domain': 'foo.unit.tests',
|
||||
'filters': filters,
|
||||
'regions': {
|
||||
'global': {},
|
||||
},
|
||||
'tier': 3,
|
||||
'ttl': 44,
|
||||
'type': 'CNAME',
|
||||
}
|
||||
data = provider._data_for_CNAME('CNAME', ns1_record)
|
||||
self.assertEquals({
|
||||
'ttl': 44,
|
||||
'type': 'CNAME',
|
||||
'value': None,
|
||||
}, data)
|
||||
|
||||
@patch('ns1.rest.records.Records.retrieve')
|
||||
@patch('ns1.rest.zones.Zones.retrieve')
|
||||
@patch('octodns.provider.ns1.Ns1Provider._monitors_for')
|
||||
|
||||
@@ -1847,7 +1847,7 @@ class TestRoute53Provider(TestCase):
|
||||
self.assertEquals([], extra)
|
||||
stubber.assert_no_pending_responses()
|
||||
|
||||
def test_plan_with_get_zones_by_name(self):
|
||||
def test_plan_apply_with_get_zones_by_name_zone_not_exists(self):
|
||||
provider = Route53Provider(
|
||||
'test', 'abc', '123', get_zones_by_name=True)
|
||||
|
||||
@@ -1874,6 +1874,139 @@ class TestRoute53Provider(TestCase):
|
||||
plan = provider.plan(self.expected)
|
||||
self.assertEquals(9, len(plan.changes))
|
||||
|
||||
create_hosted_zone_resp = {
|
||||
'HostedZone': {
|
||||
'Name': 'unit.tests.',
|
||||
'Id': 'z42',
|
||||
'CallerReference': 'abc',
|
||||
},
|
||||
'ChangeInfo': {
|
||||
'Id': 'a12',
|
||||
'Status': 'PENDING',
|
||||
'SubmittedAt': '2017-01-29T01:02:03Z',
|
||||
'Comment': 'hrm',
|
||||
},
|
||||
'DelegationSet': {
|
||||
'Id': 'b23',
|
||||
'CallerReference': 'blip',
|
||||
'NameServers': [
|
||||
'n12.unit.tests.',
|
||||
],
|
||||
},
|
||||
'Location': 'us-east-1',
|
||||
}
|
||||
stubber.add_response('create_hosted_zone',
|
||||
create_hosted_zone_resp, {
|
||||
'Name': 'unit.tests.',
|
||||
'CallerReference': ANY,
|
||||
})
|
||||
|
||||
list_resource_record_sets_resp = {
|
||||
'ResourceRecordSets': [{
|
||||
'Name': 'a.unit.tests.',
|
||||
'Type': 'A',
|
||||
'GeoLocation': {
|
||||
'ContinentCode': 'NA',
|
||||
},
|
||||
'ResourceRecords': [{
|
||||
'Value': '2.2.3.4',
|
||||
}],
|
||||
'TTL': 61,
|
||||
}],
|
||||
'IsTruncated': False,
|
||||
'MaxItems': '100',
|
||||
}
|
||||
stubber.add_response('list_resource_record_sets',
|
||||
list_resource_record_sets_resp,
|
||||
{'HostedZoneId': 'z42'})
|
||||
|
||||
stubber.add_response('list_health_checks',
|
||||
{
|
||||
'HealthChecks': self.health_checks,
|
||||
'IsTruncated': False,
|
||||
'MaxItems': '100',
|
||||
'Marker': '',
|
||||
})
|
||||
|
||||
stubber.add_response('change_resource_record_sets',
|
||||
{'ChangeInfo': {
|
||||
'Id': 'id',
|
||||
'Status': 'PENDING',
|
||||
'SubmittedAt': '2017-01-29T01:02:03Z',
|
||||
}}, {'HostedZoneId': 'z42', 'ChangeBatch': ANY})
|
||||
|
||||
self.assertEquals(9, provider.apply(plan))
|
||||
stubber.assert_no_pending_responses()
|
||||
|
||||
def test_plan_apply_with_get_zones_by_name_zone_exists(self):
|
||||
provider = Route53Provider(
|
||||
'test', 'abc', '123', get_zones_by_name=True)
|
||||
|
||||
# Use the stubber
|
||||
stubber = Stubber(provider._conn)
|
||||
stubber.activate()
|
||||
|
||||
list_hosted_zones_by_name_resp = {
|
||||
'HostedZones': [{
|
||||
'Id': 'z42',
|
||||
'Name': 'unit.tests.',
|
||||
'CallerReference': 'abc',
|
||||
'Config': {
|
||||
'Comment': 'string',
|
||||
'PrivateZone': False
|
||||
},
|
||||
'ResourceRecordSetCount': 123,
|
||||
}, ],
|
||||
'DNSName': 'unit.tests.',
|
||||
'HostedZoneId': 'z42',
|
||||
'IsTruncated': False,
|
||||
'MaxItems': 'string'
|
||||
}
|
||||
|
||||
list_resource_record_sets_resp = {
|
||||
'ResourceRecordSets': [{
|
||||
'Name': 'a.unit.tests.',
|
||||
'Type': 'A',
|
||||
'ResourceRecords': [{
|
||||
'Value': '2.2.3.4',
|
||||
}],
|
||||
'TTL': 61,
|
||||
}],
|
||||
'IsTruncated': False,
|
||||
'MaxItems': '100',
|
||||
}
|
||||
|
||||
stubber.add_response(
|
||||
'list_hosted_zones_by_name',
|
||||
list_hosted_zones_by_name_resp,
|
||||
{'DNSName': 'unit.tests.', 'MaxItems': '1'}
|
||||
)
|
||||
|
||||
stubber.add_response('list_resource_record_sets',
|
||||
list_resource_record_sets_resp,
|
||||
{'HostedZoneId': 'z42'})
|
||||
|
||||
plan = provider.plan(self.expected)
|
||||
self.assertEquals(10, len(plan.changes))
|
||||
|
||||
stubber.add_response('list_health_checks',
|
||||
{
|
||||
'HealthChecks': self.health_checks,
|
||||
'IsTruncated': False,
|
||||
'MaxItems': '100',
|
||||
'Marker': '',
|
||||
})
|
||||
|
||||
stubber.add_response('change_resource_record_sets',
|
||||
{'ChangeInfo': {
|
||||
'Id': 'id',
|
||||
'Status': 'PENDING',
|
||||
'SubmittedAt': '2017-01-29T01:02:03Z',
|
||||
}}, {'HostedZoneId': 'z42', 'ChangeBatch': ANY})
|
||||
|
||||
self.assertEquals(10, provider.apply(plan))
|
||||
stubber.assert_no_pending_responses()
|
||||
|
||||
def test_extra_change_no_health_check(self):
|
||||
provider, stubber = self._get_stubbed_provider()
|
||||
|
||||
|
||||
@@ -3895,7 +3895,7 @@ class TestDynamicRecords(TestCase):
|
||||
'weight': 1,
|
||||
'value': '6.6.6.6',
|
||||
}, {
|
||||
'weight': 16,
|
||||
'weight': 101,
|
||||
'value': '7.7.7.7',
|
||||
}],
|
||||
},
|
||||
@@ -3919,7 +3919,7 @@ class TestDynamicRecords(TestCase):
|
||||
}
|
||||
with self.assertRaises(ValidationError) as ctx:
|
||||
Record.new(self.zone, 'bad', a_data)
|
||||
self.assertEquals(['invalid weight "16" in pool "three" value 2'],
|
||||
self.assertEquals(['invalid weight "101" in pool "three" value 2'],
|
||||
ctx.exception.reasons)
|
||||
|
||||
# invalid non-int weight
|
||||
|
||||
Reference in New Issue
Block a user