class F5::Cli::VLAN

Public Instance Methods

create(vid, name, *members) click to toggle source
# File lib/f5/cli/application.rb, line 193
def create(vid, name, *members)
  if members.empty?
    puts "I need at least one member interface"
    exit
  end

  memberdata = members.map do |m|
    (mtype, mname) = m.split /:/
    if mname.nil?
      puts "Each member must be in the form of interface/trunk:id"
      exit
    end
    { member_name: mname,
      member_type: (mtype == 'trunk' ? 'MEMBER_TRUNK' : 'MEMBER_INTERFACE'),
      tag_state: 'MEMBER_TAGGED' }
  end

  response = client.Networking.VLAN.create_v2(
    vlans: { item: [ name ] },
    vlan_ids: { item: [ vid ] },
    members: { item: [ item: memberdata ] },
    failsafe_states: { item: [ 'STATE_DISABLED' ] },
    timeouts: { item: [ 100 ] } #???
  )
  puts response

end
list() click to toggle source
# File lib/f5/cli/application.rb, line 165
def list
  response = client.Networking.VLAN.get_list

  vlans = extract_items(response, :as_array)
  if vlans.empty?
    puts "No VLANs found"
  else
    vlans.each do |vlan|
      puts vlan
    end
  end
end
show(name) click to toggle source
# File lib/f5/cli/application.rb, line 179
def show(name)
  members = extract_items client.Networking.VLAN.get_member(vlans: { item: [ name ] } ), :as_array

  vid = extract_items client.Networking.VLAN.get_vlan_id(vlans: { item: [ name ] } )

  failsafe_state = extract_items client.Networking.VLAN.get_failsafe_state(vlans: { item: [ name ] } )

  puts "VLAN id #{vid} and failsafe is #{failsafe_state}"
  members.each do |member|
    puts "Interface %s is a %s and tag state is %s" % [ member[:member_name], member[:member_type], member[:tag_state] ]
  end
end