In libjuju[0], machine.dns_name will look for `public` or `local-cloud` address.
For lxd, neither exists, it will return None and cause ssh/scp functions fail.[1]
This patch use `local-fan` address as public address, when neither public nor local-cloud addr is available. so `machine.dns_name` can still get a valid address.
In libjuju[0], machine.dns_name will look for `public` or `local-cloud` address.
For lxd, neither exists, it will return None and cause ssh/scp functions fail.[1]
This patch use `local-fan` address as public address,
so `machine.dns_name` can still get a valid address.
Add support for Python 3.6 (version bundled with bionic)
* Adds unit testing with two versions of Python (3.6 / 3.8)
* Replaces dataclasses with the attr library
* Marked the failing unit test from LP#1951914 to be skipped