class Object

Constants

IPADDR_REGEXP

Copyright © 2015, Arista Networks, Inc. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

Neither the name of Arista Networks nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ARISTA NETWORKS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

MCAST_REGEXP

Public Class Methods

instances() click to toggle source
# File lib/puppet/provider/eos_acl_entry/default.rb, line 48
def self.instances
  acls = node.api('acl').getall
  acls.each_with_object([]) do |(name, entries), arry|
    entries.each_with_object([]) do |(seqno, attrs), _hsh|
      provider_hash = { name: namevar(name, seqno), ensure: :present }
      acltype = attrs[:acltype]
      provider_hash[:acltype] = acltype ? acltype.to_sym : :standard
      action = attrs[:action]
      provider_hash[:action] = action ? action.to_sym : :deny
      provider_hash[:srcaddr] = attrs[:srcaddr]
      provider_hash[:srcprefixlen] = attrs[:srcprefixlen]
      provider_hash[:log] = attrs[:log] ? :true : :false
      arry << new(provider_hash)
    end
  end
end
namevar(name, seqno) click to toggle source
# File lib/puppet/provider/eos_acl_entry/default.rb, line 119
def self.namevar(name, seqno)
  "#{name}:#{seqno}"
end
new(resource = {}) click to toggle source
Calls superclass method
# File lib/puppet/provider/eos_acl_entry/default.rb, line 65
def initialize(resource = {})
  super(resource)
  @property_flush = {}
end

Public Instance Methods

access_vlan=(val) click to toggle source
# File lib/puppet/provider/eos_switchport/default.rb, line 73
def access_vlan=(val)
  node.api('switchports').set_access_vlan(resource[:name], value: val)
  @property_hash[:access_vlan] = val
end
acltype=(value) click to toggle source
# File lib/puppet/provider/eos_acl_entry/default.rb, line 70
def acltype=(value)
  @property_flush[:acltype] = value
end
action=(value) click to toggle source
# File lib/puppet/provider/eos_acl_entry/default.rb, line 74
def action=(value)
  @property_flush[:action] = value
end
address=(val) click to toggle source
# File lib/puppet/provider/eos_ipinterface/default.rb, line 57
def address=(val)
  node.api('ipinterfaces').set_address(resource['name'], value: val)
  @property_hash[:address] = val
end
bpduguard=(val) click to toggle source
# File lib/puppet/provider/eos_stp_interface/default.rb, line 68
def bpduguard=(val)
  value = val == :true
  node.api('stp').interfaces.set_bpduguard(resource['name'], value: value)
  @property_hash[:bpduguard] = val
end
chassis_id=(value) click to toggle source
# File lib/puppet/provider/eos_snmp/default.rb, line 64
def chassis_id=(value)
  node.api('snmp').set_chassis_id(value: value)
  @property_hash[:chassis_id] = value
end
contact=(value) click to toggle source
# File lib/puppet/provider/eos_snmp/default.rb, line 54
def contact=(value)
  node.api('snmp').set_contact(value: value)
  @property_hash[:contact] = value
end
create() click to toggle source
# File lib/puppet/provider/eos_acl_entry/default.rb, line 94
def create
  @property_flush = resource.to_hash
end
description=(val) click to toggle source
# File lib/puppet/provider/eos_ethernet/default.rb, line 82
def description=(val)
  node.api('interfaces').set_description(resource[:name], value: val)
  @property_hash[:description] = val
end
destroy() click to toggle source
# File lib/puppet/provider/eos_acl_entry/default.rb, line 98
def destroy
  @property_flush = resource.to_hash
end
domain_id=(val) click to toggle source
# File lib/puppet/provider/eos_mlag/default.rb, line 58
def domain_id=(val)
  node.api('mlag').set_domain_id(value: val)
  @property_hash[:domain_id] = val
end
enable=(val) click to toggle source
# File lib/puppet/provider/eos_ethernet/default.rb, line 77
def enable=(val)
  node.api('interfaces').set_shutdown(resource[:name], value: val == :false)
  @property_hash[:enable] = val
