Skip to content

Adding Deployment Stacks cmdlet Implementations to Az.Resources #22019

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

Merged
merged 22 commits into from
Jun 22, 2023

Conversation

dantedallag
Copy link
Contributor

Description

Adding new Deployment Stack cmdlets to the Az.Resources module. These will enable Deployment Stacks Create, Update, Delete, and Retrieval through PowerShell.

Along with the implementation of these cmdlets, the checked-in code for the resource manager sdk client was updated to reflect required changes.

Link to most recent design review: https://github.com/Azure/azure-powershell-cmdlet-review-pr/issues/1298
Swagger for checked-in sdk: https://github.com/Azure/azure-rest-api-specs/blob/main/specification/resources/resource-manager/Microsoft.Resources/preview/2022-08-01-preview/deploymentStacks.json

Checklist

  • SHOULD select appropriate branch. Cmdlets from Autorest.PowerShell should go to generation branch.
  • SHOULD make the title of PR clear and informative, and in the present imperative tense.
  • SHOULD update ChangeLog.md file(s) appropriately
    • For any service, the ChangeLog.md file can be found at src/{{SERVICE}}/{{SERVICE}}/ChangeLog.md
    • A snippet outlining the change(s) made in the PR should be written under the ## Upcoming Release header in the past tense. Add changelog in description section if PR goes into generation branch.
    • Should not change ChangeLog.md if no new release is required, such as fixing test case only.
  • SHOULD have approved design review for the changes in this repository (Microsoft internal only) with following situations
    • Create new module from scratch
    • Create new resource types which are not easy to conform to Azure PowerShell Design Guidelines
    • Create new resource type which name doesn't use module name as prefix
    • Have design question before implementation
  • SHOULD regenerate markdown help files if there is cmdlet API change. Instruction
  • SHOULD have proper test coverage for changes in pull request.
  • SHOULD NOT introduce breaking changes in Az minor release except preview version.
  • SHOULD NOT adjust version of module manually in pull request

commit 2ae973a
Author: Dante Dalla Gasperina <[email protected]>
Date:   Fri Apr 21 15:58:48 2023 -0700

    changing up test templates to avoid RG deletes, halving execution time

commit dd4f283
Author: Dante Dalla Gasperina <[email protected]>
Date:   Thu Apr 20 14:06:19 2023 -0700

    updating scenario tests

commit 0e1d4bd
Author: Dante Dalla Gasperina <[email protected]>
Date:   Tue Apr 11 10:08:29 2023 -0700

    updated tests for required denysettings mode

commit 18e8df2
Author: Dante Dalla Gasperina <[email protected]>
Date:   Tue Apr 11 09:32:36 2023 -0700

    make DenySettingsMode required in new/set commands

commit 57f735f
Author: Dante Dalla Gasperina <[email protected]>
Date:   Thu Mar 23 10:27:15 2023 -0700

    revert test file

commit 01217c2
Author: Dante Dalla Gasperina <[email protected]>
Date:   Thu Mar 23 09:51:07 2023 -0700

    cleaning up snapsnot code and unused imports

commit 1c33c08
Author: Dante Dalla Gasperina <[email protected]>
Date:   Wed Mar 22 16:20:08 2023 -0700

    more cleanup of unintended changes

commit dc92cd1
Author: Dante Dalla Gasperina <[email protected]>
Date:   Wed Mar 22 15:59:38 2023 -0700

    add back placeholder in local folder

commit e09eb86
Author: Dante Dalla Gasperina <[email protected]>
Date:   Wed Mar 22 15:56:35 2023 -0700

    cleaning up powershell repo

commit 5ba8e31
Author: Gokul Premraj <[email protected]>
Date:   Mon Mar 20 15:04:20 2023 -0400

    Modify SDKClient constructor to be private

commit 38d8421
Author: Gokul Premraj <[email protected]>
Date:   Thu Mar 9 16:21:45 2023 -0500

    Enable verbose dpeloyment operation logging and make it best effort

commit 0380907
Author: Gokul Premraj <[email protected]>
Date:   Thu Oct 27 12:57:37 2022 -0400

    Poll deployment operations to ensure -Verbose parity with deployments cmdlets

commit 4e079f4
Author: Dante Dalla Gasperina <[email protected]>
Date:   Mon Feb 13 14:46:14 2023 -0800

    Fixed management group remove by id parameter set

commit 5d6a1a9
Author: Dante Dalla Gasperina <[email protected]>
Date:   Mon Feb 13 13:43:13 2023 -0800

    finalizing management group scenario testing

commit a65ba9b
Author: Dante Dalla Gasperina <[email protected]>
Date:   Wed Feb 8 14:45:39 2023 -0800

    updated resources ps1xml file

commit 8cbe578
Author: Dante Dalla Gasperina <[email protected]>
Date:   Wed Feb 1 13:48:18 2023 -0800

    adding resources view file changes

commit 187764d
Author: Dante Dalla Gasperina <[email protected]>
Date:   Wed Feb 1 13:46:52 2023 -0800

    changes for incremental release

commit b66a5fc
Author: Dante Dalla Gasperina <[email protected]>
Date:   Thu Jan 26 15:52:52 2023 -0800

    update tag view

commit 616f7fd
Author: Dante Dalla Gasperina <[email protected]>
Date:   Thu Jan 26 10:45:49 2023 -0800

    adding tags

