Hi, I’m trying to connect terraform to our vmware infra and I’m stuck at the very first step…!!
The following code seems to work fine
data "vsphere_datacenter" "dc" {
name = "OurDatacenter"
}
But once I try to use the result in the next step:
data "vsphere_datastore" "datastore" {
name = "ourDatastore"
datacenter_id = "data.vsphere_datacenter.dc.id"
}
I get this error message:
Error: error loading cluster: cannot locate datacenter: could not find datacenter with id: data.vsphere_datacenter.dc.id: ServerFaultCode: The object ‘vim.Datacenter:data.vsphere_datacenter.dc.id’ has already been deleted or has not been completely created
trying to ouput step 1 actually returns nothing…
output "datacenterInfo" {
value = data.vsphere_datacenter.dc.id
}
Any clue? terraform connect correctly with vSphere with the information supplied in the provider block(and I see the logon in vSphere events log.) so I have no idea what is going on
Here is a part of the debug log that seems to show all is going well, so I’m really stomped why the reference is failing afterward.
s2020/10/07 11:50:58 [TRACE] BuiltinEvalContext: Initialized “provider["registry.terraform.io/hashicorp/vsphere"]” provider for provider[“Terraform Registry”]
t2020/10/07 11:50:58 [TRACE] eval: terraform.EvalNoop
2020/10/07 11:50:58 [TRACE] eval: *terraform.EvalOpFilter
2020/10/07 11:50:58 [TRACE] eval: *terraform.EvalSequence
2020/10/07 11:50:58 [TRACE] eval: *terraform.EvalGetProvider
2020/10/07 11:50:58 [TRACE] eval: *terraform.EvalOpFilter
2020/10/07 11:50:58 [TRACE] eval: *terraform.EvalSequence
2020/10/07 11:50:58 [TRACE] eval: *terraform.EvalConfigProvider
2020/10/07 11:50:58 [TRACE] buildProviderConfig for provider[“Terraform Registry”]: using explicit config only
2020/10/07 11:50:58 [TRACE] GRPCProvider: GetSchema
2020-10-07T11:50:58.662-0400 [TRACE] plugin.stdio: waiting for stdio data
2020-10-07T11:50:58.669-0400 [WARN] plugin.stdio: received EOF, stopping recv loop: err=“rpc error: code = Unimplemented desc = unknown service plugin.GRPCStdio”
2020/10/07 11:50:58 [TRACE] No provider meta schema returned
2020/10/07 11:50:58 [TRACE] GRPCProvider: Configure
2020-10-07T11:50:58.692-0400 [DEBUG] plugin.terraform-provider-vsphere_v1.24.0_x4.exe: 2020/10/07 11:50:58 [DEBUG] Cached SOAP client session data not valid or persistence not enabled, new session necessary
2020-10-07T11:50:58.692-0400 [DEBUG] plugin.terraform-provider-vsphere_v1.24.0_x4.exe: 2020/10/07 11:50:58 [DEBUG] Creating new SOAP API session on endpoint atvcm001.intro.techno.local
o2020-10-07T11:50:58.978-0400 [DEBUG] plugin.terraform-provider-vsphere_v1.24.0_x4.exe: 2020/10/07 11:50:58 [DEBUG] SOAP API session creation successful
r2020-10-07T11:50:58.978-0400 [DEBUG] plugin.terraform-provider-vsphere_v1.24.0_x4.exe: 2020/10/07 11:50:58 [DEBUG] VMWare vSphere Client configured for URL: atvcm001.intro.techno.local
2020-10-07T11:50:58.984-0400 [DEBUG] plugin.terraform-provider-vsphere_v1.24.0_x4.exe: 2020/10/07 11:50:58 [DEBUG] Setting up REST client
2020-10-07T11:50:59.655-0400 [DEBUG] plugin.terraform-provider-vsphere_v1.24.0_x4.exe: 2020/10/07 11:50:59 [DEBUG] CIS REST client configuration successful
2020/10/07 11:50:59 [TRACE] eval: terraform.EvalNoop
2020/10/07 11:50:59 [TRACE] [walkPlan] Exiting eval tree: provider[“Terraform Registry”]
2020/10/07 11:50:59 [TRACE] vertex “provider["registry.terraform.io/hashicorp/vsphere"]”: visit complete
2020/10/07 11:50:59 [TRACE] dag/walk: visiting “data.vsphere_datacenter.dc (expand)”
2020/10/07 11:50:59 [TRACE] vertex “data.vsphere_datacenter.dc (expand)”: starting visit (*terraform.nodeExpandPlannableResource)
2020/10/07 11:50:59 [TRACE] vertex “data.vsphere_datacenter.dc (expand)”: expanding dynamic subgraph
2020/10/07 11:50:59 [TRACE] vertex “data.vsphere_datacenter.dc (expand)”: entering dynamic subgraph
2020/10/07 11:50:59 [TRACE] dag/walk: visiting “data.vsphere_datacenter.dc”
2020/10/07 11:50:59 [TRACE] vertex “data.vsphere_datacenter.dc”: starting visit (*terraform.NodePlannableResource)
2020/10/07 11:50:59 [TRACE] vertex “data.vsphere_datacenter.dc”: evaluating
2020/10/07 11:50:59 [TRACE] [walkPlan] Entering eval tree: data.vsphere_datacenter.dc
2020/10/07 11:50:59 [TRACE] eval: *terraform.EvalWriteResourceState
2020/10/07 11:50:59 [TRACE] [walkPlan] Exiting eval tree: data.vsphere_datacenter.dc
2020/10/07 11:50:59 [TRACE] vertex “data.vsphere_datacenter.dc”: expanding dynamic subgraph
2020/10/07 11:50:59 [TRACE] Executing graph transform *terraform.ResourceCountTransformer
2020/10/07 11:50:59 [TRACE] ResourceCountTransformer: adding data.vsphere_datacenter.dc as *terraform.NodePlannableResourceInstance
2020/10/07 11:50:59 [TRACE] Completed graph transform *terraforam.ResourceCountTransformer with new graph:
data.vsphere_datacenter.dc - *terraform.NodePlannableResourceInstance
2020/10/07 11:50:59 [TRACE] Executing graph transform *terraform.TargetsTransformer
2020/10/07 11:50:59 [TRACE] Completed graph transform *terraform.TargetsTransformer (no changes)
2020/10/07 11:50:59 [TRACE] Executing graph transform *terraform.ReferenceTransformer
2020/10/07 11:50:59 [DEBUG] ReferenceTransformer: “data.vsphere_datacenter.dc” references:
2020/10/07 11:50:59 [TRACE] Completed graph transform *terraform.ReferenceTransformer (no changes)
2020/10/07 11:50:59 [TRACE] Executing graph transform *terraform.RootTransformer
2020/10/07 11:50:59 [TRACE] Completed graph transform *terraform.RootTransformer (no changes)
2020/10/07 11:50:59 [TRACE] vertex “data.vsphere_datacenter.dc”: entering dynamic subgraph
2020/10/07 11:50:59 [TRACE] dag/walk: visiting “data.vsphere_datacenter.dc”
2020/10/07 11:50:59 [TRACE] vertex “data.vsphere_datacenter.dc”: starting visit (*terraform.NodePlannableResourceInstance)
2020/10/07 11:50:59 [TRACE] vertex “data.vsphere_datacenter.dc”: evaluating
2020/10/07 11:50:59 [TRACE] [walkPlan] Entering eval tree: data.vsphere_datacenter.dc
2020/10/07 11:50:59 [TRACE] eval: *terraform.EvalSequence
2020/10/07 11:50:59 [TRACE] eval: *terraform.EvalGetProvider
2020/10/07 11:50:59 [TRACE] eval: *terraform.EvalReadState
2020/10/07 11:50:59 [TRACE] EvalReadState: reading state for data.vsphere_datacenter.dc
2020/10/07 11:50:59 [TRACE] eval: *terraform.EvalValidateSelfRef
2020/10/07 11:50:59 [TRACE] eval: *terraform.evalReadDataPlan
2020/10/07 11:50:59 [TRACE] evalRegadDataPlan: data.vsphere_datacenter.dc no change detected, using existing state
e2020/10/07 11:51:00 [TRACE] eval: *terraform.EvalWriteState
2020/10/07 11:51:00 [TRACE] EvalWriteState: writing current state object for data.vsphere_datacenter.dc
2020/10/07 11:51:00 [TRACE] eval: *terraform.EvalWriteDiff
2020/10/07 11:51:00 [TRACE] [walkPlan] Exiting eval tree: data.vsphere_datacenter.dc
2020/10/07 11:51:00 [TRACE] vertex “data.vsphere_datacenter.dc”: visit complete
2020/10/07 11:51:00 [TRACE] vertex “data.vsphere_datacenter.dc”: dynamic subgraph completed successfully
2020/10/07 11:51:00 [TRACE] vertex “data.vsphere_datacenter.dc”: visit complete
2020/10/07 11:51:00 [TRACE] vertex “data.vsphere_datacenter.dc (expand)”: dynamic subgraph completed successfully
2020/10/07 11:51:00 [TRACE] vertex “data.vsphere_datacenter.dc (expand)”: visit complete
2020/10/07 11:51:00 [TRACE] dag/walk: visiting “output.datacenterInfo (expand)”
2020/10/07 11:51:00 [TRACE] vertex “output.datacenterInfo (expand)”: starting visit (*terraform.nodeExpandOutput)
2020/10/07 11:51:00 [TRACE] vertex “output.datacenterInfo (expand)”: expanding dynamic subgraph
2020/10/07 11:51:00 [TRACE] Expanding output: adding output.datacenterInfo as *terraform.NodeApplyableOutput
2020/10/07 11:51:00 [TRACE] vertex “output.datacenterInfo (expand)”: entering dynamic subgraph
2020/10/07 11:51:00 [TRACE] dag/walk: visiting “output.datacenterInfo”
2020/10/07 11:51:00 [TRACE] vertex “output.datacenterInfo”: starting visit (*terraform.NodeApplyableOutput)
2020/10/07 11:51:00 [TRACE] vertex “output.datacenterInfo”: evaluating
2020/10/07 11:51:00 [TRACE] [walkPlan] Entering eval tree: output.datacenterInfo
2020/10/07 11:51:00 [TRACE] eval: *terraform.EvalSequence
2020/10/07 11:51:00 [TRACE] eval: *terraform.EvalOpFilter
2020/10/07 11:51:00 [TRACE] eval: *terraform.EvalWriteOutput
2020/10/07 11:51:00 [TRACE] EvalWriteOutput: Saving value for output.datacenterInfo in state
2020/10/07 11:51:00 [TRACE] EvalWriteOutput: Saving Create change for output.datacenterInfo in changeset
2020/10/07 11:51:00 [TRACE] [walkPlan] Exiting eval tree: output.datacen.
terInfo
2020/10/07 11:51:00 [TRACE] vertex “output.datacenterInfo”: visit complete
data “vsphere_datastore” “datastore” {
name = “ourDatastore”
datacenter_id = data.vsphere_datacenter.dc.id
}
You have to mention datacenter_id without quotes.