Revision 4963a970
Added by Greg Sutcliffe about 10 years ago
app/models/concerns/fog_extensions/aws/server.rb | ||
---|---|---|
flavor.to_label
|
||
end
|
||
|
||
def ip_addresses
|
||
[public_ip_address, private_ip_address].flatten.compact
|
||
end
|
||
|
||
end
|
||
end
|
||
end
|
app/models/concerns/orchestration/compute.rb | ||
---|---|---|
if attrs.keys.include?(:ip)
|
||
logger.info "waiting for instance to acquire ip address"
|
||
vm.wait_for do
|
||
self.send(attrs[:ip]).present? || (self.public_ip_addresses + self.private_ip_addresses).present?
|
||
self.send(attrs[:ip]).present? || self.ip_addresses.present?
|
||
end
|
||
end
|
||
rescue => e
|
||
... | ... | |
begin
|
||
Timeout::timeout(120) do
|
||
until ip
|
||
addresses = vm.public_ip_addresses + vm.private_ip_addresses
|
||
addresses.each do |addr|
|
||
vm.ip_addresses.each do |addr|
|
||
ip = addresses.find { |addr| ssh_open?(addr) }
|
||
end
|
||
sleep 2
|
||
... | ... | |
logger.info "acquisition of ip address timed out"
|
||
# Userdata doesn't require an IP to ssh to, so if we can't
|
||
# reach it, just pick one. SSH will correctly fail for an unreachable IP
|
||
ip = (vm.public_ip_addresses + vm.private_ip_addresses).first if ip.blank?
|
||
ip = vm.ip_addresses.first if ip.blank?
|
||
end
|
||
ip
|
||
end
|
Also available in: Unified diff
Fixes #4616 - Add a Fog mixin for looking up EC2 IP addresses