diff --git a/octodns/provider/dyn.py b/octodns/provider/dyn.py index 9e951fb..31a715f 100644 --- a/octodns/provider/dyn.py +++ b/octodns/provider/dyn.py @@ -1248,13 +1248,14 @@ class DynProvider(BaseProvider): if new.geo: # New record is a geo record self.log.info('_mod_dynamic_Update: %s to geo', new.fqdn) - self._mod_geo_Create(dyn_zone, change) + # Convert the TD over to a geo + self._mod_geo_Update(dyn_zone, change) else: # New record doesn't have dynamic, we're going from a TD to a # regular record self.log.info('_mod_dynamic_Update: %s to plain', new.fqdn) self._mod_Create(dyn_zone, change) - self._mod_dynamic_Delete(dyn_zone, change) + self._mod_dynamic_Delete(dyn_zone, change) return try: td = self.traffic_directors[new.fqdn][new._type] diff --git a/tests/test_octodns_provider_dyn.py b/tests/test_octodns_provider_dyn.py index 68a8196..4a41698 100644 --- a/tests/test_octodns_provider_dyn.py +++ b/tests/test_octodns_provider_dyn.py @@ -2400,7 +2400,7 @@ class TestDynProviderDynamic(TestCase): provider = DynProvider('test', 'cust', 'user', 'pass', traffic_directors_enabled=True) - # update of an existing td + # update of an existing dynamic td # pre-populate the cache with our mock td provider._traffic_directors = { @@ -2424,24 +2424,21 @@ class TestDynProviderDynamic(TestCase): provider = DynProvider('test', 'cust', 'user', 'pass', traffic_directors_enabled=True) - # convert a td to a geo record + # convert a dynamic td to a geo record - provider._mod_geo_Create = MagicMock() - provider._mod_dynamic_Delete = MagicMock() + provider._mod_geo_Update = MagicMock() change = Update(self.dynamic_a_record, self.geo_a_record) provider._mod_dynamic_Update(42, change) # should have seen a call to create the new geo record - provider._mod_geo_Create.assert_called_once_with(42, change) - # should have seen a call to delete the old td record - provider._mod_dynamic_Delete.assert_called_once_with(42, change) + provider._mod_geo_Update.assert_called_once_with(42, change) @patch('dyn.core.SessionEngine.execute') def test_mod_dynamic_update_dynamic_regular(self, _): provider = DynProvider('test', 'cust', 'user', 'pass', traffic_directors_enabled=True) - # convert a td to a regular record + # convert a dynamic td to a regular record provider._mod_Create = MagicMock() provider._mod_dynamic_Delete = MagicMock() @@ -2458,7 +2455,7 @@ class TestDynProviderDynamic(TestCase): provider = DynProvider('test', 'cust', 'user', 'pass', traffic_directors_enabled=True) - # convert a geo record to a td + # convert a geo record to a dynamic td provider._mod_dynamic_Create = MagicMock() provider._mod_geo_Delete = MagicMock() @@ -2475,7 +2472,7 @@ class TestDynProviderDynamic(TestCase): provider = DynProvider('test', 'cust', 'user', 'pass', traffic_directors_enabled=True) - # convert a regular record to a td + # convert a regular record to a dynamic td provider._mod_dynamic_Create = MagicMock() provider._mod_Delete = MagicMock()