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.
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
The only way to remove a vtp domain is to turn the vtp feature off.
- #domain ⇒ Object
-
#domain=(d) ⇒ Object
Set vtp domain name.
-
#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=(v) ⇒ Object
Set vtp version.
Methods inherited from NodeUtil
client, #client, config_get, #config_get, #config_get_default, config_get_default, config_set, #config_set, #get, #ios_xr?, #nexus?, #node, node, platform, #platform, supports?, #supports?
Constructor Details
#initialize(instantiate = true) ⇒ Vtp
Constructor for Vtp
29 30 31 |
# File 'lib/cisco_node_utils/vtp.rb', line 29 def initialize(instantiate=true) Feature.vtp_enable if instantiate end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
23 24 25 |
# File 'lib/cisco_node_utils/vtp.rb', line 23 def name @name end |
Class Method Details
.domain ⇒ Object
Get vtp domain name
34 35 36 37 38 39 40 |
# File 'lib/cisco_node_utils/vtp.rb', line 34 def self.domain if Feature.vtp_enabled? config_get('vtp', 'domain') else config_get_default('vtp', 'domain') end end |
Instance Method Details
#default_filename ⇒ Object
Get default vtp filename
103 104 105 |
# File 'lib/cisco_node_utils/vtp.rb', line 103 def default_filename config_get_default('vtp', 'filename') end |
#default_password ⇒ Object
Get default vtp password
83 84 85 |
# File 'lib/cisco_node_utils/vtp.rb', line 83 def default_password config_get_default('vtp', 'password') end |
#default_version ⇒ Object
Get default vtp version
119 120 121 |
# File 'lib/cisco_node_utils/vtp.rb', line 119 def default_version config_get_default('vtp', 'version') end |
#destroy ⇒ Object
The only way to remove a vtp domain is to turn the vtp feature off.
44 45 46 |
# File 'lib/cisco_node_utils/vtp.rb', line 44 def destroy Feature.vtp_disable end |
#domain=(d) ⇒ Object
Set vtp domain name
53 54 55 56 57 |
# File 'lib/cisco_node_utils/vtp.rb', line 53 def domain=(d) d = d.to_s fail ArgumentError unless d.length.between?(1, MAX_VTP_DOMAIN_NAME_SIZE) config_set('vtp', 'domain', domain: d) end |
#filename ⇒ Object
Get vtp filename
88 89 90 91 |
# File 'lib/cisco_node_utils/vtp.rb', line 88 def filename filename = config_get('vtp', 'filename') if Feature.vtp_enabled? filename.nil? ? default_filename : filename end |
#filename=(uri) ⇒ Object
Set vtp filename
94 95 96 97 98 99 100 |
# File 'lib/cisco_node_utils/vtp.rb', line 94 def filename=(uri) fail TypeError if uri.nil? Feature.vtp_enable uri = uri.to_s state = uri.empty? ? 'no' : '' config_set('vtp', 'filename', state: state, uri: uri) end |
#password ⇒ Object
Get vtp password
60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/cisco_node_utils/vtp.rb', line 60 def password # Unfortunately nxapi returns "\\" when the password is not set password = config_get('vtp', 'password') if Feature.vtp_enabled? return '' if password.nil? || password == '\\' password rescue Cisco::RequestNotSupported => e # Certain platforms generate a Cisco::RequestNotSupported when the # vtp password is not set. We catch this specific error and # return empty '' for the password. return '' if e.[/Structured output not supported/] end |
#password=(password) ⇒ Object
Set vtp password
73 74 75 76 77 78 79 80 |
# File 'lib/cisco_node_utils/vtp.rb', line 73 def password=(password) fail TypeError if password.nil? fail TypeError unless password.is_a? String fail ArgumentError if password.length > MAX_VTP_PASSWORD_SIZE Feature.vtp_enable state = (password == default_password) ? 'no' : '' config_set('vtp', 'password', state: state, password: password) end |
#version ⇒ Object
Get vtp version
108 109 110 |
# File 'lib/cisco_node_utils/vtp.rb', line 108 def version Feature.vtp_enabled? ? config_get('vtp', 'version') : default_version end |
#version=(v) ⇒ Object
Set vtp version
113 114 115 116 |
# File 'lib/cisco_node_utils/vtp.rb', line 113 def version=(v) Feature.vtp_enable config_set('vtp', 'version', version: v) end |