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_log_analytics_solution: fix update & refactor to typed sdk #23333

Merged
merged 5 commits into from
Sep 21, 2023

Conversation

ziyeqf
Copy link
Contributor

@ziyeqf ziyeqf commented Sep 20, 2023

fix #23312

from the memory, we should not slipt the createUpdate function into two functions, which will break resources' lifecycle, if I'm wrong please let me know and I will update the code.

test

❯ tftest loganalytics TestAccLogAnalyticsSolution                               
=== RUN   TestAccLogAnalyticsSolution_basicContainerMonitoring
=== PAUSE TestAccLogAnalyticsSolution_basicContainerMonitoring
=== RUN   TestAccLogAnalyticsSolution_update
=== PAUSE TestAccLogAnalyticsSolution_update
=== RUN   TestAccLogAnalyticsSolution_requiresImport
=== PAUSE TestAccLogAnalyticsSolution_requiresImport
=== RUN   TestAccLogAnalyticsSolution_basicSecurity
=== PAUSE TestAccLogAnalyticsSolution_basicSecurity
=== CONT  TestAccLogAnalyticsSolution_basicContainerMonitoring
=== CONT  TestAccLogAnalyticsSolution_requiresImport
=== CONT  TestAccLogAnalyticsSolution_basicSecurity
=== CONT  TestAccLogAnalyticsSolution_update
--- PASS: TestAccLogAnalyticsSolution_basicContainerMonitoring (222.62s)
--- PASS: TestAccLogAnalyticsSolution_requiresImport (228.58s)
--- PASS: TestAccLogAnalyticsSolution_basicSecurity (237.80s)
--- PASS: TestAccLogAnalyticsSolution_update (271.83s)

Copy link
Member

@stephybun stephybun left a comment

Choose a reason for hiding this comment

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

@ziyeqf even though this fixes the issue we are actively moving towards split Create/Update methods for all resources. Can you please split them completely instead of reverting to a legacy pattern or elaborate one what the issue with the lifecycle was?

@ziyeqf ziyeqf changed the title azurerm_log_analytics_solution: add a test for update azurerm_log_analytics_solution: fix update Sep 20, 2023
@ziyeqf ziyeqf changed the title azurerm_log_analytics_solution: fix update azurerm_log_analytics_solution: fix update & refactor to typed sdk Sep 20, 2023
@github-actions github-actions bot added size/XL and removed size/M labels Sep 20, 2023
@ziyeqf
Copy link
Contributor Author

ziyeqf commented Sep 20, 2023

@ziyeqf even though this fixes the issue we are actively moving towards split Create/Update methods for all resources. Can you please split them completely instead of reverting to a legacy pattern or elaborate one what the issue with the lifecycle was?

code updated. the test is here:

❯ tftest loganalytics TestAccLogAnalyticsSolution
=== RUN   TestAccLogAnalyticsSolution_basicContainerMonitoring
=== PAUSE TestAccLogAnalyticsSolution_basicContainerMonitoring
=== RUN   TestAccLogAnalyticsSolution_update
=== PAUSE TestAccLogAnalyticsSolution_update
=== RUN   TestAccLogAnalyticsSolution_requiresImport
=== PAUSE TestAccLogAnalyticsSolution_requiresImport
=== RUN   TestAccLogAnalyticsSolution_basicSecurity
=== PAUSE TestAccLogAnalyticsSolution_basicSecurity
=== CONT  TestAccLogAnalyticsSolution_basicContainerMonitoring
=== CONT  TestAccLogAnalyticsSolution_requiresImport
=== CONT  TestAccLogAnalyticsSolution_basicSecurity
=== CONT  TestAccLogAnalyticsSolution_update
--- PASS: TestAccLogAnalyticsSolution_basicSecurity (208.32s)
--- PASS: TestAccLogAnalyticsSolution_requiresImport (245.45s)
--- PASS: TestAccLogAnalyticsSolution_basicContainerMonitoring (261.45s)
--- PASS: TestAccLogAnalyticsSolution_update (301.09s)
PASS
ok      github.com/hashicorp/terraform-provider-azurerm/internal/services/loganalytics  301.151s

And, the "lifecycle" memory, I'm not sure where it come from..

Copy link
Member

@stephybun stephybun left a comment

Choose a reason for hiding this comment

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

