terraform-plan-parser icon indicating copy to clipboard operation
terraform-plan-parser copied to clipboard

Terraform 0.12 doesn't parse correctly (running in node v12.5.0 osx 10.14.5)

Open munntjlx opened this issue 6 years ago • 3 comments

I was using terraform 0.12.x and get the following:

{
  "errors": [
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"  # aws_instance.kaeptn-eichhorn will be created\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_CHANGE_LINE",
      "message": "Unable to parse \"  + resource \"aws_instance\" \"kaeptn-eichhorn\" {\" (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + ami                          = \"ami-13b8337c\"\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + arn                          = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + associate_public_ip_address  = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + availability_zone            = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + cpu_core_count               = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + cpu_threads_per_core         = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + get_password_data            = false\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + host_id                      = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + id                           = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + instance_state               = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + instance_type                = \"t2.micro\"\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + ipv6_address_count           = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + ipv6_addresses               = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + key_name                     = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + network_interface_id         = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + password_data                = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + placement_group              = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + primary_network_interface_id = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + private_dns                  = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + private_ip                   = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + public_dns                   = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + public_ip                    = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + security_groups              = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + source_dest_check            = true\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + subnet_id                    = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + tenancy                      = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + volume_tags                  = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + vpc_security_group_ids       = (known after apply)\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + ebs_block_device {\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + delete_on_termination = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + device_name           = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + encrypted             = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + iops                  = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + snapshot_id           = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + volume_id             = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + volume_size           = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + volume_type           = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"        }\" (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + ephemeral_block_device {\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + device_name  = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + no_device    = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + virtual_name = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"        }\" (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + network_interface {\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + delete_on_termination = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + device_index          = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + network_interface_id  = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"        }\" (ignoring)"
    },
    {
      "code": "ORPHAN_ATTRIBUTE_LINE",
      "message": "Attribute line \"      + root_block_device {\" is not associated with a data source or resource (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + delete_on_termination = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + iops                  = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + volume_id             = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + volume_size           = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"          + volume_type           = (known after apply)\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"        }\" (ignoring)"
    },
    {
      "code": "UNABLE_TO_PARSE_LINE",
      "message": "Unable to parse \"    }\" (ignoring)"
    }
  ],
  "changedResources": [],
  "changedDataSources": []
}

Looks

munntjlx avatar Jul 02 '19 21:07 munntjlx

output of tfplan in text:

Terraform will perform the following actions:

  # aws_instance.kaeptn-eichhorn will be created
  + resource "aws_instance" "kaeptn-eichhorn" {
      + ami                          = "ami-13b8337c"
      + arn                          = (known after apply)
      + associate_public_ip_address  = (known after apply)
      + availability_zone            = (known after apply)
      + cpu_core_count               = (known after apply)
      + cpu_threads_per_core         = (known after apply)
      + get_password_data            = false
      + host_id                      = (known after apply)
      + id                           = (known after apply)
      + instance_state               = (known after apply)
      + instance_type                = "t2.micro"
      + ipv6_address_count           = (known after apply)
      + ipv6_addresses               = (known after apply)
      + key_name                     = (known after apply)
      + network_interface_id         = (known after apply)
      + password_data                = (known after apply)
      + placement_group              = (known after apply)
      + primary_network_interface_id = (known after apply)
      + private_dns                  = (known after apply)
      + private_ip                   = (known after apply)
      + public_dns                   = (known after apply)
      + public_ip                    = (known after apply)
      + security_groups              = (known after apply)
      + source_dest_check            = true
      + subnet_id                    = (known after apply)
      + tenancy                      = (known after apply)
      + volume_tags                  = (known after apply)
      + vpc_security_group_ids       = (known after apply)

      + ebs_block_device {
          + delete_on_termination = (known after apply)
          + device_name           = (known after apply)
          + encrypted             = (known after apply)
          + iops                  = (known after apply)
          + snapshot_id           = (known after apply)
          + volume_id             = (known after apply)
          + volume_size           = (known after apply)
          + volume_type           = (known after apply)
        }

      + ephemeral_block_device {
          + device_name  = (known after apply)
          + no_device    = (known after apply)
          + virtual_name = (known after apply)
        }

      + network_interface {
          + delete_on_termination = (known after apply)
          + device_index          = (known after apply)
          + network_interface_id  = (known after apply)
        }

      + root_block_device {
          + delete_on_termination = (known after apply)
          + iops                  = (known after apply)
          + volume_id             = (known after apply)
          + volume_size           = (known after apply)
          + volume_type           = (known after apply)
        }
    }

Plan: 1 to add, 0 to change, 0 to destroy.

munntjlx avatar Jul 02 '19 21:07 munntjlx

Yes I think Terraform changed output format, I confirm I got the same issue

Roms1383 avatar Jan 18 '20 04:01 Roms1383

By the way, just found out that Terraform 0.12 now has its own way of outputting terraform plan to JSON : https://www.terraform.io/docs/internals/json-format.html

Roms1383 avatar Jan 18 '20 05:01 Roms1383