Class: Puppet::Provider::NetworkVlan::CiscoNexus
- Inherits:
-
ResourceApi::SimpleProvider
- Object
- ResourceApi::SimpleProvider
- Puppet::Provider::NetworkVlan::CiscoNexus
- Defined in:
- lib/puppet/provider/network_vlan/cisco_nexus.rb
Overview
Implementation for the network_vlan type using the Resource API.
Instance Method Summary collapse
- #canonicalize(_context, resources) ⇒ Object
- #create(context, name, should) ⇒ Object
- #create_update(name, should, create_bool) ⇒ Object
- #delete(context, name) ⇒ Object
- #get(_context, vlans = nil) ⇒ Object
- #get_current_state(name, instance) ⇒ Object
- #update(context, name, should) ⇒ Object
Instance Method Details
#canonicalize(_context, resources) ⇒ Object
18 19 20 |
# File 'lib/puppet/provider/network_vlan/cisco_nexus.rb', line 18 def canonicalize(_context, resources) resources end |
#create(context, name, should) ⇒ Object
59 60 61 62 |
# File 'lib/puppet/provider/network_vlan/cisco_nexus.rb', line 59 def create(context, name, should) context.notice("Creating '#{name}' with #{should.inspect}") create_update(name, should, true) end |
#create_update(name, should, create_bool) ⇒ Object
49 50 51 52 53 54 55 56 57 |
# File 'lib/puppet/provider/network_vlan/cisco_nexus.rb', line 49 def create_update(name, should, create_bool) raise Puppet::ResourceError, 'Invalid value(non-numeric Vlan id)' unless name[/^\d+$/] @vlan = Cisco::Vlan.new(name, create_bool) # Send shutdown= should[shutdown] if shutdown (get) is not already set # to should[shutdown] @vlan.shutdown = should[:shutdown] if @vlan.shutdown != should[:shutdown] @vlan.vlan_name = should[:vlan_name] if should[:vlan_name] && @vlan.vlan_name != should[:vlan_name] end |
#delete(context, name) ⇒ Object
69 70 71 72 73 74 |
# File 'lib/puppet/provider/network_vlan/cisco_nexus.rb', line 69 def delete(context, name) context.notice("Deleting '#{name}'") @vlan = Cisco::Vlan.new(name, false) @vlan.destroy @vlan = nil end |
#get(_context, vlans = nil) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/puppet/provider/network_vlan/cisco_nexus.rb', line 22 def get(_context, vlans=nil) require 'cisco_node_utils' vlan_instances = [] @vlans = Cisco::Vlan.vlans if vlans.nil? || vlans.empty? @vlans.each do |vlan_id, v| vlan_instances << get_current_state(vlan_id, v) end else vlans.each do |vlan| individual_vlan = @vlans[vlan] next if individual_vlan.nil? vlan_instances << get_current_state(vlan, individual_vlan) end end vlan_instances end |
#get_current_state(name, instance) ⇒ Object
40 41 42 43 44 45 46 47 |
# File 'lib/puppet/provider/network_vlan/cisco_nexus.rb', line 40 def get_current_state(name, instance) { ensure: 'present', id: name, vlan_name: instance.send(:vlan_name), shutdown: instance.shutdown, } end |
#update(context, name, should) ⇒ Object
64 65 66 67 |
# File 'lib/puppet/provider/network_vlan/cisco_nexus.rb', line 64 def update(context, name, should) context.notice("Updating '#{name}' with #{should.inspect}") create_update(name, should, false) end |