-
-
Notifications
You must be signed in to change notification settings - Fork 307
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added support for German DNS provider Core Networks #494
Open
MasinAD
wants to merge
98
commits into
AnalogJ:master
Choose a base branch
from
MasinAD:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+7,835
−0
Open
Changes from 1 commit
Commits
Show all changes
98 commits
Select commit
Hold shift + click to select a range
0958442
Initial provider for Core Networks
MasinAD e207e99
Fixed corenetwork:Provider._update_record
MasinAD e6f383e
Compatibility fix for Python 2.7
MasinAD dd0ba44
Recording missed a call
MasinAD 23878ca
Changed Exception message to what Certbot's dns_common_lexicon.py exp…
MasinAD e10f6c2
Merge branch 'master' into pr/494
adferrand 98821c1
integrated Logging
MasinAD b1ab75d
Merge pull request #1 from AnalogJ/master
MasinAD 5bc660d
removed some logging messages, added logic for failing gracefully in …
MasinAD 2b8bb14
Added some clarification to the auth-file parameter help.
MasinAD 421460d
Removed commented out code in provider test.
MasinAD 52977c0
Switched to contextmanager for committing changes
MasinAD 24c5a8f
Merge branch 'master' into pr/494
adferrand b05a8fd
Relax dependencies
adferrand 198385c
Update dependencies and fix doc
adferrand 8d2853a
Changelog
adferrand 81080b4
Version 3.7.1
adferrand 3ae7d45
Troubleshoot issues with Azure (#971)
adferrand 58f8990
Add changelog
adferrand c0d4221
Version 3.8.0
adferrand 0862b17
Update dependencies
adferrand 8f90a01
Fix invalid API request to Rackspace Cloud DNS - Issue #981 (#989)
mattgauf fae4b77
Prepare changelog
adferrand 243c008
Version 3.8.1
adferrand 48e8421
Update dreamhost _authenticate to use dns-list_records instead of dom…
ryan953 3f4dfca
Prepare changelog
adferrand 1765243
Version 3.8.2
adferrand e965bee
Update dependencies
adferrand 531c37c
Update dependencies
adferrand aac90a1
Update windows environments
adferrand 4214b64
Update dependencies and changelog
adferrand ce25e25
Fix find_site, dataset is not a valid child of filter, but a child of…
spike77453 cb87590
🐛 update Namecheap's nameserver list (#911)
dudeofawesome a1c414f
Version 3.8.3
adferrand 8b72bf5
Update CHANGELOG.md
adferrand 2b3a0ec
Update of the netcup nameserver (#1016)
mustermann2021 e1ccb12
Update Nameserver for INWX (#1015)
mustermann2021 b5daac1
Support & test Python 3.10 (#1017)
adferrand f65991e
Update dependencies
adferrand bd1905f
Take description of the provider into account in the doc
adferrand d8e2b4d
Fix return
adferrand fd8c361
Ensure TTL is provided as an integer (#1031)
parthjoshi-pc 23c521c
Update dependencies
adferrand 4719982
Fix tox config
adferrand c8d15b7
Fix tox deps
adferrand 734ff83
Short fix for godaddy
adferrand 39fe561
Fix lint
adferrand 2753694
Add support for value-domain.com (#1018)
bb97f03
Prepare changelog
adferrand 3bd9213
Update documentation
adferrand 26ba265
Version 3.8.4
adferrand 06c04ac
Complete redesign of the update logic in godaddy provider
adferrand 1dce378
Prepare changelog
adferrand 7cb82ad
Version 3.8.5
adferrand c508037
Factor common logic in godaddy
adferrand 04f233f
Rewrite delete logic in godaddy provider
adferrand 696309b
Version 3.8.6
adferrand e6ddbe1
Revert failed versions
adferrand d117b77
Version 3.8.5
adferrand c0694ff
Drop Python 3.6 support
adferrand c2b409f
Update dependencies
adferrand c1b6078
Version 3.9.0
adferrand 6b96a7a
added Porkbun (#1062)
juanalbglz b1748e2
Update dependencies
adferrand 2c5f784
fix conoha provider (specify auth_region when get provider option) (#…
k-serenade 65cb705
Exclude integration tests from source distributions + remove MANIFEST…
sbraz 509223b
Use known domain as filter (#954)
dgrothaus-ku 443e2cb
Prepare build of version doc
adferrand 3c4b376
Reimplement transip provider with the API REST v6 (#1086)
adferrand 1be1d8d
Prepare changelog
adferrand 137527f
Version 3.9.1
adferrand ac8a57a
Update documentation
adferrand 7a8470a
Reorganize documentation
adferrand 1b1372c
Prepare changelog
adferrand 6e82b5e
Version 3.9.2
adferrand 32a6fd5
Use appropriate JSONDecodeError for retrocompatibility purposes (#1100)
adferrand 1e18d4e
Prepare changelog
adferrand 877afc0
Version 3.9.3
adferrand e7f6e60
Bump boto3 from 1.20.44 to 1.20.53 (#1124)
dependabot[bot] 3092ad0
Bump types-toml from 0.10.3 to 0.10.4 (#1123)
dependabot[bot] 766561b
Bump types-requests from 2.27.7 to 2.27.9 (#1121)
dependabot[bot] 6fbe201
Bump oci from 2.55.0 to 2.56.0 (#1120)
dependabot[bot] 99b3c2c
Bump types-setuptools from 57.4.7 to 57.4.9 (#1116)
dependabot[bot] f84c1bd
Bump softlayer from 5.9.8 to 5.9.9 (#1115)
dependabot[bot] 78a8fd6
Bump pytest from 6.2.5 to 7.0.0 (#1114)
dependabot[bot] 4db0a0f
Updated valid record types for DreamHost integration (#1110)
JerrettDavis 6ca8dbe
Bump black from 21.12b0 to 22.1.0 (#1107)
dependabot[bot] fb5004e
Bump types-pyyaml from 6.0.3 to 6.0.4 (#1105)
dependabot[bot] bb533ff
Bump dnspython from 2.1.0 to 2.2.0 (#1089)
dependabot[bot] f78cd4f
Update dependencies
adferrand 1c10cc5
Add Webgo Provider (#1102)
mod242 e969090
Update documentation
adferrand 58508b3
Prepare changelog
adferrand 61e26a6
Version 3.9.4
adferrand 314ab08
Merge branch 'master' of https://github.com/AnalogJ/lexicon
MasinAD 219455d
removed credentials
MasinAD 02c0aac
Fixed corenetworks provider not authenticating in tests
MasinAD 06d2c30
Merge branch 'master' into pr/494
adferrand File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
integrated Logging
commit 98821c17613644e070aeec1d838bcb33e7c41902
There are no files selected for viewing
This file contains 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
This file contains 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
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see your comment on the PR about slow operations. Which delay are we talking about ?
In theory, when Lexicon returns from the current operation one would assume that changes are committed. So for the sake of simplicity I would just commit right after the actual modification, and so hang until it is done.
If it is really a big problem, we can find a better way than calling the constructor. Using
atexit
standard module, you can register handlers that will be invoked when Python close the process. It gives a consistent way to ensure that it is executed, since the only way to avoid these handlers is tokill -9
the current process.Still the Python process will hang while leaving until the commit is effective.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thinking about it again. So if the slow operation is still acceptable to be done after each effective modification (create, update, delete).
If you want a pythonic approach to ensure that something is always done at the end of some logic, you can use a contextmanager. It is basically a
try/finally
, but more elegant. Here an implementation I propose for your use case:Here the contextmanager will ensure that commit is done whatever happened in
_create_record
as soon ascommit_trigger.need_commit = True
is called. Similarly, list_record will not commit at the end, sincecommit_trigger.need_commit
is not set toTrue
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know. When asking the provider for the limits they just mentioned the login limit. The commit limit seems to be different: The API responds with a variable delay; the more often the commit function is called the slower it gets. For normal operations it's almost unnoticeable but when deleting a lot of records e.g. after running the integration tests it takes much more time to commit each single delete than to commit all deletions at once.
I will take a closer look at your proposal. As I'm new to Python I'll need a little bit more time to understand what's happening there … 😃
I already worked in all other comments. I guess I'll be done tomorrow evening CEST.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@adferrand: Okay, finally got to this point. We have decorators and contextmanager, with and yield statements, generators and iterables. Just let me say that I can wrap my head around the last two but with, yield and decorators are still beyond my scope 😆
I try to slowly understand what's happening here but that's too much at once. I guess I have to live with that for now.
With those changes I run again into this error in two tests:
The rest works as intended.