commit c1bd480
Author: Dante Dalla Gasperina <[email protected]>
Date:   Thu Dec 29 11:58:25 2022 -0800

    adding marksdown files for stack commands

commit 24f41bb
Author: Dante Dalla Gasperina <[email protected]>
Date:   Wed Dec 14 15:44:49 2022 -0800

    Remove data plane actions from deny settings parameters

commit 96842f0
Author: Dante Dalla Gasperina <[email protected]>
Date:   Tue Dec 13 13:43:02 2022 -0800

    small test change

commit 61358aa
Author: Dante Dalla Gasperina <[email protected]>
Date:   Tue Dec 13 13:40:20 2022 -0800

    checking in session records for rg and sub stack tests

commit 35acd23
Author: Dante Dalla Gasperina <[email protected]>
Date:   Mon Dec 12 19:33:19 2022 -0800

    adjusting scenario tests

commit f786b99
Author: Dante Dalla Gasperina <[email protected]>
Date:   Mon Nov 28 16:20:45 2022 -0800

    working on final changes to commands

commit deb54e3
Author: Dante Dalla Gasperina <[email protected]>
Date:   Mon Nov 21 13:54:51 2022 -0800

    working on cmdlets

commit 27505b6
Author: Dante Dalla Gasperina <[email protected]>
Date:   Fri Nov 4 08:58:51 2022 -0700

    running/saving scenario test runs

commit a3fc9e7
Author: Dante Dalla Gasperina <[email protected]>
Date:   Wed Nov 2 11:46:36 2022 -0700

    working on testing and small bug fixes

commit 415c284
Author: Dante Dalla Gasperina <[email protected]>
Date:   Thu Oct 27 09:53:03 2022 -0700

    refactoring tests

commit 042bfe5
Author: Dante Dalla Gasperina <[email protected]>
Date:   Mon Oct 24 15:17:51 2022 -0700

    adjusted confirmation message in remove/new

commit 5dfe415
Author: Dante Dalla Gasperina <[email protected]>
Date:   Mon Oct 24 13:56:58 2022 -0700

    more work with bugbash fixes

commit 19febbc
Author: Dante Dalla Gasperina <[email protected]>
Date:   Wed Oct 12 21:37:15 2022 -0700

    Resolving bug bash issues

commit 0c7d8a1
Author: Dante Dalla Gasperina <[email protected]>
Date:   Thu Oct 6 15:51:54 2022 -0700

    working on refactor of DeploymentScope

commit f389059
Author: Dante Dalla Gasperina <[email protected]>
Date:   Wed Sep 28 12:38:19 2022 -0700

    Implementing rest of stacks commands and tests

commit dfaf63f
Author: Gokul Premraj <[email protected]>
Date:   Fri Sep 30 12:11:10 2022 -0400

    Test cases + fixed bicep function

commit 20c328a
Author: Gokul Premraj <[email protected]>
Date:   Wed Sep 28 14:05:14 2022 -0400

    Fixed broken DeploymentStackTests

commit 9ff034a
Merge: da5af36 0414344
Author: Gokul Premraj <[email protected]>
Date:   Wed Sep 28 14:01:36 2022 -0400

    Merge branch 'DeploymentStacks' of https://github.com/Xynoclafe/azure-powershell into DeploymentStacks

commit da5af36
Author: Gokul Premraj <[email protected]>
Date:   Wed Sep 28 11:33:45 2022 -0400

    Bicep support for DeploymentStacks

commit 0414344
Author: Dante Dalla Gasperina <[email protected]>
Date:   Wed Sep 28 08:22:03 2022 -0700

    more work on commands

commit 315809f
Author: Dante Dalla Gasperina <[email protected]>
Date:   Mon Sep 26 15:23:45 2022 -0700

    working on implementing commands

commit ca9a340
Merge: 8c8713e 0f22721
Author: Gokul Premraj <[email protected]>
Date:   Mon Sep 26 15:27:29 2022 -0400

    Merge branch 'main' of https://github.com/Azure/azure-powershell into DeploymentStacks

commit 6aff57e
Author: Dante Dalla Gasperina <[email protected]>
Date:   Wed Sep 21 15:57:00 2022 -0700

    initial work on new stacks api

commit 539efb8
Author: Harsh Patel <[email protected]>
Date:   Thu Jun 16 12:43:26 2022 -0400

    Updated module number to 9.0.2 for release

commit 3628d39
Author: Harsh Patel <[email protected]>
Date:   Wed May 4 12:00:28 2022 -0400

    Updated the moduleversion

commit 73375f6
Author: Harsh Patel <[email protected]>
Date:   Mon May 2 16:11:03 2022 -0400

    nit changes

commit 208a8cb
Author: Harsh Patel <[email protected]>
Date:   Mon May 2 15:46:12 2022 -0400

    New scenario tests

commit d491dda
Author: Harsh Patel <[email protected]>
Date:   Fri Apr 22 11:57:57 2022 -0400

    Fixed nit, 2 tests still failing

commit 8c814d7
Author: Harsh Patel <[email protected]>
Date:   Thu Apr 21 16:55:32 2022 -0400

    Stacks now outputs errors correctly, 2 tests failing

commit 8c8713e
Author: Gokul Premraj <[email protected]>
Date:   Thu Nov 11 19:23:58 2021 -0500

    Corrected Az.Resources manifest to include stacks cmdlets

