terraform-provider-oneview
terraform-provider-oneview copied to clipboard
Error when creating Server Profile Template with SAS Logical JBOD
Scenario I am trying to create a Server Profile Template that includes 9 drives in a JBOD configuration. I have tried a few different configuration stanza attempts for creating the SPT. I have not found an example that includes the exact configuration I am attempting to try here so it is possible that I am not providing the correct configuration to create the drive properly. However, I have gotten terraform plan to run successfully without complaint of the configuration syntax. The server profile creates successfully without the sas_logical_jbod and related controller configuration stanza in there. So I know it doesn't have anything to do with anything else in the resource definition.
Environment Terraform OneView Provider: 6.2 API Version: 2800
Error received: Stack trace from the terraform-provider-oneview_v6.2.0-13 plugin:
panic: interface conversion: interface {} is nil, not string
goroutine 44 [running]: github.com/HewlettPackard/terraform-provider-oneview/oneview.resourceServerProfileTemplateCreate(0xc000432150, 0x111b3a0, 0xc0008d2100, 0x2, 0x1aa9e60) github.com/HewlettPackard/terraform-provider-oneview/oneview/resource_server_profile_template.go:1628 +0xa813 github.com/hashicorp/terraform-plugin-sdk/helper/schema.(*Resource).Apply(0xc000589680, 0xc0007b5540, 0xc000733c80, 0x111b3a0, 0xc0008d2100, 0x1109801, 0xc000926028, 0xc0006b22d0) github.com/hashicorp/[email protected]/helper/schema/resource.go:305 +0x375 github.com/hashicorp/terraform-plugin-sdk/helper/schema.(*Provider).Apply(0xc0005ea900, 0xc000279a10, 0xc0007b5540, 0xc000733c80, 0xc0006843e8, 0xc00000f460, 0x110b4e0) github.com/hashicorp/[email protected]/helper/schema/provider.go:294 +0x99 github.com/hashicorp/terraform-plugin-sdk/internal/helper/plugin.(*GRPCProviderServer).ApplyResourceChange(0xc00000e118, 0x14717e0, 0xc0002ee0f0, 0xc0008cc6c0, 0xc00000e118, 0xc0002ee0f0, 0xc0002fdb78) github.com/hashicorp/[email protected]/internal/helper/plugin/grpc_provider.go:885 +0x8ab github.com/hashicorp/terraform-plugin-sdk/internal/tfplugin5._Provider_ApplyResourceChange_Handler(0x121ece0, 0xc00000e118, 0x14717e0, 0xc0002ee0f0, 0xc0008cc660, 0x0, 0x14717e0, 0xc0002ee0f0, 0xc0002fe000, 0x1c68) github.com/hashicorp/[email protected]/internal/tfplugin5/tfplugin5.pb.go:3189 +0x214 google.golang.org/grpc.(*Server).processUnaryRPC(0xc000001e00, 0x147aa40, 0xc000885200, 0xc00015e900, 0xc00059ce40, 0x1a68b60, 0x0, 0x0, 0x0) google.golang.org/[email protected]/server.go:1024 +0x522 google.golang.org/grpc.(*Server).handleStream(0xc000001e00, 0x147aa40, 0xc000885200, 0xc00015e900, 0x0) google.golang.org/[email protected]/server.go:1313 +0xd34 google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc0000a41a0, 0xc000001e00, 0x147aa40, 0xc000885200, 0xc00015e900) google.golang.org/[email protected]/server.go:722 +0xa5 created by google.golang.org/grpc.(*Server).serveStreams.func1 google.golang.org/[email protected]/server.go:720 +0xa5
Error: The terraform-provider-oneview_v6.2.0-13 plugin crashed!
This is always indicative of a bug within the plugin. It would be immensely helpful if you could report the crash with the plugin's maintainers so that it can be fixed. The output above should help diagnose the issue. ╷ │ Error: Plugin did not respond │ │ with oneview_server_profile_template.InfraSPTTest, │ on main.tf line 155, in resource "oneview_server_profile_template" "InfraSPTTest": │ 155: resource "oneview_server_profile_template" "InfraSPTTest" { │ │ The plugin encountered an error, and failed to respond to the plugin.(*GRPCProvider).ApplyResourceChange call. The plugin logs may contain more │ details. ╵
main.tf:
resource "oneview_server_profile_template" "InfraSPTTest" { name = var.infra_name type = "ServerProfileTemplateV8" enclosure_group = "EG1" server_hardware_type = "SY 480 Gen10 1"
bios_option { manage_bios = true overridden_settings { id = "WorkloadProfile" value = "Virtualization-MaxPerformance" } overridden_settings { id = "MinProcIdlePower" value = "NoCStates" } overridden_settings { id = "IntelUpiPowerManagement" value = "Disabled" } overridden_settings { id = "MinProcIdlePkgState" value = "NoState" } overridden_settings { id = "EnergyPerfBias" value = "MaxPerf" } overridden_settings { id = "UncoreFreqScaling" value = "Maximum" } overridden_settings { id = "PowerRegulator" value = "StaticHighPerf" } overridden_settings { id = "EnergyEfficientTurbo" value = "Disabled" } overridden_settings { id = "UrlBootFile" value = var.ipxeboot_url } overridden_settings { id = "NumaGroupSizeOpt" value = "Clustered" } overridden_settings { id = "SubNumaClustering" value = "Enabled" } overridden_settings { id = "CollabPowerControl" value = "Disabled" } overridden_settings { id = "HttpSupport" value = "HttpOnly" } }
boot { manage_boot = true boot_order = ["PXE"] }
boot_mode { manage_mode = true mode = "UEFIOptimized" pxe_boot_policy = "IPv4" secure_boot = "Disabled" }
connection_settings { compliance_control = "CheckedMinimum" manage_connections = true
connections {
id = 1
name = "dev_network_01"
function_type = "Ethernet"
network_uri = data.oneview_ethernet_network.ethernetNetwork.uri
isolated_trunk = false
port_id = "Mezz 3:1-a"
requested_mbps = "2500"
requested_vfs = "0"
lag_name = "LAG1"
boot {
priority = "Primary"
ethernet_boot_type = "PXE"
}
}
connections {
id = 2
name = "dev_network_02"
function_type = "Ethernet"
network_uri = data.oneview_ethernet_network.ethernetNetwork.uri
isolated_trunk = false
port_id = "Mezz 3:2-a"
requested_mbps = "2500"
requested_vfs = "0"
lag_name = "LAG1"
boot {
priority = "NotBootable"
}
}
}
firmware { compliance_control = "Checked" manage_firmware = true firmware_install_type = "FirmwareOnlyOfflineMode" force_install_firmware = false firmware_baseline_uri = "/rest/firmware-drivers/Synergy_Service_Pack_SSP_2021_05_01_Z7550-97181" firmware_activation_type = "Immediate" }
local_storage { compliance_control = "CheckedMinimum" sas_logical_jbod { id = 1 description = "JBOD Storage for Infrastructure Nodes." device_slot = "Mezz 1" name = "OCS_Storage_Node" num_physical_drive = 9 drive_min_size_gb = 3840 drive_max_size_gb = 3840 drive_technology = "SasSsd" erase_data = false persistent = true } controller { device_slot = "Embedded" drive_write_cache = "Enabled" initialize = true mode = "Mixed" predictive_spare_rebuild = "Unmanaged" logical_drives { name = "boot_drive" accelerator = "Unmanaged" bootable = true raid_level = "RAID1" num_physical_drives = 2 } } controller { device_slot = "Mezz 1" mode = "Mixed" initialize = true drive_write_cache = "Unmanaged" predictive_spare_rebuild = "Unmanaged" logical_drives { name = "Storage_Drive" sas_logical_jbod_id = 1 } } } }
Hi, We will look into this.
Please let me know if I can provide any additional details at this time. Happy to test any patches out in our environment as well.
Will check this and target this for OV 6.4. Will get back to you if we need more details.
I am able to reproduce this error with 6.3 with the following. The only difference is I am attempting to define the logical JBOD on a server profile created from the server profile template -
API Version
ov_apiversion = 2800
plugin version
terraform {
required_version = ">= 0.13"
required_providers {
oneview = {
source = "hewlettpackard/oneview"
version = "6.3.1-13"
}
}
}
resource "oneview_server_profile" "HOST1" {
name = "HOST1"
template = "${oneview_server_profile_template.SERVERTEMPLATE.name}"
local_storage {
sas_logical_jbod {
id = 1
description = "JBOD 1"
device_slot = "Mezz 1"
name = "JBOD1"
num_physical_drive = 2
drive_min_size_gb = 1920
drive_max_size_gb = 1920
drive_technology = "SasSsd"
erase_data = false
persistent = true
}
}
}
The Server Profile Template is able to be created without issue. The Server Profiles are also able to created sans adding local_storage. When the local_storage config is added, it outputs this error -
Stack trace from the terraform-provider-oneview_v6.3.1-13 plugin:
panic: interface conversion: interface {} is nil, not map[string]interface {}
goroutine 146 [running]:
github.com/HewlettPackard/terraform-provider-oneview/oneview.resourceServerProfileTemplateUpdate(0xc00045f030, 0x112ad20, 0xc0002f7080, 0x24, 0x1ac1e80)
github.com/HewlettPackard/terraform-provider-oneview/oneview/resource_server_profile_template.go:2563 +0xb273
github.com/hashicorp/terraform-plugin-sdk/helper/schema.(*Resource).Apply(0xc000042280, 0xc000d94230, 0xc000ba3320, 0x112ad20, 0xc0002f7080, 0x1119101, 0xc00074d558, 0xc00097eb70)
github.com/hashicorp/[email protected]/helper/schema/resource.go:311 +0x273
github.com/hashicorp/terraform-plugin-sdk/helper/schema.(*Provider).Apply(0xc0002f6e80, 0xc000c2da10, 0xc000d94230, 0xc000ba3320, 0xc00058a368, 0xc0008be901, 0x111ae60)
github.com/hashicorp/[email protected]/helper/schema/provider.go:294 +0x99
github.com/hashicorp/terraform-plugin-sdk/internal/helper/plugin.(*GRPCProviderServer).ApplyResourceChange(0xc000126118, 0x1486600, 0xc000d3e5a0, 0xc0004ac4e0, 0xc000126118, 0xc000d3e5a0, 0xc000355b78)
github.com/hashicorp/[email protected]/internal/helper/plugin/grpc_provider.go:885 +0x8ab
github.com/hashicorp/terraform-plugin-sdk/internal/tfplugin5._Provider_ApplyResourceChange_Handler(0x122e9a0, 0xc000126118, 0x1486600, 0xc000d3e5a0, 0xc0004ac420, 0x0, 0x1486600, 0xc000d3e5a0, 0xc000c14000, 0x1f33)
github.com/hashicorp/[email protected]/internal/tfplugin5/tfplugin5.pb.go:3189 +0x214
google.golang.org/grpc.(*Server).processUnaryRPC(0xc000782c00, 0x148f860, 0xc000783c80, 0xc000ba8000, 0xc0007185d0, 0x1a80b80, 0x0, 0x0, 0x0)
google.golang.org/[email protected]/server.go:1024 +0x522
google.golang.org/grpc.(*Server).handleStream(0xc000782c00, 0x148f860, 0xc000783c80, 0xc000ba8000, 0x0)
google.golang.org/[email protected]/server.go:1313 +0xd34
google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc000378230, 0xc000782c00, 0x148f860, 0xc000783c80, 0xc000ba8000)
google.golang.org/[email protected]/server.go:722 +0xa5
created by google.golang.org/grpc.(*Server).serveStreams.func1
google.golang.org/[email protected]/server.go:720 +0xa5
Error: The terraform-provider-oneview_v6.3.1-13 plugin crashed!
This is always indicative of a bug within the plugin. It would be immensely
helpful if you could report the crash with the plugin's maintainers so that it
can be fixed. The output above should help diagnose the issue.
I got a similar error even without any storage configuration.
OneView Version: 6.4 (also happend with 6.3) OneView TF Provider Version: v6.4.0-13
resource "oneview_server_profile_template" "test_tpl" {
name = "test-tpl"
server_hardware_type = "DL325 Gen10 Plus 1"
firmware {
firmware_baseline_uri = "/rest/firmware-drivers/${var.firmware_baseline}"
firmware_install_type = "FirmwareOnlyOfflineMode"
manage_firmware = true
}
boot {
manage_boot = false
}
boot_mode {
manage_mode = true
mode = "UEFIOptimized"
pxe_boot_policy = "IPv4"
secure_boot = "Enabled"
}
bios_option {
manage_bios = true
overridden_settings {
id = "TimeZone"
value = "UtcP1"
}
overridden_settings {
id = "WorkloadProfile"
value = "Virtualization-PowerEfficient"
}
}
management_processor {
manage_mp = true
mp_settings {
directory {
directory_authentication = "defaultSchema"
directory_generic_ldap = false
directory_server_address = "1.2.3.4"
directory_server_port = 636
directory_user_context = ["OU=USERS,CN=example,DC=com"]
}
directory_groups {
group_dn = "CN=example,DC=com"
user_config_priv = true
remote_console_priv = true
virtual_media_priv = true
virtual_power_and_reset_priv = true
ilo_config_priv = true
}
}
}
}
╷
│ Error: Plugin did not respond
│
│ on test_tpl.tf line 1, in resource "oneview_server_profile_template" "test_tpl":
│ 1: resource "oneview_server_profile_template" "test_tpl" {
│
│ The plugin encountered an error, and failed to respond to the plugin.(*GRPCProvider).ReadResource call. The plugin logs may contain more details.
╵
Stack trace from the terraform-provider-oneview_v6.4.0-13 plugin:
panic: interface conversion: interface {} is nil, not map[string]interface {}
goroutine 66 [running]:
github.com/HewlettPackard/terraform-provider-oneview/oneview.resourceServerProfileTemplateRead(0xc000224230, 0x1131040, 0xc0001a3100, 0xc000224230, 0x0)
github.com/HewlettPackard/terraform-provider-oneview/oneview/resource_server_profile_template.go:2047 +0xe2d9
github.com/hashicorp/terraform-plugin-sdk/helper/schema.(*Resource).RefreshWithoutUpgrade(0xc0004fdb80, 0xc00094e730, 0x1131040, 0xc0001a3100, 0xc0006142b8, 0x0, 0x0)
github.com/hashicorp/[email protected]/helper/schema/resource.go:455 +0x129
github.com/hashicorp/terraform-plugin-sdk/internal/helper/plugin.(*GRPCProviderServer).ReadResource(0xc000508150, 0x1491060, 0xc0005e1950, 0xc00094e370, 0xc000508150, 0xc0005e1950, 0xc0003ffb78)
github.com/hashicorp/[email protected]/internal/helper/plugin/grpc_provider.go:525 +0x3dd
github.com/hashicorp/terraform-plugin-sdk/internal/tfplugin5._Provider_ReadResource_Handler(0x1234d80, 0xc000508150, 0x1491060, 0xc0005e1950, 0xc00063c1e0, 0x0, 0x1491060, 0xc0005e1950, 0xc0001c9c00, 0xb1d)
github.com/hashicorp/[email protected]/internal/tfplugin5/tfplugin5.pb.go:3153 +0x214
google.golang.org/grpc.(*Server).processUnaryRPC(0xc00008ac00, 0x149a320, 0xc0006c2600, 0xc000660200, 0xc0005a3c80, 0x1a8bb50, 0x0, 0x0, 0x0)
google.golang.org/[email protected]/server.go:1024 +0x522
google.golang.org/grpc.(*Server).handleStream(0xc00008ac00, 0x149a320, 0xc0006c2600, 0xc000660200, 0x0)
google.golang.org/[email protected]/server.go:1313 +0xd34
google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc0000b0190, 0xc00008ac00, 0x149a320, 0xc0006c2600, 0xc000660200)
google.golang.org/[email protected]/server.go:722 +0xa5
created by google.golang.org/grpc.(*Server).serveStreams.func1
google.golang.org/[email protected]/server.go:720 +0xa5
Error: The terraform-provider-oneview_v6.4.0-13 plugin crashed!
This is always indicative of a bug within the plugin. It would be immensely
helpful if you could report the crash with the plugin's maintainers so that it
can be fixed. The output above should help diagnose the issue.
Is this one fixed?