mirror of
				https://github.com/github/octodns.git
				synced 2024-05-11 05:55:00 +00:00 
			
		
		
		
	Add support for ignored records.
```yaml
ignored:
  octodns:
    ignored: true
  type: A
  value: 1.2.3.4
```
			
			
This commit is contained in:
		@@ -51,6 +51,11 @@ cname:
 | 
			
		||||
  ttl: 300
 | 
			
		||||
  type: CNAME
 | 
			
		||||
  value: unit.tests.
 | 
			
		||||
ignored:
 | 
			
		||||
  octodns:
 | 
			
		||||
    ignored: true
 | 
			
		||||
  type: A
 | 
			
		||||
  value: 9.9.9.9
 | 
			
		||||
mx:
 | 
			
		||||
  ttl: 300
 | 
			
		||||
  type: MX
 | 
			
		||||
 
 | 
			
		||||
@@ -129,8 +129,8 @@ class TestDnsimpleProvider(TestCase):
 | 
			
		||||
        ]
 | 
			
		||||
        plan = provider.plan(self.expected)
 | 
			
		||||
 | 
			
		||||
        # No root NS
 | 
			
		||||
        n = len(self.expected.records) - 1
 | 
			
		||||
        # No root NS, no ignored
 | 
			
		||||
        n = len(self.expected.records) - 2
 | 
			
		||||
        self.assertEquals(n, len(plan.changes))
 | 
			
		||||
        self.assertEquals(n, provider.apply(plan))
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -78,7 +78,8 @@ class TestPowerDnsProvider(TestCase):
 | 
			
		||||
        expected = Zone('unit.tests.', [])
 | 
			
		||||
        source = YamlProvider('test', join(dirname(__file__), 'config'))
 | 
			
		||||
        source.populate(expected)
 | 
			
		||||
        self.assertEquals(14, len(expected.records))
 | 
			
		||||
        expected_n = len(expected.records) - 1
 | 
			
		||||
        self.assertEquals(14, expected_n)
 | 
			
		||||
 | 
			
		||||
        # No diffs == no changes
 | 
			
		||||
        with requests_mock() as mock:
 | 
			
		||||
@@ -93,7 +94,7 @@ class TestPowerDnsProvider(TestCase):
 | 
			
		||||
        # Used in a minute
 | 
			
		||||
        def assert_rrsets_callback(request, context):
 | 
			
		||||
            data = loads(request.body)
 | 
			
		||||
            self.assertEquals(len(expected.records), len(data['rrsets']))
 | 
			
		||||
            self.assertEquals(expected_n, len(data['rrsets']))
 | 
			
		||||
            return ''
 | 
			
		||||
 | 
			
		||||
        # No existing records -> creates for every record in expected
 | 
			
		||||
@@ -103,8 +104,8 @@ class TestPowerDnsProvider(TestCase):
 | 
			
		||||
            mock.patch(ANY, status_code=201, text=assert_rrsets_callback)
 | 
			
		||||
 | 
			
		||||
            plan = provider.plan(expected)
 | 
			
		||||
            self.assertEquals(len(expected.records), len(plan.changes))
 | 
			
		||||
            self.assertEquals(len(expected.records), provider.apply(plan))
 | 
			
		||||
            self.assertEquals(expected_n, len(plan.changes))
 | 
			
		||||
            self.assertEquals(expected_n, provider.apply(plan))
 | 
			
		||||
 | 
			
		||||
        # Non-existent zone -> creates for every record in expected
 | 
			
		||||
        # OMG this is fucking ugly, probably better to ditch requests_mocks and
 | 
			
		||||
