cisco_node_utils 1.7.0 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +36 -0
  3. data/CONTRIBUTING.md +2 -2
  4. data/README.md +2 -1
  5. data/cisco_node_utils.gemspec +1 -0
  6. data/docs/README-develop-node-utils-APIs.md +2 -1
  7. data/lib/cisco_node_utils/aaa_authentication_login_service.rb +2 -2
  8. data/lib/cisco_node_utils/ace.rb +2 -0
  9. data/lib/cisco_node_utils/bgp.rb +34 -91
  10. data/lib/cisco_node_utils/bridge_domain.rb +8 -13
  11. data/lib/cisco_node_utils/client/nxapi/client.rb +10 -3
  12. data/lib/cisco_node_utils/cmd_ref/DEPRECATED.yaml +12 -12
  13. data/lib/cisco_node_utils/cmd_ref/README_YAML.md +2 -1
  14. data/lib/cisco_node_utils/cmd_ref/aaa_authorization_service.yaml +1 -0
  15. data/lib/cisco_node_utils/cmd_ref/bfd_global.yaml +3 -3
  16. data/lib/cisco_node_utils/cmd_ref/bgp.yaml +5 -15
  17. data/lib/cisco_node_utils/cmd_ref/bgp_af.yaml +1 -1
  18. data/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml +1 -0
  19. data/lib/cisco_node_utils/cmd_ref/bridge_domain.yaml +14 -36
  20. data/lib/cisco_node_utils/cmd_ref/bridge_domain_vni.yaml +1 -1
  21. data/lib/cisco_node_utils/cmd_ref/dhcp_relay_global.yaml +5 -3
  22. data/lib/cisco_node_utils/cmd_ref/encapsulation.yaml +1 -1
  23. data/lib/cisco_node_utils/cmd_ref/fabricpath.yaml +1 -1
  24. data/lib/cisco_node_utils/cmd_ref/fabricpath_topology.yaml +1 -1
  25. data/lib/cisco_node_utils/cmd_ref/feature.yaml +3 -3
  26. data/lib/cisco_node_utils/cmd_ref/interface.yaml +25 -15
  27. data/lib/cisco_node_utils/cmd_ref/interface_ospf.yaml +5 -0
  28. data/lib/cisco_node_utils/cmd_ref/interface_portchannel.yaml +6 -0
  29. data/lib/cisco_node_utils/cmd_ref/interface_service_vni.yaml +1 -1
  30. data/lib/cisco_node_utils/cmd_ref/inventory.yaml +9 -0
  31. data/lib/cisco_node_utils/cmd_ref/itd_device_group.yaml +1 -1
  32. data/lib/cisco_node_utils/cmd_ref/itd_service.yaml +1 -1
  33. data/lib/cisco_node_utils/cmd_ref/object_group.yaml +32 -0
  34. data/lib/cisco_node_utils/cmd_ref/ospf.yaml +1 -1
  35. data/lib/cisco_node_utils/cmd_ref/portchannel_global.yaml +9 -7
  36. data/lib/cisco_node_utils/cmd_ref/radius_global.yaml +7 -0
  37. data/lib/cisco_node_utils/cmd_ref/route_map.yaml +26 -25
  38. data/lib/cisco_node_utils/cmd_ref/show_version.yaml +11 -3
  39. data/lib/cisco_node_utils/cmd_ref/snmp_community.yaml +4 -0
  40. data/lib/cisco_node_utils/cmd_ref/snmp_server.yaml +5 -1
  41. data/lib/cisco_node_utils/cmd_ref/stp_global.yaml +8 -8
  42. data/lib/cisco_node_utils/cmd_ref/syslog_server.yaml +3 -2
  43. data/lib/cisco_node_utils/cmd_ref/syslog_settings.yaml +21 -1
  44. data/lib/cisco_node_utils/cmd_ref/tacacs_global.yaml +7 -0
  45. data/lib/cisco_node_utils/cmd_ref/vdc.yaml +1 -1
  46. data/lib/cisco_node_utils/cmd_ref/vlan.yaml +5 -4
  47. data/lib/cisco_node_utils/cmd_ref/vpc.yaml +9 -9
  48. data/lib/cisco_node_utils/cmd_ref/vrf.yaml +1 -0
  49. data/lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml +1 -0
  50. data/lib/cisco_node_utils/cmd_ref/vxlan_vtep_vni.yaml +3 -5
  51. data/lib/cisco_node_utils/command_reference.rb +11 -1
  52. data/lib/cisco_node_utils/interface.rb +46 -8
  53. data/lib/cisco_node_utils/interface_ospf.rb +2 -2
  54. data/lib/cisco_node_utils/interface_portchannel.rb +2 -2
  55. data/lib/cisco_node_utils/node.rb +9 -0
  56. data/lib/cisco_node_utils/ntp_auth_key.rb +1 -1
  57. data/lib/cisco_node_utils/object_group.rb +75 -0
  58. data/lib/cisco_node_utils/object_group_entry.rb +143 -0
  59. data/lib/cisco_node_utils/portchannel_global.rb +2 -2
  60. data/lib/cisco_node_utils/radius_global.rb +25 -1
  61. data/lib/cisco_node_utils/router_ospf.rb +3 -3
  62. data/lib/cisco_node_utils/syslog_server.rb +38 -42
  63. data/lib/cisco_node_utils/syslog_settings.rb +74 -3
  64. data/lib/cisco_node_utils/tacacs_global.rb +47 -14
  65. data/lib/cisco_node_utils/tacacs_server.rb +1 -5
  66. data/lib/cisco_node_utils/version.rb +1 -1
  67. data/lib/cisco_node_utils/vpc.rb +1 -4
  68. data/lib/cisco_node_utils/vtp.rb +4 -2
  69. data/spec/schema.yaml +3 -0
  70. data/tests/ciscotest.rb +16 -9
  71. data/tests/test_ace.rb +2 -0
  72. data/tests/test_bgp_af.rb +10 -2
  73. data/tests/test_bgp_neighbor_af.rb +6 -2
  74. data/tests/test_bridge_domain.rb +7 -0
  75. data/tests/test_feature.rb +2 -2
  76. data/tests/test_interface.rb +30 -4
  77. data/tests/test_node_ext.rb +2 -2
  78. data/tests/test_object_group.rb +122 -0
  79. data/tests/test_platform.rb +1 -1
  80. data/tests/test_portchannel_global.rb +1 -0
  81. data/tests/test_radius_global.rb +22 -2
  82. data/tests/test_route_map.rb +11 -8
  83. data/tests/test_router_bgp.rb +7 -132
  84. data/tests/test_router_ospf_area.rb +6 -6
  85. data/tests/test_snmpuser.rb +19 -11
  86. data/tests/test_syslog_server.rb +11 -31
  87. data/tests/test_syslog_settings.rb +46 -5
  88. data/tests/test_tacacs_global.rb +42 -18
  89. data/tests/test_vpc.rb +3 -0
  90. data/tests/test_vxlan_vtep_vni.rb +0 -3
  91. data/tests/yum_package.yaml +5 -0
  92. metadata +21 -3