commit cd0272d
Merge: b3db00c aa9d801
Author: Gokul Premraj <[email protected]>
Date:   Thu Nov 11 17:46:55 2021 -0500

    merge fixes

commit b3db00c
Author: Gokul Premraj <[email protected]>
Date:   Thu Nov 11 17:42:46 2021 -0500

    Added piping support and real time debug/verbose logs. Updated Version to avoid collision. Re-recorded tests

commit a5a72bd
Author: Gokul Premraj <[email protected]>
Date:   Tue Oct 19 16:12:50 2021 -0400

    Removed purge delete flag

commit 648a131
Author: Gokul Premraj <[email protected]>
Date:   Fri Oct 8 18:30:42 2021 -0400

    Parameter renames

commit bdc63c3
Author: Gokul Premraj <[email protected]>
Date:   Tue Sep 21 17:14:17 2021 -0400

    Updated error messages; Removed scope-less aliases; changed -Purge to -PurgeResources in Remove-Az* cmdlets

commit ea93530
Author: Gokul Premraj <[email protected]>
Date:   Wed Sep 15 17:46:18 2021 -0400

    Updated SDK to fix parsing of FailedResources and updated output formatting

commit 923e518
Author: Gokul Premraj <[email protected]>
Date:   Mon Sep 13 18:35:33 2021 -0400

    few parameter names changed, new parameter -TemplateParameterObject added and few other fixes

commit 15f8462
Author: Gokul Premraj <[email protected]>
Date:   Wed Sep 8 16:02:41 2021 -0400

    Change updateBehavior to enum

commit 878e38d
Merge: 2409dc4 e251542
Author: Gokul Premraj <[email protected]>
Date:   Tue Sep 7 13:00:32 2021 -0400

    merge upstream

commit 2409dc4
Author: Gokul Premraj <[email protected]>
Date:   Tue Sep 7 12:31:24 2021 -0400

    Fix API version used for polling cascade delete requests

commit ff198c3
Author: Gokul Premraj <[email protected]>
Date:   Tue Aug 24 16:43:14 2021 -0400

    Renamed some parameters

commit 89258a1
Author: Gokul Premraj <[email protected]>
Date:   Mon Aug 16 18:22:21 2021 -0400

    Fixed typo in detached resources preventing it from showing in output

commit 260df64
Author: Gokul Premraj <[email protected]>
Date:   Mon Aug 16 18:05:11 2021 -0400

    Modified New/Set cmdlet confirmation messages to use DeploymentStack instead of Stack

commit 83e5ec7
Merge: a8c415b 150c6f1
Author: Gokul Premraj <[email protected]>
Date:   Thu Aug 12 17:58:15 2021 -0400

    Re-record tests

commit a8c415b
Author: Gokul Premraj <[email protected]>
Date:   Thu Aug 12 15:41:08 2021 -0400

    Added -AsJOb to New and Set cmdlets and more terminating statuses for polling

commit 150c6f1
Author: Harsh Patel <[email protected]>
Date:   Thu Aug 12 13:08:16 2021 -0400

    Added deployment scope paramter to new and set RG & sub [Needs testing]

commit 082c08e
Merge: 6a43c15 299d04b
Author: Gokul Premraj <[email protected]>
Date:   Wed Aug 11 19:03:55 2021 -0400

    Merge branch 'DeploymentStacks' of https://github.com/Xynoclafe/azure-powershell into DeploymentStacks

commit 6a43c15
Author: Gokul Premraj <[email protected]>
Date:   Wed Aug 11 19:03:48 2021 -0400

    Added optional -UpdateBehavior for New cmdlets and added polling to New and Set cmdlets

commit 299d04b
Author: Harsh Patel <[email protected]>
Date:   Wed Aug 11 12:48:51 2021 -0400

    Moved scenario tests to the playback directory, all tests accept for NewAndSet for RG and Sub pass

commit 0b8f12c
Author: Gokul Premraj <[email protected]>
Date:   Tue Aug 10 18:30:48 2021 -0400

    Fix build failures

commit 3912597
Author: Harsh Patel <[email protected]>
Date:   Tue Aug 10 17:34:05 2021 -0400

    Finished testing Scenario test [need to do playback]

commit d733b01
Author: Gokul Premraj <[email protected]>
Date:   Tue Aug 10 14:05:06 2021 -0400

    Add StackName alias to -Name parameter

commit f9b0647
Author: Gokul Premraj <[email protected]>
Date:   Fri Aug 6 14:44:45 2021 -0400

    Test recordings

commit 5b61d41
Author: Gokul Premraj <[email protected]>
Date:   Thu Aug 5 17:47:26 2021 -0400

    Test recording - subscriptionSnapshotGet

commit 5c9df43
Author: Gokul Premraj <[email protected]>
Date:   Thu Aug 5 16:50:06 2021 -0400

    Test recording - subscriptionGet

commit eb5373d
Author: Gokul Premraj <[email protected]>
Date:   Thu Aug 5 16:15:30 2021 -0400

    Test fixes and recordings

commit df3085a
Merge: 2132b7c b2d4db2
Author: Gokul Premraj <[email protected]>
Date:   Mon Aug 2 12:17:52 2021 -0700

    Merge branch 'DeploymentStacks' of https://github.com/Xynoclafe/azure-powershell into DeploymentStacks

commit 2132b7c
Author: Gokul Premraj <[email protected]>
Date:   Mon Aug 2 12:17:28 2021 -0700

    Updated SDK + purge delete support

