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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ace0b0c19f37f945e6c481025338abfb66cde8df
4
- data.tar.gz: 78a76f33ab99686867a1617ead012558e1953155
3
+ metadata.gz: 860be08b4fe2ad44a4d30cdb948b67eb57c1c169
4
+ data.tar.gz: a3ba4f0c7e0a365cb084ce05ad9d904d8c2f32d9
5
5
  SHA512:
6
- metadata.gz: 49002da692d4ddab28b3b5bb9ea3377fd5cfd75675f4723457f59cccb544e394daa658b37aa35848e808f516b02be4bc1714c8900947d757fd6a9cf6d6ea125c
7
- data.tar.gz: a51f24fa6e47835dbd0a1f8b7fb9b79e3fcd740f89ad4158c54fc86e61d40bf61b8f634f63724ed8570053de12bd8f1d446ffca55a10768bbf51c003e8f2586a
6
+ metadata.gz: f83cde3f3b6b2d45059cf3f164d908b4a35b08897589e7a171b31d072907e9b34b0667be9888bacc625ff533b2c4abb0b77c294c6b9802aa53ef6505e71933c5
7
+ data.tar.gz: 104ad9a0af48d17a0bef176f49d8e1c16d86d0f6e902fb98885a9678f8fc917889a6de18f5519a1b3cc834b5872323250ed30bafd57d5e588fef6e663347c653
data/CHANGELOG.md CHANGED
@@ -1,6 +1,41 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ ## [v1.8.0]
5
+
6
+ #### Cisco Resources
7
+ * ObjectGroup
8
+ * object_group (@saichint)
9
+ * object_group_entry (@saichint)
10
+
11
+ ### Added
12
+ * Extend syslog_server with attributes:
13
+ * `port`
14
+ * Extend syslog_settings with attributes:
15
+ * `console`
16
+ * `monitor`
17
+ * `source_interface`
18
+ * Extend radius_global with attributes:
19
+ * `source_interface`
20
+ * Extend tacacs_global with attributes:
21
+ * `source_interface`
22
+
23
+ ### Changed
24
+ * syslog_server initialize now uses options hash
25
+ * Prior to this release syslog_server accepted positional arguments for name,
26
+ level, and vrf. New behavior is to pass attributes as a hash.
27
+
28
+ Example:
29
+ ```
30
+ options = { 'name' => '1.1.1.1', 'level' => '4', 'port' => '2154',
31
+ 'vrf' => 'red' }
32
+ Cisco::SyslogServer.new(options, true)
33
+ ```
34
+ * tacacs_global key removal fixed
35
+ * Prior to this release key removal was done by passing in a value of 8. A
36
+ nil value is now used. Added intelligence to determine key format
37
+ automatically for removal.
38
+
4
39
  ## [v1.7.0]
5
40
 
6
41
  ### New feature support
@@ -478,6 +513,7 @@ Changelog
478
513
  [git-flow]: https://github.com/petervanderdoes/gitflow-avh
479
514
  [SimpleCov]: https://github.com/colszowka/simplecov
480
515
 
516
+ [v1.8.0]: https://github.com/cisco/cisco-network-node-utils/compare/v1.7.0...v1.8.0
481
517
  [v1.7.0]: https://github.com/cisco/cisco-network-node-utils/compare/v1.6.0...v1.7.0
482
518
  [v1.6.0]: https://github.com/cisco/cisco-network-node-utils/compare/v1.5.0...v1.6.0
483
519
  [v1.5.0]: https://github.com/cisco/cisco-network-node-utils/compare/v1.4.1...v1.5.0
data/CONTRIBUTING.md CHANGED
@@ -4,7 +4,7 @@ Cisco Network Elements support a rich set of features to make networks robust, e
4
4
  ## Getting Started
5
5
 
