HewlettPackard / oneview-puppet

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
https://forge.puppet.com/hewlettpackard/oneview
Apache License 2.0
8 stars 17 forks source link

Failing to create a oneview_network_set with real networkUris #332

Closed riconem closed 3 years ago

riconem commented 3 years ago

Scenario/Intent

Creating a oneview_network_set resource with real networkUris.

Environment Details

Steps to Reproduce

Create a oneview_network_set resource with the following parameters. Its important to have real uris in the networkUris parameter.

oneviewconf::oneview::ethernet_networks:
  VLAN2001_TEST:
    ensure: present
    data:
      name: VLAN2001_TEST
      vlanId: 2001
      privateNetwork: false
      smartLink: false
      purpose: General
      ethernetNetworkType: Tagged
  VLAN2002_TEST:
    ensure: present
    data:
      name: VLAN2002_TEST
      vlanId: 2002
      privateNetwork: false
      smartLink: false
      purpose: General
      ethernetNetworkType: Tagged
  VLAN2003_TEST:
    ensure: present
    data:
      name: VLAN2003_TEST
      vlanId: 2003
      privateNetwork: false
      smartLink: false
      purpose: General
      ethernetNetworkType: Tagged

#require: Oneview_ethernet_network[VLAN2001_TEST, VLAN2002_TEST, VLAN2003_TEST]
oneviewconf::oneview::network_sets:
  Network_set_TEST_01:
    ensure: present
    data:
      name: Network_set_TEST_01
      networkUris:
      - '/rest/ethernet-networks/74474f3f-0395-49ee-b9d2-b2b8f691c2e3'
      - VLAN2002_TEST
      - VLAN2003_TEST

Expected Result

Creating a oneview_network_set resource with networkUris.

Actual Result

Error: /Stage[main]/Oneviewconf::Oneview/Oneview_network_set[Network_set_TEST_01]: Could not evaluate: The network Network_set_TEST_01 does not exist.

Quickfix

Inside of the oneview_network_set provider Puppet tries to find an URI for the name parameter when a real uri is inside the networkUris Array. https://github.com/HewlettPackard/oneview-puppet/blob/0cc202afbce805a0b37fd3b7d7568249d1f23828/lib/puppet/provider/oneview_network_set/c7000.rb#L54

Fix

      if item.to_s[0..6].include?('/rest/')
        net = OneviewSDK.resource_named(:EthernetNetwork, api_version, resource_variant).find_by(@client, uri: item)
      else
        net = OneviewSDK.resource_named(:EthernetNetwork, api_version, resource_variant).find_by(@client, name: item)
      end
VenkateshRavula commented 3 years ago

This SDK has limited support and will not be actively developed for the foreseeable future.