@@ -52,16 +52,16 @@ class TestRouterOspfArea < CiscoTestCase
52
52
  av.stub = true
53
53
  assert_equal(2, RouterOspfArea.areas['Wolfpack'].size)
54
54
  av.destroy
55
- # on n9k-f (only), we cannot remove "area <area> default-cost 1",
55
+ # on n(3|9)k-f (only), we cannot remove "area <area> default-cost 1",
56
56
  # unless the entire ospf router is removed. The default value of
57
57
  # default_cost is 1 and so this is just a cosmetic issue but
58
58
  # need to skip the below test as the size will be wrong.
59
59
  # platform as the size will be wrong. bug ID: CSCva04066
60
60
  assert_equal(1, RouterOspfArea.areas['Wolfpack'].size) unless
61
- /N9K.*-F/ =~ node.product_id
61
+ /N(3|9)K.*-F/ =~ node.product_id
62
62
  ad.destroy
63
63
  assert_empty(RouterOspfArea.areas) unless
64
- /N9K.*-F/ =~ node.product_id
64
+ /N(3|9)K.*-F/ =~ node.product_id
65
65
  end
66
66
 
67
67
  def test_authentication
@@ -237,21 +237,21 @@ class TestRouterOspfArea < CiscoTestCase
237
237
  assert_equal(ad.default_nssa_no_redistribution, ad.nssa_no_redistribution)
