fix(cloudns): map CLOUD_WR to CLOUDNS_WR so redirect records are not recreated every push#4188
Open
raman1236 wants to merge 1 commit intoDNSControl:mainfrom
Open
fix(cloudns): map CLOUD_WR to CLOUDNS_WR so redirect records are not recreated every push#4188raman1236 wants to merge 1 commit intoDNSControl:mainfrom
raman1236 wants to merge 1 commit intoDNSControl:mainfrom
Conversation
…recreated When fetching records from the ClouDNS API, web redirect records come back with type "CLOUD_WR". The toRc function was converting this to "WR" but dnscontrol registers the custom type as "CLOUDNS_WR". This mismatch caused dnscontrol to see fetched WR records as different from desired CLOUDNS_WR records, destroying and recreating them on every push. Map CLOUD_WR to CLOUDNS_WR in toRc and remove the stale WR entry from the nothing-special case in the request builder. Fixes DNSControl#3972
Author
|
Friendly ping — this PR fixes the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #3972
CLOUDNS_WR (web redirect) records are destroyed and recreated on every
dnscontrol pusheven when nothing has changed.Root Cause
When records are fetched from the ClouDNS API, the
toRcfunction converts the API typeCLOUD_WRtoWR. However, dnscontrol registers the custom record type asCLOUDNS_WR(line 85). This means:WRCLOUDNS_WRThe diff algorithm sees them as different record types and generates a DELETE + CREATE on every push.
Fix
toRc(): MapCLOUD_WR→CLOUDNS_WR(instead of →WR) so fetched records match the registered custom typeWRfrom the "nothing special" case since the type is now alwaysCLOUDNS_WR(which was already handled in the case below)Testing
TestToRcConvertsCloudWRToCloudnsWRunit test that verifies the type mapping