vmware / terraform-provider-vcd

Terraform VMware Cloud Director provider
https://www.terraform.io/docs/providers/vcd/
Mozilla Public License 2.0
148 stars 112 forks source link

Unable to destroy VM due to an old and irrelevant error #464

Open lvirbalas opened 4 years ago

lvirbalas commented 4 years ago

Terraform Version

Terraform v0.12.0

Affected Resource(s)

Terraform Configuration Files

resource "vcd_vapp" "demo_vapp" {
  name = "demo-web"

  depends_on = ["vcd_network_routed.demo_routed_net_web"]
}

resource "vcd_vapp_vm" "demo_vm_wordpress" {
  vapp_name    = "${vcd_vapp.demo_vapp.name}"
  name         = "demo-vm-wordpress"
  catalog_name = "shared-catalog"
  template_name = "bitnami-wordpress-5.2.2-3-linux-centos-7-x86_64"
  memory        = 512
  #memory        = 868
  cpus = 1

  network_dhcp_wait_seconds = 300
  network {
    type               = "org"
    #name               = vcd_network_routed.demo_routed_net_web.name
    # 2.7.0 will throw a warning if vApp Org Network doesn't exist
    name = vcd_vapp_org_network.demo_vapp_net_org.org_network_name
    ip_allocation_mode = "DHCP"
    is_primary         = true
  }

  # IMPORTANT: below referencing a manually created Isolated vApp Network
  # Uncomment this block after creating the isolated network manually.
  /*network {
    type = "vapp"
    name = "isolated-net"
    ip_allocation_mode = "DHCP"
  }*/

  metadata = {
    demo_data = "Terraform vCD Provider"
  }

  # Guest properties which can be seen via:
  # 1.) vSphere GUI -> Configure -> vApp Options -> Properties
  # 2.) vmtoolsd --cmd "info-get guestinfo.ovfenv"
  guest_properties = {
    "demo.setting" = "Guest property set by Terraform vCD Provider"
  }

  accept_all_eulas = "true"
}

Debug Output