commit b2d4db2
Author: Harsh Patel <[email protected]>
Date:   Fri Jul 30 15:07:59 2021 -0400

    Fixed provisionState check for the NewAndSet tests with template specs

commit 10213b1
Merge: 06ef7f8 5371cee
Author: Gokul Premraj <[email protected]>
Date:   Fri Jul 30 11:51:45 2021 -0700

    Merge branch 'Azure:main' into DeploymentStacks

commit 06ef7f8
Author: Harsh Patel <[email protected]>
Date:   Fri Jul 30 11:55:36 2021 -0400

    Finished Test-NewAndSetSubscriptionDeploymentStackWithTemplateSpec [Needs testing]

commit 8b872f6
Author: Harsh Patel <[email protected]>
Date:   Thu Jul 29 18:17:17 2021 -0400

    Finished Test-NewAndSetResourceGroupDeploymentStackWithTemplateSpec [Needs Testing]

commit 87968fb
Author: Gokul Premraj <[email protected]>
Date:   Tue Jul 27 15:51:21 2021 -0700

    Improved errors + updated SDK

commit 3f8542f
Author: Gokul Premraj <[email protected]>
Date:   Mon Jul 26 16:48:46 2021 -0700

    Removed hard gates from new and set cmdlets

commit a561d3f
Author: Gokul Premraj <[email protected]>
Date:   Mon Jul 26 13:13:08 2021 -0700

    Included the new test scripts into test runner

commit 1c84b1e
Merge: 1d4bb71 f258ced
Author: Gokul Premraj <[email protected]>
Date:   Mon Jul 26 14:33:15 2021 -0400

    Merge branch 'Azure:main' into DeploymentStacks

commit 1d4bb71
Author: Harsh Patel <[email protected]>
Date:   Thu Jul 22 13:24:19 2021 -0400

    Finished Test-SetSubscriptionDeploymentStack & Test-SetResourceGroupDeploymentStack [Needs testings]

commit a57da58
Author: Harsh Patel <[email protected]>
Date:   Thu Jul 22 11:05:35 2021 -0400

    Finished Test-RemoveResourceGroupDeploymentStackSnapshot [Needs Testing]

commit 208b9f9
Author: Harsh Patel <[email protected]>
Date:   Thu Jul 22 10:49:01 2021 -0400

    Finished Test-RemoveSubscriptionDeploymentStackSnapshot [Needs Testing]

commit e5b53eb
Author: Harsh Patel <[email protected]>
Date:   Wed Jul 21 18:15:46 2021 -0400

    Small edits

commit c1f92bb
Author: Harsh Patel <[email protected]>
Date:   Tue Jul 20 17:55:06 2021 -0400

    Further changes to Test-NewSubscriptionDeploymentStack

commit d2356ad
Author: Harsh Patel <[email protected]>
Date:   Tue Jul 20 17:53:30 2021 -0400

    Finished Test-NewSubscriptionDeploymentStack [Needs Review]

commit 77a202d
Author: Harsh Patel <[email protected]>
Date:   Tue Jul 20 16:15:06 2021 -0400

    Finished Test-NewResourceGroupDeploymentStack

commit eea37a8
Author: Harsh Patel <[email protected]>
Date:   Fri Jul 16 13:44:39 2021 -0400

    Updated Test-GetResourceGroupDeploymentStackSnapshot

commit 74efcff
Author: Gokul Premraj <[email protected]>
Date:   Thu Jul 15 18:05:31 2021 -0400

    clarify error messages and format console output

commit 625a946
Merge: 6f26ce8 d4e45c6
Author: Gokul Premraj <[email protected]>
Date:   Mon Jul 12 16:54:30 2021 -0400

    Merge branch 'DeploymentStacks' of https://github.com/Xynoclafe/azure-powershell into DeploymentStacks

commit 6f26ce8
Author: Gokul Premraj <[email protected]>
Date:   Mon Jul 12 16:51:02 2021 -0400

    Fix Get-subscription cmdlets

commit d4e45c6
Author: Harsh Patel <[email protected]>
Date:   Mon Jul 12 12:54:27 2021 -0400

    Finished Test-RemoveResourceGroupDeploymentStack [Needs Testing]

commit 9fe082c
Author: Harsh Patel <[email protected]>
Date:   Fri Jul 9 16:48:42 2021 -0400

    Started on Remove Scenario Tests

commit dfac372
Author: Harsh Patel <[email protected]>
Date:   Thu Jul 8 14:52:04 2021 -0400

    Finished Test-GetResourceGroupDeploymentStackSnapshot function [Needs testing]

commit 85e6b5f
Author: Gokul Premraj <[email protected]>
Date:   Wed Jul 7 18:35:53 2021 -0400

    Fix snapshot cmdlets

commit d902ce1
Author: Harsh Patel <[email protected]>
Date:   Wed Jul 7 16:53:57 2021 -0400

    Finished GetAzResourceGroupDeploymentStackSnapshot [Needs further testing]

commit caebb5c
Merge: da36bc2 2996019
Author: Gokul Premraj <[email protected]>
Date:   Tue Jul 6 12:19:11 2021 -0400

    Merge branch 'DeploymentStacks' of https://github.com/Xynoclafe/azure-powershell into DeploymentStacks

commit da36bc2
Author: Gokul Premraj <[email protected]>
Date:   Tue Jul 6 12:19:04 2021 -0400

    Bug fixes

