terraform-provider-pagerduty
terraform-provider-pagerduty copied to clipboard
Cannot delete user and remove it from all schedules at the same time
Terraform Version
1.7.4
Provider Version
3.9.0
Affected Resource(s)
Please list the resources as a list, for example:
- pagerduty_user
- pagerduty_schedule
Terraform Configuration Files
resource "pagerduty_schedule" "test_schedule" {
name = "Test schedule"
time_zone = "Etc/UTC"
layer {
name = "Test"
rotation_turn_length_seconds = 604800 # 7*24*60*60
users = [
pagerduty_user.test_user.id,
]
start = "2024-02-25T23:00:00Z"
rotation_virtual_start = "2024-02-25T23:00:00Z"
}
}
resource "pagerduty_user" "test_user" {
email = "[email protected]"
name = "Test User"
}
Expected Behavior
Schedule is updated first and user is deleted successfully.
Actual Behavior
Apply tries to delete the user first even though it has references.
pagerduty_user.test_user: Destroying... [id=P2FUWI1]
pagerduty_user.test_user: Still destroying... [id=P2FUWI1, 10s elapsed]
pagerduty_user.test_user: Still destroying... [id=P2FUWI1, 20s elapsed]
pagerduty_user.test_user: Still destroying... [id=P2FUWI1, 30s elapsed]
pagerduty_user.test_user: Still destroying... [id=P2FUWI1, 40s elapsed]
pagerduty_user.test_user: Still destroying... [id=P2FUWI1, 50s elapsed]
pagerduty_user.test_user: Still destroying... [id=P2FUWI1, 1m0s elapsed]
pagerduty_user.test_user: Still destroying... [id=P2FUWI1, 1m10s elapsed]
pagerduty_user.test_user: Still destroying... [id=P2FUWI1, 1m20s elapsed]
pagerduty_user.test_user: Still destroying... [id=P2FUWI1, 1m30s elapsed]
pagerduty_user.test_user: Still destroying... [id=P2FUWI1, 1m40s elapsed]
pagerduty_user.test_user: Still destroying... [id=P2FUWI1, 1m50s elapsed]
pagerduty_user.test_user: Still destroying... [id=P2FUWI1, 2m0s elapsed]
╷
│ Error: DELETE API call to https://api.pagerduty.com/users/P2FUWI1 failed 400 Bad Request. Code: 0, Errors: [The user cannot be deleted as they have 1 schedule. Please remove the user from the following schedule to continue.], Message:
│
│
╵
Steps to Reproduce
- Delete the user and change the schedule to include some other user
terraform apply
Hmm this one is interesting is this the failing case?
First apply this
resource "pagerduty_schedule" "test_schedule" {
name = "Test schedule"
time_zone = "Etc/UTC"
layer {
name = "Test"
rotation_turn_length_seconds = 604800 # 7*24*60*60
users = [
pagerduty_user.test_user_1.id,
]
start = "2024-02-25T23:00:00Z"
rotation_virtual_start = "2024-02-25T23:00:00Z"
}
}
resource "pagerduty_user" "test_user_1" {
email = "[email protected]"
name = "Test User 1"
}
resource "pagerduty_user" "test_user2" {
email = "[email protected]"
name = "Test User 2"
}
Then this:
resource "pagerduty_schedule" "test_schedule" {
name = "Test schedule"
time_zone = "Etc/UTC"
layer {
name = "Test"
rotation_turn_length_seconds = 604800 # 7*24*60*60
users = [
pagerduty_user.test_user_2.id,
]
start = "2024-02-25T23:00:00Z"
rotation_virtual_start = "2024-02-25T23:00:00Z"
}
}
resource "pagerduty_user" "test_user2" {
email = "[email protected]"
name = "Test User 2"
}
?
Yes. Something along these lines.