cisco_node_utils 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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