class Bim::Action::Snat

Snat class uses by Bim::Subcommands::Node

Constants

SNAT_PATH
SNAT_URI

Public Class Methods

add_address(name, addresses) click to toggle source
# File lib/bim/action/snat.rb, line 52
def add_address(name, addresses)
  origins = specify_link_by_name(SNAT_URI, name, %(origins))
  j = { 'origins': origins.push(addresses.map { |address| { 'name': address } }).flatten }
  self_patch(name, SNAT_URI, j.to_json)
end
create(name, translation, address_list, vlans) click to toggle source
# File lib/bim/action/snat.rb, line 26
def create(name, translation, address_list, vlans)
  j = {
    'name': name,
    'translation': translation,
    'origins': address_list.map { |address| { 'name': address } }
  }
  unless vlans.nil?
    j['vlansEnabled'] = true
    j['vlans'] = vlans.map { |vlan| "/Common/#{vlan}" }
  end
  post(SNAT_URI, j.to_json)
end
detail(name) click to toggle source
# File lib/bim/action/snat.rb, line 22
def detail(name)
  specify(SNAT_URI) { |d| d['name'] == name }
end
ls() click to toggle source
# File lib/bim/action/snat.rb, line 11
def ls
  map(SNAT_URI) do |item|
    {
      'name': item['name'],
      'translation': item['translation'],
      'address_list': item['origins'].map { |origin| origin['name'] },
      'vlans': item['vlans']
    }
  end
end
remove_address(name, addresses) click to toggle source
# File lib/bim/action/snat.rb, line 58
def remove_address(name, addresses)
  origins = specify_link_by_name(SNAT_URI, name, %(origins))
  j = { 'origins': (origins.map { |origin| origin['name'] } - addresses).map { |address| { 'name': address } } }
  self_patch(name, SNAT_URI, j.to_json)
end
update(name, translation, address_list, vlans) click to toggle source
# File lib/bim/action/snat.rb, line 39
def update(name, translation, address_list, vlans)
  j = {}
  if address_list
    j['origins'] = address_list.map { |address| { 'name': address } }
  end
  j['translation'] = translation if translation
  unless vlans.nil?
    j['vlansEnabled'] = true
    j['vlans'] = vlans.map { |vlan| "/Common/#{vlan}" }
  end
  self_patch(name, SNAT_URI, j.to_json)
end