CiscoDevNet / terraform-provider-intersight

Cisco Intersight Terraform
Mozilla Public License 2.0
19 stars 26 forks source link

[ISSUE] function to handle "Firmware Policies" missing #240

Closed heitmanr closed 1 month ago

heitmanr commented 1 year ago
Description

I want to create a Firmware-Policy which will get used in an Service-Profile-Template.

both ressource- and datasource-objects seem to be missing in the provider

Terraform-provider-intersight version

current (1.0.35)

API call exists

api/v1/firmware/Policies

API not in use.
C:\RH\Downloads\terraform-provider-intersight-main\intersight_gosdk>egrep "\/api\/v1\/firmware" *.go
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/BiosDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/BoardControllerDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/ChassisUpgrades"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/CimcDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DimmDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/Distributables"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DriveDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DriverDistributables"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/Eulas"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/GpuDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/HbaDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/IomDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/MswitchDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/NxosDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/PcieDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/PsuDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/SasExpanderDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/ServerConfigurationUtilityDistributables"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/StorageControllerDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/SwitchUpgrades"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/UnsupportedVersionUpgrades"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/Upgrades"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/UpgradeImpacts"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/UpgradeValidities"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/BiosDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/BoardControllerDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/ChassisUpgrades/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/CimcDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DimmDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/Distributables/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DriveDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DriverDistributables/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/GpuDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/HbaDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/IomDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/MswitchDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/NxosDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/PcieDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/PsuDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/SasExpanderDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/ServerConfigurationUtilityDistributables/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/StorageControllerDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/SwitchUpgrades/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/UnsupportedVersionUpgrades/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/Upgrades/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/BiosDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/BiosDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/BoardControllerDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/BoardControllerDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/ChassisUpgrades/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/ChassisUpgrades"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/CimcDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/CimcDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DimmDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DimmDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/Distributables/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/Distributables"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DistributableMeta/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DistributableMeta"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DriveDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DriveDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DriverDistributables/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DriverDistributables"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/Eulas/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/Eulas"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/FirmwareSummaries/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/FirmwareSummaries"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/GpuDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/GpuDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/HbaDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/HbaDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/IomDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/IomDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/MswitchDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/MswitchDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/NxosDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/NxosDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/PcieDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/PcieDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/PsuDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/PsuDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/RunningFirmwares/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/RunningFirmwares"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/SasExpanderDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/SasExpanderDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/ServerConfigurationUtilityDistributables/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/ServerConfigurationUtilityDistributables"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/StorageControllerDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/StorageControllerDescriptors"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/SwitchUpgrades/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/SwitchUpgrades"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/UnsupportedVersionUpgrades/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/UnsupportedVersionUpgrades"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/Upgrades/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/UpgradeImpactStatuses/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/UpgradeImpactStatuses"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/Upgrades"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/UpgradeStatuses/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/UpgradeStatuses"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/BiosDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/BoardControllerDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/CimcDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DimmDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/Distributables/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DriveDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DriverDistributables/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/GpuDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/HbaDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/IomDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/MswitchDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/NxosDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/PcieDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/PsuDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/RunningFirmwares/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/SasExpanderDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/ServerConfigurationUtilityDistributables/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/StorageControllerDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/UnsupportedVersionUpgrades/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/Upgrades/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/BiosDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/BoardControllerDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/CimcDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DimmDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/Distributables/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DriveDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/DriverDistributables/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/GpuDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/HbaDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/IomDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/MswitchDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/NxosDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/PcieDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/PsuDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/RunningFirmwares/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/SasExpanderDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/ServerConfigurationUtilityDistributables/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/StorageControllerDescriptors/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/UnsupportedVersionUpgrades/{Moid}"
api_firmware.go:        localVarPath := localBasePath + "/api/v1/firmware/Upgrades/{Moid}"
C:\RH\Downloads\terraform-provider-intersight-main\intersight_gosdk>egrep "\/api\/v1\/firmware\/Policies" *.go
<...no match...>
scotttyso commented 9 months ago

@heitmar - I recommend using policy buckets under the server profile for this

policy_bucket { moid = object_type = "firmware.Policy" }

If this answers your question please close this request. We collectively recommended to engineering that policy_bucket is a more efficient way to attach policies, versus associating profiles to policies.

the-akhil-nair commented 1 month ago

Thanks for reaching out to us. Both resource- and datasource-objects are present in the latest intersight terraform provider(1.0.54):

https://registry.terraform.io/providers/CiscoDevNet/intersight/latest/docs/resources/firmware_policy

Tried out with the following configuration and its working fine:

data "intersight_organization_organization" "organization" {
  name = "default"
}

resource "intersight_firmware_policy" "firmware_policy" {
  name             = "firmware_policy_1"
  target_platform  = "Standalone"
  model_bundle_combo {
    model_family   = "UCSC-C220-M7"
    bundle_version = "4.3(3.240043)"
  }
  organization {
    object_type = "organization.Organization"
    moid = data.intersight_organization_organization.organization.id
  }
}

Can you please try it out with latest provider and let us know if issue persists.