This adds DNS names to the output for host queries.
Hosts are discovered in private, then public order, first at the
top-level, and then through attached network interfaces. This mirrors
the discovery order of IP addresses.
This adds checks for unknown attributes through the entire plugin
lifecycle for all attributes, secrets, and persisted state.
It also fixes the E2E test which seems to have drifted.
Ideally we'd ensure that an incoming filter is a string, but some
clients, such as the CLI, don't have a good way to require this without
it being very onerous to the user.
Eventually we can handle this via allowing the plugin to declare a
schema and perform type validation in the handler, but for now, work
around this within the plugin.
We now add the instance-state = ["running"] filter to all queries if
instance-state is not explicitly defined beforehand. This should ensure
that all queries return running instances beforehand (saving some
post-processing later too).
As such, I'm removing an artifact of the old code where we were not
doing this, which was basically to skip all running instances.
Additionally, this will allow an operator to include non-running
instances in a filter should this be desired for whatever reason.