2020/03/04 17:06:46 --------------------------------------------------------------------------------
2020/03/04 17:06:46 Request caller: vcd.resourceVcdVAppVmDelete-->govcd.(*Task).WaitTaskCompletion-->govcd.(*Task).WaitTaskCompletion-->govcd.(*Task).WaitInspectTaskCompletion-->govcd.(*Task).Refresh-->govcd.(*Task).Refresh
2020/03/04 17:06:46 GET https://bos1-vcloud-static-170-14.eng.vmware.com/api/task/dfbe77f6-6c9b-4ae3-a189-3cc15fa40fc8
2020/03/04 17:06:46 --------------------------------------------------------------------------------
2020/03/04 17:06:46 Req header:
2020/03/04 17:06:46     Accept: [application/*+xml;version=29.0]
2020/03/04 17:06:46     X-Vcloud-Authorization: [********]
2020/03/04 17:06:46 ################################################################################
2020/03/04 17:06:46 Response caller schema.(*Provider).Apply-->schema.(*Resource).Apply-->vcd.resourceVcdVAppVmDelete-->govcd.(*Task).WaitTaskCompletion-->govcd.(*Task).WaitTaskCompletion-->govcd.(*Task).WaitInspectTaskCompletion-->govcd.(*Task).Refresh-->govcd.decodeBody
2020/03/04 17:06:46 Response status 200 OK
2020/03/04 17:06:46 ################################################################################
2020/03/04 17:06:46 Response header:
2020/03/04 17:06:46     X-Vmware-Vcloud-Request-Id: [b263e5f4-7bba-44dc-aa43-ba1fdc21bc12]
2020/03/04 17:06:46     X-Vcloud-Authorization: [********]
2020/03/04 17:06:46     X-Vmware-Vcloud-Request-Execution-Time: [21]
2020/03/04 17:06:46     Cache-Control: [no-store, must-revalidate]
2020/03/04 17:06:46     Content-Length: [6912]
2020/03/04 17:06:46     Date: [Wed, 04 Mar 2020 15:06:46 GMT]
2020/03/04 17:06:46     X-Vmware-Vcloud-Ceip-Id: [413c9609-edbf-4fdd-a9da-cc2b0eb50c59]
2020/03/04 17:06:46     Content-Type: [application/vnd.vmware.vcloud.task+xml;version=29.0]
2020/03/04 17:06:46     Vary: [Accept-Encoding, User-Agent]
2020/03/04 17:06:46 Response text: [6912] <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Task xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:common="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.vmware.com/schema/ovf" xmlns:ovfenv="http://schemas.dmtf.org/ovf/environment/1" xmlns:vmext="http://www.vmware.com/vcloud/extension/v1.5" xmlns:ns9="http://www.vmware.com/vcloud/versions" cancelRequested="false" endTime="2020-03-04T14:49:46.428Z" expiryTime="2020-06-02T14:49:45.010Z" operation="Updated Virtual Application demo-web(0a2d3c20-38e6-4614-801d-c2d7a3896c70)" operationName="vdcUpdateVappNetworkSection" serviceNamespace="com.vmware.vcloud" startTime="2020-03-04T14:49:45.010Z" status="error" name="task" id="urn:vcloud:task:dfbe77f6-6c9b-4ae3-a189-3cc15fa40fc8" href="https://bos1-vcloud-static-170-14.eng.vmware.com/api/task/dfbe77f6-6c9b-4ae3-a189-3cc15fa40fc8" type="application/vnd.vmware.vcloud.task+xml">
    <Link rel="edit" href="https://bos1-vcloud-static-170-14.eng.vmware.com/api/task/dfbe77f6-6c9b-4ae3-a189-3cc15fa40fc8" name="task" type="application/vnd.vmware.vcloud.task+xml"/>
    <Owner href="https://bos1-vcloud-static-170-14.eng.vmware.com/api/vApp/vapp-0a2d3c20-38e6-4614-801d-c2d7a3896c70" id="urn:vcloud:vapp:0a2d3c20-38e6-4614-801d-c2d7a3896c70" name="demo-web" type="application/vnd.vmware.vcloud.vApp+xml"/>
    <Error stackTrace="com.vmware.vcloud.api.presentation.service.BadRequestException: Unable to create network &quot;isolated-net&quot;.&#xA;com.vmware.vcloud.api.presentation.service.BadRequestException: Invalid subnet mask specified.&#xA;&#x9;at com.vmware.vcloud.api.presentation.service.BadRequestException.wrap(BadRequestException.java:83)&#xA;&#x9;at com.vmware.vcloud.dl.net.vappnetwork.impl.VAppNetworkManagerImpl.create(VAppNetworkManagerImpl.java:475)&#xA;&#x9;at com.vmware.ssdc.backend.services.impl.VAppManagerImpl.saveNetworkSection(VAppManagerImpl.java:2052)&#xA;&#x9;at sun.reflect.GeneratedMethodAccessor10663.invoke(Unknown Source)&#xA;&#x9;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&#xA;&#x9;at java.lang.reflect.Method.invoke(Method.java:498)&#xA;&#x9;at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)&#xA;&#x9;at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)&#xA;&#x9;at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)&#xA;&#x9;at com.vmware.vcloud.common.diagnostics.GenericMethodDiagnosticsInterceptor.invoke(GenericMethodDiagnosticsInterceptor.java:39)&#xA;&#x9;at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)&#xA;&#x9;at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)&#xA;&#x9;at com.sun.proxy.$Proxy325.saveNetworkSection(Unknown Source)&#xA;&#x9;at com.vmware.vcloud.vdc.impl.ResourceEntityOperationsImpl.updateVappNetworkSectionTask(ResourceEntityOperationsImpl.java:172)&#xA;&#x9;at com.vmware.vcloud.vdc.impl.ResourceEntityOperationsImpl.executeTask(ResourceEntityOperationsImpl.java:214)&#xA;&#x9;at com.vmware.vcloud.backendbase.management.system.TaskActivity$ExecutePhase$1.doInSecurityContext(TaskActivity.java:652)&#xA;&#x9;at com.vmware.vcloud.backendbase.management.system.TaskActivity$ExecutePhase$1.doInSecurityContext(TaskActivity.java:647)&#xA;&#x9;at com.vmware.vcloud.backendbase.management.system.SecurityContextTemplate.executeForOrgAndUser(SecurityContextTemplate.java:43)&#xA;&#x9;at com.vmware.vcloud.backendbase.management.system.TaskActivity$ExecutePhase.execute(TaskActivity.java:654)&#xA;&#x9;at com.vmware.vcloud.backendbase.management.system.TaskActivity$ExecutePhase.invokeInner(TaskActivity.java:550)&#xA;&#x9;at com.vmware.vcloud.backendbase.management.system.TaskActivity$TaskActivityBasePhase.invoke(TaskActivity.java:301)&#xA;&#x9;at com.vmware.vcloud.activity.executors.ActivityRunner.runPhase(ActivityRunner.java:175)&#xA;&#x9;at com.vmware.vcloud.activity.executors.ActivityRunner.run(ActivityRunner.java:112)&#xA;&#x9;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)&#xA;&#x9;at java.util.concurrent.FutureTask.run(FutureTask.java:266)&#xA;&#x9;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)&#xA;&#x9;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)&#xA;&#x9;at java.lang.Thread.run(Thread.java:748)&#xA;Caused by: java.util.concurrent.ExecutionException: com.vmware.vcloud.api.presentation.service.BadRequestException: Invalid subnet mask specified.&#xA;&#x9;at com.vmware.vcloud.activity.toolkit.AbstractToolkitActivity$BasePhase.finish(AbstractToolkitActivity.java:170)&#xA;&#x9;at com.vmware.vcloud.fabric.net.activities.AbstractNetworkFabricActivity$AbstractBaseNetworkingActivityPhase.invoke(AbstractNetworkFabricActivity.java:107)&#xA;&#x9;... 7 more&#xA;Caused by: com.vmware.vcloud.api.presentation.service.BadRequestException: Invalid subnet mask specified.&#xA;&#x9;at com.vmware.vcloud.net.NetworkUtil.validateNetwork(NetworkUtil.java:1197)&#xA;&#x9;at com.vmware.vcloud.fabric.net.inet.IPv4Subnet.validate(IPv4Subnet.java:113)&#xA;&#x9;at com.vmware.vcloud.fabric.net.activities.subnet.CreateSubnetActivity$Validate.invoke(CreateSubnetActivity.java:76)&#xA;&#x9;... 7 more&#xA;" majorErrorCode="400" message="[ e9ab9789-1605-4b99-bbe8-9fc25f4be7b3 ] Unable to create network &quot;isolated-net&quot;.&#xA;com.vmware.vcloud.api.presentation.service.BadRequestException: Invalid subnet mask specified.&#xA; - com.vmware.vcloud.api.presentation.service.BadRequestException: Invalid subnet mask specified.&#xA; - Invalid subnet mask specified." minorErrorCode="BAD_REQUEST">
        <TenantError majorErrorCode="400" message="[ e9ab9789-1605-4b99-bbe8-9fc25f4be7b3 ] Unable to create network &quot;isolated-net&quot;.&#xA;com.vmware.vcloud.api.presentation.service.BadRequestException: Invalid subnet mask specified." minorErrorCode="BAD_REQUEST"/>
    </Error>
    <User href="https://bos1-vcloud-static-170-14.eng.vmware.com/api/admin/user/3b3acea0-1e75-4e31-987f-a35719edb490" id="urn:vcloud:user:3b3acea0-1e75-4e31-987f-a35719edb490" name="system" type="application/vnd.vmware.admin.user+xml"/>
    <Organization href="https://bos1-vcloud-static-170-14.eng.vmware.com/api/org/01f6b421-3d37-4cea-a968-d493b88f5758" id="urn:vcloud:org:01f6b421-3d37-4cea-a968-d493b88f5758" name="demo-org" type="application/vnd.vmware.vcloud.org+xml"/>
    <Details>[ e9ab9789-1605-4b99-bbe8-9fc25f4be7b3 ] Unable to create network "isolated-net".</Details>
</Task>

Panic Output

terraform destroy:

Do you really want to destroy all resources?
  Terraform will destroy all your managed infrastructure, as shown above.
  There is no undo. Only 'yes' will be accepted to confirm.

  Enter a value: yes

vcd_vapp_vm.demo_vm_wordpress: Destroying... [id=urn:vcloud:vm:e11050d9-298a-446c-8b11-4076bfa148ee]

Error: error deleting: error performing task: task did not complete successfully:  [400:BAD_REQUEST] - [ e9ab9789-1605-4b99-bbe8-9fc25f4be7b3 ] Unable to create network "isolated-net".
com.vmware.vcloud.api.presentation.service.BadRequestException: Invalid subnet mask specified.
 - com.vmware.vcloud.api.presentation.service.BadRequestException: Invalid subnet mask specified.
 - Invalid subnet mask specified.

Expected Behavior

VM gets destroyed.

Actual Behavior

VM fails to be destroyed due to an unrelated error which happened half an hour ago.

Steps to Reproduce

  1. Create an HCL with vApp and VM. Terraform apply.
  2. Through UI create an isolated vApp network (named "isolated-net") inside the vApp, but specify incorrect gsubnet for the gateway CIDR: 192.168.10.1/32 (instead of 192.168.10.1/24)
  3. Try adding this network to VM in Terraform by uncommenting the following block in config:
    /*network {
    type = "vapp"
    name = "isolated-net"
    ip_allocation_mode = "DHCP"
    }*/
  4. terraform apply - there will be a failure.
  5. Fix the network by specifying correct gateway CIDR (192.168.2.1/24)
  6. terraform apply - this time it will succeed.
  7. terraform destroy - it fails due to that old error, which has been already resolved:
vcd_vapp_vm.demo_vm_wordpress: Destroying... [id=urn:vcloud:vm:e11050d9-298a-446c-8b11-4076bfa148ee]

Error: error deleting: error performing task: task did not complete successfully:  [400:BAD_REQUEST] - [ e9ab9789-1605-4b99-bbe8-9fc25f4be7b3 ] Unable to create network "isolated-net".
com.vmware.vcloud.api.presentation.service.BadRequestException: Invalid subnet mask specified.
 - com.vmware.vcloud.api.presentation.service.BadRequestException: Invalid subnet mask specified.
 - Invalid subnet mask specified.
vbauzys commented 3 years ago

@lvirbalas Could you try with latest release - I can't replicate this one.