Skip to content

Commit 9973b34

Browse files
kuba-mazurkiewiczmhamrozmhamrozPson123aberkimb
authored
Dev 030 (#55)
* added fabric multicast support (#42) * added fabric multicast support * updated readme --------- Co-authored-by: mhamroz <mhamroz@cisco.com> * Added Fabric Extranet Policies feature (#43) Co-authored-by: mhamroz <mhamroz@cisco.com> * unified multicast attributes in cc_fabric to match schema (#44) Co-authored-by: aberkimb <aberkimb@cisco.com> * Fix transit issue and l2_handoff (#45) * fix issue with sda transit provision devices * fix issie wuth l2_handoff_vlan_id_map while using catalystcenter_anycast_gateways resource * update multicast resorce to tolerate hostname and fqdn (#46) * update multicast resorce to tolerate hostname and fqdn * fix extranet resource --------- Co-authored-by: aberkimb <aberkimb@cisco.com> * add system_settings with authentication_policy_server * Configure GitHub Actions to build local provider on dev branch and dev PRs - Add conditional Go setup and provider build for dev branch and PRs to dev - Use Terraform dev_overrides in .terraformrc to use locally built provider - Fixes validation errors for new resources not yet in Terraform registry (e.g., catalystcenter_integrate_ise) - PRs to main and main branch continue using published registry provider - Matches approach used in nac-catalystcenter Jenkinsfile * fixed issue_148: Add new Explicit dependency to catalystcenter_fabric_port_assignments.port_assignments (#52) Co-authored-by: ukeme <ueshiet@cisco.com> * fixed issue_151: Add new Explicit dependency to catalystcenter_fabric_l2_handoff.l2_handoff (#53) Co-authored-by: ukeme <ueshiet@cisco.com> * fixed issue_153: Add new Explicit dependency to catalystcenter_fabric_devices.fabric_devices (#51) Co-authored-by: ukeme <ueshiet@cisco.com> * Add bulk_site_provisioning variable for hierarchical device provisioning - Add new bulk_site_provisioning variable to control site-level bulk provisioning - When set, provisions all devices from specified site and child sites in single bulk operation - Split provisioning logic into two-step process to ensure Terraform type consistency - Add validation to ensure bulk_site_provisioning only used with use_bulk_api=true - Maintains backward compatibility: when null (default), behaves identically to previous version - Example: bulk_site_provisioning = "Global/Poland" provisions all Poland hierarchy devices together This reduces API calls when provisioning multiple devices across a site hierarchy from N calls (one per site) to 1 call (entire hierarchy). * Add device_name_to_ip lookup map to support name and FQDN-based device IP resolution for border device mapping * feat: add group_based_policy_enforcement_enabled and interface_description attributes (#54) - Added group_based_policy_enforcement_enabled to anycast_gateway and anycast_gateways resources (for EXTENDED_NODE pool_type) - Added interface_description to port_assignments resource for both single interface and interfaces_range configurations Co-authored-by: aberkimb <aberkimb@cisco.com> * update changelog * fix issue with WLC using catalystcenter_provision_device.provision_device * fix issue with changing ASSIGN state to PROVISION on access point * add try to d.type check for accesspoints * update changelog * fix issue with vlan_to_ssid_mapping while using use_bulk_api * Refactor template deployment mechanism to enable batch deployments * update provider version --------- Co-authored-by: mhamroz <37976191+mhamroz@users.noreply.github.com> Co-authored-by: mhamroz <mhamroz@cisco.com> Co-authored-by: Pson123 <115541332+Pson123@users.noreply.github.com> Co-authored-by: aberkimb <aberkimb@cisco.com> Co-authored-by: kaymay <eshietukeme@gmail.com> Co-authored-by: ukeme <ueshiet@cisco.com>
1 parent f217ea5 commit 9973b34

File tree

9 files changed

+397
-202
lines changed

9 files changed

+397
-202
lines changed

.github/workflows/test.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,55 @@ jobs:
2626
with:
2727
terraform_version: 1.10.4
2828

29+
- name: Go Setup
30+
if: github.ref == 'refs/heads/dev' || (github.event_name == 'pull_request' && github.base_ref == 'dev')
31+
uses: actions/setup-go@v5
32+
with:
33+
go-version: '1.23'
34+
35+
- name: Build Local Catalyst Center Provider
36+
if: github.ref == 'refs/heads/dev' || (github.event_name == 'pull_request' && github.base_ref == 'dev')
37+
run: |
38+
echo "Setting up local Catalyst Center provider for dev branch/PR..."
39+
40+
# Set up Go environment
41+
export GOPATH=$HOME/go
42+
export PATH=$GOPATH/bin:$PATH
43+
go version
44+
45+
# Clone and build provider from source
46+
git clone https://github.com/CiscoDevNet/terraform-provider-catalystcenter.git /tmp/terraform-provider-catalystcenter
47+
cd /tmp/terraform-provider-catalystcenter
48+
git checkout main
49+
go install
50+
51+
echo "Provider binary installed at: $GOPATH/bin"
52+
ls -la $GOPATH/bin/terraform-provider-catalystcenter || echo "Binary not found"
53+
54+
- name: Configure Terraform Dev Overrides
55+
if: github.ref == 'refs/heads/dev' || (github.event_name == 'pull_request' && github.base_ref == 'dev')
56+
run: |
57+
cat > $HOME/.terraformrc << 'EOF'
58+
provider_installation {
59+
# Use local provider binary built from source
60+
dev_overrides {
61+
"CiscoDevNet/catalystcenter" = "$HOME/go/bin"
62+
}
63+
64+
# For all other providers, install them directly from their origin provider
65+
# registries as normal. If you omit this, Terraform will _only_ use
66+
# the dev_overrides block, and so no other providers will be available.
67+
direct {}
68+
}
69+
EOF
70+
71+
# Expand $HOME in the config file
72+
sed -i "s|\$HOME|$HOME|g" $HOME/.terraformrc
73+
74+
echo "Terraform configuration:"
75+
cat $HOME/.terraformrc
76+
echo "Using local provider build for dev branch"
77+
2978
- name: Tflint Setup
3079
uses: terraform-linters/setup-tflint@v6
3180

CHANGELOG.md

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,42 @@
1-
## 0.2.1 (unreleased)
1+
## 0.3.0 (unreleased)
22

3-
- Fix issue when creating L2 VN while using multi state
4-
- Fix issue when creating an L3 VN without a fabric site assignment
5-
- Add support for provisioing Access Points
3+
**New Features:**
4+
- Add support for Fabric Multicast
5+
- Add support for Fabric Extranet Policies
6+
- Add `bulk_site_provisioning` variable for hierarchical device provisioning filtering
7+
- Add `device_name_to_ip` lookup map to support name and FQDN-based device IP resolution for border device mapping
8+
- Add support for system settings Authentication Policy Servers
9+
- Add support for provisioning Access Points
610
- Add Fabric Embedded_Wireless_Controller_Node support
7-
- Fix issue with sites hierarchy while using multi state
8-
- Fix issue with ip_v4_reservations while using multi state
9-
- Fix issue with assigning cli credentials to site while using multi state
11+
- Add `interface_description` support for `port_assignments`
12+
- Add `group_based_policy_enforcement_enabled` to `anycast_gateway(s)` for `EXTENDED_NODE` pool types
1013
- Add support for PNP access points
11-
- Fix idempotency issue during brownfield import of border devices
12-
- BREAKING CHANGE: Update several resources to align with provider version 0.4.0 schema changes
1314
- Add `reconfigure` attribute to `fabric_site` for applying pending fabric configuration events
1415
- Add MD5 checksum to templates variable to trigger redeployment when template variables change
1516
- Add flag `use_bulk_api` to enable bulk API operations for faster execution
16-
- Fix issue with assigning ip pool type `management` and `service` in `catalystcenter_ip_pool_reservation`.
17+
18+
**Improvements:**
19+
- Refactor template deployment mechanism to enable batch deployments (deploy multiple devices with same template in single API call)
20+
- Consolidate template deployment resources from per-device-template to per-template grouping for improved scalability
21+
- Add per-device `redeploy_template` control within `target_info` for granular deployment management
22+
23+
**Bug Fixes:**
24+
- Fix issue with Vlan to SSID mappings while using `use_bulk_api`
25+
- Fix issue when creating L2 VN while using multi state
26+
- Fix issue when creating an L3 VN without a fabric site assignment
27+
- Fix issue with sites hierarchy while using multi state
28+
- Fix issue with ip pools reservations while using multi state
29+
- Fix issue with assigning cli credentials to site while using multi state
30+
- Fix idempotency issue during brownfield import of border devices
31+
- Fix issue with assigning ip pool type `management` and `service` in ip pools reservations
32+
- Fix EWLC provisioning
33+
- Fix issue with provision edge device while using embedded wireless controller
34+
- Fix multicast resource to tolerate both hostname and FQDN device names
35+
- Fix floor width, length, height rounding to 3 decimal places
36+
- Fix transit configuration and L2 handoff dependencies
37+
38+
**Breaking Changes:**
39+
- BREAKING CHANGE: Update several resources to align with provider version 0.4.0 schema changes (removal of deprecated and internal API attributes)
1740

1841
## 0.2.0
1942

README.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,15 @@ module "catalystcenter" {
3838
| Name | Version |
3939
|------|---------|
4040
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.8.0 |
41-
| <a name="requirement_catalystcenter"></a> [catalystcenter](#requirement\_catalystcenter) | >= 0.4.3 |
41+
| <a name="requirement_catalystcenter"></a> [catalystcenter](#requirement\_catalystcenter) | >= 0.4.4 |
4242
| <a name="requirement_local"></a> [local](#requirement\_local) | >= 2.3.0 |
4343
| <a name="requirement_time"></a> [time](#requirement\_time) | >= 0.12.1 |
4444
| <a name="requirement_utils"></a> [utils](#requirement\_utils) | >= 1.0.0 |
4545
## Inputs
4646

4747
| Name | Description | Type | Default | Required |
4848
|------|-------------|------|---------|:--------:|
49+
| <a name="input_bulk_site_provisioning"></a> [bulk\_site\_provisioning](#input\_bulk\_site\_provisioning) | Site path for bulk device provisioning. When set with use\_bulk\_api=true, provisions all devices from this site and all child sites in a single bulk operation. Example: 'Global/Poland' will provision all devices under Poland hierarchy. | `string` | `null` | no |
4950
| <a name="input_manage_global_settings"></a> [manage\_global\_settings](#input\_manage\_global\_settings) | Flag indicating whether global settings should be managed, used in combination with managed\_sites. | `bool` | `false` | no |
5051
| <a name="input_manage_specific_sites_only"></a> [manage\_specific\_sites\_only](#input\_manage\_specific\_sites\_only) | If true, manage only the specified site listed in managed\_sites. If false, also manage all child sites under each managed site. | `bool` | `false` | no |
5152
| <a name="input_managed_sites"></a> [managed\_sites](#input\_managed\_sites) | List of sites to be managed. By default all sites will be managed. | `list(string)` | `[]` | no |
@@ -77,11 +78,14 @@ module "catalystcenter" {
7778
| [catalystcenter_area.area_3](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/area) | resource |
7879
| [catalystcenter_assign_credentials.assign_credentials](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/assign_credentials) | resource |
7980
| [catalystcenter_assign_credentials.global_assign_credentials](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/assign_credentials) | resource |
81+
| [catalystcenter_assign_device_to_site.access_points_to_site](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/assign_device_to_site) | resource |
8082
| [catalystcenter_assign_device_to_site.devices_to_site](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/assign_device_to_site) | resource |
8183
| [catalystcenter_assign_device_to_site.wireless_devices_to_site](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/assign_device_to_site) | resource |
8284
| [catalystcenter_assign_devices_to_tag.device_to_tag](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/assign_devices_to_tag) | resource |
8385
| [catalystcenter_assign_managed_ap_locations.managed_ap_locations](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/assign_managed_ap_locations) | resource |
8486
| [catalystcenter_assign_templates_to_tag.template_to_tag](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/assign_templates_to_tag) | resource |
87+
| [catalystcenter_authentication_policy_server.aaa](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/authentication_policy_server) | resource |
88+
| [catalystcenter_authentication_policy_server.ise](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/authentication_policy_server) | resource |
8589
| [catalystcenter_banner_settings.banner](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/banner_settings) | resource |
8690
| [catalystcenter_banner_settings.global_banner](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/banner_settings) | resource |
8791
| [catalystcenter_building.building](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/building) | resource |
@@ -92,15 +96,14 @@ module "catalystcenter" {
9296
| [catalystcenter_credentials_snmpv2_write.snmpv2_write_credentials](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/credentials_snmpv2_write) | resource |
9397
| [catalystcenter_credentials_snmpv3.snmpv3_credentials](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/credentials_snmpv3) | resource |
9498
| [catalystcenter_deploy_template.composite_template_deploy](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/deploy_template) | resource |
95-
| [catalystcenter_deploy_template.composite_template_redeploy](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/deploy_template) | resource |
9699
| [catalystcenter_deploy_template.regular_template_deploy](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/deploy_template) | resource |
97-
| [catalystcenter_deploy_template.regular_template_redeploy](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/deploy_template) | resource |
98100
| [catalystcenter_device_role.role](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/device_role) | resource |
99101
| [catalystcenter_dhcp_settings.dhcp_servers](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/dhcp_settings) | resource |
100102
| [catalystcenter_dhcp_settings.global_dhcp_servers](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/dhcp_settings) | resource |
101103
| [catalystcenter_discovery.discovery](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/discovery) | resource |
102104
| [catalystcenter_dns_settings.dns_settings](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/dns_settings) | resource |
103105
| [catalystcenter_dns_settings.global_dns_settings](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/dns_settings) | resource |
106+
| [catalystcenter_extranet_policy.extranet_policy](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/extranet_policy) | resource |
104107
| [catalystcenter_fabric_device.border_device](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/fabric_device) | resource |
105108
| [catalystcenter_fabric_device.edge_device](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/fabric_device) | resource |
106109
| [catalystcenter_fabric_device.wireless_controller](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/fabric_device) | resource |
@@ -113,11 +116,13 @@ module "catalystcenter" {
113116
| [catalystcenter_fabric_l3_handoff_sda_transit.sda_transit](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/fabric_l3_handoff_sda_transit) | resource |
114117
| [catalystcenter_fabric_l3_virtual_network.global_l3_vn](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/fabric_l3_virtual_network) | resource |
115118
| [catalystcenter_fabric_l3_virtual_network.l3_vn](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/fabric_l3_virtual_network) | resource |
119+
| [catalystcenter_fabric_multicast_virtual_networks.multicast](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/fabric_multicast_virtual_networks) | resource |
116120
| [catalystcenter_fabric_port_assignments.port_assignments](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/fabric_port_assignments) | resource |
117121
| [catalystcenter_fabric_site.fabric_site](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/fabric_site) | resource |
118122
| [catalystcenter_fabric_vlan_to_ssid.vlan_to_ssid](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/fabric_vlan_to_ssid) | resource |
119123
| [catalystcenter_fabric_zone.fabric_zone](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/fabric_zone) | resource |
120124
| [catalystcenter_floor.floor](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/floor) | resource |
125+
| [catalystcenter_integrate_ise.ise](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/integrate_ise) | resource |
121126
| [catalystcenter_ip_pool.ip_pool_v4](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/ip_pool) | resource |
122127
| [catalystcenter_ip_pool.ip_pool_v6](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/ip_pool) | resource |
123128
| [catalystcenter_ip_pool_reservation.pool_reservation](https://registry.terraform.io/providers/CiscoDevNet/catalystcenter/latest/docs/resources/ip_pool_reservation) | resource |

cc_device_provision.tf

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,20 +34,29 @@ locals {
3434
}
3535

3636
provisioned_devices = [
37-
for device in try(local.catalyst_center.inventory.devices, []) : device if strcontains(device.state, "PROVISION") && try(device.primary_managed_ap_locations, null) == null && contains(local.sites, try(device.site, "NONE"))
37+
for device in try(local.catalyst_center.inventory.devices, []) : device if strcontains(device.state, "PROVISION") && try(device.primary_managed_ap_locations, null) == null && !contains(try(device.fabric_roles, []), "WIRELESS_CONTROLLER_NODE") && !contains(try(device.fabric_roles, []), "EMBEDDED_WIRELESS_CONTROLLER_NODE") && contains(local.sites, try(device.site, "NONE"))
3838
]
3939

40+
all_provisioned_devices = [
41+
for device in try(local.catalyst_center.inventory.devices, []) : device if strcontains(device.state, "PROVISION") && try(device.primary_managed_ap_locations, null) == null
42+
]
43+
44+
provisioned_devices_filtered = var.bulk_site_provisioning != null ? [
45+
for d in local.provisioned_devices : d
46+
if d.site == var.bulk_site_provisioning || startswith(d.site, "${var.bulk_site_provisioning}/")
47+
] : local.provisioned_devices
48+
4049
provisioned_devices_by_site = {
41-
for site in distinct([for d in local.provisioned_devices : d.site]) :
42-
site => [for d in local.provisioned_devices : d if d.site == site]
50+
for site in distinct([for d in local.provisioned_devices_filtered : var.bulk_site_provisioning != null ? var.bulk_site_provisioning : d.site]) :
51+
site => [for d in local.provisioned_devices_filtered : d if var.bulk_site_provisioning != null ? true : d.site == site]
4352
}
4453

4554
provisioned_sda_transit_cp_devices = flatten([
4655
for transit in try(local.catalyst_center.fabric.transits, []) : [
4756
for device in try(transit.control_plane_devices, []) :
4857
device
4958
if anytrue([
50-
for prov in local.provisioned_devices :
59+
for prov in local.all_provisioned_devices :
5160
prov.name == device && prov.state == "PROVISION"
5261
])
5362
]
@@ -59,7 +68,16 @@ locals {
5968
name = d.name
6069
fqdn_name = d.fqdn_name
6170
device_ip = d.device_ip
62-
}... if d.state == "ASSIGN" && contains(local.sites, try(d.site, "NONE"))
71+
}... if d.state == "ASSIGN" && contains(local.sites, try(d.site, "NONE")) && try(d.type, null) != "AccessPoint"
72+
}
73+
74+
assigned_access_points_map = {
75+
for d in try(local.catalyst_center.inventory.devices, []) :
76+
d.site => {
77+
name = d.name
78+
fqdn_name = d.fqdn_name
79+
device_ip = d.device_ip
80+
}... if(d.state == "ASSIGN" || (strcontains(d.state, "PROVISION"))) && contains(local.sites, try(d.site, "NONE")) && try(d.type, null) == "AccessPoint"
6381
}
6482

6583
wireless_devices_map = {
@@ -82,6 +100,13 @@ resource "catalystcenter_assign_device_to_site" "devices_to_site" {
82100
site_id = local.site_id_list[each.key]
83101
}
84102

103+
resource "catalystcenter_assign_device_to_site" "access_points_to_site" {
104+
for_each = local.assigned_access_points_map
105+
106+
device_ids = [for device in each.value : try(local.device_name_to_id[device.name], local.device_name_to_id[device.fqdn_name], local.device_ip_to_id[device.device_ip])]
107+
site_id = local.site_id_list[each.key]
108+
}
109+
85110
resource "catalystcenter_device_role" "role" {
86111
for_each = { for device in try(local.catalyst_center.inventory.devices, []) : device.name => device if(strcontains(device.state, "PROVISION") || device.state == "ASSIGN") && contains(local.sites, try(device.site, "NONE")) && try(device.type, null) != "AccessPoint" }
87112

@@ -97,7 +122,7 @@ resource "catalystcenter_device_role" "role" {
97122
}
98123

99124
resource "catalystcenter_provision_device" "provision_device" {
100-
for_each = { for device in try(local.catalyst_center.inventory.devices, []) : device.name => device if strcontains(device.state, "PROVISION") && ((try(device.primary_managed_ap_locations, null) != null && try(length(device.fabric_roles), 0) != 0) || (try(device.primary_managed_ap_locations, null) == null)) && contains(local.sites, try(device.site, "NONE")) && var.use_bulk_api == false && try(device.type, null) != "AccessPoint" }
125+
for_each = { for device in try(local.catalyst_center.inventory.devices, []) : device.name => device if strcontains(device.state, "PROVISION") && try(device.primary_managed_ap_locations, null) == null && !contains(try(device.fabric_roles, []), "WIRELESS_CONTROLLER_NODE") && !contains(try(device.fabric_roles, []), "EMBEDDED_WIRELESS_CONTROLLER_NODE") && contains(local.sites, try(device.site, "NONE")) && var.use_bulk_api == false && try(device.type, null) != "AccessPoint" }
101126

102127
site_id = try(local.site_id_list[each.value.site], null)
103128
network_device_id = try(local.device_name_to_id[each.value.name], local.device_name_to_id[each.value.fqdn_name], local.device_ip_to_id[each.value.device_ip])
@@ -182,6 +207,8 @@ resource "catalystcenter_provision_access_points" "access_points" {
182207
}]
183208
rf_profile_name = try(each.value[0].rf_profile)
184209
site_id = try(local.site_id_list[each.key], null)
210+
211+
depends_on = [catalystcenter_assign_device_to_site.access_points_to_site]
185212
}
186213

187214

0 commit comments

Comments
 (0)