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

azurerm_recovery_services_vault: upgrade sdk version to 2024-01-01 #25325

Merged

Conversation

ziyeqf
Copy link
Contributor

@ziyeqf ziyeqf commented Mar 20, 2024

Community Note

  • Please vote on this PR by adding a 👍 reaction to the original PR to help the community and maintainers prioritize for review
  • Please do not leave "+1" or "me too" comments, they generate extra noise for PR followers and do not help prioritize for review

Description

  1. azurerm_recovery_services_vault - upgrade SDK version (API version) from 2022-10-01 to 2024-0101
  2. cross_region_restore_enabled and storage_mode_type requires a seprated client to set/update, but now it could be updated with the same client.
  3. encryption used to requiring an additional update and cannot be set/update during creationg, but now it could.

PR Checklist

  • I have followed the guidelines in our Contributing Documentation.
  • I have checked to ensure there aren't other open Pull Requests for the same update/change.
  • I have checked if my changes close any open issues. If so please include appropriate closing keywords below.
  • I have updated/added Documentation as required written in a helpful and kind way to assist users that may be unfamiliar with the resource / data source.
  • I have used a meaningful PR title to help maintainers and other users understand this change and help prevent duplicate work.
    For example: “resource_name_here - description of change e.g. adding property new_property_name_here

Changes to existing Resource / Data Source

  • I have added an explanation of what my changes do and why I'd like you to include them (This may be covered by linking to an issue above, but may benefit from additional explanation).
  • I have written new tests for my resource or datasource changes & updated any relevent documentation.
  • I have successfully run tests with my changes locally. If not, please provide details on testing challenges that prevented you running the tests.
  • (For changes that include a state migration only). I have manually tested the migration path between relevant versions of the provider.

Testing

  • My submission includes Test coverage as described in the Contribution Guide and the tests pass. (if this is not possible for any reason, please include details of why you did or could not add test coverage)
image

Change Log

Below please provide what should go into the changelog (if anything) conforming to the Changelog Format documented here.

This is a (please select all that apply):

  • Bug Fix
  • New Feature (ie adding a service, resource, or data source)
  • Enhancement
  • Breaking Change

Related Issue(s)

Fixes #25228

Note

If this PR changes meaningfully during the course of review please update the title and description as required.

@github-actions github-actions bot added size/XL and removed size/L labels Mar 20, 2024
@ziyeqf ziyeqf marked this pull request as ready for review March 20, 2024 08:28
Copy link
Contributor

@tombuildsstuff tombuildsstuff left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ziyeqf looks like we've removed a lot of retry related logic here but I can't see any explanation of why - what testing's been done to validate this polling logic is safe to remove?

