diff --git a/src/Accounts/Accounts/Config/ConfigCommandBase.cs b/src/Accounts/Accounts/Config/ConfigCommandBase.cs index 946d1f3c5152..9419d64b9cb4 100644 --- a/src/Accounts/Accounts/Config/ConfigCommandBase.cs +++ b/src/Accounts/Accounts/Config/ConfigCommandBase.cs @@ -73,6 +73,17 @@ protected virtual void ValidateParameters() protected object GetDynamicParameters(Func mapConfigToParameter) { _dynamicParameters.Clear(); + + // Preserve dynamic parameters from base classes (e.g., AzureRMCmdlet, AzurePSCmdlet) + var baseParameters = base.GetDynamicParameters() as RuntimeDefinedParameterDictionary; + if (baseParameters != null) + { + foreach (var pair in baseParameters) + { + _dynamicParameters.Add(pair.Key, pair.Value); + } + } + foreach (var config in ConfigDefinitions) { _dynamicParameters.Add(config.Key, mapConfigToParameter(config)); diff --git a/src/CosmosDB/CosmosDB/CosmosDBAccount/NewAzCosmosDBAccount.cs b/src/CosmosDB/CosmosDB/CosmosDBAccount/NewAzCosmosDBAccount.cs index c3051eb5a496..af0fe9afef44 100644 --- a/src/CosmosDB/CosmosDB/CosmosDBAccount/NewAzCosmosDBAccount.cs +++ b/src/CosmosDB/CosmosDB/CosmosDBAccount/NewAzCosmosDBAccount.cs @@ -330,13 +330,15 @@ public override void ExecuteCmdlet() public new object GetDynamicParameters() { + var parameters = base.GetDynamicParameters() as RuntimeDefinedParameterDictionary; + if (FromPointInTimeBackup) { restoreContext = new RestoreRequestDynamicParameters(); return restoreContext; } - return null; + return parameters; } private RestoreRequestDynamicParameters restoreContext; diff --git a/src/DataMigration/DataMigration/Cmdlets/InvokeDataMigrationCommand.cs b/src/DataMigration/DataMigration/Cmdlets/InvokeDataMigrationCommand.cs index 7acd28f3f869..7929350eea5f 100644 --- a/src/DataMigration/DataMigration/Cmdlets/InvokeDataMigrationCommand.cs +++ b/src/DataMigration/DataMigration/Cmdlets/InvokeDataMigrationCommand.cs @@ -82,7 +82,7 @@ public CommandTypeEnum CommandType public new object GetDynamicParameters() { - RuntimeDefinedParameterDictionary dynamicParams = null; + var parameters = base.GetDynamicParameters() as RuntimeDefinedParameterDictionary ?? new RuntimeDefinedParameterDictionary(); if (commandTypeSet) { @@ -108,10 +108,13 @@ public CommandTypeEnum CommandType throw new PSArgumentException(); } - dynamicParams = commandCmdlet.RuntimeDefinedParams; + foreach (var pair in commandCmdlet.RuntimeDefinedParams) + { + parameters.Add(pair.Key, pair.Value); + } } - return dynamicParams; + return parameters; } public override void ExecuteCmdlet() diff --git a/src/DataMigration/DataMigration/Cmdlets/NewConnectionInfoCmdlet.cs b/src/DataMigration/DataMigration/Cmdlets/NewConnectionInfoCmdlet.cs index 6d5a57d7c8bd..8a0d85fc777e 100644 --- a/src/DataMigration/DataMigration/Cmdlets/NewConnectionInfoCmdlet.cs +++ b/src/DataMigration/DataMigration/Cmdlets/NewConnectionInfoCmdlet.cs @@ -64,7 +64,7 @@ public override void ExecuteCmdlet() public new object GetDynamicParameters() { - RuntimeDefinedParameterDictionary dynamicParams = null; + var parameters = base.GetDynamicParameters() as RuntimeDefinedParameterDictionary ?? new RuntimeDefinedParameterDictionary(); if (serverTypeSet) { @@ -84,10 +84,13 @@ public override void ExecuteCmdlet() throw new PSArgumentException(); } - dynamicParams = connCmdlet.RuntimeDefinedParams; + foreach (var pair in connCmdlet.RuntimeDefinedParams) + { + parameters.Add(pair.Key, pair.Value); + } } - return dynamicParams; + return parameters; } } } diff --git a/src/DataMigration/DataMigration/Cmdlets/NewDataMigrationTask.cs b/src/DataMigration/DataMigration/Cmdlets/NewDataMigrationTask.cs index 1e080f5e57e4..d52e64d9b7b7 100644 --- a/src/DataMigration/DataMigration/Cmdlets/NewDataMigrationTask.cs +++ b/src/DataMigration/DataMigration/Cmdlets/NewDataMigrationTask.cs @@ -116,7 +116,7 @@ public TaskTypeEnum TaskType public new object GetDynamicParameters() { - RuntimeDefinedParameterDictionary dynamicParams = null; + var parameters = base.GetDynamicParameters() as RuntimeDefinedParameterDictionary ?? new RuntimeDefinedParameterDictionary(); if (taskTypeSet) { @@ -202,10 +202,13 @@ public TaskTypeEnum TaskType throw new PSArgumentException(); } - dynamicParams = taskCmdlet.RuntimeDefinedParams; + foreach (var pair in taskCmdlet.RuntimeDefinedParams) + { + parameters.Add(pair.Key, pair.Value); + } } - return dynamicParams; + return parameters; } public override void ExecuteCmdlet() diff --git a/src/IotHub/IotHub/IotHub/DataPlane/Device/AddAzIotHubDevice.cs b/src/IotHub/IotHub/IotHub/DataPlane/Device/AddAzIotHubDevice.cs index 160826fd1a66..0512ed2b6046 100644 --- a/src/IotHub/IotHub/IotHub/DataPlane/Device/AddAzIotHubDevice.cs +++ b/src/IotHub/IotHub/IotHub/DataPlane/Device/AddAzIotHubDevice.cs @@ -203,13 +203,15 @@ public override void ExecuteCmdlet() public new object GetDynamicParameters() { + var parameters = base.GetDynamicParameters(); + if (this.AuthMethod.Equals(PSDeviceAuthType.x509_thumbprint)) { authTypeDynamicParameter = new AuthTypeDynamicParameter(); return authTypeDynamicParameter; } - return null; + return parameters; } private AuthTypeDynamicParameter authTypeDynamicParameter; diff --git a/src/IotHub/IotHub/IotHub/DataPlane/Device/SetAzIotHubDevice.cs b/src/IotHub/IotHub/IotHub/DataPlane/Device/SetAzIotHubDevice.cs index 01a5264fafaf..a8d9fbdee457 100644 --- a/src/IotHub/IotHub/IotHub/DataPlane/Device/SetAzIotHubDevice.cs +++ b/src/IotHub/IotHub/IotHub/DataPlane/Device/SetAzIotHubDevice.cs @@ -178,13 +178,15 @@ public override void ExecuteCmdlet() public new object GetDynamicParameters() { + var parameters = base.GetDynamicParameters(); + if (this.AuthMethod.Equals(PSDeviceAuthType.x509_thumbprint)) { authTypeDynamicParameter = new AuthTypeDynamicParameter(); return authTypeDynamicParameter; } - return null; + return parameters; } private AuthTypeDynamicParameter authTypeDynamicParameter; diff --git a/src/IotHub/IotHub/IotHub/DataPlane/Module/AddAzIotHubModule.cs b/src/IotHub/IotHub/IotHub/DataPlane/Module/AddAzIotHubModule.cs index 9fecbacc24ec..a569643291c1 100644 --- a/src/IotHub/IotHub/IotHub/DataPlane/Module/AddAzIotHubModule.cs +++ b/src/IotHub/IotHub/IotHub/DataPlane/Module/AddAzIotHubModule.cs @@ -120,13 +120,15 @@ public override void ExecuteCmdlet() public new object GetDynamicParameters() { + var parameters = base.GetDynamicParameters(); + if (this.AuthMethod.Equals(PSDeviceAuthType.x509_thumbprint)) { authTypeDynamicParameter = new AuthTypeDynamicParameter(); return authTypeDynamicParameter; } - return null; + return parameters; } private AuthTypeDynamicParameter authTypeDynamicParameter; diff --git a/src/IotHub/IotHub/IotHub/DataPlane/Module/SetAzIotHubModule.cs b/src/IotHub/IotHub/IotHub/DataPlane/Module/SetAzIotHubModule.cs index d4f31ecbabef..d67d2adb07c8 100644 --- a/src/IotHub/IotHub/IotHub/DataPlane/Module/SetAzIotHubModule.cs +++ b/src/IotHub/IotHub/IotHub/DataPlane/Module/SetAzIotHubModule.cs @@ -122,13 +122,15 @@ public override void ExecuteCmdlet() public new object GetDynamicParameters() { + var parameters = base.GetDynamicParameters(); + if (this.AuthMethod.Equals(PSDeviceAuthType.x509_thumbprint)) { authTypeDynamicParameter = new AuthTypeDynamicParameter(); return authTypeDynamicParameter; } - return null; + return parameters; } private AuthTypeDynamicParameter authTypeDynamicParameter; diff --git a/src/IotHub/IotHub/IotHub/Routing/AddAzureRmIotHubRoutingEndpoint.cs b/src/IotHub/IotHub/IotHub/Routing/AddAzureRmIotHubRoutingEndpoint.cs index 026c1d470312..ddb5f4f8b392 100644 --- a/src/IotHub/IotHub/IotHub/Routing/AddAzureRmIotHubRoutingEndpoint.cs +++ b/src/IotHub/IotHub/IotHub/Routing/AddAzureRmIotHubRoutingEndpoint.cs @@ -170,13 +170,15 @@ public override void ExecuteCmdlet() public new object GetDynamicParameters() { + var parameters = base.GetDynamicParameters(); + if (this.EndpointType.Equals(PSEndpointType.AzureStorageContainer)) { routingEndpointDynamicParameter = new RoutingEndpointDynamicParameter(); return routingEndpointDynamicParameter; } - return null; + return parameters; } private RoutingEndpointDynamicParameter routingEndpointDynamicParameter; diff --git a/src/Network/Network/PrivateLinkService/PrivateEndpointConnection/PrivateEndpointConnectionBaseCmdlet.cs b/src/Network/Network/PrivateLinkService/PrivateEndpointConnection/PrivateEndpointConnectionBaseCmdlet.cs index aee9df129ac1..c3af227ed425 100644 --- a/src/Network/Network/PrivateLinkService/PrivateEndpointConnection/PrivateEndpointConnectionBaseCmdlet.cs +++ b/src/Network/Network/PrivateLinkService/PrivateEndpointConnection/PrivateEndpointConnectionBaseCmdlet.cs @@ -64,7 +64,7 @@ public abstract class PrivateEndpointConnectionBaseCmdlet : NetworkBaseCmdlet, I string NamedContextParameterSet = "ByResource"; public new object GetDynamicParameters() { - var parameters = new RuntimeDefinedParameterDictionary(); + var parameters = base.GetDynamicParameters() as RuntimeDefinedParameterDictionary ?? new RuntimeDefinedParameterDictionary(); RuntimeDefinedParameter namedParameter; if (ProviderConfiguration.TryGetEndpointConnectionServiceParameter(privateEndpointTypeName, NamedContextParameterSet, out namedParameter)) { diff --git a/src/Network/Network/PrivateLinkService/PrivateLinkResource/GetAzurePrivateLinkResourceCommand.cs b/src/Network/Network/PrivateLinkService/PrivateLinkResource/GetAzurePrivateLinkResourceCommand.cs index 5c3b2965c684..2aefbeeb6ccc 100644 --- a/src/Network/Network/PrivateLinkService/PrivateLinkResource/GetAzurePrivateLinkResourceCommand.cs +++ b/src/Network/Network/PrivateLinkService/PrivateLinkResource/GetAzurePrivateLinkResourceCommand.cs @@ -65,7 +65,7 @@ public class GetAzurePrivateLinkResourceCommand : NetworkBaseCmdlet, IDynamicPar public new object GetDynamicParameters() { InvocationInfo invocationInfo = MyInvocation; - var parameters = new RuntimeDefinedParameterDictionary(); + var parameters = base.GetDynamicParameters() as RuntimeDefinedParameterDictionary ?? new RuntimeDefinedParameterDictionary(); RuntimeDefinedParameter namedParameter; if (ProviderConfiguration.TryGetLinkResourceServiceParameter(privateEndpointTypeName, NamedContextParameterSet, out namedParameter)) { diff --git a/src/Resources/ResourceManager/Implementation/CmdletBase/DeploymentCmdletBase.cs b/src/Resources/ResourceManager/Implementation/CmdletBase/DeploymentCmdletBase.cs index 320b2423137f..863375099a0d 100644 --- a/src/Resources/ResourceManager/Implementation/CmdletBase/DeploymentCmdletBase.cs +++ b/src/Resources/ResourceManager/Implementation/CmdletBase/DeploymentCmdletBase.cs @@ -211,7 +211,7 @@ protected override void OnBeginProcessing() BuildAndUseBicepTemplate(); } - var dynamicParameters = new RuntimeDefinedParameterDictionary(); + var dynamicParameters = base.GetDynamicParameters() as RuntimeDefinedParameterDictionary ?? new RuntimeDefinedParameterDictionary(); if (!this.IsParameterBound(c => c.SkipTemplateParameterPrompt)) { diff --git a/src/Resources/ResourceManager/Implementation/CmdletBase/DeploymentStacksCreateCmdletBase.cs b/src/Resources/ResourceManager/Implementation/CmdletBase/DeploymentStacksCreateCmdletBase.cs index 7d9c512d0dce..4c5c60bc6ffc 100644 --- a/src/Resources/ResourceManager/Implementation/CmdletBase/DeploymentStacksCreateCmdletBase.cs +++ b/src/Resources/ResourceManager/Implementation/CmdletBase/DeploymentStacksCreateCmdletBase.cs @@ -205,7 +205,7 @@ protected override void OnBeginProcessing() BuildAndUseBicepTemplate(); } - var dynamicParameters = new RuntimeDefinedParameterDictionary(); + var dynamicParameters = base.GetDynamicParameters() as RuntimeDefinedParameterDictionary ?? new RuntimeDefinedParameterDictionary(); if (!this.IsParameterBound(c => c.SkipTemplateParameterPrompt)) { diff --git a/src/Resources/ResourceManager/Implementation/CmdletBase/TestDeploymentCmdletBase.cs b/src/Resources/ResourceManager/Implementation/CmdletBase/TestDeploymentCmdletBase.cs index f66db64a72af..e9d270ba7720 100644 --- a/src/Resources/ResourceManager/Implementation/CmdletBase/TestDeploymentCmdletBase.cs +++ b/src/Resources/ResourceManager/Implementation/CmdletBase/TestDeploymentCmdletBase.cs @@ -32,7 +32,7 @@ public override object GetDynamicParameters() } return base.GetDynamicParameters(); } - + public void WriteOutput(TemplateValidationInfo validationInfo) { if (validationInfo.Errors.Count > 0)