end
exists?() click to toggle source
# File lib/puppet/provider/eos_acl_entry/default.rb, line 90
def exists?
  @property_hash[:ensure] == :present
end
flowcontrol_receive=(val) click to toggle source
# File lib/puppet/provider/eos_ethernet/default.rb, line 92
def flowcontrol_receive=(val)
  node.api('interfaces').set_flowcontrol_receive(resource[:name], value: val)
  @property_hash[:flowcontrol_receive] = val
end
flowcontrol_send=(val) click to toggle source
# File lib/puppet/provider/eos_ethernet/default.rb, line 87
def flowcontrol_send=(val)
  node.api('interfaces').set_flowcontrol_send(resource[:name], value: val)
  @property_hash[:flowcontrol_send] = val
end
flush() click to toggle source
# File lib/puppet/provider/eos_acl_entry/default.rb, line 102
def flush
  desired_state = @property_hash.merge!(@property_flush)
  # Extract the acl name and seqno from the name
  comp = desired_state[:name].split(':')
  acl_name = comp[0]
  desired_state[:seqno] = comp[1].to_i

  api = node.api('acl')
  case desired_state[:ensure]
  when :present
    api.update_entry(acl_name, desired_state)
  when :absent
    api.remove_entry(acl_name, desired_state[:seqno])
  end
  @property_hash = desired_state
end
helper_addresses=(val) click to toggle source
# File lib/puppet/provider/eos_ipinterface/default.rb, line 62
def helper_addresses=(val)
  node.api('ipinterfaces').set_helper_addresses(resource['name'], value: val)
  @property_hash[:helper_addresses] = val
end
hostname=(val) click to toggle source
# File lib/puppet/provider/eos_system/default.rb, line 59
def hostname=(val)
  node.api('system').set_hostname(value: val)
  @property_hash[:hostname] = val
end
lacp_fallback=(val) click to toggle source
# File lib/puppet/provider/eos_portchannel/default.rb, line 87
def lacp_fallback=(val)
  node.api('interfaces').set_lacp_fallback(resource[:name], value: val.to_s)
  @property_hash[:lacp_fallback] = val
end
lacp_mode=(val) click to toggle source
# File lib/puppet/provider/eos_portchannel/default.rb, line 72
def lacp_mode=(val)
  node.api('interfaces').set_lacp_mode(resource[:name], val.to_s)
  @property_hash[:lacp_mode] = val
end
lacp_timeout=(val) click to toggle source
# File lib/puppet/provider/eos_portchannel/default.rb, line 92
def lacp_timeout=(val)
  node.api('interfaces').set_lacp_timeout(resource[:name], value: val)
  @property_hash[:lacp_timeout] = val
end
local_interface=(val) click to toggle source
# File lib/puppet/provider/eos_mlag/default.rb, line 63
def local_interface=(val)
  node.api('mlag').set_local_interface(value: val)
  @property_hash[:local_interface] = val
end
location=(value) click to toggle source
# File lib/puppet/provider/eos_snmp/default.rb, line 59
def location=(value)
  node.api('snmp').set_location(value: value)
  @property_hash[:location] = value
end
log=(value) click to toggle source
# File lib/puppet/provider/eos_acl_entry/default.rb, line 86
def log=(value)
  @property_flush[:log] = value
end
members=(val) click to toggle source
# File lib/puppet/provider/eos_portchannel/default.rb, line 77
def members=(val)
  node.api('interfaces').set_members(resource[:name], val)
  @property_hash[:members] = val
end
mlag_id=(value) click to toggle source
# File lib/puppet/provider/eos_mlag_interface/default.rb, line 62
def mlag_id=(value)
  node.api('mlag').set_mlag_id(resource[:name], value: value)
  @property_hash[:mlag_id] = value
end
mode=(val) click to toggle source
# File lib/puppet/provider/eos_switchport/default.rb, line 58
def mode=(val)
  node.api('switchports').set_mode(resource[:name], value: val)
  @property_hash[:mode] = val