SubscriptionId: id.SubscriptionId,
ResourceGroupName: id.ResourceGroupName,
VaultName: id.VaultName,
}
cfgId := backupresourcevaultconfigs.VaultId{
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I realise this code was already present in the Provider, but can we fix this to use the New method?

Suggested change
cfgId := backupresourcevaultconfigs.VaultId{
cfgId := backupresourcevaultconfigs.NewVaultID(

Comment on lines 242 to 247
CrossRegionRestore: pointer.To(func() vaults.CrossRegionRestore {
if d.Get("cross_region_restore_enabled").(bool) {
return vaults.CrossRegionRestoreEnabled
}
return vaults.CrossRegionRestoreDisabled
}()),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we make this a variable above rather than a function

Comment on lines 507 to 512
CrossRegionRestore: pointer.To(func() vaults.CrossRegionRestore {
if crossRegionRestore {
return vaults.CrossRegionRestoreEnabled
}
return vaults.CrossRegionRestoreDisabled
}()),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(same here) can we use variables for this

SubscriptionId: id.SubscriptionId,
ResourceGroupName: id.ResourceGroupName,
VaultName: id.VaultName,
}
cfgId := backupresourcevaultconfigs.VaultId{
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(as above)

Comment on lines 616 to 618
if prop.PublicNetworkAccess != nil {
d.Set("public_network_access_enabled", flattenRecoveryServicesVaultPublicNetworkAccess(model.Properties.PublicNetworkAccess))
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Flatten function should handle this value being nil and set an appropriate default value (e.g. false) else this is going to be null meaning users won't be able to interpolate the value

Comment on lines 620 to 622
if prop.MonitoringSettings != nil {
d.Set("monitoring", flattenRecoveryServicesVaultMonitorSettings(*model.Properties.MonitoringSettings))
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Flatten function should handle this value being nil and set an appropriate default value (e.g. false) else this is going to be null meaning users won't be able to interpolate the value

@ziyeqf
Copy link
Contributor Author

ziyeqf commented Mar 21, 2024

image

@rcskosir
Copy link
Contributor

@ziyeqf 👋 Thank you for using our new PR template! Can you please include a brief description of what this PR does under the Description heading? This will help future users understand what changed in the code from this PR, thanks!

Copy link
Collaborator

@katbyte katbyte left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 🚜

@katbyte katbyte merged commit fa579fe into hashicorp:main Mar 26, 2024
30 checks passed
@github-actions github-actions bot added this to the v3.98.0 milestone Mar 26, 2024
katbyte added a commit that referenced this pull request Mar 26, 2024
dduportal pushed a commit to jenkins-infra/azure that referenced this pull request Apr 5, 2024
<Actions>
<action
id="f410411e63aff4bb73a81c2aec1d373cf8a903e63b30dee2006b0030d8a94cc8">
        <h3>Bump Terraform `azurerm` provider version</h3>
<details
id="1d9343c012f5434ac9fe8a98135bae3667b399259be16d9b14302ea3bd424a24">
            <summary>Update Terraform lock file</summary>
<p>changes detected:&#xA;&#x9;&#34;hashicorp/azurerm&#34; updated from
&#34;3.97.1&#34; to &#34;3.98.0&#34; in file
&#34;.terraform.lock.hcl&#34;</p>
            <details>
                <summary>3.98.0</summary>
<pre>Changelog retrieved
from:&#xA;&#x9;https://github.com/hashicorp/terraform-provider-azurerm/releases/tag/v3.98.0&#xA;FEATURES:&#xA;&#xA;*
New Resource: `azurerm_static_web_app_function_app_registration`
([#25331](hashicorp/terraform-provider-azurerm#25331
New Resource:
`azurerm_system_center_virtual_machine_manager_inventory_items`
([#25110](hashicorp/terraform-provider-azurerm#25110
New Resource: `azurerm_workloads_sap_discovery_virtual_instance`
([#24342](hashicorp/terraform-provider-azurerm#24342
New Resource: `azurerm_redis_cache_policy`
([#25477](hashicorp/terraform-provider-azurerm#25477
New Resource: `azurerm_redis_cache_policy_assignment`
([#25477](https://github.com/hashicorp/terraform-provider-azurerm/issues/25477))&#xA;&#xA;ENHANCEMENTS:&#xA;&#xA;*
dependencies: updating to `v0.20240402.1085733` of
`github.com/hashicorp/go-azure-sdk`
([#25482](hashicorp/terraform-provider-azurerm#25482
dependencies: updating to `v0.67.0` of
`github.com/hashicorp/go-azure-helpers`
([#25446](hashicorp/terraform-provider-azurerm#25446
dependencies: updating to `v0.25.4` of
`github.com/tombuildsstuff/giovanni`
([#25404](hashicorp/terraform-provider-azurerm#25404
`alertsmanagement` - updating remaining resources to use
`hashicorp/go-azure-sdk`
([#25486](hashicorp/terraform-provider-azurerm#25486
`applicationinsights` - updating remaining resources to use
`hashicorp/go-azure-sdk`
([#25376](hashicorp/terraform-provider-azurerm#25376
`compute` - update to API version `2024-03-01`
([#25436](hashicorp/terraform-provider-azurerm#25436
`compute` - update shared image resources and data sources to use
`hashicorp/go-azure-sdk`
([#25503](hashicorp/terraform-provider-azurerm#25503
`containerinstance` - update to use the transport layer from
`hashicorp/go-azure-sdk` rather than `Azure/go-autorest`
([#25416](hashicorp/terraform-provider-azurerm#25416
`maintenance` - updating to API Version `2023-04-01`
([#25388](hashicorp/terraform-provider-azurerm#25388
`recovery_services` - Add `recovery_service` block to the provider that
supports `vm_backup_stop_protection_and_retain_data_on_destroy` and
`purge_protected_items_from_vault_on_destroy`([#25515](hashicorp/terraform-provider-azurerm#25515
`storage` - the Storage Account cache is now populated using
`hashicorp/go-azure-sdk`
([#25437](hashicorp/terraform-provider-azurerm#25437
`azurerm_bot_service_azure_bot` - support for the
`cmk_key_vault_key_url` property
([#23640](hashicorp/terraform-provider-azurerm#23640
`azurerm_capacity_reservation` - update validation for `capacity`
([#25471](hashicorp/terraform-provider-azurerm#25471
`azurerm_container_app` - add support for `key_vault_id` and `identity`
properties in the `secret` block
([#24773](hashicorp/terraform-provider-azurerm#24773
`azurerm_databricks_workspace` - expose
`managed_services_cmk_key_vault_id` and `managed_disk_cmk_key_vault_id
and key_vault_id` to support cross subscription CMK&#39;s.
([#25091](hashicorp/terraform-provider-azurerm#25091
`azurerm_databricks_workspace_root_dbfs_customer_managed_key` - expose
`key_vault_id` to support cross subscription CMK&#39;s.
([#25091](hashicorp/terraform-provider-azurerm#25091
`azurerm_managed_hsm_role_*_ids` - use specific resource id to replace
generic nested item id
([#25323](hashicorp/terraform-provider-azurerm#25323
`azurerm_mssql_database` - add support for `secondary_type`
([#25360](hashicorp/terraform-provider-azurerm#25360
`azurerm_monitor_scheduled_query_rules_alert_v2` - support for the
`identity` block
([#25365](hashicorp/terraform-provider-azurerm#25365
`azurerm_mssql_server_extended_auditing_policy` - support for
`audit_actions_and_groups` and `predicate_expression`
([#25425](hashicorp/terraform-provider-azurerm#25425
`azurerm_netapp_account` - can now be imported
([#25384](hashicorp/terraform-provider-azurerm#25384
`azurerm_netapp_volume` - support for the `kerberos_enabled`,
`smb_continuous_availability_enabled`, `kerberos_5_read_only_enabled`,
`kerberos_5_read_write_enabled`, `kerberos_5i_read_only_enabled`,
`kerberos_5i_read_write_enabled`, `kerberos_5p_read_only_enabled`, and
`kerberos_5p_read_write_enabled` properties
([#25385](hashicorp/terraform-provider-azurerm#25385
`azurerm_recovery_services_vault` - upgrading to version `2024-01-01`
([#25325](hashicorp/terraform-provider-azurerm#25325
`azurerm_stack_hci_cluster` - the `client_id` property is now optional
([#25407](hashicorp/terraform-provider-azurerm#25407
`azurerm_storage_encryption_scope` - refactoring to use
`hashicorp/go-azure-sdk` rather than `Azure/azure-sdk-for-go`
([#25437](hashicorp/terraform-provider-azurerm#25437
`azurerm_mssql_elasticpool` - the `maintenance_configuration_name`
property now supports values `SQL_SouthAfricaNorth_DB_1`,
`SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1` and `SQL_WestUS3_DB_2`
([#25500](hashicorp/terraform-provider-azurerm#25500
`azurerm_lighthouse_assignment` - updating API Version from `2019-06-01`
to `2022-10-01`
([#25473](https://github.com/hashicorp/terraform-provider-azurerm/issues/25473))&#xA;&#xA;BUG
FIXES:&#xA;&#xA;* `network` - updating the `GatewaySubnet` validation to
show the Subnet Name when the validation fails
([#25484](hashicorp/terraform-provider-azurerm#25484
`azurerm_function_app_hybrid_connection` - fix an issue during creation
when `send_key_name` is specified
([#25379](hashicorp/terraform-provider-azurerm#25379
`azurerm_linux_web_app_slot` - fix a crash when upgrading the provider
to v3.88.0 or later
([#25406](hashicorp/terraform-provider-azurerm#25406
`azurerm_mssql_database` - update the behavior of the `enclave_type`
field.
([#25508](hashicorp/terraform-provider-azurerm#25508
`azurerm_mssql_elasticpool` - update the behavior of the `enclave_type`
field.
([#25508](hashicorp/terraform-provider-azurerm#25508
`azurerm_network_manager_deployment` - add locking
([#25368](hashicorp/terraform-provider-azurerm#25368
`azurerm_resource_group_template_deployment` - changes to
`parameters_content` and `template_content` now force `output_content`
to be updated in the plan
([#25403](hashicorp/terraform-provider-azurerm#25403
`azurerm_storage_blob` - fix a potential crash when the endpoint is
unreachable
([#25404](hashicorp/terraform-provider-azurerm#25404
`azurerm_storage_container` - fix a potential crash when the endpoint is
unreachable
([#25404](hashicorp/terraform-provider-azurerm#25404
`azurerm_storage_data_lake_gen2_filesystem` - fix a potential crash when
the endpoint is unreachable
([#25404](hashicorp/terraform-provider-azurerm#25404
`azurerm_storage_data_lake_gen2_filesystem_path` - fix a potential crash
when the endpoint is unreachable
([#25404](hashicorp/terraform-provider-azurerm#25404
`azurerm_storage_queue` - fix a potential crash when the endpoint is
unreachable
([#25404](hashicorp/terraform-provider-azurerm#25404
`azurerm_storage_share` - fix a potential crash when the endpoint is
unreachable
([#25404](hashicorp/terraform-provider-azurerm#25404
`azurerm_storage_share_directory` - fix a potential crash when the
endpoint is unreachable
([#25404](hashicorp/terraform-provider-azurerm#25404
`azurerm_storage_share_directory` - resolve an issue where directories
might fail to destroy
([#25404](hashicorp/terraform-provider-azurerm#25404
`azurerm_storage_share_file` - fix a potential crash when the endpoint
is unreachable
([#25404](hashicorp/terraform-provider-azurerm#25404
`azurerm_storage_share_file` - fix several bugs with path handling when
creating files in subdirectories
([#25404](hashicorp/terraform-provider-azurerm#25404
`azurerm_web_app_hybrid_connection` - fix an issue during creation when
`send_key_name` is specified
([#25379](hashicorp/terraform-provider-azurerm#25379
`azurerm_windows_web_app` - prevent a panic during resource upgrade
([#25509](https://github.com/hashicorp/terraform-provider-azurerm/issues/25509))&#xA;&#xA;&#xA;</pre>
            </details>
        </details>
<a
href="https://infra.ci.jenkins.io/job/updatecli/job/azure/job/main/88/">Jenkins
pipeline link</a>
    </action>
</Actions>

---

<table>
  <tr>
    <td width="77">
<img src="https://www.updatecli.io/images/updatecli.png" alt="Updatecli
logo" width="50" height="50">
    </td>
    <td>
      <p>
Created automatically by <a
href="https://www.updatecli.io/">Updatecli</a>
      </p>
      <details><summary>Options:</summary>
        <br />
<p>Most of Updatecli configuration is done via <a
href="https://www.updatecli.io/docs/prologue/quick-start/">its
manifest(s)</a>.</p>
        <ul>
<li>If you close this pull request, Updatecli will automatically reopen
it, the next time it runs.</li>
<li>If you close this pull request and delete the base branch, Updatecli
will automatically recreate it, erasing all previous commits made.</li>
        </ul>
        <p>
Feel free to report any issues at <a
href="https://github.com/updatecli/updatecli/issues">github.com/updatecli/updatecli</a>.<br
/>
If you find this tool useful, do not hesitate to star <a
href="https://github.com/updatecli/updatecli/stargazers">our GitHub
repository</a> as a sign of appreciation, and/or to tell us directly on
our <a
href="https://matrix.to/#/#Updatecli_community:gitter.im">chat</a>!
        </p>
      </details>
    </td>
  </tr>
</table>

Co-authored-by: Jenkins Infra Bot (updatecli) <60776566+jenkins-infra-bot@users.noreply.github.com>
Copy link

I'm going to lock this pull request because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active contributions.
If you have found a problem that seems related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Apr 26, 2024
@ziyeqf ziyeqf deleted the tengzh/feature/recovery_serices_sdk_upgrade branch April 29, 2024 02:54
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
4 participants