summaryrefslogtreecommitdiffstats
path: root/lib/puppet/provider/interface/cisco.rb
blob: f3bd202e94bcb3cd13635a8e96c1f7aaeafcd5f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
require 'puppet/util/network_device/cisco/device'
require 'puppet/provider/network_device'

Puppet::Type.type(:interface).provide :cisco, :parent => Puppet::Provider::NetworkDevice do

  desc "Cisco switch/router provider for interface."

  mk_resource_methods

  def self.lookup(url, name)
    interface = nil
    network_gear = Puppet::Util::NetworkDevice::Cisco::Device.new(url)
    network_gear.command do |ng|
      interface = network_gear.interface(name)
    end
    interface
  end

  def initialize(*args)
    super
  end

  def flush
    device.command do |device|
      device.new_interface(name).update(former_properties, properties)
    end
    super
  end

  def device
    @device ||= Puppet::Util::NetworkDevice::Cisco::Device.new(resource[:device_url])
  end
end