server: Allow to fetch rDNS info for a Server.

This now introduces the ReverseDNSManager I wanted to avoid. But
iterating through all subnets of a particular server really is too
costly and we want to avoid that and keep the Robot API traffic low.

Also, this again relies on exception handling in business logic, which
is really bad, so let's fix this soon.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
hetznerctl/show: Show reverse PTRs for a server.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
hetznerctl: Don't show address range anymore.

This is really too much information and its redundant because we already
have this information in CIDR notation.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
server: Fix attribute error in repr of ReverseDNS.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
hetznerctl: Introduce new rdns subcommand.

Currently only lists all reverse DNS PTRs and allows to get the reverse
entry of a specific IP but doesn't allow for changing it yet.

This also introduces a bit of ugliness, because we're using
ReverseDNSManager from the server module.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
server: Move ReverseDNS classes into hetzner.rdns.

This cleans up the ugliness introduced in the previous commit and makes
reverse DNS handling independent of a server or a subnet.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
hetznerctl: Add rdns -s option for setting rPTRs.

The underlying implementation in hetzner.rdns currently is just a stub
but will come very soon to a commit near you.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
rdns: Implement set() method.

This is rather trivial and just sets a specific FQDN for the current IP
address.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
robot: Fix delete() by allowing empty responses.

The HTTP status code/message alone should be sufficient enough to give
enough info about the success or failure of a DELETE request.

Also, the data argument for delete() is now optional as well.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
hetznerctl, rdns: Allow to remove a reverse PTR.

I mainly use this for testing purposes, but it might be useful for some
people as well, especially if you forgot which is the default record
(usually something like static.1.2.3.4.clients.your-server.de).

Signed-off-by: aszlig <aszlig@redmoonstudios.org>