Sha256: 326bb60db87595e03e33fbeae992a5a198d82c55595401484111e5b60d9ed2fc
Contents?: true
Size: 1.3 KB
Versions: 1
Compression:
Stored size: 1.3 KB
Contents
# Copyright (c) 2012-2013 Stark & Wayne, LLC module Bosh; module Providers; end; end require "bosh/providers/base_provider" class Bosh::Providers::OpenStack < Bosh::Providers::BaseProvider # Creates or reuses an OpenStack security group and opens ports. # # +security_group_name+ is the name to be created or reused # +ports+ is a hash of name/port for ports to open, for example: # { # ssh: 22, # http: 80, # https: 443 # } def create_security_group(security_group_name, description, ports) unless sg = fog_compute.security_groups.get(security_group_name) sg = fog_compute.security_groups.create(name: security_group_name, description: description) puts "Created security group #{security_group_name}" else puts "Reusing security group #{security_group_name}" end ip_permissions = sg.ip_permissions ports_opened = 0 ports.each do |name, port| unless port_open?(ip_permissions, port) sg.create_security_group_rule(port, port) puts " -> opened #{name} port #{port}" ports_opened += 1 end end puts " -> no additional ports opened" if ports_opened == 0 true end def port_open?(ip_permissions, port) ip_permissions && ip_permissions.find {|ip| ip["fromPort"] <= port && ip["toPort"] >= port } end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bosh-bootstrap-0.5.0 | lib/bosh/providers/openstack.rb |