Skip to content

Conversation

@ChristopherJHart
Copy link
Contributor

Summary

This PR adds more comprehensive Embedded Event Manager (EEM) applet support to the iosxe_eem resource, enabling automation of network events through RESTCONF/YANG.

Motivation

EEM is a critical IOS-XE feature that allows network operators to automate responses to system events. Prior to this PR, the iosxe_eem resource had limited support for EEM applets - only cli_command actions were functional. This enhancement enables full applet configuration including:

  • Multiple event trigger types (syslog, timer_watchdog, timer_cron, CLI)
  • Comprehensive action types for scripting logic
  • Control flow statements for complex automation workflows

New Attributes Added

Event Types (4 categories)

Syslog Events:

  • event_syslog_pattern - Syslog message pattern to match
  • event_syslog_occurs - Number of occurrences before triggering
  • event_syslog_maxrun - Maximum runtime in seconds
  • event_syslog_ratelimit - Rate limit between events
  • event_syslog_period - Period for occurrence counting

Timer Watchdog Events:

  • event_timer_watchdog_time - Timer interval in seconds
  • event_timer_watchdog_name - Timer name
  • event_timer_watchdog_maxrun - Maximum runtime
  • event_timer_watchdog_ratelimit - Rate limit

Timer Cron Events:

  • event_timer_cron_entry - Cron expression
  • event_timer_cron_name - Timer name
  • event_timer_cron_maxrun - Maximum runtime
  • event_timer_cron_ratelimit - Rate limit

CLI Events:

  • event_cli_pattern - CLI command pattern
  • event_cli_sync - Synchronous execution
  • event_cli_skip - Skip CLI command

Action Types (40+ attributes)

  • Control flow: if_*, elseif_*, else, while_*, end, foreach_*, break, continue, exit, reload
  • Variables: set_varname, set_value, increment_*, decrement_*, append_*, divide_*
  • Pattern matching: regexp_string_pattern, regexp_string_input, regexp_string_match, regexp_string_match1/2/3
  • I/O: cli_command, syslog_*, snmp_trap_*, puts, gets, wait
  • Advanced: counter_*, context_*, string_trim, info_type_snmp_*, handle_error_type

Regarding exclude_test: true on Action Attributes

Most action attributes in gen/definitions/eem.yaml have exclude_test: true set. This is intentional and necessary because:

  1. YANG Choice Constraints: EEM actions use a YANG choice block (list-option) where action types are mutually exclusive. A single action cannot have both cli_command AND regexp attributes - they represent different action types. The test generator can only include one representative action type.
  2. Event Type Exclusivity: Similarly, event_timer_watchdog_*, event_timer_cron_*, and event_syslog_* are mutually exclusive event triggers. An applet can only have one event type.
  3. Generated Test Limitations: The auto-generated acceptance test validates one complete path (cli_command action with event_syslog trigger). Testing all 40+ action attributes would require dozens of separate test configurations with different action type combinations.

Manual Testing Performed

All action types have been manually validated against a Catalyst 8000v running IOS-XE 17.15.x using the terraform-iosxe-nac-iosxe NAC module:

Action Type Attributes Tested Create Update Delete
cli_command command value PASS PASS PASS
set variable_name, variable_value PASS PASS PASS
regexp pattern, input, match_variable, submatch1 PASS PASS PASS
if_statement operand1, operator, operand2 PASS PASS PASS
foreach loop_variable, list_variable, delimiter PASS PASS PASS
while operand1, operator, operand2 PASS PASS PASS
else presence PASS PASS PASS
end presence PASS PASS PASS
wait duration PASS PASS PASS
exit presence PASS PASS PASS
continue presence PASS PASS PASS
timer_watchdog time, maxrun PASS PASS PASS

Testing

Acceptance tests pass against IOS-XE 17.15.x:

