Class: Bosh::Providers::BaseProvider

Inherits:
Object
  • Object
show all
Defined in:
lib/bosh/providers/base_provider.rb

Direct Known Subclasses

AWS, OpenStack

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(fog_compute) ⇒ BaseProvider

Returns a new instance of BaseProvider.



8
9
10
# File 'lib/bosh/providers/base_provider.rb', line 8

def initialize(fog_compute)
  @fog_compute = fog_compute
end

Instance Attribute Details

#fog_computeObject (readonly)

Returns the value of attribute fog_compute.



6
7
8
# File 'lib/bosh/providers/base_provider.rb', line 6

def fog_compute
  @fog_compute
end

Instance Method Details

#create_key_pair(key_pair_name) ⇒ Object



12
13
14
# File 'lib/bosh/providers/base_provider.rb', line 12

def create_key_pair(key_pair_name)
  fog_compute.key_pairs.create(:name => key_pair_name)
end

#delete_key_pair_if_exists(key_pair_name) ⇒ Object



16
17
18
19
20
# File 'lib/bosh/providers/base_provider.rb', line 16

def delete_key_pair_if_exists(key_pair_name)
  if fog_key_pair = fog_compute.key_pairs.get(key_pair_name)
    fog_key_pair.destroy
  end
end

#extract_port_definition(port_defn) ⇒ Object

Any of the following port_defn can be used: {

ssh: 22,
http: { ports: (80..82) },
mosh: { protocol: "udp", ports: (60000..60050) }
mosh: { protocol: "rdp", ports: (3398..3398), ip_range: "196.212.12.34/32" }

} In this example,

* TCP 22 will be opened for ssh from any ip_range,
* TCP ports 80, 81, 82 for http from any ip_range,
* UDP 60000 -> 60050 for mosh from any ip_range and
* TCP 3398 for RDP from ip range: 96.212.12.34/32


34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/bosh/providers/base_provider.rb', line 34

def extract_port_definition(port_defn)
  protocol = "tcp"
  ip_range = "0.0.0.0/0"
  if port_defn.is_a? Integer
    port_range = (port_defn..port_defn)
  elsif port_defn.is_a? Range
    port_range = port_defn
  elsif port_defn.is_a? Hash
    protocol = port_defn[:protocol] if port_defn[:protocol]
    port_range = port_defn[:ports]  if port_defn[:ports]
    ip_range = port_defn[:ip_range] if port_defn[:ip_range]
  end
  [protocol, port_range, ip_range]
end