commit 2996019
Author: Harsh Patel <[email protected]>
Date:   Tue Jul 6 11:43:50 2021 -0400

    Finished GetAzResourceGroupDeploymentStack cmdnlet [Not tested]

commit 3e51378
Author: Gokul Premraj <[email protected]>
Date:   Thu Jul 1 19:35:22 2021 -0400

    Added stack existence checks for New- and Set-

commit d3743a2
Author: Gokul Premraj <[email protected]>
Date:   Thu Jul 1 16:31:02 2021 -0400

    Export cmdlets and fix bugs

commit 0ea9a21
Author: Gokul Premraj <[email protected]>
Date:   Thu Jun 24 16:20:55 2021 -0400

    Add remaining cmdlets

commit 592eaf7
Author: Gokul Premraj <[email protected]>
Date:   Tue Jun 22 11:47:56 2021 -0400

    Added New cmdlets

commit 36de8c3
Merge: ea8e8b3 87067f8
Author: Gokul Premraj <[email protected]>
Date:   Mon Jun 21 16:06:46 2021 -0400

    Merge branch 'Azure:main' into DeploymentStacks

commit ea8e8b3
Author: Gokul Premraj <[email protected]>
Date:   Thu Jun 17 16:09:35 2021 -0400

    stacks initial commit
@azure-client-tools-bot-prd
Copy link

azure-client-tools-bot-prd bot commented Jun 7, 2023

⚠️Az.Accounts
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Breaking Change Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Signature Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Help File Existence Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️File Change Check
⚠️PowerShell Core - Windows
Type Cmdlet Description Remediation
⚠️ It is required to update ChangeLog.md if you want to release a new version for Az.Accounts. Add a changelog record under Upcoming Release section with past tense.
⚠️Windows PowerShell - Windows
Type Cmdlet Description Remediation
⚠️ It is required to update ChangeLog.md if you want to release a new version for Az.Accounts. Add a changelog record under Upcoming Release section with past tense.
⚠️UX Metadata Check
⚠️PowerShell Core - Windows
Type Module ResourceType SubResourceType Command Description
⚠️ Az.Accounts Microsoft.Subscription subscriptions Get-AzSubscription The path /subscriptions/{subscriptionId} doesn't contains the right resource tpye: Microsoft.Subscription
⚠️Windows PowerShell - Windows
Type Module ResourceType SubResourceType Command Description
⚠️ Az.Accounts Microsoft.Subscription subscriptions Get-AzSubscription The path /subscriptions/{subscriptionId} doesn't contains the right resource tpye: Microsoft.Subscription
️✔️Test
️✔️ - Linux
️✔️ - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.Aks
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
️✔️ - Linux
⚠️ - MacOS
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 30.56% Test coverage for the module cannot be lower than 50%.
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.ApplicationInsights
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
️✔️ - Linux
⚠️ - MacOS
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 0.00% Test coverage for the module cannot be lower than 50%.
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.Blueprint
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
⚠️ - Linux
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 23.08 % Test coverage for the module cannot be lower than 50%.
⚠️ - MacOS
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 23.08% Test coverage for the module cannot be lower than 50%.
⚠️PowerShell Core - Windows
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 23.08% Test coverage for the module cannot be lower than 50%.
⚠️Windows PowerShell - Windows
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 23.08% Test coverage for the module cannot be lower than 50%.
️✔️Az.Compute
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Test
️✔️ - Linux
️✔️ - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.CosmosDB
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Test
️✔️ - Linux
️✔️ - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.DeploymentManager
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Test
️✔️ - Linux
️✔️ - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.DevSpaces
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Test
️✔️ - Linux
️✔️ - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.EventHub
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.Functions
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
️✔️ - Linux
⚠️ - MacOS
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 0.00% Test coverage for the module cannot be lower than 50%.
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.KeyVault
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
⚠️ - Linux
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 17.72 % Test coverage for the module cannot be lower than 50%.
⚠️ - MacOS
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 17.72% Test coverage for the module cannot be lower than 50%.
⚠️PowerShell Core - Windows
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 17.72% Test coverage for the module cannot be lower than 50%.
⚠️Windows PowerShell - Windows
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 17.72% Test coverage for the module cannot be lower than 50%.
️✔️Az.KubernetersConfiguration
️✔️Test
️✔️ - Linux
️✔️ - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.MachineLearning
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
⚠️ - Linux
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 0.00 % Test coverage for the module cannot be lower than 50%.
⚠️ - MacOS
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 0.00% Test coverage for the module cannot be lower than 50%.
⚠️PowerShell Core - Windows
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 0.00% Test coverage for the module cannot be lower than 50%.
⚠️Windows PowerShell - Windows
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 0.00% Test coverage for the module cannot be lower than 50%.
️✔️Az.ManagedServiceIdentity
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.Monitor
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.Network
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Test
️✔️ - Linux
️✔️ - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.OperationalInsights
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.PostgreSql
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
️✔️ - Linux
⚠️ - MacOS
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 0.00% Test coverage for the module cannot be lower than 50%.
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.PrivateDns
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.Purview
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
⚠️ - Linux
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 8.70 % Test coverage for the module cannot be lower than 50%.
⚠️ - MacOS
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 0.00% Test coverage for the module cannot be lower than 50%.
⚠️PowerShell Core - Windows
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 8.70% Test coverage for the module cannot be lower than 50%.
⚠️Windows PowerShell - Windows
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 8.70% Test coverage for the module cannot be lower than 50%.
⚠️Az.Resources
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Breaking Change Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Signature Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Help Example Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Help File Existence Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️File Change Check
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️UX Metadata Check
⚠️PowerShell Core - Windows
Type Module ResourceType SubResourceType Command Description
⚠️ Az.Resources Microsoft.Resources subscriptionsResourcegroups Get-AzResourceGroup The path /subscriptions/{subscriptionId}/resourceGroups/{name} doesn't contains the right resource tpye: Microsoft.Resources
⚠️ Az.Resources Microsoft.Resources subscriptionsResourcegroups Remove-AzResourceGroup The path /subscriptions/{subscriptionId}/resourceGroups/{name} doesn't contains the right resource tpye: Microsoft.Resources
⚠️Windows PowerShell - Windows
Type Module ResourceType SubResourceType Command Description
⚠️ Az.Resources Microsoft.Resources subscriptionsResourcegroups Get-AzResourceGroup The path /subscriptions/{subscriptionId}/resourceGroups/{name} doesn't contains the right resource tpye: Microsoft.Resources
⚠️ Az.Resources Microsoft.Resources subscriptionsResourcegroups Remove-AzResourceGroup The path /subscriptions/{subscriptionId}/resourceGroups/{name} doesn't contains the right resource tpye: Microsoft.Resources
️✔️Test
️✔️ - Linux
️✔️ - MacOS
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
️✔️Az.Sql
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Az.Storage
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
⚠️ - Linux
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 41.67 % Test coverage for the module cannot be lower than 50%.
⚠️ - MacOS
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 41.67% Test coverage for the module cannot be lower than 50%.
⚠️PowerShell Core - Windows
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 41.67% Test coverage for the module cannot be lower than 50%.
⚠️Windows PowerShell - Windows
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 41.67% Test coverage for the module cannot be lower than 50%.
⚠️Az.Websites
️✔️Build
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows
⚠️Test
️✔️ - Linux
⚠️ - MacOS
Type Title Current Coverage Description
⚠️ Test Coverage Less Than 50% 42.20% Test coverage for the module cannot be lower than 50%.
️✔️PowerShell Core - Windows
️✔️Windows PowerShell - Windows

