File: network_add_port.rb

package info (click to toggle)
ruby-fog-openstack 1.1.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 11,784 kB
  • sloc: ruby: 47,937; makefile: 5; sh: 4
file content (21 lines) | stat: -rw-r--r-- 1,024 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
require 'fog/openstack'

# Add additional port to an Openstack node

def create_virtual_address_pairing(username, password, auth_url, tenant, device_id, device_ip_address, network_id)
  network_driver = Fog::Network.new(:provider           => :openstack,
                                    :openstack_api_key  => password,
                                    :openstack_username => username,
                                    :openstack_auth_url => auth_url,
                                    :openstack_tenant   => tenant)

  virtual_ip_address = network_driver.create_port(network_id)

  server_nics = network_driver.list_ports('device_id' => device_id).data[:body]['ports']
  port = (server_nics.select do |network_port|
    network_port['mac_address'] == server.attributes['macaddress']
  end).first

  network_driver.update_port(port['id'], :allowed_address_pairs => [{:ip_address => device_ip_address},
                                                                    {:ip_address => virtual_ip_address}])
end