By pruning machines that are in "unknown" status after each operation, the Go code path exposed the fact that the Docker provider was not updating the machine index during an "up" - leaving the state as "unknown". This is basically a bug within the Docker provider, so I think it's okay to update the plugin code to correct this rather than working around the issue in Go. All we need to do is call `machine.state` instead of reaching through to `machine.provider.state` while waiting for the container to be started. That causes the extra logic for updating the machine index in `machine.state` to fire.
Vagrant Core Plugins
These are plugins that ship with Vagrant. Vagrant core uses its own plugin system to power a lot of the core pieces that ship with Vagrant. Each plugin will have its own README which explains its specific role.
Generate proto
grpc_tools_ruby_protoc -I . --ruby_out=gen/plugin --grpc_out=gen/plugin ./plugin_server.proto