Closed
Description
Nutanix Cluster Information
Terraform Version
Terraform v1.1.5
on linux_amd64
+ provider registry.terraform.io/nutanix/nutanix v1.3.0
Affected Resource(s)
- nutanix_recovery_plan
Terraform Configuration Files
resource "nutanix_recovery_plan" "test" {
description = "test"
name = "test"
stage_list {
delay_time_secs = 0
stage_uuid = "xxxxxxxxx"
stage_work {
recover_entities {
entity_info_list {
categories {
name = "Protection"
value = "test"
}
}
}
}
}
parameters {
network_mapping_list {
are_networks_stretched = true
availability_zone_network_mapping_list {
availability_zone_url = "xxxxxxxxx"
cluster_reference_list {
kind = "cluster"
name = "NTNXCLU01"
uuid = "xxxxxxxxx"
}
recovery_network {
name = "DEV"
use_vpc_reference = false
subnet_list {
external_connectivity_state = "DISABLED"
gateway_ip = "10.12.63.254"
prefix_length = 24
}
}
test_network {
name = "DEV"
use_vpc_reference = false
subnet_list {
external_connectivity_state = "DISABLED"
gateway_ip = "10.12.63.254"
prefix_length = 24
}
}
}
availability_zone_network_mapping_list {
availability_zone_url = "xxxxxxxxx"
cluster_reference_list {
kind = "cluster"
name = "NTNXCLU02"
uuid = "xxxxxxxxx"
}
recovery_network {
name = "DEV"
use_vpc_reference = false
subnet_list {
external_connectivity_state = "DISABLED"
gateway_ip = "10.12.63.254"
prefix_length = 24
}
}
test_network {
name = "DEV"
use_vpc_reference = false
subnet_list {
external_connectivity_state = "DISABLED"
gateway_ip = "10.12.63.254"
prefix_length = 24
}
}
}
}
network_mapping_list {
are_networks_stretched = true
availability_zone_network_mapping_list {
availability_zone_url = "xxxxxxxxx"
cluster_reference_list {
kind = "cluster"
name = "NTNXCLU01"
uuid = "xxxxxxxxx""
}
recovery_network {
name = "TST"
use_vpc_reference = false
subnet_list {
external_connectivity_state = "DISABLED"
gateway_ip = "10.12.64.254"
prefix_length = 24
}
}
test_network {
name = "TST"
use_vpc_reference = false
subnet_list {
external_connectivity_state = "DISABLED"
gateway_ip = "10.12.64.254"
prefix_length = 24
}
}
}
availability_zone_network_mapping_list {
availability_zone_url = "xxxxxxxxx"
cluster_reference_list {
kind = "cluster"
name = "NTNXCLU02"
uuid = "xxxxxxxxx"
}
recovery_network {
name = "TST"
use_vpc_reference = false
subnet_list {
external_connectivity_state = "DISABLED"
gateway_ip = "10.12.64.254"
prefix_length = 24
}
}
test_network {
name = "TST"
use_vpc_reference = false
subnet_list {
external_connectivity_state = "DISABLED"
gateway_ip = "10.12.64.254"
prefix_length = 24
}
}
}
}
}
timeouts {}
}
Debug Output
ad7
{
"status": {
"state": "PENDING",
"execution_context": {
"task_uuid": "xxxxxxxxx"
}
},
"spec": {
"name": "test",
"resources": {
"stage_list": [
{
"stage_work": {
"recover_entities": {
"entity_info_list": [
{
"categories": {
"Protection": "test"
}
}
]
}
},
"stage_uuid": "xxxxxxxxx"
"delay_time_secs": 0
}
],
"parameters": {
"network_mapping_list": [
{
"are_networks_stretched": true,
"availability_zone_network_mapping_list": [
{
"cluster_reference_list": [
{
"kind": "cluster",
"name": "NTNXCLU01",
"uuid": "xxxxxxxxx"
}
],
"recovery_network": {
"name": "TST",
"subnet_list": [
{
"gateway_ip": "10.12.64.254",
"external_connectivity_state": "DISABLED",
"prefix_length": 24
}
]
},
"availability_zone_url": "xxxxxxxxx",
"test_network": {
"name": "TST",
"subnet_list": [
{
"gateway_ip": "10.12.64.254",
"external_connectivity_state": "DISABLED",
"prefix_length": 24
}
]
}
},
{
"cluster_reference_list": [
{
"kind": "cluster",
"name": "NTNXCLU02",
"uuid": "xxxxxxxxx"
}
],
"recovery_network": {
"name": "TST",
"subnet_list": [
{
"gateway_ip": "10.12.64.254",
"external_connectivity_state": "DISABLED",
"prefix_length": 24
}
]
},
"availability_zone_url": "xxxxxxxxx",
"test_network": {
"name": "TST",
"subnet_list": [
{
"gateway_ip": "10.12.64.254",
"external_connectivity_state": "DISABLED",
"prefix_length": 24
}
]
}
}
]
},
{
"are_networks_stretched": true,
"availability_zone_network_mapping_list": [
{
"cluster_reference_list": [
{
"kind": "cluster",
"name": "NTNXCLU01",
"uuid": "xxxxxxxxx"
}
],
"recovery_network": {
"name": "TST",
"subnet_list": [
{
"gateway_ip": "10.12.64.254",
"external_connectivity_state": "DISABLED",
"prefix_length": 24
}
]
},
"availability_zone_url": "xxxxxxxxx",
"test_network": {
"name": "TST",
"subnet_list": [
{
"gateway_ip": "10.12.64.254",
"external_connectivity_state": "DISABLED",
"prefix_length": 24
}
]
}
},
{
"cluster_reference_list": [
{
"kind": "cluster",
"name": "NTNXCLU02",
"uuid": "xxxxxxxxx"
}
],
"recovery_network": {
"name": "TST",
"subnet_list": [
{
"gateway_ip": "10.12.64.254",
"external_connectivity_state": "DISABLED",
"prefix_length": 24
}
]
},
"availability_zone_url": "xxxxxxxxx",
"test_network": {
"name": "TST",
"subnet_list": [
{
"gateway_ip": "10.12.64.254",
"external_connectivity_state": "DISABLED",
"prefix_length": 24
}
]
}
}
]
}
]
}
},
"description": "test"
},
"api_version": "3.1",
"metadata": {
"owner_reference": {
"kind": "user",
"uuid": "00000000-0000-0000-0000-000000000000",
"name": "admin"
},
"use_categories_mapping": false,
"kind": "recovery_plan",
"spec_version": 0,
"uuid": "xxxxxxxxx"
}
}
0
-----------------------------------------------------: timestamp=2022-03-14T19:08:34.974+0100
2022-03-14T19:08:34.974+0100 [INFO] provider.terraform-provider-nutanix_v1.3.0: 2022/03/14 19:08:34 [DEBUG] Waiting for state to become: [SUCCEEDED]: timestamp=2022-03-14T19:08:34.974+0100
nutanix_recovery_plan.test: Still creating... [10s elapsed]
2022-03-14T19:08:44.984+0100 [INFO] provider.terraform-provider-nutanix_v1.3.0: 2022/03/14 19:08:44 [DEBUG] Nutanix API Request Details:
---[ REQUEST ]---------------------------------------
GET /api/nutanix/v3/tasks/"xxxxxxxxx" HTTP/1.1
Host: ntnxprism.mycompany.eu:9440
User-Agent: nutanix/v3
-----------------------------------------------------: timestamp=2022-03-14T19:08:44.983+0100
2022-03-14T19:08:45.223+0100 [INFO] provider.terraform-provider-nutanix_v1.3.0: 2022/03/14 19:08:45 [DEBUG] Nutanix API Response Details:
---[ RESPONSE ]--------------------------------------
HTTP/1.1 200 OK
398
{
"status": "FAILED",
"last_update_time": "2022-03-14T18:08:30Z",
"error_detail": "INTERNAL_ERROR: Duplicate network mapping for recovery_network from TST at Clusters NTNXCLU01 to TST at Clusters NTNXCLU02.",
"logical_timestamp": 2,
"entity_reference_list": [
{
"kind": "recovery_plan",
"uuid": "xxxxxxxxx"
}
],
"start_time": "2022-03-14T18:08:30Z",
"creation_time": "2022-03-14T18:08:29Z",
"start_time_usecs": 1647281310052765,
"cluster_reference": {
"kind": "cluster",
"uuid": "xxxxxxxxx"
},
"subtask_reference_list": [],
"completion_time": "2022-03-14T18:08:30Z",
"creation_time_usecs": 1647281309945297,
"progress_message": "create_recovery_plan",
"operation_type": "create_recovery_plan_intentful",
"completion_time_usecs": 1647281310342905,
"error_code": "500",
"percentage_complete": 100,
"api_version": "3.1",
"uuid": "xxxxxxxxx"
}
0
Panic Output
Expected Behavior
Create recovery plan succesfully
Actual Behavior
╷
│ Error: error waiting for recovery_plan id (f8097128-3b2b-4d83-9213-9f64467a8512) to create: error_detail: INTERNAL_ERROR: Duplicate network mapping for recovery_network from TST at Clusters NTNXCLU01 to TST at Clusters NTNXCLU02., progress_message: create_recovery_plan
│
│ with nutanix_recovery_plan.test,
│ on main.tf line 52, in resource "nutanix_recovery_plan" "test":
│ 52: resource "nutanix_recovery_plan" "test" {
│
╵
ps: you will note that my resource definition specify 2 blocks "network_mapping_list" with different network name, first is "DEV", second is "TST", however, thanks to the tf debug log, we can see the API request send 2 times the "TST" network.
Steps to Reproduce
terraform apply