owner_id getting updated each time
Closed this issue ยท 4 comments
Hello, can somebody point me what I am doing wrong here?
resource "betteruptime_monitor" "Portal" {
url = "https://portal.imba.com"
monitor_type = "keyword_absence"
sms = true
call = false
required_keyword = "no healthy upstream"
check_frequency = 30
pronounceable_name = "Portal"
regions = ["us", "eu", "as", "au"]
maintenance_days = ["mon", "tue", "wed", "thu", "fri", "sat","sun"]
}
resource "betteruptime_metadata" "portal_metadata" {
key = "ENV"
value = "prod"
owner_id = betteruptime_monitor.Portal.id
owner_type = "Monitor"
depends_on = [betteruptime_monitor.Portal]
}
Why is terraform trying to change owner_id and add owner_type this every time?
# betteruptime_metadata.portal_metadata will be updated in-place
! resource "betteruptime_metadata" "portal_metadata" {
id = "64783441"
! owner_id = 0 -> 621955
+ owner_type = "Monitor"
# (2 unchanged attributes hidden)
}
Hello @hrvalca , thank you for reporting this ๐
We've fixed the issue with owner_id/owner_type being sent of every terraform apply. There's no need to update your Terraform provider, we've managed to fix this on the API level.
Hope this helps ๐
Thanks @PetrHeinz but now I am getting different problems regarding this.
โท
โ Error: json: cannot unmarshal string into Go struct field metadata.data.attributes.owner_id of type int
โ
โ with betteruptime_metadata.portal_metadata,
โ on main.tf line 16, in resource "betteruptime_metadata" "portal_metadata":
โ 16: resource "betteruptime_metadata" "portal_metadata" {
I tried this also
resource "betteruptime_monitor" "Portal" {
url = "https://dev.imba.com"
checks_version = "v2"
monitor_type = "keyword_absence"
required_keyword = "no healthy upstream"
check_frequency = 180
sms = false
call = false
email = false
push = false
pronounceable_name = "Dev Portal"
regions = ["us", "eu", "as", "au"]
maintenance_days = ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]
}
resource "betteruptime_metadata" "portal_metadata" {
key = "ENV"
value = "dev"
owner_id = tonumber(betteruptime_monitor.Portal.id)
owner_type = "Monitor"
Seems like there is some problem with converting data for owner_id?
I tried to output the values
output "monitor_id_int" {
value = tonumber(betteruptime_monitor.Portal.id)
}
output "monitor_id_str" {
value = betteruptime_monitor.Portal.id
}
Changes to Outputs:
+ monitor_id_int = ...955
+ monitor_id_str = "...955"
@PetrHeinz Can you maybe check whats going on? I think issue here is that provider itself expects int but gets string from API call?
Hello @hrvalca, thanks for reporting that ๐
It looks like #100, an additional issue with type mismatch between Terraform and the API. It should already be fixed in v0.10.3
, could you please run terraform init --upgrade
and retry? ๐ Thank you!
Just as a side note, comments on closed issues can be easily overlooked by us - I'd recommend opening a new issue in case of any additional trouble you encounter. It would help a lot in getting a quicker reaction ๐