@@ -121,8 +122,8 @@ class TestPowerDnsProvider(TestCase):
 | 
			
		||||
            mock.post(ANY, status_code=201, text=assert_rrsets_callback)
 | 
			
		||||
 | 
			
		||||
            plan = provider.plan(expected)
 | 
			
		||||
            self.assertEquals(len(expected.records), len(plan.changes))
 | 
			
		||||
            self.assertEquals(len(expected.records), provider.apply(plan))
 | 
			
		||||
            self.assertEquals(expected_n, len(plan.changes))
 | 
			
		||||
            self.assertEquals(expected_n, provider.apply(plan))
 | 
			
		||||
 | 
			
		||||
        with requests_mock() as mock:
 | 
			
		||||
            # get 422's, unknown zone
 | 
			
		||||
@@ -166,7 +167,7 @@ class TestPowerDnsProvider(TestCase):
 | 
			
		||||
        expected = Zone('unit.tests.', [])
 | 
			
		||||
        source = YamlProvider('test', join(dirname(__file__), 'config'))
 | 
			
		||||
        source.populate(expected)
 | 
			
		||||
        self.assertEquals(14, len(expected.records))
 | 
			
		||||
        self.assertEquals(15, len(expected.records))
 | 
			
		||||
 | 
			
		||||
        # A small change to a single record
 | 
			
		||||
        with requests_mock() as mock:
 | 
			
		||||
 
 | 
			
		||||
@@ -30,7 +30,7 @@ class TestYamlProvider(TestCase):
 | 
			
		||||
 | 
			
		||||
        # without it we see everything
 | 
			
		||||
        source.populate(zone)
 | 
			
		||||
        self.assertEquals(14, len(zone.records))
 | 
			
		||||
        self.assertEquals(15, len(zone.records))
 | 
			
		||||
 | 
			
		||||
        # Assumption here is that a clean round-trip means that everything
 | 
			
		||||
        # worked as expected, data that went in came back out and could be
 | 
			
		||||
 
 | 
			
		||||
@@ -172,3 +172,36 @@ class TestZone(TestCase):
 | 
			
		||||
        with self.assertRaises(SubzoneRecordException) as ctx:
 | 
			
		||||
            zone.add_record(record)
 | 
			
		||||
        self.assertTrue('under a managed sub-zone', ctx.exception.message)
 | 
			
		||||
 | 
			
		||||
    def test_ignored_records(self):
 | 
			
		||||
        zone_normal = Zone('unit.tests.', [])
 | 
			
		||||
        zone_ignored = Zone('unit.tests.', [])
 | 
			
		||||
        zone_missing = Zone('unit.tests.', [])
 | 
			
		||||
 | 
			
		||||
        normal = Record.new(zone_normal, 'www', {
 | 
			
		||||
            'ttl': 60,
 | 
			
		||||
            'type': 'A',
 | 
			
		||||
            'value': '9.9.9.9',
 | 
			
		||||
        })
 | 
			
		||||
        zone_normal.add_record(normal)
 | 
			
		||||
 | 
			
		||||
        ignored = Record.new(zone_ignored, 'www', {
 | 
			
		||||
            'octodns': {
 | 
			
		||||
                'ignored': True
 | 
			
		||||
            },
 | 
			
		||||
            'ttl': 60,
 | 
			
		||||
            'type': 'A',
 | 
			
		||||
            'value': '9.9.9.9',
 | 
			
		||||
        })
 | 
			
		||||
        zone_ignored.add_record(ignored)
 | 
			
		||||
 | 
			
		||||
        provider = SimpleProvider()
 | 
			
		||||
 | 
			
		||||
        self.assertFalse(zone_normal.changes(zone_ignored, provider))
 | 
			
		||||
        self.assertTrue(zone_normal.changes(zone_missing, provider))
 | 
			
		||||
 | 
			
		||||
        self.assertFalse(zone_ignored.changes(zone_normal, provider))
 | 
			
		||||
        self.assertFalse(zone_ignored.changes(zone_missing, provider))
 | 
			
		||||
 | 
			
		||||
        self.assertTrue(zone_missing.changes(zone_normal, provider))
 | 
			
		||||
        self.assertFalse(zone_missing.changes(zone_ignored, provider))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user