Skip to content

Commit 560d374

Browse files
committed
Refactor migration script to improve resource removal logic and add migration status messages
1 parent e36bf6f commit 560d374

File tree

1 file changed

+23
-22
lines changed

1 file changed

+23
-22
lines changed

core/terraform/migrate.sh

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -63,37 +63,38 @@ declare -a RESOURCES_TO_REMOVE=(
6363
)
6464
vnet_address="module.network.azurerm_virtual_network.core"
6565

66-
67-
migration_is_needed=0
66+
# Check if migration is needed
67+
migration_needed=0
6868
for resource in "${RESOURCES_TO_REMOVE[@]}"; do
6969
resource_id=$(get_resource_id "${terraform_show_json}" "$resource")
7070
if [ -n "$resource_id" ] && [ "$resource_id" != "null" ]; then
71-
migration_is_needed=1
71+
migration_needed=1
7272
break
7373
fi
7474
done
7575

76-
if [ "$migration_is_needed" -eq 0 ]; then
77-
echo "No old resources found in the state, skipping migration."
78-
exit 0
79-
fi
76+
# Remove old resources
77+
if [ "$migration_needed" -eq 1 ]; then
78+
for resource in "${RESOURCES_TO_REMOVE[@]}"; do
79+
resource_id=$(get_resource_id "${terraform_show_json}" "$resource")
80+
if [ -n "$resource_id" ] && [ "$resource_id" != "null" ]; then
81+
terraform state rm "$resource"
82+
else
83+
echo "Resource that was supposed to be removed not found in state: ${resource}"
84+
fi
85+
done
8086

81-
# remove resources from state
82-
for resource in "${RESOURCES_TO_REMOVE[@]}"; do
83-
resource_id=$(get_resource_id "${terraform_show_json}" "$resource")
84-
if [ -n "$resource_id" ] && [ "$resource_id" != "null" ]; then
85-
terraform state rm "$resource"
87+
# Remove and re-import the VNet
88+
vnet_address="module.network.azurerm_virtual_network.core"
89+
vnet_id=$(get_resource_id "${terraform_show_json}" "$vnet_address" "vnet")
90+
if [ -n "${vnet_id}" ] && [ "${vnet_id}" != "null" ]; then
91+
terraform state rm "${vnet_address}"
92+
terraform import "${vnet_address}" "${vnet_id}"
8693
else
87-
echo "Resource that supposed to be removed not found in state: ${resource}"
94+
echo "VNet resource not found in state: ${vnet_address}"
8895
fi
89-
done
90-
91-
# remove & import VNet
92-
vnet_address="module.network.azurerm_virtual_network.core"
93-
vnet_id=$(get_resource_id "${terraform_show_json}" "$vnet_address" "vnet")
94-
if [ -n "${vnet_id}" ] && [ "${vnet_id}" != "null" ]; then
95-
terraform state rm "${vnet_address}"
96-
terraform import "${vnet_address}" "${vnet_id}"
96+
echo "*** Migration Done ***"
9797
else
98-
echo "VNet resource not found in state: ${vnet_address}"
98+
echo "No old resources found in the state, skipping migration."
99+
echo "*** Migration Skipped ***"
99100
fi

0 commit comments

Comments
 (0)