vaguerent/plugins/providers/docker/cap/public_address.rb

27 lines
752 B
Ruby

# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: BUSL-1.1
module VagrantPlugins
module DockerProvider
module Cap
module PublicAddress
def self.public_address(machine)
return nil if machine.state.id != :running
# If we're using a host VM, then return the IP of that
# rather than of our own machine.
if machine.provider.host_vm?
host_machine = machine.provider.host_vm
return nil if !host_machine.provider.capability?(:public_address)
return host_machine.provider.capability(:public_address)
end
ssh_info = machine.ssh_info
return nil if !ssh_info
ssh_info[:host]
end
end
end
end
end