end
mtu=(val) click to toggle source
# File lib/puppet/provider/eos_ipinterface/default.rb, line 67
def mtu=(val)
  node.api('ipinterfaces').set_mtu(resource['name'], value: val)
  @property_hash[:mtu] = val
end
multicast_group=(val) click to toggle source
# File lib/puppet/provider/eos_vxlan/default.rb, line 64
def multicast_group=(val)
  node.api('interfaces').set_multicast_group(resource[:name], value: val)
  @property_hash[:multicast_group] = val
end
munge_boolean(value) click to toggle source
# File lib/puppet/type/eos_vlan.rb, line 41
def munge_boolean(value)
  case value
  when true, 'true', :true, 'yes', 'on'
    :true
  when false, 'false', :false, 'no', 'off'
    :false
  else
    fail('munge_boolean only takes booleans')
  end
end
peer_address=(val) click to toggle source
# File lib/puppet/provider/eos_mlag/default.rb, line 68
def peer_address=(val)
  node.api('mlag').set_peer_address(value: val)
  @property_hash[:peer_address] = val
end
portfast=(val) click to toggle source
# File lib/puppet/provider/eos_stp_interface/default.rb, line 56
def portfast=(val)
  value = val == :true
  node.api('stp').interfaces.set_portfast(resource['name'], value: value)
  @property_hash[:portfast] = val
end
portfast_type=(val) click to toggle source
# File lib/puppet/provider/eos_stp_interface/default.rb, line 62
def portfast_type=(val)
  value = val.to_s
  node.api('stp').interfaces.set_portfast_type(resource['name'], value: value)
  @property_hash[:portfast_type] = val
end
source_interface=(val) click to toggle source
# File lib/puppet/provider/eos_ntp_config/default.rb, line 60
def source_interface=(val)
  node.api('ntp').set_source_interface(value: val)
  @property_hash[:source_interface] = val
end
srcaddr=(value) click to toggle source
# File lib/puppet/provider/eos_acl_entry/default.rb, line 78
def srcaddr=(value)
  @property_flush[:srcaddr] = value
end
srcprefixlen=(value) click to toggle source
# File lib/puppet/provider/eos_acl_entry/default.rb, line 82
def srcprefixlen=(value)
  @property_flush[:srcprefixlen] = value
end
trunk_allowed_vlans=(val) click to toggle source
# File lib/puppet/provider/eos_switchport/default.rb, line 63
def trunk_allowed_vlans=(val)
  node.api('switchports').set_trunk_allowed_vlans(resource[:name], value: val)
  @property_hash[:trunk_allowed_vlans] = val
end
trunk_groups=(value) click to toggle source
# File lib/puppet/provider/eos_vlan/default.rb, line 70
def trunk_groups=(value)
  node.api('vlans').set_trunk_group(resource[:vlanid], value: value)
  @property_hash[:trunk_groups] = value
end
trunk_native_vlan=(val) click to toggle source
# File lib/puppet/provider/eos_switchport/default.rb, line 68
def trunk_native_vlan=(val)
  node.api('switchports').set_trunk_native_vlan(resource[:name], value: val)
  @property_hash[:trunk_native_vlan] = val
end
udp_port=(val) click to toggle source
# File lib/puppet/provider/eos_vxlan/default.rb, line 69
def udp_port=(val)
  node.api('interfaces').set_udp_port(resource[:name], value: val)
  @property_hash[:udp_port] = val
end
vlan_name=(value) click to toggle source
# File lib/puppet/provider/eos_vlan/default.rb, line 65
def vlan_name=(value)
  node.api('vlans').set_name(resource[:vlanid], value: value)
  @property_hash[:vlan_name] = value
end
vni=(val) click to toggle source
# File lib/puppet/provider/eos_vxlan_vlan/default.rb, line 61
def vni=(val)
  @property_flush[:vni] = val
end