Python 2.7.2, installed via pip today on Windows.
I can create zones, delete zones, list zones and create records OK.
But if I try and import my DNS file, nothing happens in Route53, and there is no output from the CLI other than a carriage return / blank line before my prompt returns.
Originally, it complained about no origin, but I fixed that in the file. I've tried the replace, editauth, dump and wait options. None of them make any difference, unless I have replace and editauth together in which case I get a traceback with a 400 back from AWS with "A HostedZone must contain at least one NS record for the zone itself." I've already substituted my original DNS servers with some that Route53 assigned originally, so it does have the NS records. I've also tried taking out all the comments in the file, and all the sub-domain entries. I've looked through the source for a debug option, but I can't see one.
Please help! Thanks.
Hey, seems likely it's a windows specific issue - I've not heard of anyone running cli53 on windows before. Any chance you could try on a linux host / vm with the same zone file and see if you get different results?
Trying it on Debian Python 2.5.2, I get this error:
Please install latest boto:
pip install boto
(error was: No module named json)
boto was already installed via pip when I installed cli53, but I tried again and it said 'Requirement already satisfied'.
FYI, just retried on Windows converting file to UNIX format, but no change.
pip install json
pip install simplejson
If that doesn't work,
pip install -U boto
Maybe I should mention that I installed pip in a virtualenv called AWS. Hope this is OK!
(AWS)hostname:~# pip install json
Could not find any downloads that satisfy the requirement json
No distributions at all found for json
Storing complete log in /root/.pip/pip.log
(AWS)hostname:~# pip install -U boto
Requirement already up-to-date: boto in ./AWS/lib/python2.5/site-packages
Sorry "pip install simplejson"
OK, done. New error:
Traceback (most recent call last):
File "/root/AWS/bin/cli53", line 191, in
r53 = boto.route53.Route53Connection()
File "/root/AWS/lib/python2.5/site-packages/boto/route53/connection.py", line 66, in init
File "/root/AWS/lib/python2.5/site-packages/boto/connection.py", line 480, in init
"SSL server certificate validation is enabled in boto "
boto.exception.BotoClientError: BotoClientError: SSL server certificate validation is enabled in boto configuration, but Python dependencies required to support this feature are not available. Certificate validation is only supported when running under Python 2.6 or later.
I can't see anything in the BotoConfig about SSL server certificate validation, so I'm not sure how to turn this off...
"Efforts are made to keep boto compatible with Python 2.5.x but no guarantees are made."
So looks like boto may not run python 2.5 - you'll have to try a newer o/s.
OK, I disabled SSL server certificate validation with:
but changing True to False.
I now get the same result as on Windows! i.e. nothing.
Perhaps you could produce a minimal zone file that reproduces on a new zone - hide any confidential details.
Sure. I created a zone called sebster7test.com and used a previous output of "cli53 list" prefixed with the origin line and with a testhost at the bottom:
@ 172800 IN NS ns-699.awsdns-23.net.
@ 172800 IN NS ns-306.awsdns-38.com.
@ 172800 IN NS ns-1553.awsdns-02.co.uk.
@ 172800 IN NS ns-1436.awsdns-51.org.
@ 900 IN SOA ns-699.awsdns-23.net. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400
testhost 900 A 220.127.116.11
Add a dot after your origin:
Add warning about $ORIGIN missing ending period. #47
Oops! Many thanks! It works fine with the final period. :)