@dantedallag dantedallag changed the title Adding Deployment Stacks cmdlet Implementation to Az.Resources Adding Deployment Stacks cmdlet Implementations to Az.Resources Jun 7, 2023
@dantedallag dantedallag marked this pull request as ready for review June 8, 2023 22:06
@vidai-msft
Copy link
Contributor

@dantedallag Except for the comments above, please also notice the followings.

  • Check in the README.md under the Resources.Sdk folder
  • For the help docs under the help folder, please fill in the DESCRIPTION and EXAMPLES sections
  • There are static analysis issues detected in the CI regarding the URL of the online doc, please change them accordingly.
  • The test TestExportManagementGroupDeploymentStackTemplate failed in the CI, please fix it.

@azcloudfarmer
Copy link

Hi @vidai-msft - we are working on the doc fixes. Can you please confirm that the rest of the PR has been reviewed? If not, when can we expect that to be done? We are targeting the 6/26 code complete date and want to ensure we've addressed all comments in time.

@isra-fel isra-fel added this to the July 2023 (2023-07-04) milestone Jun 14, 2023
@vidai-msft
Copy link
Contributor

Hi @vidai-msft Vincent Dai FTE - we are working on the doc fixes. Can you please confirm that the rest of the PR has been reviewed? If not, when can we expect that to be done? We are targeting the 6/26 code complete date and want to ensure we've addressed all comments in time.

@apclouds I have listed all the issues in the comment. Some stuff needs to be reviewed again once files are added and updated.

@vidai-msft
Copy link
Contributor

@dantedallag As mentioned in the email, please add the attribute for all the new cmdlets [CmdletPreview("The cmdlet is in preview and under development.")]

@dantedallag
Copy link
Contributor Author

@vidai-msft I updated the PR with most of your requests. Hoping the ExportManagementGroupDeploymentStackTemplate test passes now. Also, I think the static analysis failures were due to the help files not being completed, so hopefully those pass as well.

I'm hoping to get a second review on this now.

@dantedallag
Copy link
Contributor Author

Could I also get some more context on what exactly is failing in the help generation? I added the examples and description sections.

@vidai-msft
Copy link
Contributor

@dantedallag looks like this PR has no associated design review. So some parameters do not comply with PowerShell design guideline. I pointed them out on the help docs. You need to change the code first and then re-generate using platyPS. In addition to that, I also have a question regarding the Set-* cmdlets. From the swagger file, seems they all use put. Since some parameters there are optional, if one parameter is not provided, then would its value be cleared from the server side?

@vidai-msft
Copy link
Contributor

@dantedallag can you please provide the full URL of the swagger file so that I can help verify the code generation part? Thanks!

@azcloudfarmer
Copy link

Link to most recent design review: Azure/azure-powershell-cmdlet-review-pr#1298
Swagger for checked-in sdk: https://github.com/Azure/azure-rest-api-specs/blob/main/specification/resources/resource-manager/Microsoft.Resources/preview/2022-08-01-preview/deploymentStacks.json

@azcloudfarmer
Copy link

