terraform-provider-oneview icon indicating copy to clipboard operation
terraform-provider-oneview copied to clipboard

Error when creating Server Profile Template with SAS Logical JBOD

Open WannaBeGeekster opened this issue 3 years ago • 6 comments

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 } } } }

WannaBeGeekster avatar Sep 17 '21 18:09 WannaBeGeekster

Hi, We will look into this.

nabhajit-ray avatar Sep 20 '21 05:09 nabhajit-ray

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.

WannaBeGeekster avatar Sep 23 '21 14:09 WannaBeGeekster

Will check this and target this for OV 6.4. Will get back to you if we need more details.

nabhajit-ray avatar Sep 28 '21 05:09 nabhajit-ray

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.

bangorango avatar Nov 15 '21 18:11 bangorango

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.

Schluggi avatar Dec 03 '21 13:12 Schluggi

Is this one fixed?

akhigan avatar May 12 '23 15:05 akhigan