238
238
  assert_equal(ad.default_nssa_no_summary, ad.nssa_no_summary)
239
239
  assert_equal(ad.default_nssa_route_map, ad.nssa_route_map)
240
- # on n9k-f (only), we cannot configure
240
+ # on n(3|9)k-f (only), we cannot configure
241
241
  # "area <area> nssa default-information-originate",
242
242
  # properly if we reset it first. It is only configuring nssa
243
243
  # but not the other parameters. bug ID: CSCva11482
244
244
  hash[:nssa_route_map] = 'aaa'
245
245
  ad.nssa_set(hash)
246
246
  assert_equal(true, ad.nssa)
247
- if node.product_id[/N9K-F/]
247
+ if node.product_id[/N(3|9)K-F/]
248
248
  refute(ad.nssa_default_originate)
249
249
  else
250
250
  assert(ad.nssa_default_originate)
251
251
  end
252
252
  assert_equal(ad.default_nssa_no_redistribution, ad.nssa_no_redistribution)
253
253
  assert_equal(ad.default_nssa_no_summary, ad.nssa_no_summary)
254
- if node.product_id[/N9K-F/]
254
+ if node.product_id[/N(3|9)K-F/]
255
255
  refute_equal('aaa', ad.nssa_route_map)
256
256
  else
257
257
  assert_equal('aaa', ad.nssa_route_map)
@@ -44,18 +44,26 @@ class TestSnmpUser < CiscoTestCase
44
44
 
45
45
  def remove_test_users
46
46
  SnmpUser.users.values.each do |obj|
47
- # Delete users that are in current but also added by these tests.
48
- if @@current_users.keys.include?(obj.name) && @test_users.include?(obj.name)
49
- obj.destroy
50
- # Delete users that are part of test.
51
- elsif @test_users.include? obj.name
52
- obj.destroy
53
- # Do not delete users in current but not in test.
54
- elsif @@current_users.keys.include? obj.name
47
+ begin
48
+ # Delete users that are in current but also added by these tests.
49
+ if @@current_users.keys.include?(obj.name) && @test_users.include?(obj.name)
50
+ obj.destroy
51
+ # Delete users that are part of test.
52
+ elsif @test_users.include? obj.name
53
+ obj.destroy
54
+ # Do not delete users in current but not in test.
55
+ elsif @@current_users.keys.include? obj.name
56
+ next
57
+ else
58
+ # Delete if not in current or test.
59
+ obj.destroy
60
+ end
61
+ rescue CliError => e
62
+ puts e.message
63
+ puts "retry deleting the user #{obj.name}"
64
+ config("snmp-server user #{obj.name}")
65
+ config("no snmp-server user #{obj.name}")
55
66
  next
56
- else
57
- # Delete if not in current or test.
58
- obj.destroy
59
67
  end
60
68
  end
61
69
  end
@@ -53,10 +53,9 @@ class TestSyslogServer < CiscoTestCase
53
53
  id = '1.2.3.4'
54
54
  refute_includes(Cisco::SyslogServer.syslogservers, id)
55
55
 
56
- server = Cisco::SyslogServer.new(id, 2, 'default', true)
56
+ server = Cisco::SyslogServer.new({ 'name' => id, 'vrf' => 'default' }, true)
57
57
  assert_includes(Cisco::SyslogServer.syslogservers, id)
58
58
  assert_equal(server, Cisco::SyslogServer.syslogservers[id])
59
- assert_equal(2, Cisco::SyslogServer.syslogservers[id].level)
60
59
 
61
60
  server.destroy
