Class: Cisco::SnmpCommunity

Inherits:
Object
  • Object
show all
Defined in:
lib/cisco_node_utils/snmpcommunity.rb

Constant Summary collapse

@@communities =
nil
@@node =
Cisco::Node.instance

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, group, instantiate = true) ⇒ SnmpCommunity

Returns a new instance of SnmpCommunity.

Raises:



27
28
29
30
31
32
33
34
# File 'lib/cisco_node_utils/snmpcommunity.rb', line 27

def initialize(name, group, instantiate=true)
  raise TypeError unless name.is_a?(String) and group.is_a?(String)
  @name = name

  if instantiate
    @@node.config_set("snmp_community", "community", "", name, group)
  end
end

Class Method Details

.communitiesObject



36
37
38
39
40
41
42
43
44
45
# File 'lib/cisco_node_utils/snmpcommunity.rb', line 36

def SnmpCommunity.communities
  @@communities = {}
  comms = @@node.config_get("snmp_community", "all_communities")
  unless comms.nil?
    comms.each { |comm|
      @@communities[comm] = SnmpCommunity.new(comm, "", false)
    }
  end
  @@communities
end

.default_aclObject



87
88
89
# File 'lib/cisco_node_utils/snmpcommunity.rb', line 87

def SnmpCommunity.default_acl
  @@node.config_get_default("snmp_community", "acl")
end

.default_groupObject



68
69
70
# File 'lib/cisco_node_utils/snmpcommunity.rb', line 68

def SnmpCommunity.default_group
  @@node.config_get_default("snmp_community", "group")
end

Instance Method Details

#aclObject



72
73
74
75
# File 'lib/cisco_node_utils/snmpcommunity.rb', line 72

def acl
  result = @@node.config_get("snmp_community", "acl", @name)
  result.nil? ? SnmpCommunity.default_acl : result.first
end

#acl=(acl) ⇒ Object

Raises:



77
78
79
80
81
82
83
84
85
# File 'lib/cisco_node_utils/snmpcommunity.rb', line 77

def acl=(acl)
  raise TypeError unless acl.is_a?(String)
  if acl.empty?
    acl = self.acl
    @@node.config_set("snmp_community", "acl", "no", @name, acl) unless acl.empty?
  else
    @@node.config_set("snmp_community", "acl", "", @name, acl)
  end
end

#destroyObject



47
48
49
50
51
# File 'lib/cisco_node_utils/snmpcommunity.rb', line 47

def destroy
  # CLI requires specifying a group even for "no" commands
  @@node.config_set("snmp_community", "community", "no", @name, "null")
  @@communities.delete(@name) unless @@communities.nil?
end

#groupObject

name is read only

def name
  @name
end


58
59
60
61
# File 'lib/cisco_node_utils/snmpcommunity.rb', line 58

def group
  result = @@node.config_get("snmp_community", "group", @name)
  result.nil? ? SnmpCommunity.default_group : result.first
end

#group=(group) ⇒ Object

Raises:



63
64
65
66
# File 'lib/cisco_node_utils/snmpcommunity.rb', line 63

def group=(group)
  raise TypeError unless group.is_a?(String)
  @@node.config_set("snmp_community", "group", @name, group)
end