I want to add that I am working on this provider to use the official Go bindings “Goca”, I will share my work once I have something ready (hopefully in few weeks).
About your issue, it seems the issue is in the “description” part. Actually, the description part is used to provide VM information as an XML Template.
If you remove the description line to test, you might not have error during vnet creation.
Moreover, the error is returned by opennebula. So it means the XML sent to Opennebula contains a syntax error.
Can you check, via a tcpdump, or any other way to get he XML sent to Opennebula where is the syntax issue ?
It should be easy to detect and to understand where is the issue in the tf file.
I’ve forked the runtastic provider and made some changes to get support for 802.1q networks. My go skills are almost non existing, so don’t shoot me for bad coding but the provider now does what I need it to do. If I get some time to cleanup the code, I’ll submit a PR but for now, if interested, you can find it at https://github.com/sam-wouters/terraform-provider-opennebula.