For the parameter changes from plural to singular requested, we will make the change for "DenySettingsExcludedPrincipals" and "DenySettingsExcludedActions". For the other, given they do not take in a list as input, we strongly feel this would cause a lot of confusion with our customers if these were changed to singular.

@apclouds As mentioned by you, since the switches DeleteResources and DeleteResourceGroups do not take a list as input, I feel like it should better use singular form. Your thoughts?

Hi @vidai-msft, today the majority of Top 100 Azure customers are deploying multiple resources at a time defined in a single ARM/Bicep template. When the deployment of that template is done via Deployment Stack, the resources deployed become managed by the stack resource, and both switches of DeleteResources and DeleteResourceGroups specify the behavior of "deleting all resources" or "deleting all resources groups", rather than just deleting a single resource/resource-group. We believe this will cause confusion in the customer experience, making it seem like only a single resource will be deleted. Even though the switches do not take in lists as input, the plural format helps more clearly define the stacks update behavior intent. Would it be possible to use plural given the scenario?

@vidai-msft
Copy link
Contributor

For the parameter changes from plural to singular requested, we will make the change for "DenySettingsExcludedPrincipals" and "DenySettingsExcludedActions". For the other, given they do not take in a list as input, we strongly feel this would cause a lot of confusion with our customers if these were changed to singular.

@apclouds As mentioned by you, since the switches DeleteResources and DeleteResourceGroups do not take a list as input, I feel like it should better use singular form. Your thoughts?

Hi @vidai-msft, today the majority of Top 100 Azure customers are deploying multiple resources at a time defined in a single ARM/Bicep template. When the deployment of that template is done via Deployment Stack, the resources deployed become managed by the stack resource, and both switches of DeleteResources and DeleteResourceGroups specify the behavior of "deleting all resources" or "deleting all resources groups", rather than just deleting a single resource/resource-group. We believe this will cause confusion in the customer experience, making it seem like only a single resource will be deleted. Even though the switches do not take in lists as input, the plural format helps more clearly define the stacks update behavior intent. Would it be possible to use plural given the scenario?

Agreed. Thanks for the explanation.

@azcloudfarmer
Copy link

Hi @vidai-msft - thanks for the feedback! We've addressed all comments and pushed changes accordingly. Please let us know if there is anything else pending on our side. Thanks!

@vidai-msft
Copy link
Contributor

vidai-msft commented Jun 19, 2023

@apclouds How about this parameter DenySettingsApplyToChildScopes? Can you please make it as singular form? Also from the email sent this morning, would you update from Export to Save?

@vidai-msft
Copy link
Contributor

In addition to that, I also have a question regarding the Set-* cmdlets. From the swagger file, seems they all use put. Since some parameters there are optional, if one parameter is not provided, then would its value be cleared from the server side?

@apclouds @dantedallag Can you please help answer this question?

@dantedallag
Copy link
Contributor Author

In addition to that, I also have a question regarding the Set-* cmdlets. From the swagger file, seems they all use put. Since some parameters there are optional, if one parameter is not provided, then would its value be cleared from the server side?

@apclouds @dantedallag Can you please help answer this question?

Yes, that is correct. Both New and Set use the same underlying Put call that overwrites the existing stack. The main difference between the two is that New will ask for a confirmation if the stack already exists, as it is expecting the stack to be new. You can however overwrite a stack with the New command by acknowledging this confirmation.

@Xynoclafe
Copy link
Contributor

Xynoclafe commented Jun 19, 2023

Also from the email sent this morning, would you update from Export to Save?

This has been updated

@azcloudfarmer
Copy link

@apclouds How about this parameter DenySettingsApplyToChildScopes? Can you please make it as singular form? Also from the email sent this morning, would you update from Export to Save?

Hi @vidai-msft - similar to our explanation for keeping DeleteResourceGroups and DeleteResources plural, the flag for DenySettingsApplyToChildScopes specifies that all child scopes will be subject to the Deny Assignment created by the Stack resource. For example, for a subscription scope stack deployment that creates multiple resource groups, this flag will enable the deny assignment on all resource groups created by the stack at the subscription scope. We are concerned that the singular DenySettingApplyToChildScope will cause confusion, making customers think only one scope is applicable to the deny assignment rather than all.

# Save-AzManagementGroupDeploymentStackTemplate

## SYNOPSIS
Exports a Management Group scoped Deployment Stack Template.
Copy link
Contributor

Choose a reason for hiding this comment

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

Is it necessary to update the Export here to make them consistent? If yes, please update for all the Save-* cmdlets. The Export also appeared in the following sections DESCRIPTION, EXAMPLES and ParameterSets.

@vidai-msft
Copy link
Contributor

In addition to that, I also have a question regarding the Set-* cmdlets. From the swagger file, seems they all use put. Since some parameters there are optional, if one parameter is not provided, then would its value be cleared from the server side?

@apclouds

        Angel Perez
        FTE @dantedallag
        
        Dante Dalla Gasperina
        FTE Can you please help answer this question?

Yes, that is correct. Both New and Set use the same underlying Put call that overwrites the existing stack. The main difference between the two is that New will ask for a confirmation if the stack already exists, as it is expecting the stack to be new. You can however overwrite a stack with the New command by acknowledging this confirmation.

