Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when creating Server Profile Template with SAS Logical JBOD #396

Open
WannaBeGeekster opened this issue Sep 17, 2021 · 6 comments
Open

Comments

@WannaBeGeekster
Copy link

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/terraform-plugin-sdk@v1.7.0/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/terraform-plugin-sdk@v1.7.0/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/terraform-plugin-sdk@v1.7.0/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/terraform-plugin-sdk@v1.7.0/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/grpc@v1.27.1/server.go:1024 +0x522
google.golang.org/grpc.(*Server).handleStream(0xc000001e00, 0x147aa40, 0xc000885200, 0xc00015e900, 0x0)
google.golang.org/grpc@v1.27.1/server.go:1313 +0xd34
google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc0000a41a0, 0xc000001e00, 0x147aa40, 0xc000885200, 0xc00015e900)
google.golang.org/grpc@v1.27.1/server.go:722 +0xa5
created by google.golang.org/grpc.(*Server).serveStreams.func1
google.golang.org/grpc@v1.27.1/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
}
}
}
}

@nabhajit-ray
Copy link
Collaborator

Hi, We will look into this.

@WannaBeGeekster
Copy link
Author

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.

@nabhajit-ray
Copy link
Collaborator

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

@bangorango
Copy link

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/terraform-plugin-sdk@v1.7.0/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/terraform-plugin-sdk@v1.7.0/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/terraform-plugin-sdk@v1.7.0/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/terraform-plugin-sdk@v1.7.0/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/grpc@v1.27.1/server.go:1024 +0x522
google.golang.org/grpc.(*Server).handleStream(0xc000782c00, 0x148f860, 0xc000783c80, 0xc000ba8000, 0x0)
	google.golang.org/grpc@v1.27.1/server.go:1313 +0xd34
google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc000378230, 0xc000782c00, 0x148f860, 0xc000783c80, 0xc000ba8000)
	google.golang.org/grpc@v1.27.1/server.go:722 +0xa5
created by google.golang.org/grpc.(*Server).serveStreams.func1
	google.golang.org/grpc@v1.27.1/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.

@Schluggi
Copy link
Contributor

Schluggi commented Dec 3, 2021

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/terraform-plugin-sdk@v1.7.0/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/terraform-plugin-sdk@v1.7.0/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/terraform-plugin-sdk@v1.7.0/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/grpc@v1.27.1/server.go:1024 +0x522
google.golang.org/grpc.(*Server).handleStream(0xc00008ac00, 0x149a320, 0xc0006c2600, 0xc000660200, 0x0)
        google.golang.org/grpc@v1.27.1/server.go:1313 +0xd34
google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc0000b0190, 0xc00008ac00, 0x149a320, 0xc0006c2600, 0xc000660200)
        google.golang.org/grpc@v1.27.1/server.go:722 +0xa5
created by google.golang.org/grpc.(*Server).serveStreams.func1
        google.golang.org/grpc@v1.27.1/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.

@akhigan
Copy link

akhigan commented May 12, 2023

Is this one fixed?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants