Class: Cisco::InterfaceServiceVni

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

Overview

InterfaceServiceVni - node utility class for Service VNI Instance commands

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from NodeUtil

config_get, #config_get, config_get_default, #config_get_default, #config_set, config_set, #node, node, #show

Constructor Details

#initialize(intf, sid, instantiate = true) ⇒ InterfaceServiceVni

Returns a new instance of InterfaceServiceVni.



25
26
27
28
29
30
31
# File 'lib/cisco_node_utils/interface_service_vni.rb', line 25

def initialize(intf, sid, instantiate=true)
  @name = intf.to_s.downcase
  @sid = sid.to_s
  fail ArgumentError if @name.empty? || @sid.empty?
  set_args_keys_default
  create if instantiate
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



23
24
25
# File 'lib/cisco_node_utils/interface_service_vni.rb', line 23

def name
  @name
end

Class Method Details

.svc_vni_idsObject



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/cisco_node_utils/interface_service_vni.rb', line 33

def self.svc_vni_ids
  hash = {}
  intf_list = config_get('interface', 'all_interfaces')
  return hash if intf_list.nil?

  intf_list.each do |intf|
    intf.downcase!
    svc_ids = config_get('interface_service_vni', 'all_service_vni_ids',
                         name: intf)
    next if svc_ids.nil?
    hash[intf] = {}
    svc_ids.each do |sid|
      hash[intf][sid] = InterfaceServiceVni.new(intf, sid, false)
    end
  end
  hash
end

Instance Method Details

#createObject



51
52
53
54
55
# File 'lib/cisco_node_utils/interface_service_vni.rb', line 51

def create
  Vni.feature_vni_enable unless Vni.feature_vni_enabled
  @set_args[:state] = ''
  config_set('interface_service_vni', 'create_destroy', @set_args)
end

#default_encapsulation_profile_vniObject



110
111
112
# File 'lib/cisco_node_utils/interface_service_vni.rb', line 110

def default_encapsulation_profile_vni
  config_get_default('interface_service_vni', 'encapsulation_profile_vni')
end

#default_shutdownObject



128
129
130
# File 'lib/cisco_node_utils/interface_service_vni.rb', line 128

def default_shutdown
  config_get_default('interface_service_vni', 'shutdown')
end

#destroyObject



57
58
59
60
# File 'lib/cisco_node_utils/interface_service_vni.rb', line 57

def destroy
  @set_args[:state] = 'no'
  config_set('interface_service_vni', 'create_destroy', @set_args)
end

#encapsulation_profile_vniObject

encapsulation_profile_vni

 cli: service instance 1 vni
        encapsulation profile vni_500_5000 default
type: 'vni_500_5000'


84
85
86
87
# File 'lib/cisco_node_utils/interface_service_vni.rb', line 84

def encapsulation_profile_vni
  config_get('interface_service_vni', 'encapsulation_profile_vni',
             @get_args)
end

#encapsulation_profile_vni=(profile) ⇒ Object



89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/cisco_node_utils/interface_service_vni.rb', line 89

def encapsulation_profile_vni=(profile)
  Vni.feature_vni_enable unless Vni.feature_vni_enabled
  state = profile.empty? ? 'no' : ''
  current = encapsulation_profile_vni

  if state[/no/]
    config_set('interface_service_vni', 'encapsulation_profile_vni',
               set_args_keys(state: state, profile: current)) unless
      current.empty?
  else
    # Remove current profile before adding a new one
    config_set('interface_service_vni', 'encapsulation_profile_vni',
               set_args_keys(state: 'no', profile: current)) unless
      current.empty?
    config_set('interface_service_vni', 'encapsulation_profile_vni',
               set_args_keys(state: state, profile: profile))
  end
rescue Cisco::CliError => e
  raise "[#{@name}] '#{e.command}' : #{e.clierror}"
end

#set_args_keys(hash = {}) ⇒ Object

rubocop:disable Style/AccessorMethodName



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

def set_args_keys(hash={})
  set_args_keys_default
  @set_args = @get_args.merge!(hash) unless hash.empty?
end

#set_args_keys_defaultObject



62
63
64
65
# File 'lib/cisco_node_utils/interface_service_vni.rb', line 62

def set_args_keys_default
  keys = { name: @name, sid: @sid }
  @get_args = @set_args = keys
end

#shutdownObject

shutdown



117
118
119
# File 'lib/cisco_node_utils/interface_service_vni.rb', line 117

def shutdown
  config_get('interface_service_vni', 'shutdown', @get_args)
end

#shutdown=(state) ⇒ Object



121
122
123
124
125
126
# File 'lib/cisco_node_utils/interface_service_vni.rb', line 121

def shutdown=(state)
  config_set('interface_service_vni', 'shutdown',
             set_args_keys(state: state ? '' : 'no'))
rescue Cisco::CliError => e
  raise "[#{@name}] '#{e.command}' : #{e.clierror}"
end