Version information
This version is compatible with:
- Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >= 4.7.0 <7.0.0
Start using this module
Add this module to your Puppetfile:
mod 'puppetlabs-ciscopuppet', '2.1.0'
Learn more about managing modules with a PuppetfileDocumentation
Change Log
All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
2.1.0 - 2019-08-19
Added
Changed
- Added performance enhancement to
cisco_interface
to improve processing time with small numbers of managed interfaces.
Removed
- Removal of deprecated
cisco_interface
'private-vlan' properties.
Deprecated/Removed Name | New Name |
---|---|
private_vlan_mapping |
pvlan_mapping |
switchport_mode_private_vlan_host |
switchport_pvlan_host , switchport_pvlan_promiscuous , |
switchport_mode_private_vlan_host_association |
switchport_pvlan_host_association |
switchport_mode_private_vlan_host_promiscous |
switchport_pvlan_mapping |
switchport_mode_private_vlan_trunk_promiscuous |
switchport_pvlan_trunk_promiscuous |
switchport_mode_private_vlan_trunk_secondary |
switchport_pvlan_trunk_secondary |
switchport_private_vlan_association_trunk |
switchport_pvlan_trunk_association |
switchport_private_vlan_mapping_trunk |
switchport_pvlan_mapping_trunk |
switchport_private_vlan_trunk_allowed_vlan |
switchport_pvlan_trunk_allowed_vlan |
switchport_private_vlan_trunk_native_vlan |
switchport_pvlan_trunk_native_vlan |
- Removal of deprecated
cisco_vlan
'private-vlan' properties.
Deprecated/Removed Name | New Name |
---|---|
private_vlan_association |
pvlan_association |
private_vlan_type |
pvlan_type |
- Removed cisco_interface attribute:
purge_config
Issues Addressed
2.0.1 - 2019-06-24
Changed
- Module updated to utilize a transport class rather than the current device class. Backwards compatible change.
2.0.0 - 2019-02-14
New Major Version
This is a new major version release of the cisco-network-puppet-module. This version of the module extends Cisco and Netdev resources to allow managing Cisco Nexus devices using an agentless workflow.
The traditional agent based workflows are still supported with the following caveats.
- GuestShell Agent
- Supported on all platforms that have GuestShell support
- Supports agent installs using puppet agent 5 and puppet agent 6 rpms.
- Native Bash Agent
- Only supported on NX-OS image versions prior to release version
9.2(1)
- Supports agent installs using puppet agent 5 rpm only and support will be discontinued once puppet agent 5 reaches EOL.
- Only supported on NX-OS image versions prior to release version
- Open Agent Container (OAC)
- This version of the module is not supported for OAC. Must use module version
1.10.0
or ealier. - Supports agent install using puppet agent 4 rpm or ealier which is now EOL.
- This version of the module is not supported for OAC. Must use module version
Added
- Extended
cisco_ospf_vrf
with attribute:redistribute
- Extended
cisco_vpc_domain
with attributes:arp_synchronize
nd_synchronize
peer_switch
- Extended
cisco_vxlan_vtep_vni
with attribute:suppress_arp_disable
- Extended
cisco_vxlan_vtep
with attributes:global_suppress_arp
global_mcast_group_l2
global_mcast_group_l3
global_ingress_replication_bgp
Changed
Removed
Resolved Issues
1.10.0 - 2018-09-19
NOTE: Starting in release 9.2(1)
and onward, installing the Puppet Agent into the bash-shell
hosting environment is no longer supported.
The puppet agent software must be installed on a Cisco Nexus platform in the Guestshell
(the Linux container environment running CentOS). This provides a secure, open execution environment that is decoupled from the host.
New feature support
Added
-
Added
syslog_facility
with attribute:level
-
Extend syslog_server with attribute:
facility
-
Extend cisco_interface with attribute:
ipv6_redirects
-
Extend network_dns with attribute:
hostname
-
Extend syslog_settings with attributes:
logfile_name
logfile_severity_level
logfile_size
note: due to bug in NXAPI logfile_size is only supported on n9k and n3k platforms running 7.0(3)I7.4
/ 9.2(1)
or higher
- Added
banner
with attributes:motd
note: due to bug in NXAPI multiline banners are only supported on n9k and n3k platforms running 7.0(3)I7.4
/ 9.2(1)
or higher
Changed
Removed
- Support for Puppet Agent install into the
bash-shell
hosting environment. This is the native WRL Linux environment underlying NX-OS.
Resolved Issues
- https://tickets.puppetlabs.com/browse/CISCO-63
- https://tickets.puppetlabs.com/browse/CISCO-66
- https://tickets.puppetlabs.com/browse/CISCO-71
- https://tickets.puppetlabs.com/browse/CISCO-72
- https://tickets.puppetlabs.com/browse/CISCO-73
- https://tickets.puppetlabs.com/browse/CISCO-74
- https://tickets.puppetlabs.com/browse/CISCO-75
- https://tickets.puppetlabs.com/browse/CISCO-76
- https://tickets.puppetlabs.com/browse/CISCO-77
1.9.0 - 2018-04-19
New feature support
Cisco Resources
cisco_evpn_multisite
type and provider.cisco_evpn_stormcontrol
type and provider.cisco_interface_evpn_multisite
type and provider.cisco_evpn_multicast
type and provider.cisco_ip_multicast
type and provider
Added
- Extend
cisco_bgp_neighbor
with attribute:peer_type
- Extend
cisco_bgp_neighbor_af
with attribute:rewrite_evpn_rt_asn
- Extend
cisco_vxlan_vtep
with attribute:multisite_border_gateway_interface
- Extend
cisco_vxlan_vtep_vni
with attribute:multisite_ingress_replication
- Extend
cisco_vrf_af
with attributes:route_target_both_auto_mvpn
route_target_import_mvpn
route_target_export_mvpn
Changed
Removed
Resolved Issues
1.8.0 - 2017-12-12
New feature support
Cisco Resources
cisco_object_group
type and provider.cisco_object_group_entry
type and provider.
Added
Changed
-
cisco_interface
Refactored to allow physical ethernet interfaces to be managed as ensurable resources.ensure => absent
for physical interfaces will put the interface into a default state.ensure => absent
for logical interfaces will cause them to be destroyed.
-
Extend
syslog_server
with attribute: -
port
-
Extend
syslog_settings
with attributes: -
console
-
monitor
-
source_interface
-
vrf
-
Extend
radius_global
with attribute: -
source_interface
-
Extend
tacacs_global
with attribute: -
source_interface
Removed
Resolved Issues
1.7.0 - 2017-05-31
New feature support
Cisco Resources
cisco_bgp_af_aa
type and provider.
Added
-
Extend cisco_interface with attributes:
-
purge_config
-
Extend cisco_interface_channel_group with attributes:
-
channel_group_mode
-
Added support for tftp and usb URIs to
cisco_upgrade
-
Extend
cisco_upgrade
with attributes: -
package
-
Added
ntp_auth_key
with attributes: -
algorithm
-
key
-
mode
-
password
-
Extend
ntp_config
with attributes: -
authenticate
-
trusted_key
-
Extend
ntp_server
with attributes: -
key
-
maxpoll
-
minpoll
-
vrf
Changed
Removed
- Deprecated
version
andsource_uri
attributes forcisco_upgrade
in favor of a single attributepackage
.
Resolved Issues
- https://github.com/cisco/cisco-network-puppet-module/issues/424
- https://github.com/cisco/cisco-network-puppet-module/issues/432
- https://github.com/cisco/cisco-network-puppet-module/issues/446
- https://github.com/cisco/cisco-network-puppet-module/issues/452
1.6.0 - 2017-03-13
New feature support
Cisco Resources
cisco_route_map
type and provider.cisco_upgrade
type and provider.
Added
- Extend cisco_interface with attributes:
load_interval_counter_1_delay
load_interval_counter_2_delay
load_interval_counter_3_delay
Changed
Removed
Resolved Issues
- https://github.com/cisco/cisco-network-puppet-module/issues/413
- https://github.com/cisco/cisco-network-puppet-module/issues/414
- https://github.com/cisco/cisco-network-puppet-module/issues/415
- https://github.com/cisco/cisco-network-puppet-module/issues/417
- https://github.com/cisco/cisco-network-puppet-module/issues/419
- https://github.com/cisco/cisco-network-puppet-module/issues/420
- https://github.com/cisco/cisco-network-puppet-module/issues/423
1.5.0 - 2017-01-11
New feature support
Cisco Resources
cisco_hsrp_global
type and provider.cisco_interface_hsrp_group
type and provider.
Added
-
Extend cisco_interface with attributes:
-
hsrp_bfd
-
hsrp_delay_minimum
-
hsrp_delay_reload
-
hsrp_mac_refresh
-
hsrp_use_bia
-
hsrp_version
-
pim_bfd
-
Extend cisco_pim with attributes:
-
bfd
- Added support for Cisco NX-OS software releases
7.3(0)F1(1)
and8.0(1)
Resolved Issues
1.4.1 - 2016-11-02
Added
- Extend cisco_bgp with attributes:
event_history_errors
event_history_objstore
- Added support for Cisco NX-OS software release
7.3(0)I5(1)
Changed
Removed
1.4.0 - 2016-10-04
New feature support
Cisco Resources
cisco_bfd_global
type and provider.cisco_dhcp_relay_global
type and provider.cisco_ospf_area
type and provider.cisco_ospf_area_vlink
type and provider.
Added
-
Extend cisco_interface with attributes:
-
bfd_echo
-
ipv4_dhcp_relay_addr
-
ipv4_dhcp_relay_info_trust
-
ipv4_dhcp_relay_src_addr_hsrp
-
ipv4_dhcp_relay_src_intf
-
ipv4_dhcp_relay_subnet_broadcast
-
ipv4_dhcp_smart_relay
-
ipv6_dhcp_relay_addr
-
ipv6_dhcp_relay_src_intf
-
storm_control_broadcast
-
storm_control_multicast
-
storm_control_unicast
-
Extend cisco_interface_ospf with attributes:
-
bfd
-
mtu_ignore
-
network_type
-
priority
-
shutdown
-
transmit_delay
-
Extend cisco_interface_portchannel with attributes:
-
bfd_per_link
-
Extend cisco_ospf_vrf with attributes:
-
bfd
-
Extend cisco_bgp_neighbor with attributes:
-
bfd
-
Extended
cisco_bgp_af
to include l2vpn/evpn address-family support -
Deprecated
cisco_interface
'private-vlan' properties and replaced with new methods. The deprecated properties will be removed with release 2.0.0. The old -> new properties are:
Old Name | New Name(s) |
---|---|
private_vlan_mapping |
pvlan_mapping |
switchport_mode_private_vlan_host |
switchport_pvlan_host , switchport_pvlan_promiscuous , |
switchport_mode_private_vlan_host_association |
switchport_pvlan_host_association |
switchport_mode_private_vlan_host_promiscous |
switchport_pvlan_mapping |
switchport_mode_private_vlan_trunk_promiscuous |
switchport_pvlan_trunk_promiscuous |
switchport_mode_private_vlan_trunk_secondary |
switchport_pvlan_trunk_secondary |
switchport_private_vlan_association_trunk |
switchport_pvlan_trunk_association |
switchport_private_vlan_mapping_trunk |
switchport_pvlan_mapping_trunk |
switchport_private_vlan_trunk_allowed_vlan |
switchport_pvlan_trunk_allowed_vlan |
switchport_private_vlan_trunk_native_vlan |
switchport_pvlan_trunk_native_vlan |
- Deprecated
cisco_vlan
'private-vlan' properties and replaced with new methods. The deprecated properties will be removed with release 2.0.0. The old -> new properties are:
Old Name | New Name |
---|---|
private_vlan_association |
pvlan_association |
private_vlan_type |
pvlan_type |
Changed
cisco_interface_ospf
type and provider so that the properties accept 'default' keyword.
1.3.2 - 2016-07-26
Fixed:
- Remove
autorequire
references in cisco types.- Fixes incompatibility between cisco resources and latest puppet agent rpm.
- Fix
undefined method 'previous'
bug incisco_command_config
provider.
1.3.1 - 2016-05-06
New feature support
Cisco Resources
cisco_fabricpath_global
type and provider.cisco_fabricpath_topology
type and provider.cisco_itd_device_group
type and provider.cisco_itd_device_group_node
type and provider.cisco_itd_service
type and provider.cisco_stp_global
type and provider.
Added
- Extended the following providers to support
Nexus N5k
,Nexus N6k
, andNexus N7k
cisco_aaa_authentication_login
,cisco_aaa_authorization_login_cfg_svc
,cisco_aaa_authorization_login_exec_svc
,cisco_aaa_group_tacacs
cisco_fabricpath_global
,cisco_fabricpath_topology
cisco_interface_channel_group
,cisco_interface_portchannel
,cisco_portchannel_global
cisco_snmp_community
,cisco_snmp_group
,cisco_snmp_server
,cisco_snmp_user
cisco_vpc_domain
cisco_vtp
domain_name
,name_server
,network_dns
,network_vlan
,search_domain
ntp_config
,ntp_server
port_channel
radius
,radius_global
,radius_server
,radius_server_group
network_snmp
,snmp_community
,snmp_notification
,snmp_notification_receiver
,snmp_user
tacacs
,tacacs_global
,tacacs_server
,tacacs_server_group
- Extended
cisco_bgp
with the following attributes:nsr
reconnect_interval
- Extended
cisco_interface
with the following attributes:ipv4_forwarding
,switchport_mode fabricpath
stp_bpdufilter
,stp_bpduguard
,stp_cost
,stp_guard
,stp_link_type
,stp_mst_cost
stp_mst_port_priority
,stp_port_priority
,stp_port_type
,stp_vlan_cost
,stp_vlan_port_priority
switchport_mode_private_vlan_host
,switchport_mode_private_vlan_host_association
switchport_mode_private_vlan_host_promisc
,switchport_mode_private_vlan_trunk_promiscuous
switchport_mode_private_vlan_trunk_secondary
,switchport_private_vlan_association_trunk
switchport_private_vlan_mapping_trunk
,switchport_private_vlan_trunk_allowed_vlan
switchport_private_vlan_trunk_native_vlan
,private_vlan_mapping
modify switchport_trunk_allowed_vlan to use range_summarize() which takes care of idempotency issues with vlan ranges
- Extended
cisco_portchannel_global
provider to supportNexus N3k
- Extended
cisco_vlan
with the following attributes:mode
private_vlan_type
private_vlan_association
- Extended
cisco_vpc_domain
with the following attributes:fabricpath_emulated_switch_id
fabricpath_multicast_load_balance
port_channel_limit
- Extended
cisco_vrf_af
with the following attributes:route_policy_export
route_policy_import
route_target_export_stitching
route_target_import_stitching
- Extended
cisco_vxlan_vtep
with the following attributes:source_interface_hold_down_time
Removed
- Removed 'cisco_nxapi' fact as this gem is no longer a dependency.
Changed
- Renamed all providers from
:nxapi
to:cisco
as they may include support for multiple Cisco platforms, not all of which use NXAPI.
1.3.0
This version was never released.
1.2.3 - 2016-02-24
Added
- Download link for Nexus 5000 and Nexus 6000 Open Agent Container (OAC).
- OAC programmability guide links.
- Complete cisco_ace documentation.
1.2.2 - 2016-02-14
Fixed
- Fixed Cisco NetDev port_channel provider to use the correct cisco_node_utils object.
- Fixed beaker test setup and cleanup issues.
- Fixed incomplete documentation references for the open agent container (OAC)
1.2.1
This version was never released.
1.2.0 - 2016-02-12
New feature support
Cisco Resources
cisco_aaa_authentication_login
type and provider.cisco_aaa_authorization_login_cfg_svc
type and provider.cisco_aaa_authorization_login_exec_svc
type and provider.cisco_aaa_group_tacacs
type and provider.cisco_ace
type and providercisco_acl
type and providercisco_evpn_vni
type and provider.cisco_interface_channel_group
type and providercisco_interface_portchannel
type and providercisco_interface_service_vni
type and providercisco_overlay_global
type and provider.cisco_pim
type and providercisco_pim_rp_address
type and providercisco_pim_grouplist
type and providercisco_portchannel_global
type and providercisco_vdc
type and provider.cisco_vpc_domain
type and provider.cisco_vni
type and provider.cisco_vrf_af
type and provider.cisco_vxlan_vtep
type and provider.
NetDev Resources
network_trunk
provider.port_channel
provider.search_domain
provider.snmp_notification
provider.
Added
- Extended
cisco_bgp
with the following attributes:disable_policy_batching
,disable_policy_batching_ipv4
,disable_policy_batching_ipv6
fast_external_fallover
flush_routes
isolate
neighbor_down_fib_accelerate
route_distinguisher
event_history_cli
event_history_detail
event_history_events
event_history_periodic
- Extended
cisco_bgp_af
with the following attributes:default_metric
distance_ebgp
,distance_ibgp
,distance_local
inject_map
table_map
,table_map_filter
suppress_inactive
- Extended
cisco_interface
with the following attributes:fabric_forwarding_anycast_gateway
ipv4_address_secondary
,ipv4_netmask_length_secondary
ipv4_arp_timeout
ipv4_pim_sparse_mode
vlan_mapping
,vlan_mapping_enable
ipv4_acl_in
,ipv4_acl_out
,ipv6_acl_in
,ipv6_acl_out
vpc_id
,vpc_peer_link
- Extended
cisco_vrf
with the following attributes:route_distinguisher
vni
Removed
1.1.0 - 2015-11-02
New feature support
Cisco Resources.
- cisco_bgp type and provider.
- cisco_bgp_af type and provider.
- cisco_bgp_neighbor type and provider.
- cisco_bgp_neighbor_af type and provider.
- cisco_vrf type and provider.
NetDev Resources.
- domain_name provider.
- name_server provider.
- network_dns provider.
- network_snmp provider.
- ntp_config provider.
- ntp_server provider.
- radius provider.
- radius global provider.
- snmp_notification_receiver provider.
- snmp_user provider.
- syslog_server provider.
- syslog_setting provider.
Added
- New documentation for developing beaker testcases: README-develop-beaker-scripts.md
- Extended cisco_interface with the following attributes:
- encapsulation dot1q
- mtu
- speed
- duplex
- switchport trunk allowed VLANs
- switchport trunk native VLAN
- Added support for network_interface from puppets netdev_stdlib
- Rubocop enabled and passes (@robert-w-gries)
- Gemfile now requires puppet version 4.0 or higher
- Gemfile.lock added to gitignore
Removed
- Obsolete documents: README-beaker-testcase-execution.md, README-beaker-testcase-writing.md
- Travis no longer tests ruby version 1.9.3
1.0.2 - 2015-09-28
Fixed
- Updated documentation links to reflect that the repo and agent RPM packages have had their platform renamed from 'nxos' to 'cisco-wrlinux'.
1.0.1 - 2015-09-18
Fixed
- Fixed broken documentation links
1.0.0 - 2015-08-28
Added
- New facts
cisco_node_utils
andcisco_nxapi
report the installed version of these gems. - Providers requiring the
cisco_node_utils
feature will generate a warning message if an obsolete gem version is installed. - Added README-maintainers.md
Fixed
- Metadata URLs now point to new public GitHub repository.
- Moved misc READMEs into /docs
- NXAPI providers are marked as defaultfor 'nexus' operating system.
- Fixed beaker test for package and interface ospf
- Fixed sample install.pp
0.9.1 - 2015-08-13
Added
- Added CONTRIBUTING.md
- Added README-creating-types-providers.md and associated templates.
- Added SUPPORT.md
- Added Beaker test cases for cisco_command_config, file, package, and service providers.
- Added VRF attribute to cisco_interface provider.
Fixed
- 'puppet resource cisco_vtp' now works properly.
- cisco_interface, cisco_ospf_vrf, and cisco_vlan now properly handle destroy/recreate scenarios.
- Added missing methods in cisco_ospf_vrf provider.
- Style cleanup of many Beaker test scripts.
- Fixed title pattern error in 'puppet resource cisco_snmp_group'.
- Avoid inadvertently suppressing relevant exceptions.
- Added dotted-decimal munging for area in cisco_interface_ospf
- Modified template placeholder names to meet lint reqs
0.9.0 - 2015-07-24
Added
- Initial release of puppetlabs-ciscopuppet module, supporting Cisco NX-OS software release 7.0(3)I2(1) on Cisco Nexus switch platforms: N95xx, N93xx, N30xx and N31xx.
- Please note: 0.9.0 is an EFT pre-release for a limited audience with access to NX-OS 7.0(3)I2(1). Additional code changes may occur in 0.9.x prior to the final 1.0.0 release.
Dependencies
- puppetlabs/netdev_stdlib (>=0.18.0 <2.0.0)
- puppetlabs/resource_api (>= 1.0.0 < 2.0.0)
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright (c) 2014-2015 Cisco and/or its affiliates. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.