lib/puppet/util/network_device/cisco_ios/model/switch.rb
require 'puppet/util/network_device/ipcalc'
require 'puppet/util/network_device/cisco_ios/model'
require 'puppet/util/network_device/cisco_ios/model/aaa_group'
require 'puppet/util/network_device/cisco_ios/model/acl'
require 'puppet/util/network_device/cisco_ios/model/archive'
require 'puppet/util/network_device/cisco_ios/model/vlan'
require 'puppet/util/network_device/cisco_ios/model/user'
require 'puppet/util/network_device/cisco_ios/model/radius_server'
require 'puppet/util/network_device/cisco_ios/model/snmp_community'
require 'puppet/util/network_device/cisco_ios/model/snmp_host'
require 'puppet/util/network_device/cisco_ios/model/snmp'
require 'puppet/util/network_device/cisco_ios/model/interface'
require 'puppet/util/network_device/cisco_ios/model/base'
require 'puppet/util/network_device/cisco_ios/model/generic_value'
class Puppet::Util::NetworkDevice::Cisco_ios::Model::Switch < Puppet::Util::NetworkDevice::Cisco_ios::Model::Base
attr_reader :params, :vlans
def initialize(transport, facts)
super
# Initialize some defaults
@params ||= {}
@vlans ||= []
# Register all needed Modules based on the availiable Facts
register_modules
end
def mod_path_base
return 'puppet/util/network_device/cisco_ios/model/switch'
end
def mod_const_base
return Puppet::Util::NetworkDevice::Cisco_ios::Model::Switch
end
def param_class
return Puppet::Util::NetworkDevice::Cisco_ios::Model::GenericValue
end
def register_modules
register_new_module(:base)
end
def skip_params_to_hash
[ :snmp, :archive ]
end
def interface(name)
int = params[:interfaces].value.find { |int| int.name == name }
int.evaluate_new_params
return int
end
[ :aaa_group,
:acl,
:user,
:vlan,
:radius_server,
:snmp_community,
:snmp_host,
].each do |key|
define_method key.to_s do |name|
grp = params[key].value.find { |g| g.name == name }
if grp.nil?
grp = Puppet::Util::NetworkDevice::Cisco_ios::Model.const_get(key.to_s.capitalize).new(transport, facts, {:name => name})
params[key].value << grp
end
grp.evaluate_new_params
return grp
end
end
def line(name)
line = params[:lines].value.find { |l| l.name == name }
line.evaluate_new_params
return line
end
def snmp(name)
unless params[:snmp]
params[:snmp] = Puppet::Util::NetworkDevice::Cisco_ios::Model::Snmp.new(transport, facts, {:name => name})
params[:snmp].evaluate_new_params
end
return params[:snmp]
end
def archive(name)
unless params[:archive]
params[:archive] = Puppet::Util::NetworkDevice::Cisco_ios::Model::Archive.new(transport, facts, { :name => name })
params[:archive].evaluate_new_params
end
return params[:archive]
end
end