Sha256: 8a26acb44e7557286e85e36db72b6eb5863c12e6156cdc0b2649522f24daf5f8

Contents?: true

Size: 1.38 KB

Versions: 3

Compression:

Stored size: 1.38 KB

Contents

class IBOS < Oxidized::Model
  using Refinements

  # IBOS model, Intelligent Broadband Operating System (iBOS)
  # Used in Waystream (previously PacketFront) Routers and Switches

  prompt /^([\w.@()-]+[#>]\s?)$/
  comment  '! '

  cmd :all do |cfg|
    cfg.each_line.to_a[1..-2].join
  end

  cmd :secret do |cfg|
    # snmp-group version 2c
    #  notify 10.1.1.1 community public trap
    cfg.gsub! /^ notify (\S+) community (\S+) (.*)/, ' notify \\1 community <hidden> \\3'

    # snmp-group version 2c
    #  community public read-only view all
    cfg.gsub! /^ community (\S+) (.*)/, ' community <hidden> \\2'

    # radius server 10.1.1.1 secret public
    cfg.gsub! /^radius server (\S+) secret (\S+)(.*)/, 'radius server \\1 secret <hidden> \\3'
  end

  cmd 'show version' do |cfg|
    cfg.gsub! /.*uptime is.*/, ''
    comment cfg
  end

  cmd 'show running-config' do |cfg|
    cfg = cfg.each_line.to_a[0..-1].join
    cfg.gsub! /.*!volatile.*/, ''
    cfg
  end

  cfg :telnet do
    username /^username:\s/
    password /^\r?password:\s/
  end

  cfg :telnet, :ssh do
    # preferred way to handle additional passwords
    post_login do
      if vars(:enable) == true
        cmd "enable"
      elsif vars(:enable)
        cmd "enable", /^[pP]assword:/
        cmd vars(:enable)
      end
    end
    post_login 'terminal no pager'
    post_login 'terminal width 65535'
    pre_logout 'exit'
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
oxidized-0.30.1 lib/oxidized/model/ibos.rb
oxidized-0.30.0 lib/oxidized/model/ibos.rb
oxidized-0.29.1 lib/oxidized/model/ibos.rb