barnybug/cli53

cli53 timeout option feature to avoid 6 hours to wait

emper0r-cu opened this issue · 6 comments

Issue type

  • Feature idea

cli53 version (cli53 --version)

cli53 version 0.8.18

OS / Platform

Linux

Steps to reproduce

20230209-15:01: Create/Update EC2 record: server1 into Zone private.hostedzone.aws
Error: RequestError: send request failed
caused by: Get "https://route53.amazonaws.com/2013-04-01/hostedzonesbyname?dnsname=private.hostedzone.aws": dial tcp 54.239.31.187:443: i/o timeout
20230209-21:23: Rotation logs

Expected behaviour

add --timeout option to avoid 6 hours for wait until get timout output for any reason.

Actual behaviour

we are using cli53 in cloud-init to register any ec2 into our private hosted zone.
in some ec2 for other reasons we block tcp/443 so cli53 can't contact aws service, we can add the secutiry group for this as whitelist but we can found very useful if the software can add an option like --timeout to not hung and stuck the boot up of EC2 wait by default this 6 hours until get response by timeout i/o request, so for this uses cases can be set --timeout 1m and avoid the issue.


Have you checked if the documentation has the information you require?

Could you contribute a fix or help testing with this issue?

Yes, we can test it if is added quickly

I've added this feature to the 0.8.22 release --timeout. Let me know how you get on!

Hi again @barnybug

Thanks for the effort... I test it the new version 0.8.22 and unfortunally the timeout option still didn't work

Closing the tcp/443 port on security group to do the test and remains hung and stuck it.

cli53 rrcreate --replace private.hostedzone.aws 'hostaws1 300 A 10.1.2.3 --timeout 30'
^C

As you can see had to interrupt with Ctrl+C after 5 min waiting, with this option must be continue if not response after 30 seconds. Let me know if found the issue and can reach to fix it for make a new test.

--timeout is an option, should be:
cli53 rrcreate --timeout 30 --replace private.hostedzone.aws 'hostaws1 300 A 10.1.2.3'

Hi @barnybug

yes. it works! thanks for the improvement

Just other thing same for the --timeout option,
using script into userdata reach to skip the boot and no stuck the instance but if i run internally after login into ec2, blocking 443 the output is:

cli53 --timeout 10 rrcreate --replace private.hostedzone.aws 'hostaws1 300 A 10.1.2.3'

Incorrect Usage. flag provided but not defined: -timeout

NAME:
   cli53 - manage route53 DNS

USAGE:
   cli53 [global options] command [command options] [arguments...]

VERSION:
   0.8.22

COMMANDS:
   list, l       list domains
   create        create a domain
   delete        delete a domain
   validate      validate a bind zone file syntax
   import        import a bind zone file
   instances     dynamically update your dns with EC2 instance names
   export        export a bind zone file (to stdout)
   rrcreate, rc  create one or more records
   rrdelete, rd  delete a record
   rrpurge       delete all the records (danger!)
   dslist        list reusable delegation sets
   dscreate      create a reusable delegation set
   dsdelete      delete a reusable delegation set
   help, h       Shows a list of commands or help for one command

my goal to avoid stuck is ok.. but just to keep better the option output in the help in case someone use it directly from command line.

All the flags are defined per command, not globally so you won't see them in the general help, only in command specific help.