$ make testall NAME=TestAccIosxeEEM
go run gen/load_models.go
go run ./gen/generator.go "TestAccIosxeEEM"
go run golang.org/x/tools/cmd/goimports -w internal/provider/
terraform fmt -recursive ./examples/
go run github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs
rendering website for provider "terraform-provider-iosxe" (as "terraform-provider-iosxe")
copying any existing content to tmp dir
exporting schema from Terraform
compiling provider "iosxe"
using Terraform CLI binary from PATH if available, otherwise downloading latest Terraform CLI binary
running terraform init
getting provider schema
generating missing templates
generating missing resource content
generating new template for "iosxe_aaa"
generating new template for "iosxe_aaa_accounting"
generating new template for "iosxe_aaa_authentication"
generating new template for "iosxe_aaa_authorization"
generating new template for "iosxe_access_list_extended"
generating new template for "iosxe_access_list_role_based"
generating new template for "iosxe_access_list_standard"
generating new template for "iosxe_arp"
generating new template for "iosxe_as_path_access_list"
generating new template for "iosxe_banner"
generating new template for "iosxe_bfd"
generating new template for "iosxe_bfd_template_multi_hop"
generating new template for "iosxe_bfd_template_single_hop"
generating new template for "iosxe_bgp"
generating new template for "iosxe_bgp_address_family_ipv4"
generating new template for "iosxe_bgp_address_family_ipv4_vrf"
generating new template for "iosxe_bgp_address_family_ipv6"
generating new template for "iosxe_bgp_address_family_ipv6_vrf"
generating new template for "iosxe_bgp_address_family_l2vpn"
generating new template for "iosxe_bgp_ipv4_unicast_neighbor"
generating new template for "iosxe_bgp_ipv4_unicast_vrf_neighbor"
generating new template for "iosxe_bgp_ipv6_unicast_neighbor"
generating new template for "iosxe_bgp_l2vpn_evpn_neighbor"
generating new template for "iosxe_bgp_neighbor"
generating new template for "iosxe_bgp_peer_policy_template"
generating new template for "iosxe_bgp_peer_session_template"
generating new template for "iosxe_cdp"
generating new template for "iosxe_class_map"
generating new template for "iosxe_cli"
generating new template for "iosxe_clock"
generating new template for "iosxe_commit"
generating new template for "iosxe_community_list_expanded"
generating new template for "iosxe_community_list_standard"
generating new template for "iosxe_crypto_ikev2"
generating new template for "iosxe_crypto_ikev2_keyring"
generating new template for "iosxe_crypto_ikev2_policy"
generating new template for "iosxe_crypto_ikev2_profile"
generating new template for "iosxe_crypto_ikev2_proposal"
generating new template for "iosxe_crypto_ipsec_profile"
generating new template for "iosxe_crypto_ipsec_transform_set"
generating new template for "iosxe_crypto_pki"
generating new template for "iosxe_cts"
generating new template for "iosxe_device_sensor"
generating new template for "iosxe_dhcp"
generating new template for "iosxe_dot1x"
generating new template for "iosxe_eem"
generating new template for "iosxe_errdisable"
generating new template for "iosxe_evpn"
generating new template for "iosxe_evpn_ethernet_segment"
generating new template for "iosxe_evpn_instance"
generating new template for "iosxe_flow_exporter"
generating new template for "iosxe_flow_monitor"
generating new template for "iosxe_flow_record"
generating new template for "iosxe_interface_ethernet"
generating new template for "iosxe_interface_loopback"
generating new template for "iosxe_interface_mpls"
generating new template for "iosxe_interface_nve"
generating new template for "iosxe_interface_ospf"
generating new template for "iosxe_interface_ospfv3"
generating new template for "iosxe_interface_pim"
generating new template for "iosxe_interface_port_channel"
generating new template for "iosxe_interface_port_channel_subinterface"
generating new template for "iosxe_interface_switchport"
generating new template for "iosxe_interface_tunnel"
generating new template for "iosxe_interface_vlan"
generating new template for "iosxe_license"
generating new template for "iosxe_line"
generating new template for "iosxe_lldp"
generating new template for "iosxe_logging"
generating new template for "iosxe_mdt_subscription"
generating new template for "iosxe_msdp"
generating new template for "iosxe_nat"
generating new template for "iosxe_ntp"
generating new template for "iosxe_ospf"
generating new template for "iosxe_ospf_vrf"
generating new template for "iosxe_pim"
generating new template for "iosxe_platform"
generating new template for "iosxe_policy_map"
generating new template for "iosxe_policy_map_event"
generating new template for "iosxe_prefix_list"
generating new template for "iosxe_radius"
generating new template for "iosxe_radius_server"
generating new template for "iosxe_route_map"
generating new template for "iosxe_save_config"
generating new template for "iosxe_service"
generating new template for "iosxe_service_template"
generating new template for "iosxe_sla"
generating new template for "iosxe_snmp_server"
generating new template for "iosxe_spanning_tree"
generating new template for "iosxe_static_route"
generating new template for "iosxe_static_routes_vrf"
generating new template for "iosxe_system"
generating new template for "iosxe_tacacs_server"
generating new template for "iosxe_template"
generating new template for "iosxe_udld"
generating new template for "iosxe_username"
generating new template for "iosxe_vlan"
generating new template for "iosxe_vlan_access_map"
generating new template for "iosxe_vlan_configuration"
generating new template for "iosxe_vlan_filter"
generating new template for "iosxe_vlan_group"
generating new template for "iosxe_vrf"
generating new template for "iosxe_vtp"
generating new template for "iosxe_yang"
generating missing data source content
generating new template for data-source "iosxe_aaa"
generating new template for data-source "iosxe_aaa_accounting"
generating new template for data-source "iosxe_aaa_authentication"
generating new template for data-source "iosxe_aaa_authorization"
generating new template for data-source "iosxe_access_list_extended"
generating new template for data-source "iosxe_access_list_role_based"
generating new template for data-source "iosxe_access_list_standard"
generating new template for data-source "iosxe_arp"
generating new template for data-source "iosxe_as_path_access_list"
generating new template for data-source "iosxe_banner"
generating new template for data-source "iosxe_bfd"
generating new template for data-source "iosxe_bfd_template_multi_hop"
generating new template for data-source "iosxe_bfd_template_single_hop"
generating new template for data-source "iosxe_bgp"
generating new template for data-source "iosxe_bgp_address_family_ipv4"
generating new template for data-source "iosxe_bgp_address_family_ipv4_vrf"
generating new template for data-source "iosxe_bgp_address_family_ipv6"
generating new template for data-source "iosxe_bgp_address_family_ipv6_vrf"
generating new template for data-source "iosxe_bgp_address_family_l2vpn"
generating new template for data-source "iosxe_bgp_ipv4_unicast_neighbor"
generating new template for data-source "iosxe_bgp_ipv4_unicast_vrf_neighbor"
generating new template for data-source "iosxe_bgp_ipv6_unicast_neighbor"
generating new template for data-source "iosxe_bgp_l2vpn_evpn_neighbor"
generating new template for data-source "iosxe_bgp_neighbor"
generating new template for data-source "iosxe_bgp_peer_policy_template"
generating new template for data-source "iosxe_bgp_peer_session_template"
generating new template for data-source "iosxe_cdp"
generating new template for data-source "iosxe_class_map"
generating new template for data-source "iosxe_clock"
generating new template for data-source "iosxe_community_list_expanded"
generating new template for data-source "iosxe_community_list_standard"
generating new template for data-source "iosxe_crypto_ikev2"
generating new template for data-source "iosxe_crypto_ikev2_keyring"
generating new template for data-source "iosxe_crypto_ikev2_policy"
generating new template for data-source "iosxe_crypto_ikev2_profile"
generating new template for data-source "iosxe_crypto_ikev2_proposal"
generating new template for data-source "iosxe_crypto_ipsec_profile"
generating new template for data-source "iosxe_crypto_ipsec_transform_set"
generating new template for data-source "iosxe_crypto_pki"
generating new template for data-source "iosxe_cts"
generating new template for data-source "iosxe_device_sensor"
generating new template for data-source "iosxe_dhcp"
generating new template for data-source "iosxe_dot1x"
generating new template for data-source "iosxe_eem"
generating new template for data-source "iosxe_errdisable"
generating new template for data-source "iosxe_evpn"
generating new template for data-source "iosxe_evpn_ethernet_segment"
generating new template for data-source "iosxe_evpn_instance"
generating new template for data-source "iosxe_flow_exporter"
generating new template for data-source "iosxe_flow_monitor"
generating new template for data-source "iosxe_flow_record"
generating new template for data-source "iosxe_interface_ethernet"
generating new template for data-source "iosxe_interface_loopback"
generating new template for data-source "iosxe_interface_mpls"
generating new template for data-source "iosxe_interface_nve"
generating new template for data-source "iosxe_interface_ospf"
generating new template for data-source "iosxe_interface_ospfv3"
generating new template for data-source "iosxe_interface_pim"
generating new template for data-source "iosxe_interface_port_channel"
generating new template for data-source "iosxe_interface_port_channel_subinterface"
generating new template for data-source "iosxe_interface_switchport"
generating new template for data-source "iosxe_interface_tunnel"
generating new template for data-source "iosxe_interface_vlan"
generating new template for data-source "iosxe_license"
generating new template for data-source "iosxe_line"
generating new template for data-source "iosxe_lldp"
generating new template for data-source "iosxe_logging"
generating new template for data-source "iosxe_mdt_subscription"
generating new template for data-source "iosxe_msdp"
generating new template for data-source "iosxe_nat"
generating new template for data-source "iosxe_ntp"
generating new template for data-source "iosxe_ospf"
generating new template for data-source "iosxe_ospf_vrf"
generating new template for data-source "iosxe_pim"
generating new template for data-source "iosxe_platform"
generating new template for data-source "iosxe_policy_map"
generating new template for data-source "iosxe_policy_map_event"
generating new template for data-source "iosxe_prefix_list"
generating new template for data-source "iosxe_radius"
generating new template for data-source "iosxe_radius_server"
generating new template for data-source "iosxe_route_map"
generating new template for data-source "iosxe_service"
generating new template for data-source "iosxe_service_template"
generating new template for data-source "iosxe_sla"
generating new template for data-source "iosxe_snmp_server"
generating new template for data-source "iosxe_spanning_tree"
generating new template for data-source "iosxe_static_route"
generating new template for data-source "iosxe_static_routes_vrf"
generating new template for data-source "iosxe_system"
generating new template for data-source "iosxe_tacacs_server"
generating new template for data-source "iosxe_template"
generating new template for data-source "iosxe_udld"
generating new template for data-source "iosxe_username"
generating new template for data-source "iosxe_vlan"
generating new template for data-source "iosxe_vlan_access_map"
generating new template for data-source "iosxe_vlan_configuration"
generating new template for data-source "iosxe_vlan_filter"
generating new template for data-source "iosxe_vlan_group"
generating new template for data-source "iosxe_vrf"
generating new template for data-source "iosxe_vtp"
generating new template for data-source "iosxe_yang"
generating missing function content
generating missing ephemeral resource content
generating missing action content
generating missing list resource content
generating missing provider content
provider "terraform-provider-iosxe" template exists, skipping
rendering static website
cleaning rendered website dir
removing directory: "data-sources"
removing directory: "guides"
removing file: "index.md"
removing directory: "resources"
rendering templated website to static markdown
rendering "data-sources/aaa.md.tmpl"
rendering "data-sources/aaa_accounting.md.tmpl"
rendering "data-sources/aaa_authentication.md.tmpl"
rendering "data-sources/aaa_authorization.md.tmpl"
rendering "data-sources/access_list_extended.md.tmpl"
rendering "data-sources/access_list_role_based.md.tmpl"
rendering "data-sources/access_list_standard.md.tmpl"
rendering "data-sources/arp.md.tmpl"
rendering "data-sources/as_path_access_list.md.tmpl"
rendering "data-sources/banner.md.tmpl"
rendering "data-sources/bfd.md.tmpl"
rendering "data-sources/bfd_template_multi_hop.md.tmpl"
rendering "data-sources/bfd_template_single_hop.md.tmpl"
rendering "data-sources/bgp.md.tmpl"
rendering "data-sources/bgp_address_family_ipv4.md.tmpl"
rendering "data-sources/bgp_address_family_ipv4_vrf.md.tmpl"
rendering "data-sources/bgp_address_family_ipv6.md.tmpl"
rendering "data-sources/bgp_address_family_ipv6_vrf.md.tmpl"
rendering "data-sources/bgp_address_family_l2vpn.md.tmpl"
rendering "data-sources/bgp_ipv4_unicast_neighbor.md.tmpl"
rendering "data-sources/bgp_ipv4_unicast_vrf_neighbor.md.tmpl"
rendering "data-sources/bgp_ipv6_unicast_neighbor.md.tmpl"
rendering "data-sources/bgp_l2vpn_evpn_neighbor.md.tmpl"
rendering "data-sources/bgp_neighbor.md.tmpl"
rendering "data-sources/bgp_peer_policy_template.md.tmpl"
rendering "data-sources/bgp_peer_session_template.md.tmpl"
rendering "data-sources/cdp.md.tmpl"
rendering "data-sources/class_map.md.tmpl"
rendering "data-sources/clock.md.tmpl"
rendering "data-sources/community_list_expanded.md.tmpl"
rendering "data-sources/community_list_standard.md.tmpl"
rendering "data-sources/crypto_ikev2.md.tmpl"
rendering "data-sources/crypto_ikev2_keyring.md.tmpl"
rendering "data-sources/crypto_ikev2_policy.md.tmpl"
rendering "data-sources/crypto_ikev2_profile.md.tmpl"
rendering "data-sources/crypto_ikev2_proposal.md.tmpl"
rendering "data-sources/crypto_ipsec_profile.md.tmpl"
rendering "data-sources/crypto_ipsec_transform_set.md.tmpl"
rendering "data-sources/crypto_pki.md.tmpl"
rendering "data-sources/cts.md.tmpl"
rendering "data-sources/device_sensor.md.tmpl"
rendering "data-sources/dhcp.md.tmpl"
rendering "data-sources/dot1x.md.tmpl"
rendering "data-sources/eem.md.tmpl"
rendering "data-sources/errdisable.md.tmpl"
rendering "data-sources/evpn.md.tmpl"
rendering "data-sources/evpn_ethernet_segment.md.tmpl"
rendering "data-sources/evpn_instance.md.tmpl"
rendering "data-sources/flow_exporter.md.tmpl"
rendering "data-sources/flow_monitor.md.tmpl"
rendering "data-sources/flow_record.md.tmpl"
rendering "data-sources/interface_ethernet.md.tmpl"
rendering "data-sources/interface_loopback.md.tmpl"
rendering "data-sources/interface_mpls.md.tmpl"
rendering "data-sources/interface_nve.md.tmpl"
rendering "data-sources/interface_ospf.md.tmpl"
rendering "data-sources/interface_ospfv3.md.tmpl"
rendering "data-sources/interface_pim.md.tmpl"
rendering "data-sources/interface_port_channel.md.tmpl"
rendering "data-sources/interface_port_channel_subinterface.md.tmpl"
rendering "data-sources/interface_switchport.md.tmpl"
rendering "data-sources/interface_tunnel.md.tmpl"
rendering "data-sources/interface_vlan.md.tmpl"
rendering "data-sources/license.md.tmpl"
rendering "data-sources/line.md.tmpl"
rendering "data-sources/lldp.md.tmpl"
rendering "data-sources/logging.md.tmpl"
rendering "data-sources/mdt_subscription.md.tmpl"
rendering "data-sources/msdp.md.tmpl"
rendering "data-sources/nat.md.tmpl"
rendering "data-sources/ntp.md.tmpl"
rendering "data-sources/ospf.md.tmpl"
rendering "data-sources/ospf_vrf.md.tmpl"
rendering "data-sources/pim.md.tmpl"
rendering "data-sources/platform.md.tmpl"
rendering "data-sources/policy_map.md.tmpl"
rendering "data-sources/policy_map_event.md.tmpl"
rendering "data-sources/prefix_list.md.tmpl"
rendering "data-sources/radius.md.tmpl"
rendering "data-sources/radius_server.md.tmpl"
rendering "data-sources/route_map.md.tmpl"
rendering "data-sources/service.md.tmpl"
rendering "data-sources/service_template.md.tmpl"
rendering "data-sources/sla.md.tmpl"
rendering "data-sources/snmp_server.md.tmpl"
rendering "data-sources/spanning_tree.md.tmpl"
rendering "data-sources/static_route.md.tmpl"
rendering "data-sources/static_routes_vrf.md.tmpl"
rendering "data-sources/system.md.tmpl"
rendering "data-sources/tacacs_server.md.tmpl"
rendering "data-sources/template.md.tmpl"
rendering "data-sources/udld.md.tmpl"
rendering "data-sources/username.md.tmpl"
rendering "data-sources/vlan.md.tmpl"
rendering "data-sources/vlan_access_map.md.tmpl"
rendering "data-sources/vlan_configuration.md.tmpl"
rendering "data-sources/vlan_filter.md.tmpl"
rendering "data-sources/vlan_group.md.tmpl"
rendering "data-sources/vrf.md.tmpl"
rendering "data-sources/vtp.md.tmpl"
rendering "data-sources/yang.md.tmpl"
rendering "guides/changelog.md.tmpl"
rendering "guides/destroying_resources.md.tmpl"
rendering "guides/importing_resources.md.tmpl"
rendering "guides/manage_multiple_devices.md.tmpl"
rendering "guides/netconf.md.tmpl"
rendering "guides/selective_deploy.md.tmpl"
rendering "index.md.tmpl"
rendering "resources/aaa.md.tmpl"
rendering "resources/aaa_accounting.md.tmpl"
rendering "resources/aaa_authentication.md.tmpl"
rendering "resources/aaa_authorization.md.tmpl"
rendering "resources/access_list_extended.md.tmpl"
rendering "resources/access_list_role_based.md.tmpl"
rendering "resources/access_list_standard.md.tmpl"
rendering "resources/arp.md.tmpl"
rendering "resources/as_path_access_list.md.tmpl"
rendering "resources/banner.md.tmpl"
rendering "resources/bfd.md.tmpl"
rendering "resources/bfd_template_multi_hop.md.tmpl"
rendering "resources/bfd_template_single_hop.md.tmpl"
rendering "resources/bgp.md.tmpl"
rendering "resources/bgp_address_family_ipv4.md.tmpl"
rendering "resources/bgp_address_family_ipv4_vrf.md.tmpl"
rendering "resources/bgp_address_family_ipv6.md.tmpl"
rendering "resources/bgp_address_family_ipv6_vrf.md.tmpl"
rendering "resources/bgp_address_family_l2vpn.md.tmpl"
rendering "resources/bgp_ipv4_unicast_neighbor.md.tmpl"
rendering "resources/bgp_ipv4_unicast_vrf_neighbor.md.tmpl"
rendering "resources/bgp_ipv6_unicast_neighbor.md.tmpl"
rendering "resources/bgp_l2vpn_evpn_neighbor.md.tmpl"
rendering "resources/bgp_neighbor.md.tmpl"
rendering "resources/bgp_peer_policy_template.md.tmpl"
rendering "resources/bgp_peer_session_template.md.tmpl"
rendering "resources/cdp.md.tmpl"
rendering "resources/class_map.md.tmpl"
rendering "resources/cli.md.tmpl"
rendering "resources/clock.md.tmpl"
rendering "resources/commit.md.tmpl"
rendering "resources/community_list_expanded.md.tmpl"
rendering "resources/community_list_standard.md.tmpl"
rendering "resources/crypto_ikev2.md.tmpl"
rendering "resources/crypto_ikev2_keyring.md.tmpl"
rendering "resources/crypto_ikev2_policy.md.tmpl"
rendering "resources/crypto_ikev2_profile.md.tmpl"
rendering "resources/crypto_ikev2_proposal.md.tmpl"
rendering "resources/crypto_ipsec_profile.md.tmpl"
rendering "resources/crypto_ipsec_transform_set.md.tmpl"
rendering "resources/crypto_pki.md.tmpl"
rendering "resources/cts.md.tmpl"
rendering "resources/device_sensor.md.tmpl"
rendering "resources/dhcp.md.tmpl"
rendering "resources/dot1x.md.tmpl"
rendering "resources/eem.md.tmpl"
rendering "resources/errdisable.md.tmpl"
rendering "resources/evpn.md.tmpl"
rendering "resources/evpn_ethernet_segment.md.tmpl"
rendering "resources/evpn_instance.md.tmpl"
rendering "resources/flow_exporter.md.tmpl"
rendering "resources/flow_monitor.md.tmpl"
rendering "resources/flow_record.md.tmpl"
rendering "resources/interface_ethernet.md.tmpl"
rendering "resources/interface_loopback.md.tmpl"
rendering "resources/interface_mpls.md.tmpl"
rendering "resources/interface_nve.md.tmpl"
rendering "resources/interface_ospf.md.tmpl"
rendering "resources/interface_ospfv3.md.tmpl"
rendering "resources/interface_pim.md.tmpl"
rendering "resources/interface_port_channel.md.tmpl"
rendering "resources/interface_port_channel_subinterface.md.tmpl"
rendering "resources/interface_switchport.md.tmpl"
rendering "resources/interface_tunnel.md.tmpl"
rendering "resources/interface_vlan.md.tmpl"
rendering "resources/license.md.tmpl"
rendering "resources/line.md.tmpl"
rendering "resources/lldp.md.tmpl"
rendering "resources/logging.md.tmpl"
rendering "resources/mdt_subscription.md.tmpl"
rendering "resources/msdp.md.tmpl"
rendering "resources/nat.md.tmpl"
rendering "resources/ntp.md.tmpl"
rendering "resources/ospf.md.tmpl"
rendering "resources/ospf_vrf.md.tmpl"
rendering "resources/pim.md.tmpl"
rendering "resources/platform.md.tmpl"
rendering "resources/policy_map.md.tmpl"
rendering "resources/policy_map_event.md.tmpl"
rendering "resources/prefix_list.md.tmpl"
rendering "resources/radius.md.tmpl"
rendering "resources/radius_server.md.tmpl"
rendering "resources/route_map.md.tmpl"
rendering "resources/save_config.md.tmpl"
rendering "resources/service.md.tmpl"
rendering "resources/service_template.md.tmpl"
rendering "resources/sla.md.tmpl"
rendering "resources/snmp_server.md.tmpl"
rendering "resources/spanning_tree.md.tmpl"
rendering "resources/static_route.md.tmpl"
rendering "resources/static_routes_vrf.md.tmpl"
rendering "resources/system.md.tmpl"
rendering "resources/tacacs_server.md.tmpl"
rendering "resources/template.md.tmpl"
rendering "resources/udld.md.tmpl"
rendering "resources/username.md.tmpl"
rendering "resources/vlan.md.tmpl"
rendering "resources/vlan_access_map.md.tmpl"
rendering "resources/vlan_configuration.md.tmpl"
rendering "resources/vlan_filter.md.tmpl"
rendering "resources/vlan_group.md.tmpl"
rendering "resources/vrf.md.tmpl"
rendering "resources/vtp.md.tmpl"
rendering "resources/yang.md.tmpl"
go run gen/doc_category.go
=========================================
Testing against 17.15.x Router...
=========================================
Running tests matching: TestAccIosxeEEM
?   	github.com/CiscoDevNet/terraform-provider-iosxe	[no test files]
=== RUN   TestAccIosxeEEM
--- PASS: TestAccIosxeEEM (76.94s)
PASS
ok  	github.com/CiscoDevNet/terraform-provider-iosxe/internal/provider	77.701s
testing: warning: no tests to run
PASS
ok  	github.com/CiscoDevNet/terraform-provider-iosxe/internal/provider/helpers	0.249s [no tests to run]
=========================================
Testing against 17.15.x Switch...
=========================================
Running tests matching: TestAccIosxeEEM
?   	github.com/CiscoDevNet/terraform-provider-iosxe	[no test files]
=== RUN   TestAccIosxeEEM
--- PASS: TestAccIosxeEEM (54.62s)
PASS
ok  	github.com/CiscoDevNet/terraform-provider-iosxe/internal/provider	55.504s
testing: warning: no tests to run
PASS
ok  	github.com/CiscoDevNet/terraform-provider-iosxe/internal/provider/helpers	0.400s [no tests to run]
=========================================
Testing against 17.12.x Router...
=========================================
SKIPPED: IOSXE_1712_ROUTER_HOST is not configured
To enable this test, configure IOSXE_1712_ROUTER_HOST in your .env file
=========================================
Testing against 17.12.x Switch...
=========================================
SKIPPED: IOSXE_1712_SWITCH_HOST is not configured
To enable this test, configure IOSXE_1712_SWITCH_HOST in your .env file

All multi-device tests completed!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant