lib/beaker/hypervisor/ec2_helper.rb in beaker-1.21.0 vs lib/beaker/hypervisor/ec2_helper.rb in beaker-2.0.0
- old
+ new
@@ -1,29 +1,41 @@
module Beaker
class EC2Helper
# Return a list of open ports for testing based on a hosts role
#
# @todo horribly hard-coded
- # @param [Array<String>] roles An array of roles
+ # @param [Host] host to find ports for
# @return [Array<Number>] array of port numbers
# @api private
- def self.amiports(roles)
+ def self.amiports(host)
ports = [22, 61613, 8139]
+ roles = host['roles']
+
if roles.include? 'database'
+ ports << 5432
ports << 8080
ports << 8081
end
if roles.include? 'master'
ports << 8140
end
if roles.include? 'dashboard'
ports << 443
+ ports << 4433
ports << 4435
end
- ports
+ # If they only specified one port in the host config file, YAML will have converted it
+ # into a string, but if it was more than one, an array.
+ user_ports = []
+ if host.has_key?('additional_ports')
+ user_ports = host['additional_ports'].is_a?(Array) ? host['additional_ports'] : [host['additional_ports']]
+ end
+
+ additional_ports = ports + user_ports
+ additional_ports.uniq
end
end
end