@ziyeqf thanks for converting this over to a typed resource as well as splitting the Create/Update. One issue though is that we can't just remove state migrations since they become a permanent component of a resource. You can use the StateUpgraders method to add them for typed resources.


return nil
payload := solution.SolutionPatch{
Copy link
Member

Choose a reason for hiding this comment

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

We should use metadata.ResourceData.HasChange on tags here.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

tag is the only property could be changed, I'm considering HasChange() will alwasy return true? or the update func will not be called.

Copy link
Member

Choose a reason for hiding this comment

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

We still need to call HasChange on the property for ignore_changes to work on it.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

got it

Signed-off-by: ziyeqf <[email protected]>
@stephybun stephybun added the bug label Sep 21, 2023
Copy link
Member

@stephybun stephybun left a comment

Choose a reason for hiding this comment

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

Thanks @ziyeqf LGTM 👍

@stephybun stephybun merged commit 20847e8 into hashicorp:main Sep 21, 2023
23 checks passed
@github-actions github-actions bot added this to the v3.74.0 milestone Sep 21, 2023
stephybun added a commit that referenced this pull request Sep 21, 2023
dduportal added a commit to jenkins-infra/azure that referenced this pull request Oct 16, 2023
<Actions>
<action
id="4a39167e811ac038e4a588362092472c27cfbe9e4929ae61d035f708a093a669">
        <h3>Bump Terraform `azurerm` provider version</h3>
<details
id="1d9343c012f5434ac9fe8a98135bae3667b399259be16d9b14302ea3bd424a24">
            <summary>Update Terraform lock file</summary>
<p>&#34;hashicorp/azurerm&#34; updated from &#34;3.74.0&#34; to
&#34;3.75.0&#34; in file &#34;.terraform.lock.hcl&#34;</p>
            <details>
                <summary>3.75.0</summary>
<pre>Changelog retrieved
from:&#xA;&#x9;https://github.com/hashicorp/terraform-provider-azurerm/releases/tag/v3.75.0&#xA;FEATURES:&#xA;&#xA;*
New Resource: `azurerm_application_load_balancer`
([#22517](hashicorp/terraform-provider-azurerm#22517
New Resource: `azurerm_resource_management_private_link`
([#23098](https://github.com/hashicorp/terraform-provider-azurerm/issues/23098))&#xA;&#xA;ENHANCEMENTS:&#xA;&#xA;*
dependencies: `firewall` migrated to `hashicorp/go-azure-sdk`
([#22863](hashicorp/terraform-provider-azurerm#22863
`azurerm_bot_service_azure_bot` - add support for the `icon_url`
property
([#23114](hashicorp/terraform-provider-azurerm#23114
`azurerm_cognitive_deployment` - `capacity` property is now updateable
([#23251](hashicorp/terraform-provider-azurerm#23251
`azurerm_container_group` - added support for
`key_vault_user_identity_id`
([#23332](hashicorp/terraform-provider-azurerm#23332
`azurerm_data_factory` - added support for the `publish_enabled`
property
([#2334](hashicorp/terraform-provider-azurerm#2334
`azurerm_firewall_policy_rule_collection_group` - add support for the
`description` property
([#23354](hashicorp/terraform-provider-azurerm#23354
`azurerm_kubernetes_cluster` - `network_profile.network_policy` can be
migrated to `cilium`
([#23342](hashicorp/terraform-provider-azurerm#23342
`azurerm_log_analytics_workspace` - add support for the
`data_collection_rule_id` property
([#23347](hashicorp/terraform-provider-azurerm#23347
`azurerm_mysql_flexible_server` - add support for the
`io_scaling_enabled` property
([#23329](https://github.com/hashicorp/terraform-provider-azurerm/issues/23329))&#xA;&#xA;BUG
FIXES:&#xA;&#xA;* `azurerm_api_management_api` - fix importing `openapi`
format content file issue
([#23348](hashicorp/terraform-provider-azurerm#23348
`azurerm_cdn_frontdoor_rule` - allow a `cache_duration` of `00:00:00`
([#23384](hashicorp/terraform-provider-azurerm#23384
`azurerm_cosmosdb_cassandra_datacenter` - `sku_name` is now updatable
([#23419](hashicorp/terraform-provider-azurerm#23419
`azurerm_key_vault_certificate` - fix a bug that prevented soft-deleted
certificates from being recovered
([#23204](hashicorp/terraform-provider-azurerm#23204
`azurerm_log_analytics_solution` - fix create and update lifecycle of
resource by splitting methods
([#23333](hashicorp/terraform-provider-azurerm#23333
`azurerm_management_group_subscription_association` - mark resource as
gone correctly if not found when retrieving
([#23335](hashicorp/terraform-provider-azurerm#23335
`azurerm_management_lock` - add polling after create and delete to check
for RP propagation
([#23345](hashicorp/terraform-provider-azurerm#23345
`azurerm_monitor_diagnostic_setting` - added validation to ensure at
least one of `category` or `category_group` is supplied
([#23308](hashicorp/terraform-provider-azurerm#23308
`azurerm_palo_alto_local_rulestack_prefix_list` - fix rulestack not
being committed on delete
([#23362](hashicorp/terraform-provider-azurerm#23362
`azurerm_palo_alto_local_rulestack_fqdn_list` - fix rulestack not being
committed on delete
([#23362](hashicorp/terraform-provider-azurerm#23362
`security_center_subscription_pricing_resource` - disabled extensions
logic now works as expected
([#22997](https://github.com/hashicorp/terraform-provider-azurerm/issues/22997))&#xA;&#xA;&#xA;&#xA;</pre>
            </details>
            <details>
                <summary>3.76.0</summary>
<pre>Changelog retrieved
from:&#xA;&#x9;https://github.com/hashicorp/terraform-provider-azurerm/releases/tag/v3.76.0&#xA;FEATURES:&#xA;&#xA;*
New Resource: `azurerm_security_center_storage_defender`
([#23242](hashicorp/terraform-provider-azurerm#23242
New Resource:
`azurerm_spring_cloud_application_insights_application_performance_monitoring`
([#23107](https://github.com/hashicorp/terraform-provider-azurerm/issues/23107))&#xA;&#xA;ENHANCEMENTS:&#xA;&#xA;*
provider: updating to build using Go `1.21.3`
([#23514](hashicorp/terraform-provider-azurerm#23514
provider: the `roll_instances_when_required` provider feature in the
`virtual_machine_scale_set` block is now optional
([#22976](hashicorp/terraform-provider-azurerm#22976
dependencies: updating to `v0.20231012.1141427` of
`github.com/hashicorp/go-azure-sdk`
([#23534](hashicorp/terraform-provider-azurerm#23534
Data Source: `azurerm_application_gateway` - support for
`backend_http_settings`, `global`, `gateway_ip_configuration` and
additional attributes
([#23318](hashicorp/terraform-provider-azurerm#23318
Data Source: `azurerm_network_service_tags` - export the `name`
attribute
([#23382](hashicorp/terraform-provider-azurerm#23382
`azurerm_cosmosdb_postgresql_cluster` - add support for `sql_version` of
`16` and `citus_version` of `12.1`
([#23476](hashicorp/terraform-provider-azurerm#23476
`azurerm_palo_alto_local_rulestack` - correctly normalize the `location`
property
([#23483](hashicorp/terraform-provider-azurerm#23483
`azurerm_static_site` - add support for `app_settings`
([#23421](https://github.com/hashicorp/terraform-provider-azurerm/issues/23421))&#xA;&#xA;BUG
FIXES:&#xA;&#xA;* `azurerm_automation_schedule` - fix a bug when
updating `start_time`
([#23494](hashicorp/terraform-provider-azurerm#23494
`azurerm_eventhub` - remove ForceNew and check `partition_count` is not
decreased
([#23499](hashicorp/terraform-provider-azurerm#23499
`azurerm_managed_lustre_file_system` - update validation for
`storage_capacity_in_tb` according to `sku_name` in use
([#23428](hashicorp/terraform-provider-azurerm#23428
`azurerm_virtual_machine` - fix a crash when the API response for the
`os_profile` block contains nil properties
([#23535](https://github.com/hashicorp/terraform-provider-azurerm/issues/23535))&#xA;&#xA;&#xA;</pre>
            </details>
        </details>
    </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) <[email protected]>
Co-authored-by: Damien Duportal <[email protected]>
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 May 13, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

azurerm_log_analytics_solution unexpected status 200 with response: {"plan":{"name": . . .
2 participants