62
61
  refute_includes(Cisco::SyslogServer.syslogservers, id)
@@ -66,10 +65,9 @@ class TestSyslogServer < CiscoTestCase
66
65
  id = '2003::2'
67
66
  refute_includes(Cisco::SyslogServer.syslogservers, id)
68
67
 
69
- server = Cisco::SyslogServer.new(id, 2, 'default', true)
68
+ server = Cisco::SyslogServer.new({ 'name' => id, 'vrf' => 'default' }, true)
70
69
  assert_includes(Cisco::SyslogServer.syslogservers, id)
71
70
  assert_equal(server, Cisco::SyslogServer.syslogservers[id])
72
- assert_equal(2, Cisco::SyslogServer.syslogservers[id].level)
73
71
 
74
72
  server.destroy
75
73
  refute_includes(Cisco::SyslogServer.syslogservers, id)
@@ -81,14 +79,13 @@ class TestSyslogServer < CiscoTestCase
81
79
  refute_includes(Cisco::SyslogServer.syslogservers, id)
82
80
  refute_includes(Cisco::SyslogServer.syslogservers, id2)
83
81
 
84
- server = Cisco::SyslogServer.new(id, 2, 'default', true)
85
- server2 = Cisco::SyslogServer.new(id2, 3, 'default', true)
82
+ server = Cisco::SyslogServer.new({ 'name' => id, 'vrf' => 'default' }, true)
83
+ server2 = Cisco::SyslogServer.new({ 'name' => id2, 'vrf' => 'default' },
84
+ true)
86
85
  assert_includes(Cisco::SyslogServer.syslogservers, id)
87
86
  assert_equal(server, Cisco::SyslogServer.syslogservers[id])
88
- assert_equal(2, Cisco::SyslogServer.syslogservers[id].level)
89
87
  assert_includes(Cisco::SyslogServer.syslogservers, id2)
90
88
  assert_equal(server2, Cisco::SyslogServer.syslogservers[id2])
91
- assert_equal(3, Cisco::SyslogServer.syslogservers[id2].level)
92
89
 
93
90
  server.destroy
94
91
  server2.destroy
@@ -96,7 +93,7 @@ class TestSyslogServer < CiscoTestCase
96
93
  refute_includes(Cisco::SyslogServer.syslogservers, id2)
97
94
  end
98
95
 
99
- def test_create_destroy_single_vrf_ipv4
96
+ def test_create_options
100
97
  if platform == :ios_xr
101
98
  config('vrf red')
102
99
  else
@@ -104,33 +101,16 @@ class TestSyslogServer < CiscoTestCase
104
101
  end
105
102
 
106
103
  id = '1.2.3.4'
104
+ options = { 'name' => id, 'level' => '4', 'port' => '2154', 'vrf' => 'red' }
107
105
 
108
106
  refute_includes(Cisco::SyslogServer.syslogservers, id)
109
107
 
110
- server = Cisco::SyslogServer.new(id, 4, 'red', true)
108
+ server = Cisco::SyslogServer.new(options, true)
111
109
  assert_includes(Cisco::SyslogServer.syslogservers, id)
112
110
  assert_equal(server, Cisco::SyslogServer.syslogservers[id])
113
- assert_equal(4, Cisco::SyslogServer.syslogservers[id].level)
114
-
115
- server.destroy
116
- refute_includes(Cisco::SyslogServer.syslogservers, id)
117
- end
118
-
119
- def test_create_destroy_single_vrf_ipv6
120
- if platform == :ios_xr
121
- config('vrf red')
122
- else
123
- config('vrf context red')
124
- end
125
-
126
- id = '2003::2'
127
-
128
- refute_includes(Cisco::SyslogServer.syslogservers, id)
129
-
130
- server = Cisco::SyslogServer.new(id, 5, 'red', true)
131
- assert_includes(Cisco::SyslogServer.syslogservers, id)
132
- assert_equal(server, Cisco::SyslogServer.syslogservers[id])
133
- assert_equal(5, Cisco::SyslogServer.syslogservers[id].level)
111
+ assert_equal('4', Cisco::SyslogServer.syslogservers[id].level)
112
+ assert_equal('2154', Cisco::SyslogServer.syslogservers[id].port)
113
+ assert_equal('red', Cisco::SyslogServer.syslogservers[id].vrf)
134
114
 
