acme.sh icon indicating copy to clipboard operation
acme.sh copied to clipboard

Add ArtFiles.de DNS API plugin

Open Eagle3386 opened this issue 2 years ago β€’ 6 comments

Usage instructions already added to DNS API guide.

Eagle3386 avatar Feb 27 '22 16:02 Eagle3386

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

Eagle3386 avatar Feb 27 '22 17:02 Eagle3386

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

Eagle3386 avatar Jun 16 '22 07:06 Eagle3386

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

Neilpang avatar Jun 16 '22 07:06 Neilpang

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…

Eagle3386 avatar Jun 16 '22 07:06 Eagle3386

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

please read the doc first:

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

Neilpang avatar Jun 18 '22 06:06 Neilpang

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 avatar Jun 18 '22 15:06 Eagle3386

@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!

Eagle3386 avatar Jul 15 '23 17:07 Eagle3386

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

image

Neilpang avatar Jul 29 '23 07:07 Neilpang

@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.

Eagle3386 avatar Jul 29 '23 08:07 Eagle3386

did you add the usage?

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

Neilpang avatar Jul 30 '23 03:07 Neilpang

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

Neilpang avatar Jul 30 '23 03:07 Neilpang

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 avatar Jul 30 '23 07:07 Eagle3386

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)
  2. βœ…
  3. βœ…
  4. βœ…
  5. βœ…
  6. βœ…
  7. βœ…
  8. βœ…
  9. βœ…
  10. βœ…
  11. βœ…
  12. βœ…

Eagle3386 avatar Jul 30 '23 07:07 Eagle3386

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

Can you fix it?

Neilpang avatar Jul 30 '23 07:07 Neilpang

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.

Eagle3386 avatar Jul 30 '23 09:07 Eagle3386

the egrep issue was fixed, rebase your code.

Neilpang avatar Jul 30 '23 09:07 Neilpang

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

Neilpang avatar Jul 30 '23 09:07 Neilpang

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 avatar Jul 30 '23 12:07 Eagle3386

@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.

Eagle3386 avatar Jul 31 '23 14:07 Eagle3386