6
6
  * Create a [GitHub account](https://github.com/signup/free)
7
- * A virtual Nexus N9000/N3000 may be helpful for development and testing. Users with a valid [cisco.com](http://cisco.com) user ID can obtain a copy of a virtual Nexus N9000/N3000 by sending their [cisco.com](http://cisco.com) user ID in an email to <get-n9kv@cisco.com>. If you do not have a [cisco.com](http://cisco.com) user ID please register for one at [https://tools.cisco.com/IDREG/guestRegistration](https://tools.cisco.com/IDREG/guestRegistration)
7
+ * Please note: For Cisco Nexus 9k platforms, a virtual Nexus N9000 may be helpful for development and testing. Users with a valid [cisco.com](http://cisco.com) user ID can [download the software on CCO.](https://software.cisco.com/download/release.html?mdfid=286312239&softwareid=282088129&release=7.0(3)I5(2)&relind=AVAILABLE&rellifecycle=&reltype=latest) If you do not have a [cisco.com](http://cisco.com) user ID please register for one at [https://tools.cisco.com/IDREG/guestRegistration](https://tools.cisco.com/IDREG/guestRegistration)
8
8
 
9
9
  ## Making Changes
10
10
 
@@ -40,4 +40,4 @@ git config --global user.email johndoe@example.com
40
40
  # Additional Resources
41
41
 
42
42
  * [General GitHub documentation](http://help.github.com/)
43
- * [GitHub pull request documentation](http://help.github.com/send-pull-requests/)
43
+ * [GitHub pull request documentation](https://help.github.com/articles/about-pull-requests/)
data/README.md CHANGED
@@ -44,12 +44,13 @@ Platform | OS | OS Version |
44
44
  ------------------|--------|----------------------|
45
45
  Cisco Nexus N9k | NX-OS | 7.0(3)I2(1) and later
46
46
  Cisco Nexus N3k | NX-OS | 7.0(3)I2(1) and later
47
+ Cisco Nexus N3K-F | NX-OS | 7.0(3)F3(2) and later
47
48
  Cisco Nexus N5k | NX-OS | 7.3(0)N1(1) and later
48
49
  Cisco Nexus N6k | NX-OS | 7.3(0)N1(1) and later
49
50
  Cisco Nexus N7k | NX-OS | 7.3(0)D1(1) and later
50
51
  Cisco Nexus N9K-F | NX-OS | 7.0(3)F1(1) and later
51
52
 
52
- Please note: For Cisco Nexus 3k and 9k platforms, a virtual Nexus N9000/N3000 may be helpful for development and testing. Users with a valid [cisco.com](http://cisco.com) user ID can obtain a copy of a virtual Nexus N9000/N3000 by sending their [cisco.com](http://cisco.com) user ID in an email to <get-n9kv@cisco.com>. If you do not have a [cisco.com](http://cisco.com) user ID please register for one at [https://tools.cisco.com/IDREG/guestRegistration](https://tools.cisco.com/IDREG/guestRegistration)
53
+ Please note: For Cisco Nexus 9k platforms, a virtual Nexus N9000 may be helpful for development and testing. Users with a valid [cisco.com](http://cisco.com) user ID can [download the software on CCO.](https://software.cisco.com/download/release.html?mdfid=286312239&softwareid=282088129&release=7.0(3)I5(2)&relind=AVAILABLE&rellifecycle=&reltype=latest) If you do not have a [cisco.com](http://cisco.com) user ID please register for one at [https://tools.cisco.com/IDREG/guestRegistration](https://tools.cisco.com/IDREG/guestRegistration)
53
54
 
54
55
  ## <a name="installation">Installation</a>
55
56
 
@@ -31,6 +31,7 @@ Currently supports NX-OS nodes.
31
31
  spec.add_development_dependency 'bundler', '~> 1.7'
32
32
  spec.add_development_dependency 'kwalify', '~> 0.7.2'
33
33
  spec.add_development_dependency 'minitest', '~> 5.0'
34
+ spec.add_development_dependency 'net-telnet', '~> 0.1.1'
34
35
  spec.add_development_dependency 'rake', '~> 10.0'
35
36
  spec.add_development_dependency 'rspec', '~> 3.0'
36
37
  spec.add_development_dependency 'rubocop', '= 0.35.1'
@@ -70,7 +70,8 @@ fi
70
70
 
71
71
  ### <a name="prereq_vm">Nexus VM (optional)</a>
72
72
 
73
- A virtual Nexus N9000/N3000 may be helpful for development and testing. Users with a valid [cisco.com](http://cisco.com) user ID can obtain a copy of a virtual Nexus N9000/N3000 by sending their [cisco.com](http://cisco.com) user ID in an email to <get-n9kv@cisco.com>. If you do not have a [cisco.com](http://cisco.com) user ID please register for one at [https://tools.cisco.com/IDREG/guestRegistration](https://tools.cisco.com/IDREG/guestRegistration)
73
+ A virtual Nexus N9000 may be helpful for development and testing. Users with a valid [cisco.com](http://cisco.com) user ID can [download the software on CCO.](https://software.cisco.com/download/release.html?mdfid=286312239&softwareid=282088129&release=7.0(3)I5(2)&relind=AVAILABLE&rellifecycle=&reltype=latest) If you do not have a [cisco.com](http://cisco.com) user ID please register for one at [https://tools.cisco.com/IDREG/guestRegistration](https://tools.cisco.com/IDREG/guestRegistration)
74
+
74
75
 
75
76
 
76
77
  ## <a name="clone">Start here: Fork and Clone the Repo</a>
@@ -58,8 +58,8 @@ module Cisco
58
58
  if g_str.empty?
59
59
  # cannot remove default local, so do nothing in this case
60
60
  unless m == :local
61
- unless node.product_id[/N9K-F/]
62
- # TBD: These 'no' commands currently error on N9K-F
61
+ unless node.product_id[/N(3|9)K-F/]
62
+ # TBD: These 'no' commands currently error on N(3|9)K-F
63
63
  # no aaa authentication login console local
64
64
  # no aaa authentication login console none
65
65
  config_set('aaa_auth_login_service', 'method',
@@ -235,6 +235,7 @@ module Cisco
235
235
 
236
236
  def established
237
237
  match = ace_get
238
+ return nil unless remark.nil?
238
239
  return false if match.nil?
239
240
  return false unless match.names.include?('established')
240
241
  match[:established] == 'established' ? true : false
@@ -318,6 +319,7 @@ module Cisco
318
319
 
319
320
  def log
320
321
  match = ace_get
322
+ return nil unless remark.nil?
321
323
  return false if match.nil?
322
324
  return false unless match.names.include?('log')
323
325
  match[:log] == 'log' ? true : false
@@ -1,6 +1,6 @@
1
1
  # June 2015, Michael G Wiebe
2
2
  #
3
- # Copyright (c) 2015-2016 Cisco and/or its affiliates.
3
+ # Copyright (c) 2015-2017 Cisco and/or its affiliates.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -56,9 +56,9 @@ module Cisco
56
56
  end
57
57
  hash_final.merge!(hash_tmp)
58
58
  return hash_final
59
- rescue Cisco::CliError => e
60
- # cmd will syntax reject when feature is not enabled
61
- raise unless e.clierror =~ /Syntax error/
59
+ rescue Cisco::CliError
60
+ # cmd will error when feature 'bgp' is not enabled
61
+ raise if Feature.bgp_enabled?
62
62
  return {}
63
63
  end
64
64
 
@@ -414,14 +414,11 @@ module Cisco
414
414
  # Nvgen as True With optional 'size <size>
415
415
  def event_history_cli
416
416
  match = config_get('bgp', 'event_history_cli', @get_args)
417
- if match.is_a?(Array)
418
- return 'false' if match[0] == 'no '
419
- if match[1]
420
- return match[1] if match[1][/\A\d+\z/]
421
- return 'size_' + match[1]
422
- end
423
- end
424
- default_event_history_cli
417
+ return unless match.is_a?(Array)
418
+ return 'false' if match[0] == 'no '
419
+ return unless match[1]
420
+ return match[1] if match[1][/\A\d+\z/]
421
+ 'size_' + match[1]
425
422
  end
426
423
 
427
424
  def event_history_cli=(val)
@@ -432,23 +429,15 @@ module Cisco
432
429
  set_args_keys_default
433
430
  end
434
431
 
435
- def default_event_history_cli
436
- config_get_default('bgp', 'event_history_cli')
437
- end
438
-
439
432
  # event-history detail [ size <size> ]
440
433
  # Nvgen as True With optional 'size <size>
441
434
  def event_history_detail
442
435
  match = config_get('bgp', 'event_history_detail', @get_args)
443
- if match.is_a?(Array)
444
- return 'false' if match[0] == 'no '
445
- if match[1]
446
- return match[1] if match[1][/\A\d+\z/]
447
- return 'size_' + match[1]
448
- end
449
- return 'true'
450
- end
451
- default_event_history_detail
436
+ return unless match.is_a?(Array)
437
+ return 'false' if match[0] == 'no '
438
+ return 'true' unless match[1]
439
+ return match[1] if match[1][/\A\d+\z/]
440
+ 'size_' + match[1]
452
441
  end
453
442
 
454
443
  def event_history_detail=(val)
@@ -459,22 +448,15 @@ module Cisco
459
448
  set_args_keys_default
460
449
  end
461
450
 
462
- def default_event_history_detail
463
- config_get_default('bgp', 'event_history_detail')
464
- end
465
-
466
451
  # event-history errors [ size <size> ]
467
452
  # Nvgen as True With optional 'size <size>
468
453
  def event_history_errors
469
454
  match = config_get('bgp', 'event_history_errors', @get_args)
470
- if match.is_a?(Array)
471
- return 'false' if match[0] == 'no '
472
- if match[1]
473
- return match[1] if match[1][/\A\d+\z/]
474
- return 'size_' + match[1]
475
- end
476
- end
477
- default_event_history_errors
455
+ return unless match.is_a?(Array)
456
+ return 'false' if match[0] == 'no '
457
+ return unless match[1]
458
+ return match[1] if match[1][/\A\d+\z/]
459
+ 'size_' + match[1]
478
460
  end
479
461
 
480
462
  def event_history_errors=(val)
@@ -485,22 +467,15 @@ module Cisco
485
467
  set_args_keys_default
486
468
  end
487
469
 
488
- def default_event_history_errors
489
- config_get_default('bgp', 'event_history_errors')
490
- end
491
-
492
470
  # event-history events [ size <size> ]
493
471
  # Nvgen as True With optional 'size <size>
494
472
  def event_history_events
495
473
  match = config_get('bgp', 'event_history_events', @get_args)
496
- if match.is_a?(Array)
497
- return 'false' if match[0] == 'no '
498
- if match[1]
499
- return match[1] if match[1][/\A\d+\z/]
500
- return 'size_' + match[1]
501
- end
502
- end
503
- default_event_history_events
474
+ return unless match.is_a?(Array)
475
+ return 'false' if match[0] == 'no '
476
+ return unless match[1]
477
+ return match[1] if match[1][/\A\d+\z/]
478
+ 'size_' + match[1]
504
479
  end
505
480
 
506
481
  def event_history_events=(val)
@@ -511,28 +486,15 @@ module Cisco
511
486
  set_args_keys_default
512
487
  end
513
488
 
514
- def default_event_history_events
515
- if Utils.image_version?(/7.0.3.I2|I3|I4/) ||
516
- node.product_id[/(N5|N6|N7|N9.*-F)/]
517
- config_get_default('bgp', 'event_history_events')
518
- else
519
- config_get('bgp', 'event_history_events_bytes', @get_args)
520
- end
521
- end
522
-
523
489
  # event-history objstore [ size <size> ]
524
490
  # Nvgen as True With optional 'size <size>
525
491
  def event_history_objstore
526
492
  match = config_get('bgp', 'event_history_objstore', @get_args)
527
- if match.is_a?(Array)
528
- return 'false' if match[0] == 'no '
529
- if match[1]
530
- return match[1] if match[1][/\A\d+\z/]
531
- return 'size_' + match[1]
532
- end
533
- return 'true'
534
- end
535
- default_event_history_objstore
493
+ return unless match.is_a?(Array)
494
+ return 'false' if match[0] == 'no '
495
+ return 'true' unless match[1]
496
+ return match[1] if match[1][/\A\d+\z/]
497
+ 'size_' + match[1]
536
498
  end
537
499
 
538
500
  def event_history_objstore=(val)
@@ -543,25 +505,15 @@ module Cisco
543
505
  set_args_keys_default
544
506
  end
545
507
 
546
- def default_event_history_objstore
547
- config_get_default('bgp', 'event_history_objstore')
548
- end
549
-
550
508
  # event-history periodic [ size <size> ]
551
509
  # Nvgen as True With optional 'size <size>
552
510
  def event_history_periodic
553
511
  match = config_get('bgp', 'event_history_periodic', @get_args)
554
- if match.is_a?(Array)
555
- return 'false' if match[0] == 'no '
556
- if match[1]
557
- return match[1] if match[1][/\A\d+\z/]
558
- return 'size_' + match[1]
559
- end
560
- else
561
- return default_event_history_periodic
562
- end
563
- return 'true' unless default_event_history_periodic[/size/]
564
- default_event_history_periodic
512
+ return unless match.is_a?(Array)
513
+ return 'false' if match[0] == 'no '
514
+ return unless match[1]
515
+ return match[1] if match[1][/\A\d+\z/]
516
+ 'size_' + match[1]
565
517
  end
566
518
 
567
519
  def event_history_periodic=(val)
@@ -572,15 +524,6 @@ module Cisco
572
524
  set_args_keys_default
573
525
  end
574
526
 
575
- def default_event_history_periodic
576
- if Utils.image_version?(/7.0.3.I2|I3|I4/) ||
577
- node.product_id[/(N5|N6|N7|N9.*-F)/]
578
- config_get_default('bgp', 'event_history_periodic')
579
- else
580
- config_get('bgp', 'event_history_periodic_bytes', @get_args)
581
- end
582
- end
583
-
584
527
  # Fast External fallover (Getter/Setter/Default)
585
528
  def fast_external_fallover
586
529
  config_get('bgp', 'fast_external_fallover', @get_args)
@@ -124,30 +124,27 @@ module Cisco
124
124
  # PROPERTIES #
125
125
  ########################################################
126
126
 
127
- # Bridge-Domain name assigning case
128
- # bridge-domain 100
129
- # name bd100
130
127
  def bd_name
131
128
  config_get('bridge_domain', 'bd_name', bd: @bd_ids)
132
129
  end
133
130
 
134
131
  def bd_name=(str)
135
- str = str.to_s
136
132
  state = str.empty? ? 'no' : ''
137
133
  config_set('bridge_domain', 'bd_name', bd: @bd_ids, state: state,
138
134
  name: str)
139
135
  end
140
136
 
137
+ # This default getter is a bit different them most. When a brige-domain
138
+ # gets created it gets a default name assigned that follows the pattern
139
+ # 'Bridge-DomainX' where X is the bridge domain id (@bd_ids).
141
140
  def default_bd_name
142
- config_get_default('bridge_domain', 'bd_name')
141
+ 'Bridge-Domain' + @bd_ids
143
142
  end
144
143
 
145
- # Bridge-Domain type change to fabric-control
146
- # bridge-domain 100
147
- # fabric-control
148
144
  # This type property can be defined only for one bd
149
145
  def fabric_control
150
- config_get('bridge_domain', 'fabric_control', bd: @bd_ids)
146
+ match = config_get('bridge_domain', 'fabric_control', bd: @bd_ids)
147
+ match == @bd_ids ? true : false
151
148
  end
152
149
 
153
150
  def fabric_control=(val)
@@ -159,11 +156,9 @@ module Cisco
159
156
  config_get_default('bridge_domain', 'fabric_control')
160
157
  end
161
158
 
162
- # Bridge-Domain Shutdown case
163
- # bridge-domain 100
164
- # shutdown
165
159
  def shutdown
166
- config_get('bridge_domain', 'shutdown', bd: @bd_ids)
160
+ match = config_get('bridge_domain', 'shutdown', bd: @bd_ids)
161
+ match == 'Noshutdown' ? false : true
167
162
  end
168
163
 
169
164
  def shutdown=(val)
@@ -67,9 +67,6 @@ class Cisco::Client::NXAPI < Cisco::Client
67
67
  # also used as the default config by firefox.
68
68
  @http.read_timeout = 300
69
69
  @address = @http.address
70
-
71
- # Make sure we can actually connect to the socket
72
- get(command: 'show hostname')
73
70
  end
74
71
 
75
72
  def self.validate_args(**kwargs)
@@ -167,6 +164,15 @@ class Cisco::Client::NXAPI < Cisco::Client
167
164
  end
168
165
  end
169
166
 
167
+ # Helper method to increase the default @http.read_timeout value from
168
+ # the default value of 300 to accomodate commands that are known to
169
+ # require more time to complete.
170
+ def read_timeout_check(request)
171
+ return unless request.body[/install all|install force-all/]
172
+ debug("Increasing http read_timeout to 1000 for 'install all' command")
173
+ @http.read_timeout = 1000
174
+ end
175
+
170
176
  # Sends a request to the NX API and returns the body of the request or
171
177
  # handles errors that happen.
172
178
  # @raise Cisco::ConnectionRefused if NXAPI is disabled
@@ -201,6 +207,7 @@ class Cisco::Client::NXAPI < Cisco::Client
201
207
  # send the request and get the response
202
208
  debug("Sending HTTP request to NX-API at #{@http.address}:\n" \
203
209
  "#{request.to_hash}\n#{request.body}")
210
+ read_timeout_check(request)
204
211
  tries = 2
205
212
  begin
206
213
  # Explicitly use http to avoid EOFError
@@ -17,7 +17,7 @@ private_vlan_any:
17
17
 
18
18
  private_vlan_association:
19
19
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'pvlan_association'
20
- _exclude: [N9k-F]
20
+ _exclude: [N3k-F, N9k-F]
21
21
  multiple: true
22
22
  get_command: "show vlan private-vlan"
23
23
  get_context: ~
@@ -28,7 +28,7 @@ private_vlan_association:
28
28
 
29
29
  private_vlan_mapping:
30
30
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'pvlan_mapping'
31
- _exclude: [ios_xr, N9k-F]
31
+ _exclude: [ios_xr, N3k-F, N9k-F]
32
32
  multiple: true
33
33
  get_value: '/^private-vlan mapping (.*)$/'
34
34
  set_value: "<state> private-vlan mapping <vlans>"
@@ -36,7 +36,7 @@ private_vlan_mapping:
36
36
 
37
37
  private_vlan_type:
38
38
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'pvlan_type'
39
- _exclude: [N9k-F]
39
+ _exclude: [N3k-F, N9k-F]
40
40
  kind: string
41
41
  get_command: 'show vlan private-vlan type'
42
42
  get_context: ~
@@ -47,14 +47,14 @@ private_vlan_type:
47
47
 
48
48
  switchport_mode_private_vlan_host:
49
49
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_host'
50
- _exclude: [ios_xr, N9k-F]
50
+ _exclude: [ios_xr, N3k-F, N9k-F]
51
51
  get_value: '/^switchport mode private-vlan (.*)$/'
52
52
  set_value: "<state> switchport mode private-vlan <mode>"
53
53
  default_value: :disabled
54
54
 
55
55
  switchport_mode_private_vlan_host_association:
56
56
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_host_association'
57
- _exclude: [ios_xr, N9k-F]
57
+ _exclude: [ios_xr, N3k-F, N9k-F]
58
58
  multiple: true
59
59
  get_value: '/^switchport private-vlan host-association (.*)$/'
60
60
  set_value: "<state> switchport private-vlan host-association <vlan_pr> <vlan_sec>"
@@ -62,7 +62,7 @@ switchport_mode_private_vlan_host_association:
62
62
 
63
63
  switchport_mode_private_vlan_host_promiscous:
64
64
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_promiscuous'
65
- _exclude: [ios_xr, N9k-F]
65
+ _exclude: [ios_xr, N3k-F, N9k-F]
66
66
  multiple: true
67
67
  get_value: '/^switchport private-vlan mapping (\d+.*)$/'
68
68
  set_value: "<state> switchport private-vlan mapping <vlan_pr> <vlans>"
@@ -70,7 +70,7 @@ switchport_mode_private_vlan_host_promiscous:
70
70
 
71
71
  switchport_mode_private_vlan_trunk_promiscuous:
72
72
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_trunk_promiscuous'
73
- _exclude: [ios_xr, N3k, N9k-F]
73
+ _exclude: [ios_xr, N3k, N3k-F, N9k-F]
74
74
  kind: boolean
75
75
  get_value: '/^switchport mode private-vlan trunk promiscuous$/'
76
76
  set_value: "<state> switchport mode private-vlan trunk promiscuous"
@@ -78,7 +78,7 @@ switchport_mode_private_vlan_trunk_promiscuous:
78
78
 
79
79
  switchport_mode_private_vlan_trunk_secondary:
80
80
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_trunk_secondary'
81
- _exclude: [ios_xr, N3k, N9k-F]
81
+ _exclude: [ios_xr, N3k, N3k-F, N9k-F]
82
82
  kind: boolean
83
83
  get_value: '/^switchport mode private-vlan trunk secondary$/'
84
84
  set_value: "<state> switchport mode private-vlan trunk secondary"
@@ -86,7 +86,7 @@ switchport_mode_private_vlan_trunk_secondary:
86
86
 
87
87
  switchport_private_vlan_association_trunk:
88
88
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_trunk_association'
89
- _exclude: [ios_xr, N3k, N9k-F]
89
+ _exclude: [ios_xr, N3k, N3k-F, N9k-F]
90
90
  multiple: true
91
91
  #get_value: '/^switchport private-vlan association trunk (.*) (.*)$/'
92
92
  get_value: '/^switchport private-vlan association trunk (.*)$/'
@@ -95,7 +95,7 @@ switchport_private_vlan_association_trunk:
95
95
 
96
96
  switchport_private_vlan_mapping_trunk:
97
97
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_mapping_trunk'
98
- _exclude: [ios_xr, N3k, N9k-F]
98
+ _exclude: [ios_xr, N3k, N3k-F, N9k-F]
99
99
  multiple: true
100
100
  get_value: '/^switchport private-vlan mapping trunk (.*)$/'
101
101
  set_value: "<state> switchport private-vlan mapping trunk <vlan_pr> <vlans>"
@@ -103,7 +103,7 @@ switchport_private_vlan_mapping_trunk:
103
103
 
104
104
  switchport_private_vlan_trunk_allowed_vlan:
105
105
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_trunk_allowed_vlan'
106
- _exclude: [ios_xr, N9k-F]
106
+ _exclude: [ios_xr, N3k-F, N9k-F]
107
107
  multiple: true
108
108
  get_value: '/^switchport private-vlan trunk allowed vlan (.*)$/'
109
109
  set_value: "<state> switchport private-vlan trunk allowed vlan <oper> <vlans>"
@@ -111,7 +111,7 @@ switchport_private_vlan_trunk_allowed_vlan:
111
111
 
112
112
  switchport_private_vlan_trunk_native_vlan:
113
113
  # DEPRECATED (REMOVING WITH RELEASE 2.0.0). USE 'switchport_pvlan_trunk_native_vlan'
114
- _exclude: [ios_xr, N9k-F]
114
+ _exclude: [ios_xr, N3k-F, N9k-F]
115
115
  kind: int
116
116
  get_value: '/^switchport private-vlan trunk native vlan (.*)$/'
117
117
  set_value: "<state> switchport private-vlan trunk native vlan <vlan>"