135
115
  server.destroy
136
116
  refute_includes(Cisco::SyslogServer.syslogservers, id)
@@ -24,24 +24,27 @@ class TestSyslogSettings < CiscoTestCase
24
24
  return if platform != :nexus
25
25
  # setup runs at the beginning of each test
26
26
  super
27
- no_syslogsettings
27
+ default_syslogsettings
28
28
  end
29
29
 
30
30
  def teardown
31
31
  return if platform != :nexus
32
32
  # teardown runs at the end of each test
33
- no_syslogsettings
33
+ default_syslogsettings
34
34
  super
35
35
  end
36
36
 
37
- def no_syslogsettings
37
+ def default_syslogsettings
38
38
  # Turn the feature off for a clean test.
39
- config('no logging timestamp seconds')
39
+ config('no logging timestamp seconds',
40
+ 'logging console 2',
41
+ 'logging monitor 5',
42
+ 'no logging source-interface')
40
43
  end
41
44
 
42
45
  # TESTS
43
46
 
44
- def test_create
47
+ def test_timestamp
45
48
  syslog_setting = Cisco::SyslogSettings.new('default')
46
49
 
47
50
  if platform == :ios_xr
@@ -62,6 +65,44 @@ class TestSyslogSettings < CiscoTestCase
62
65
  assert_equal('milliseconds',
63
66
  syslog_setting.timestamp,
64
67
  )
68
+ syslog_setting.time_stamp_units = 'seconds'
69
+ assert_equal('seconds',
70
+ syslog_setting.time_stamp_units,
71
+ )
65
72
  end
66
73
  end
74
+
75
+ def test_console
76
+ syslog_setting = Cisco::SyslogSettings.new('default')
77
+
78
+ # Some systems return the value and othesr get it from yaml - normalize
79
+ assert_equal(syslog_setting.default_console, syslog_setting.console.to_i)
80
+ assert_equal(2, syslog_setting.console)
81
+ syslog_setting.console = '1'
82
+ assert_equal('1', syslog_setting.console)
83
+ syslog_setting.console = nil
84
+ assert_equal('unset', syslog_setting.console)
85
+ end
86
+
87
+ def test_monitor
88
+ syslog_setting = Cisco::SyslogSettings.new('default')
89
+
90
+ # Some systems return the value and othesr get it from yaml - normalize
91
+ assert_equal(syslog_setting.default_monitor, syslog_setting.monitor.to_i)
92
+ assert_equal('5', syslog_setting.monitor)
93
+ syslog_setting.monitor = '7'
94
+ assert_equal('7', syslog_setting.monitor)
95
+ syslog_setting.monitor = nil
96
+ assert_equal('unset', syslog_setting.monitor)
97
+ end
98
+
99
+ def test_source_interface
100
+ syslog_setting = Cisco::SyslogSettings.new('default')
101
+
102
+ assert_nil(syslog_setting.source_interface)
103
+ syslog_setting.source_interface = 'mgmt0'
104
+ assert_equal('mgmt0', syslog_setting.source_interface)
105
+ syslog_setting.source_interface = nil
106
+ assert_nil(syslog_setting.source_interface)
107
+ end
67
108
  end
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Minitest for TacacsGlobal class
3
3
  #
4
- # Copyright (c) 2014-2016 Cisco and/or its affiliates.
4
+ # Copyright (c) 2014-2017 Cisco and/or its affiliates.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -31,7 +31,7 @@ class TestTacacsGlobal < CiscoTestCase
31
31
 
32
32
  def teardown
33
33
  # teardown runs at the end of each test
34
- no_tacacs_global
34
+ no_tacacs_global if platform == :ios_xr
35
35
  config_no_warn('no feature tacacs+') if platform == :nexus
36
36
  super
37
37
  end
