Skip to content
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

Add ArtFiles.de DNS API plugin #3959

Merged
merged 22 commits into from
Sep 2, 2023
Merged

Conversation

Eagle3386
Copy link
Contributor

@Eagle3386 Eagle3386 commented Feb 27, 2022

Usage instructions already added to DNS API guide.

@Eagle3386 Eagle3386 marked this pull request as ready for review February 27, 2022 16:13
@Eagle3386
Copy link
Contributor Author

@Neilpang Please approve my first contribution so that Actions run.
Usage instructions already added, see PR's initial comment for details.

@Eagle3386
Copy link
Contributor Author

Pinging @Neilpang as a kind reminder since I'm eagerly waiting to see this plugin merged into ACME… 😍

@Neilpang
Copy link
Member

fix the CI Checks first:
https://github.com/acmesh-official/acme.sh/wiki/DNS-API-Test

@Eagle3386
Copy link
Contributor Author

How to re-issue the checks without another commit? Because back in the days, some checks where broken under certain circumstances, i. e. nowadays might succeed without any change…

@Neilpang
Copy link
Member

@Eagle3386
Copy link
Contributor Author

Eagle3386 commented Jun 18, 2022

https://github.com/Eagle3386/acme.sh/actions/runs/2507553697

Job(s) re-run, no error message given - just the Docker step idling & GitHub canceling it after 6 hours of doing nothing.

please read the doc first:

https://github.com/acmesh-official/acme.sh/wiki/DNS-API-Test

I did read those docs. I've read it about 23 times actually!
Though, there's not a single helpful notice on what to do if Docker gives zero errors & zero information about what it did for 6 hours.

Those docs are pretty good for setup, but totally useless regarding any occurring error or - as in my case - zero error & zero information for why Docker idled ~6 hours & GitHub then terminating it.

So, for code's sake, either tell me how to find the error, enable the debug logs to actually show something useful or just merge this PR as I run it every ~60 days on my own systems successfully without any errors, hence - in theory at least - already passing those darn tests.

@Eagle3386
Copy link
Contributor Author

Eagle3386 commented Jul 15, 2023

@Neilpang Fixed all bugs & the tests succeeded - due to API write limits of my provider (not more than 50 API write calls per day for each domain), I could only execute the full DNS test suite over the course of several days (and the latest run, triggered by my RI merge, failed for that very same reason)…

Still, the tests succeeded, so I'm looking forward to your merge of my DNS API addition to ACME.sh.
If anything still needs further polishing, please let me know!

@Neilpang
Copy link
Member

It seems you didn't read the guide carefully:
https://github.com/acmesh-official/acme.sh/wiki/DNS-API-Dev-Guide

image

@Eagle3386
Copy link
Contributor Author

Eagle3386 commented Jul 29, 2023

@Neilpang Created issue #4718 & also added the URL to the DNS API plugin file as requested.

Though, now shfmt complains about a line within _egrep_o() inside acme.sh that I didn't even touch at all & there's no commit in your repo to sync my fork with so please fix that on your end to resolve shfmt's error on any fork's end, thanks.

@Neilpang
Copy link
Member

did you add the usage?

https://github.com/acmesh-official/acme.sh/wiki/dnsapi2

@Neilpang
Copy link
Member

can you please check this guide one by one?
https://github.com/acmesh-official/acme.sh/wiki/DNS-API-Dev-Guide

@Eagle3386
Copy link
Contributor Author

did you add the usage?

https://github.com/acmesh-official/acme.sh/wiki/dnsapi2

Are you serious? You'd just have to search ArtFiles over there & immediately would've found 143. Use ArtFiles.de DNS API.

@Eagle3386
Copy link
Contributor Author

Eagle3386 commented Jul 30, 2023

can you please check this guide one by one? https://github.com/acmesh-official/acme.sh/wiki/DNS-API-Dev-Guide

Can you please accept the fact that my script is ready for merge as well as immediate usage?
But just for the sake of pleasing you once again:

  1. ✅ (doesn't really apply due to ArtFiles.de's API constraints, but where it does, it complies, too)

@Neilpang
Copy link
Member

it seems the DNS test never passed:
https://github.com/Eagle3386/acme.sh/actions/runs/5699465643/job/15448404280

Can you fix it?

@Eagle3386
Copy link
Contributor Author

it seems the DNS test never passed: https://github.com/Eagle3386/acme.sh/actions/runs/5699465643/job/15448404280

Can you fix it?

There's nothing to fix on my end, but on yours - just as I told you earlier, mentioning a bug in _egrep_o() which causes shfmt to fail.

Even longer ago, I mentioned that all bugs were fixed & the script runs just fine, even on my production system, but that sometimes the Docker script times out for no reason (at least none caused by me or my script).
Additionally, GitHub doesn't cache free job runs long enough for you to re-check them after so many days.

So, until mentioned bug in acme.sh is fixed by you, shfmt in turn doesn't complain about _egrep_o() anymore & you're Docker script won't idle 6 hours for no reason at all, I'm simply unable to re-run the tests successfully.

@Neilpang
Copy link
Member

the egrep issue was fixed, rebase your code.

@Neilpang
Copy link
Member

please make sure the DNS tests passing before I can merge the code.

@Eagle3386
Copy link
Contributor Author

Eagle3386 commented Jul 30, 2023

the egrep issue was fixed, rebase your code.

Did so yesterday, no commits to update to - did it again right now, updated 11 commits.

please make sure the DNS tests passing before I can merge the code.

Done, see passed checks below.

@Eagle3386
Copy link
Contributor Author

Eagle3386 commented Jul 31, 2023

@Neilpang Even tried to run all the DNS tests again (marked as Skipped in below's All checks have passedbox), but the amount of systems you're forcing to be tested in 1 run are forbidden on the DNS provider's end:

[Mon Jul 31 14:***4:34 UTC 2***23] DNS API error: {"error":"daily limit for this domain exceeded","status":"ERROR"}

That limit is 50 API write-calls within 24 hours & since each test requires at least 4 writes (1 for writing the TXT challenge value, 1 for deleting it, yet another 1 for writing the wildcard TXT challenge value & finally another 1 for deleting it), I can only test up to 12 systems.

That's why each system up to & including oraclelinux succeeds, but kalilinux fails (due to already reaching the write-call limit upon finishing the non-wildcard TXT challenge value on that system).

Even worse, the write-call limit is per "rolling 24 hours", i. e. I can't start at ~23:45 to execute 50 calls & get another 50 free calls at 00:00 - instead, the 24-hours-timer starts whenever the first write-call is executed.
And I didn't even execute any other write-call to that specific domain - each of those 50 write-calls was solely initiated by your test-script.

The only way to work around would be splitting the Docker step into 2 steps, so I can run the first half, re-run the failed 2nd half 24 hours later & continue - possibly after waiting yet another 24 hours - with further steps like MacOS or Windows afterwards.

@Neilpang Neilpang merged commit 46a8764 into acmesh-official:dev Sep 2, 2023
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants