diff --git a/octodns/provider/azuredns.py b/octodns/provider/azuredns.py index 8ad6dd9..f36c25e 100644 --- a/octodns/provider/azuredns.py +++ b/octodns/provider/azuredns.py @@ -488,10 +488,15 @@ class AzureProvider(BaseProvider): azure_zone_name = desired.name[:len(desired.name) - 1] self._check_zone(azure_zone_name, create=True) - # Force the operation order to be Delete() before Create() - # Helps avoid problems in updating a CNAME record into an A record. - changes.reverse() + # Force the operation order to be Delete() before all other operations. + # Helps avoid problems in updating a CNAME record into an A record and vice-versa. for change in changes: class_name = change.__class__.__name__ - getattr(self, '_apply_{}'.format(class_name))(change) + if class_name == 'Delete': + getattr(self, '_apply_{}'.format(class_name))(change) + + for change in changes: + class_name = change.__class__.__name__ + if class_name != 'Delete': + getattr(self, '_apply_{}'.format(class_name))(change)