@dantedallag Say a deployment stack was created via New-* with tags associated. If later on, the user ran Set-* cmdlet to update some property but without providing the existing value of tag. As per what you have mentioned, the tag would be cleaned up. If so, I believe it would cause problem as the users may not be aware of the deletion for tag. Our proposal is to retrieve the deployment stack object first and then replace the values that have been explicitly provided by the Set-* cmdlet. Then you won't delete something unintentionally.

@azcloudfarmer
Copy link

In addition to that, I also have a question regarding the Set-* cmdlets. From the swagger file, seems they all use put. Since some parameters there are optional, if one parameter is not provided, then would its value be cleared from the server side?

@apclouds

        Angel Perez
        FTE @dantedallag
        
        Dante Dalla Gasperina
        FTE Can you please help answer this question?

Yes, that is correct. Both New and Set use the same underlying Put call that overwrites the existing stack. The main difference between the two is that New will ask for a confirmation if the stack already exists, as it is expecting the stack to be new. You can however overwrite a stack with the New command by acknowledging this confirmation.

@dantedallag Say a deployment stack was created via New-* with tags associated. If later on, the user ran Set-* cmdlet to update some property but without providing the existing value of tag. As per what you have mentioned, the tag would be cleaned up. If so, I believe it would cause problem as the users may not be aware of the deletion for tag. Our proposal is to retrieve the deployment stack object first and then replace the values that have been explicitly provided by the Set-* cmdlet. Then you won't delete something unintentionally.

We plan to keep the existing behavior and gather more customer feedback before this change. Stacks are a proxy resource and come with limitations around tags scenarios. Therefore, we don't expect significant usage on tags and don't consider this a blocking issue for Stacks. Can we please get approval on this PR without this change? We will get more customer feedback on this once released.

@azcloudfarmer azcloudfarmer requested a review from vidai-msft June 21, 2023 00:56
@vidai-msft
Copy link
Contributor

In addition to that, I also have a question regarding the Set-* cmdlets. From the swagger file, seems they all use put. Since some parameters there are optional, if one parameter is not provided, then would its value be cleared from the server side?

@apclouds

        Angel Perez
        FTE
        Angel Perez
        FTE @dantedallag
        
        Dante Dalla Gasperina
        FTE Can you please help answer this question?

Yes, that is correct. Both New and Set use the same underlying Put call that overwrites the existing stack. The main difference between the two is that New will ask for a confirmation if the stack already exists, as it is expecting the stack to be new. You can however overwrite a stack with the New command by acknowledging this confirmation.

@dantedallag

        Dante Dalla Gasperina
        FTE Say a deployment stack was created via New-* with tags associated. If later on, the user ran Set-* cmdlet to update some property but without providing the existing value of tag. As per what you have mentioned, the tag would be cleaned up. If so, I believe it would cause problem as the users may not be aware of the deletion for tag. Our proposal is to retrieve the deployment stack object first and then replace the values that have been explicitly provided by the Set-* cmdlet. Then you won't delete something unintentionally.

We plan to keep the existing behavior and gather more customer feedback before this change. Stacks are a proxy resource and come with limitations around tags scenarios. Therefore, we don't expect significant usage on tags and don't consider this a blocking issue for Stacks. Can we please get approval on this PR without this change? We will get more customer feedback on this once released.

@apclouds It is OK. Wanted to reiterate that this can be applied to any non-mandatory parameters besides Tag. Tag is just an example easy to understand. Thanks!

@vidai-msft
Copy link
Contributor

@Xynoclafe @dantedallag In the Save-*, the method names in DeploymentStackSdkClient are still ExportManagementGroupDeploymentStack, ExportResourceGroupDeploymentStack, ExportSubscriptionDeploymentStack. Do you want to update as well?

@dantedallag
Copy link
Contributor Author

@Xynoclafe @dantedallag In the Save-*, the method names in DeploymentStackSdkClient are still ExportManagementGroupDeploymentStack, ExportResourceGroupDeploymentStack, ExportSubscriptionDeploymentStack. Do you want to update as well?

@vidai-msft Yes, we can make this change. After this change, is the PR at a state where we can get approval and merge? Let us know if there are any final things we need to do besides this so that we can get approval from you tomorrow and hopefully merge during our workday on Thursday. We want to ensure that we can get this code in as soon as possible so we comfortably make the check-in deadline for the next release.

@vidai-msft
Copy link
Contributor

@Xynoclafe @dantedallag In the Save-*, the method names in DeploymentStackSdkClient are still ExportManagementGroupDeploymentStack, ExportResourceGroupDeploymentStack, ExportSubscriptionDeploymentStack. Do you want to update as well?

@vidai-msft Yes, we can make this change. After this change, is the PR at a state where we can get approval and merge? Let us know if there are any final things we need to do besides this so that we can get approval from you tomorrow and hopefully merge during our workday on Thursday. We want to ensure that we can get this code in as soon as possible so we comfortably make the check-in deadline for the next release.

@dantedallag Yes, should have no other problems except this.

@dantedallag
Copy link
Contributor Author

dantedallag commented Jun 21, 2023

@vidai-msft We made the change to update the internal methods from 'Export' to 'Save'. Just to note, these will not be visible to users. In addition to that, there are internal sdk methods that still use 'Export', but we will be leaving those as is for now. They are also not viewable from the user's perspective.

@vidai-msft
Copy link
Contributor

/azp run azure-powershell - security-tools

@azure-pipelines
Copy link
Contributor

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Contributor

@vidai-msft vidai-msft left a comment

Choose a reason for hiding this comment

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

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants