-
Notifications
You must be signed in to change notification settings - Fork 4k
Remove AzureAuditLog as a valid kind of datasource as it's been replaced by AzureActivityLog #3379
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
Conversation
Hi @haitch, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!
TTYL, AZPRBOT; |
@@ -57,7 +57,6 @@ public class GetAzureOperationalInsightsDataSourceCommand : OperationalInsightsB | |||
HelpMessage = "The data source name.")] | |||
[Parameter(ParameterSetName = ByWorkspaceObjectByKind)] | |||
[ValidateSet( | |||
PSDataSourceKinds.AzureAuditLog, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@haitch this is a breaking change - existing scripts that use this value for the Kind
parameter will no longer work
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As I stated in PR description, this is well planned, we have disabled New-*AzureAuditLogDataSource since last Nov, aliasing to New-*AzureActivityLogDataSource, so AzureAuditLogDataSource is readOnly.
From backend we have convert all existing AuditLog datasource to ActivityLog datasource.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@haitch should there be a value in the validate set for AzureActivityLog
if it is replacing AzureAuditLog
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is right there just next to it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oops, didn't see that below
@@ -20,7 +20,7 @@ | |||
|
|||
namespace Microsoft.Azure.Commands.OperationalInsights | |||
{ | |||
[Cmdlet(VerbsCommon.Get, Constants.DataSource, DefaultParameterSetName = ByWorkspaceName), OutputType(typeof(List<PSDataSource>), typeof(PSDataSource))] | |||
[Cmdlet(VerbsCommon.Get, Constants.DataSource, DefaultParameterSetName = ByWorkspaceNameByKind), OutputType(typeof(List<PSDataSource>), typeof(PSDataSource))] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@haitch why was this change made? This will be flagged as a breaking change by StaticAnalysis.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is actually a fix I spotted, we have 4 parameterSet for this cmdlet, ByWorkspaceName isn't a valid parameterSet for this cmdlet. (probably copied from other cmdlets )
ByWorkspaceObjectByName {-Workspace -Name}
ByWorkspaceObjectByKind {-Workspace -Kind}
ByWorkspaceNameByName {-ResourceGroup -WorkspaceName -Name}
ByWorkspaceNameByKind {-ResourceGroup -WorkspaceName -Kind}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@haitch looking into this, this is going to be a breaking change. Existing scripts could use Get-AzureRmOperationalInsightsDataSource
with no parameters, even though it would do nothing (because the ByWorkspaceName
parameter set isn't checked for in any if-statement in ExecuteCmdlet
).
A problem arises now that you have changed the default parameter set to ByWorkspaceNameByKind
because parameter Kind
is mandatory in that parameter set, which means if you run Get-AzureRmOperationalInsightsDataSource
with no parameters like before, you will now be prompted to enter a value for Kind
, which will break that script that uses the cmdlet with no parameters.
My suggestion is to revert the change made to the default parameter set, write a warning to users who are using the ByWorkspaceName
parameter set to let them know that this parameter set will be deprecated and changed to ByWorkspaceNameByKind
in an upcoming release of Azure PowerShell, and then change the if-statements in ExecuteCmdlet
to include ByWorkspaceName
.
@@ -57,7 +57,6 @@ public class GetAzureOperationalInsightsDataSourceCommand : OperationalInsightsB | |||
HelpMessage = "The data source name.")] | |||
[Parameter(ParameterSetName = ByWorkspaceObjectByKind)] | |||
[ValidateSet( | |||
PSDataSourceKinds.AzureAuditLog, | |||
PSDataSourceKinds.AzureActivityLog, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good as long as Azure is OK with how the breaking changes have been handled.
Hi @haitch, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!
TTYL, AZPRBOT; |
Description
This checklist is used to make sure that common guidelines for a pull request are followed. You can find a more complete discussion of PowerShell cmdlet best practices here.
General Guidelines
Testing Guidelines
Cmdlet Signature Guidelines
ShouldProcess
and haveSupportShouldProcess=true
specified in the cmdlet attribute. You can find more information onShouldProcess
here.OutputType
attribute if any output is produced - if the cmdlet produces no output, it should implement aPassThru
parameter.Cmdlet Parameter Guidelines