@@ -50,31 +50,55 @@ class TestTacacsGlobal < CiscoTestCase
50
50
  assert_includes(Cisco::TacacsGlobal.tacacs_global, id)
51
51
  assert_equal(global, Cisco::TacacsGlobal.tacacs_global[id])
52
52
 
53
- # Default Checking
53
+ # No timeout when TACACS is not enabled
54
+ assert_nil(global.timeout)
55
+
56
+ # Turn on TACACS and verify default Timeout
57
+ config_no_warn('feature tacacs+') if platform == :nexus
54
58
  assert_equal(global.default_timeout, global.timeout)
55
59
 
56
- global.timeout = 5
57
- assert_equal(5, Cisco::TacacsGlobal.tacacs_global[id].timeout)
58
- assert_equal(5, global.timeout)
60
+ # Timeout update
61
+ global.timeout = 10
62
+ assert_equal(10, Cisco::TacacsGlobal.tacacs_global[id].timeout)
63
+ assert_equal(10, global.timeout)
64
+
65
+ # Do not unset timout if TACACS is enabled
66
+ assert_raises(ArgumentError) do
67
+ global.timeout = nil
68
+ end
59
69
 
60
- # first change
61
- key_format = 0
70
+ # Check there is no default key
71
+ assert_equal('', global.key)
72
+
73
+ # first key change - unencrypted key
62
74
  key = 'TEST_NEW'
63
- global.encryption_key_set(key_format, key)
64
- assert(!global.key.nil?)
65
- assert(key_format, global.key_format)
75
+ global.encryption_key_set(nil, key)
76
+ # Device encypts key - verify return value
77
+ assert_equal(7, global.key_format)
78
+ assert_equal('"WAWY_NZB"', global.key)
66
79
 
67
- # second change
80
+ # second key change - modify key to type6
68
81
  key_format = 6
69
-
70
82
  # Must use a valid type6 password: CSCvb36266
71
83
  key = 'JDYkqyIFWeBvzpljSfWmRZrmRSRE8'
72
84
  global.encryption_key_set(key_format, key)
73
- assert(!global.key.nil?)
74
- assert(key_format, global.key_format)
85
+ assert_equal(key_format, global.key_format)
86
+ assert_equal("\"#{key}\"", global.key)
75
87
 
76
- # Setting back to default and re-checking
77
- global.timeout = global.default_timeout
78
- assert_equal(global.default_timeout, global.timeout)
88
+ # Remove global key
89
+ global.encryption_key_set('', '')
90
+ assert_equal('', global.key)
91
+
92
+ # Default source interface
93
+ assert_nil(global.source_interface)
94
+
95
+ # Set source interface
96
+ interface = 'loopback0'
97
+ global.source_interface = interface
98
+ assert_equal(interface, global.source_interface)
99
+
100
+ # Remove source interface
101
+ global.source_interface = nil
102
+ assert_nil(global.source_interface)
79
103
  end
80
104
  end
data/tests/test_vpc.rb CHANGED
@@ -138,6 +138,9 @@ class TestVpc < CiscoTestCase
138
138
  assert(vpc.layer3_peer_routing, 'layer3_peer_routing not getting set')
139
139
  vpc.layer3_peer_routing = false
140
140
  refute(vpc.layer3_peer_routing, 'layer3_peer_routing not getting disabled')
141
+ # reset peer gateway
142
+ vpc.peer_gateway = false
143
+ assert_equal(vpc.default_peer_gateway, vpc.peer_gateway)
141
144
  end
142
145
 
143
146
  def test_peer_keepalive
@@ -120,7 +120,6 @@ class TestVxlanVtepVni < CiscoTestCase
120
120
  return
121
121
  end
122
122
 
123
- skip_incompat_version?('vxlan_vtep_vni', 'ingress_replication')
124
123
  # Test non-default values
125
124
  vni.ingress_replication = 'static'
126
125
  assert_equal('static', vni.ingress_replication)
@@ -158,7 +157,6 @@ class TestVxlanVtepVni < CiscoTestCase
158
157
 
