This project is no longer being developed and has limited support. In the near future this repository will be fully deprecated. Please consider using other OneView projects, such as Terraform and Ansible Collection
Notice: /Stage[main]/Oneviewconf::Oneview/Oneview_logical_interconnect_group[LIG_01]/ensure: created
Error: /Stage[main]/Oneviewconf::Oneview/Oneview_enclosure_group[Enclosure_Group_Example]: Could not evaluate: undefined method `[]' for nil:NilClass
Quick fix
The example worked for me in version v2.9.0. So the error must have come from new changes in v2.10.0.
In the oneview_enclosure_groupprovider were some changes. See the following.
lig_name = mapping_attr['logicalInterconnectGroupUri'] if mapping_attr['logicalInterconnectGroupUri']
lig = OneviewSDK.resource_named(:LogicalInterconnectGroup, api_version, resource_variant).find_by(@client, name: lig_name)
mapping_attr['logicalInterconnectGroupUri'] = lig.first['uri']
I printed out what the @data variable looks like at the beginning of the data_parse function in the oneview_enclosure_group provider. See the following.
{"name"=>"Enclosure_Group_Example",
"stackingMode"=>"Enclosure",
"interconnectBayMappingCount"=>2,
"enclosureCount"=>1,
"interconnectBayMappings"=>
[{"interconnectBay"=>3,
"logicalInterconnectGroupUri"=>
"/rest/logical-interconnect-groups/7b24e8c5-e4f8-429d-88f1-641dac2c5503"},
{"interconnectBay"=>6,
"logicalInterconnectGroupUri"=>
"/rest/logical-interconnect-groups/7b24e8c5-e4f8-429d-88f1-641dac2c5503"}]}
Error: /Stage[main]/Oneviewconf::Oneview/Oneview_enclosure_group[Enclosure_Group_Example]: Could not evaluate: undefined method `[]' for nil:NilClass
As you can see the parsing is already done and the data_parse function in the oneview_enclosure_group provider is not necessary. So I deleted that function completly and it worked. See the output.
Info: Performing create of EnclosureGroup Enclosure_Group_Example using the following data:
{
"name": "Enclosure_Group_Example",
"stackingMode": "Enclosure",
"interconnectBayMappingCount": 2,
"enclosureCount": 1,
"interconnectBayMappings": [
{
"interconnectBay": 3,
"logicalInterconnectGroupUri": "/rest/logical-interconnect-groups/7b24e8c5-e4f8-429d-88f1-641dac2c5503"
},
{
"interconnectBay": 6,
"logicalInterconnectGroupUri": "/rest/logical-interconnect-groups/7b24e8c5-e4f8-429d-88f1-641dac2c5503"
}
]
}.
Notice: /Stage[main]/Oneviewconf::Oneview/Oneview_enclosure_group[Enclosure_Group_Example]/ensure: created
Scenario/Intent
Trying to create a
oneview_enclosure_group
withinterconnectBayMappings
.Environment Details
Steps to Reproduce
Create a
oneview_enclosure_group
resource like in the examples.Expected Result
Creation of a
oneview_enclosure_group
resource.Actual Result
See Error Message:
Quick fix
The example worked for me in version v2.9.0. So the error must have come from new changes in v2.10.0. In the
oneview_enclosure_group
provider were some changes. See the following.This code tries to to parse the
logicalInterconnectGroupUri
parameter but this is already done in the parent provider. https://github.com/HewlettPackard/oneview-puppet/blob/9adeeacb0d333864b75946fb88c76a732251090c/lib/puppet/provider/oneview_resource.rb#L68I printed out what the
@data
variable looks like at the beginning of thedata_parse
function in theoneview_enclosure_group
provider. See the following.As you can see the parsing is already done and the
data_parse
function in theoneview_enclosure_group
provider is not necessary. So I deleted that function completly and it worked. See the output.