Class: Cisco::Vtp
Overview
Vtp - node utility class for VTP configuration management
Constant Summary collapse
- MAX_VTP_DOMAIN_NAME_SIZE =
32- MAX_VTP_PASSWORD_SIZE =
64
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Class Method Summary collapse
-
.domain ⇒ Object
Get vtp domain name.
- .enabled ⇒ Object
Instance Method Summary collapse
-
#default_filename ⇒ Object
Get default vtp filename.
-
#default_password ⇒ Object
Get default vtp password.
-
#default_version ⇒ Object
Get default vtp version.
-
#destroy ⇒ Object
Disable vtp feature.
- #domain ⇒ Object
-
#domain=(d) ⇒ Object
Set vtp domain name.
- #enable ⇒ Object
-
#filename ⇒ Object
Get vtp filename.
-
#filename=(uri) ⇒ Object
Set vtp filename.
-
#initialize(instantiate = true) ⇒ Vtp
constructor
Constructor for Vtp.
-
#password ⇒ Object
Get vtp password.
-
#password=(password) ⇒ Object
Set vtp password.
-
#version ⇒ Object
Get vtp version.
-
#version=(version) ⇒ Object
Set vtp version.
Methods inherited from NodeUtil
config_get, #config_get, config_get_default, #config_get_default, #config_set, config_set, #node, node, #show
Constructor Details
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
22 23 24 |
# File 'lib/cisco_node_utils/vtp.rb', line 22 def name @name end |
Class Method Details
.domain ⇒ Object
Get vtp domain name
50 51 52 |
# File 'lib/cisco_node_utils/vtp.rb', line 50 def self.domain enabled ? config_get('vtp', 'domain') : '' end |
Instance Method Details
#default_filename ⇒ Object
Get default vtp filename
121 122 123 |
# File 'lib/cisco_node_utils/vtp.rb', line 121 def default_filename config_get_default('vtp', 'filename') end |
#default_password ⇒ Object
Get default vtp password
100 101 102 |
# File 'lib/cisco_node_utils/vtp.rb', line 100 def default_password config_get_default('vtp', 'password') end |
#default_version ⇒ Object
Get default vtp version
137 138 139 |
# File 'lib/cisco_node_utils/vtp.rb', line 137 def default_version config_get_default('vtp', 'version') end |
#destroy ⇒ Object
Disable vtp feature
45 46 47 |
# File 'lib/cisco_node_utils/vtp.rb', line 45 def destroy config_set('vtp', 'feature', 'no') end |
#domain=(d) ⇒ Object
Set vtp domain name
59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/cisco_node_utils/vtp.rb', line 59 def domain=(d) fail ArgumentError unless d && d.is_a?(String) && d.length.between?(1, MAX_VTP_DOMAIN_NAME_SIZE) enable unless Vtp.enabled begin config_set('vtp', 'domain', d) rescue Cisco::CliError => e # cmd will syntax reject when setting name to same name raise unless e.clierror =~ /ERROR: Domain name already set to / end end |
#enable ⇒ Object
40 41 42 |
# File 'lib/cisco_node_utils/vtp.rb', line 40 def enable config_set('vtp', 'feature', '') end |
#filename ⇒ Object
Get vtp filename
105 106 107 |
# File 'lib/cisco_node_utils/vtp.rb', line 105 def filename config_get('vtp', 'filename') end |
#filename=(uri) ⇒ Object
Set vtp filename
110 111 112 113 114 115 116 117 118 |
# File 'lib/cisco_node_utils/vtp.rb', line 110 def filename=(uri) fail TypeError if uri.nil? enable unless Vtp.enabled if uri.empty? config_set('vtp', 'filename', 'no', '') else config_set('vtp', 'filename', '', uri) end end |
#password ⇒ Object
Get vtp password
72 73 74 75 76 77 |
# File 'lib/cisco_node_utils/vtp.rb', line 72 def password # Unfortunately nxapi returns "\\" when the password is not set password = config_get('vtp', 'password') if Vtp.enabled return '' if password.nil? || password == '\\' password end |
#password=(password) ⇒ Object
Set vtp password
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/cisco_node_utils/vtp.rb', line 80 def password=(password) fail TypeError if password.nil? fail TypeError unless password.is_a? String fail ArgumentError if password.length > MAX_VTP_PASSWORD_SIZE enable unless Vtp.enabled begin if password == default_password config_set('vtp', 'password', 'no', '') else config_set('vtp', 'password', '', password) end rescue Cisco::CliError => e raise unless e.clierror =~ /password cannot be set for NULL domain/ unless password == default_password raise 'Setting VTP password requires first setting VTP domain' end end end |