159
158
  # Test the case where an existing ingress_replication is removed before
160
159
  # configuring multicast_group
161
- skip_incompat_version?('vxlan_vtep_vni', 'ingress_replication')
162
160
  unless validate_property_excluded?('vxlan_vtep_vni', 'ingress_replication')
163
161
  vni1.ingress_replication = 'static'
164
162
  assert_equal('static', vni1.ingress_replication)
@@ -185,7 +183,6 @@ class TestVxlanVtepVni < CiscoTestCase
185
183
  return
186
184
  end
187
185
 
188
- skip_incompat_version?('vxlan_vtep_vni', 'peer_list')
189
186
  peer_list = ['1.1.1.1', '2.2.2.2', '3.3.3.3', '4.4.4.4']
190
187
 
191
188
  # Test: all peers when current is empty
@@ -63,6 +63,11 @@
63
63
  name: 'nxos.sample-n9k_ALL'
64
64
  version: '1.0.0-7.0.3.I6.1'
65
65
 
66
+ 7_0_3_I7_1_:
67
+ filename: 'nxos.sample-n9k_ALL-1.0.0-7.0.3.I7.1.lib32_n9000.rpm'
68
+ name: 'nxos.sample-n9k_ALL'
69
+ version: '1.0.0-7.0.3.I7.1'
70
+
66
71
  7_0_3_F1_1_:
67
72
  filename: 'nxos.sample-n8k_EOR-1.0.0-7.0.3.F1.1.lib32_nxos.rpm'
68
73
  name: 'nxos.sample-n8k_EOR'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cisco_node_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Gries
@@ -15,7 +15,7 @@ authors:
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2017-05-31 00:00:00.000000000 Z
18
+ date: 2017-12-13 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: bundler
@@ -59,6 +59,20 @@ dependencies:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '5.0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: net-telnet
64
+ requirement: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.1.1
69
+ type: :development
70
+ prerelease: false
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.1.1
62
76
  - !ruby/object:Gem::Dependency
63
77
  name: rake
64
78
  requirement: !ruby/object:Gem::Requirement
@@ -227,6 +241,7 @@ files:
227
241
  - lib/cisco_node_utils/cmd_ref/ntp_auth_key.yaml
228
242
  - lib/cisco_node_utils/cmd_ref/ntp_config.yaml
229
243
  - lib/cisco_node_utils/cmd_ref/ntp_server.yaml
244
+ - lib/cisco_node_utils/cmd_ref/object_group.yaml
230
245
  - lib/cisco_node_utils/cmd_ref/ospf.yaml
231
246
  - lib/cisco_node_utils/cmd_ref/ospf_area.yaml
232
247
  - lib/cisco_node_utils/cmd_ref/ospf_area_vlink.yaml
@@ -297,6 +312,8 @@ files:
297
312
  - lib/cisco_node_utils/ntp_auth_key.rb
298
313
  - lib/cisco_node_utils/ntp_config.rb
299
314
  - lib/cisco_node_utils/ntp_server.rb
315
+ - lib/cisco_node_utils/object_group.rb
316
+ - lib/cisco_node_utils/object_group_entry.rb
300
317
  - lib/cisco_node_utils/overlay_global.rb
301
318
  - lib/cisco_node_utils/pim.rb
302
319
  - lib/cisco_node_utils/pim_group_list.rb
@@ -412,6 +429,7 @@ files:
412
429
  - tests/test_ntp_config.rb
413
430
  - tests/test_ntp_server.rb
414
431
  - tests/test_nxapi.rb
432
+ - tests/test_object_group.rb
415
433
  - tests/test_overlay_global.rb
416
434
  - tests/test_pim.rb
417
435
  - tests/test_pim_group_list.rb
@@ -475,7 +493,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
475
493
  version: 2.1.0
476
494
  requirements: []
477
495
  rubyforge_project:
478
- rubygems_version: 2.2.2
496
+ rubygems_version: 2.4.6
479
497
  signing_key:
480
498
  specification_version: 4
481
499
  summary: Utilities for management of Cisco network nodes