OpsLevel / terraform-provider-opslevel

Terraform provider for OpsLevel.com
https://registry.terraform.io/providers/OpsLevel/opslevel/latest/docs
MIT License
8 stars 5 forks source link

fix terraform import on multiple resources #374

Closed davidbloss closed 1 month ago

davidbloss commented 1 month ago

Issues

ensure terraform import works after upgrade

Changelog

Tophatting

With this Terraform config

resource "opslevel_service_tag" "example" {
  key   = "example"
  value = "example"
}

resource "opslevel_service_tool" "example" {
  category = "example"
  name     = "example"
  url      = "example"
}

resource "opslevel_team_contact" "example" {
  name  = "example"
  team  = "example"
  value = "example"
  type  = "example"
}

resource "opslevel_team_tag" "example" {
  key   = "example"
  value = "example"
}

Import opslevel_service_tag

terraform import opslevel_service_tag.example 'Z2lkOi8vb3BzbGV2ZWwvU2VydmljZS85MzMyOQ:Z2lkOi8vb3BzbGV2ZWwvVGFnLzcwNjExMjYz'

opslevel_service_tag.example: Importing from ID "Z2lkOi8vb3BzbGV2ZWwvU2VydmljZS85MzMyOQ:Z2lkOi8vb3BzbGV2ZWwvVGFnLzcwNjExMjYz"...
opslevel_service_tag.example: Import prepared!
  Prepared opslevel_service_tag for import
opslevel_service_tag.example: Refreshing state...

Import successful!

The resources that were imported are shown above. These resources are now in
your Terraform state and will henceforth be managed by Terraform.

Import opslevel_service_tool

terraform import opslevel_service_tool.example 'Z2lkOi8vb3BzbGV2ZWwvU2VydmljZS85MzMyOA:Z2lkOi8vb3BzbGV2ZWwvVG9vbC81MTc0MDI'

opslevel_service_tool.example: Importing from ID "Z2lkOi8vb3BzbGV2ZWwvU2VydmljZS85MzMyOA:Z2lkOi8vb3BzbGV2ZWwvVG9vbC81MTc0MDI"...
opslevel_service_tool.example: Import prepared!
  Prepared opslevel_service_tool for import
opslevel_service_tool.example: Refreshing state... [id=Z2lkOi8vb3BzbGV2ZWwvVG9vbC81MTc0MDI]

Import successful!

The resources that were imported are shown above. These resources are now in
your Terraform state and will henceforth be managed by Terraform.

Import opslevel_team_contact

> terraform import opslevel_team_contact.example 'Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNDQwNA:Z2lkOi8vb3BzbGV2ZWwvQ29udGFjdC8zMzgyOQ'

opslevel_team_contact.example: Importing from ID "Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNDQwNA:Z2lkOi8vb3BzbGV2ZWwvQ29udGFjdC8zMzgyOQ"...
opslevel_team_contact.example: Import prepared!
  Prepared opslevel_team_contact for import
opslevel_team_contact.example: Refreshing state... [id=Z2lkOi8vb3BzbGV2ZWwvQ29udGFjdC8zMzgyOQ]

Import successful!

The resources that were imported are shown above. These resources are now in
your Terraform state and will henceforth be managed by Terraform.

Import opslevel_team_tag

> terraform import opslevel_team_tag.example 'Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA:Z2lkOi8vb3BzbGV2ZWwvVGFnLzg5MzcwNzUx'

opslevel_team_tag.example: Importing from ID "Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA:Z2lkOi8vb3BzbGV2ZWwvVGFnLzg5MzcwNzUx"...
opslevel_team_tag.example: Import prepared!
  Prepared opslevel_team_tag for import
opslevel_team_tag.example: Refreshing state...

Import successful!

The resources that were imported are shown above. These resources are now in
your Terraform state and will henceforth be managed by Terraform.

Print state with imported resources. terraform show

# opslevel_service_tag.example:
resource "opslevel_service_tag" "example" {
    id      = "Z2lkOi8vb3BzbGV2ZWwvVGFnLzcwNjExMjYz"
    key     = "kafka-topic"
    service = "Z2lkOi8vb3BzbGV2ZWwvU2VydmljZS85MzMyOQ"
    value   = "inventory-additions"
}

# opslevel_service_tool.example:
resource "opslevel_service_tool" "example" {
    category    = "incidents"
    environment = "Production"
    id          = "Z2lkOi8vb3BzbGV2ZWwvVG9vbC81MTc0MDI"
    name        = "PagerDuty"
    service     = "Z2lkOi8vb3BzbGV2ZWwvU2VydmljZS85MzMyOA"
    url         = "https://bigriver.pagerduty.com/services/BWA23IT"
}

# opslevel_team_contact.example:
resource "opslevel_team_contact" "example" {
    id    = "Z2lkOi8vb3BzbGV2ZWwvQ29udGFjdC8zMzgyOQ"
    name  = "PagerDuty On-Call"
    team  = "Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNDQwNA"
    type  = "web"
    value = "https://bigriver.pagerduty.com/escalation_policies#PEO95NX"
}

# opslevel_team_tag.example:
resource "opslevel_team_tag" "example" {
    id    = "Z2lkOi8vb3BzbGV2ZWwvVGFnLzg5MzcwNzUx"
    key   = "key2"
    team  = "Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA"
    value = "value123"
}
davidbloss commented 1 month ago

@taimoorgit - Great job catching the new diagnositcs missing returns 👏 . I don't have bandwidth for refactoring at the moment