diff --git a/src/Accounts/Accounts/Accounts.csproj b/src/Accounts/Accounts/Accounts.csproj index 7025778844a6..706cd7449b8d 100644 --- a/src/Accounts/Accounts/Accounts.csproj +++ b/src/Accounts/Accounts/Accounts.csproj @@ -53,5 +53,9 @@ + + + + diff --git a/src/Accounts/Authentication.ResourceManager/Authentication.ResourceManager.csproj b/src/Accounts/Authentication.ResourceManager/Authentication.ResourceManager.csproj index ac31e0b77f34..bee171e2a1ce 100644 --- a/src/Accounts/Authentication.ResourceManager/Authentication.ResourceManager.csproj +++ b/src/Accounts/Authentication.ResourceManager/Authentication.ResourceManager.csproj @@ -15,4 +15,8 @@ + + + + \ No newline at end of file diff --git a/src/Accounts/Authentication/Authentication.csproj b/src/Accounts/Authentication/Authentication.csproj index 2edd06b27e95..45a937785642 100644 --- a/src/Accounts/Authentication/Authentication.csproj +++ b/src/Accounts/Authentication/Authentication.csproj @@ -15,4 +15,8 @@ + + + + \ No newline at end of file diff --git a/src/Compute/Compute/Compute.csproj b/src/Compute/Compute/Compute.csproj index 0aa4e6c19a3e..547643020985 100644 --- a/src/Compute/Compute/Compute.csproj +++ b/src/Compute/Compute/Compute.csproj @@ -30,4 +30,8 @@ + + + + \ No newline at end of file diff --git a/src/Network/Network/Network.csproj b/src/Network/Network/Network.csproj index c6c52aaa649b..ace5f473a56d 100644 --- a/src/Network/Network/Network.csproj +++ b/src/Network/Network/Network.csproj @@ -19,4 +19,8 @@ + + + + diff --git a/src/RecoveryServices/RecoveryServices.Backup.Helpers/RecoveryServices.Backup.Helpers.csproj b/src/RecoveryServices/RecoveryServices.Backup.Helpers/RecoveryServices.Backup.Helpers.csproj index 7c9af8e584bd..b109bf39793a 100644 --- a/src/RecoveryServices/RecoveryServices.Backup.Helpers/RecoveryServices.Backup.Helpers.csproj +++ b/src/RecoveryServices/RecoveryServices.Backup.Helpers/RecoveryServices.Backup.Helpers.csproj @@ -21,4 +21,8 @@ + + + + \ No newline at end of file diff --git a/src/RecoveryServices/RecoveryServices.Backup.Logger/RecoveryServices.Backup.Logger.csproj b/src/RecoveryServices/RecoveryServices.Backup.Logger/RecoveryServices.Backup.Logger.csproj index 4cc1c2f0716c..3156b1ac2e50 100644 --- a/src/RecoveryServices/RecoveryServices.Backup.Logger/RecoveryServices.Backup.Logger.csproj +++ b/src/RecoveryServices/RecoveryServices.Backup.Logger/RecoveryServices.Backup.Logger.csproj @@ -11,4 +11,8 @@ $(LegacyAssemblyPrefix)$(PsModuleName).Backup + + + + \ No newline at end of file diff --git a/src/RecoveryServices/RecoveryServices.Backup.Models/RecoveryServices.Backup.Models.csproj b/src/RecoveryServices/RecoveryServices.Backup.Models/RecoveryServices.Backup.Models.csproj index 3d59d79e937d..211e0f189ecb 100644 --- a/src/RecoveryServices/RecoveryServices.Backup.Models/RecoveryServices.Backup.Models.csproj +++ b/src/RecoveryServices/RecoveryServices.Backup.Models/RecoveryServices.Backup.Models.csproj @@ -15,4 +15,8 @@ + + + + \ No newline at end of file diff --git a/src/RecoveryServices/RecoveryServices.Backup.Providers/RecoveryServices.Backup.Providers.csproj b/src/RecoveryServices/RecoveryServices.Backup.Providers/RecoveryServices.Backup.Providers.csproj index c72d127d6325..20ec29002209 100644 --- a/src/RecoveryServices/RecoveryServices.Backup.Providers/RecoveryServices.Backup.Providers.csproj +++ b/src/RecoveryServices/RecoveryServices.Backup.Providers/RecoveryServices.Backup.Providers.csproj @@ -19,4 +19,8 @@ + + + + \ No newline at end of file diff --git a/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/RecoveryServices.Backup.ServiceClientAdapter.csproj b/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/RecoveryServices.Backup.ServiceClientAdapter.csproj index 9554e6e7b99d..f522c98347c6 100644 --- a/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/RecoveryServices.Backup.ServiceClientAdapter.csproj +++ b/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/RecoveryServices.Backup.ServiceClientAdapter.csproj @@ -22,4 +22,8 @@ + + + + \ No newline at end of file diff --git a/src/RecoveryServices/RecoveryServices.Backup.Test/RecoveryServices.Backup.Test.csproj b/src/RecoveryServices/RecoveryServices.Backup.Test/RecoveryServices.Backup.Test.csproj index 37bde03a6bef..c167a1f87e89 100644 --- a/src/RecoveryServices/RecoveryServices.Backup.Test/RecoveryServices.Backup.Test.csproj +++ b/src/RecoveryServices/RecoveryServices.Backup.Test/RecoveryServices.Backup.Test.csproj @@ -25,4 +25,8 @@ + + + + \ No newline at end of file diff --git a/src/RecoveryServices/RecoveryServices.Backup/RecoveryServices.Backup.csproj b/src/RecoveryServices/RecoveryServices.Backup/RecoveryServices.Backup.csproj index ee282160da70..fa4bdd9e4aa9 100644 --- a/src/RecoveryServices/RecoveryServices.Backup/RecoveryServices.Backup.csproj +++ b/src/RecoveryServices/RecoveryServices.Backup/RecoveryServices.Backup.csproj @@ -23,4 +23,8 @@ + + + + \ No newline at end of file diff --git a/src/RecoveryServices/RecoveryServices.SiteRecovery.Test/RecoveryServices.SiteRecovery.Test.csproj b/src/RecoveryServices/RecoveryServices.SiteRecovery.Test/RecoveryServices.SiteRecovery.Test.csproj index 1fb681632c9c..9402ecbf9abe 100644 --- a/src/RecoveryServices/RecoveryServices.SiteRecovery.Test/RecoveryServices.SiteRecovery.Test.csproj +++ b/src/RecoveryServices/RecoveryServices.SiteRecovery.Test/RecoveryServices.SiteRecovery.Test.csproj @@ -14,7 +14,7 @@ - + @@ -27,4 +27,8 @@ + + + + \ No newline at end of file diff --git a/src/RecoveryServices/RecoveryServices.SiteRecovery/Models/PSObjects.cs b/src/RecoveryServices/RecoveryServices.SiteRecovery/Models/PSObjects.cs index 1beb06422069..0885aad604d3 100644 --- a/src/RecoveryServices/RecoveryServices.SiteRecovery/Models/PSObjects.cs +++ b/src/RecoveryServices/RecoveryServices.SiteRecovery/Models/PSObjects.cs @@ -943,6 +943,10 @@ public ASRVMNicDetails( this.PrimaryNicStaticIPAddress = vMNicDetails.PrimaryNicStaticIPAddress; this.RecoveryNicIpAddressType = vMNicDetails.RecoveryNicIpAddressType; this.EnableAcceleratedNetworkingOnRecovery = vMNicDetails.EnableAcceleratedNetworkingOnRecovery; + this.RecoveryPublicIPAddressId = vMNicDetails.RecoveryPublicIpAddressId; + this.RecoveryNetworkSecurityGroupId = vMNicDetails.RecoveryNetworkSecurityGroupId; + this.RecoveryLBBackendAddressPoolIds = + vMNicDetails.RecoveryLBBackendAddressPoolIds?.ToList() ?? new List(); } // @@ -1009,6 +1013,21 @@ public ASRVMNicDetails( /// Gets or sets VM subnet name. /// public string VMSubnetName { get; set; } + + /// + /// Gets or sets the id of the public IP address resource associated with the NIC. + /// + public string RecoveryPublicIPAddressId { get; set; } + + /// + /// Gets or sets the id of the NSG associated with the NIC. + /// + public string RecoveryNetworkSecurityGroupId { get; set; } + + /// + /// Gets or sets the target backend address pools for the NIC. + /// + public List RecoveryLBBackendAddressPoolIds { get; set; } } /// diff --git a/src/RecoveryServices/RecoveryServices.SiteRecovery/RecoveryServices.SiteRecovery.csproj b/src/RecoveryServices/RecoveryServices.SiteRecovery/RecoveryServices.SiteRecovery.csproj index 9a35ac284c57..a6fbe7e1ea66 100644 --- a/src/RecoveryServices/RecoveryServices.SiteRecovery/RecoveryServices.SiteRecovery.csproj +++ b/src/RecoveryServices/RecoveryServices.SiteRecovery/RecoveryServices.SiteRecovery.csproj @@ -14,7 +14,7 @@ - + @@ -36,4 +36,8 @@ + + + + diff --git a/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/SetAzureRmRecoveryServicesAsrReplicationProtectedItem.cs b/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/SetAzureRmRecoveryServicesAsrReplicationProtectedItem.cs index 45f7dc3a95e8..8be552f6e3f6 100644 --- a/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/SetAzureRmRecoveryServicesAsrReplicationProtectedItem.cs +++ b/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/SetAzureRmRecoveryServicesAsrReplicationProtectedItem.cs @@ -189,6 +189,26 @@ public class SetAzureRmRecoveryServicesAsrReplicationProtectedItem : SiteRecover Constants.False)] public string UseManagedDisk { get; set; } + /// + /// Gets or sets the id of the public IP address resource associated with the NIC. + /// + [Parameter] + [ValidateNotNullOrEmpty] + public string RecoveryPublicIPAddressId { get; set; } + + /// + /// Gets or sets the id of the NSG associated with the NIC. + /// + [Parameter] + [ValidateNotNullOrEmpty] + public string RecoveryNetworkSecurityGroupId { get; set; } + + /// + /// Gets or sets the target backend address pools for the NIC. + /// + [Parameter] + public List RecoveryLBBackendAddressPoolIds { get; set; } + /// /// ProcessRecord of the command. /// @@ -248,6 +268,17 @@ public override void ExecuteSiteRecoveryCmdlet() return; } + // NSG, LB and PIP only for A2A provider. + if ((!string.IsNullOrEmpty(RecoveryNetworkSecurityGroupId) || + !string.IsNullOrEmpty(RecoveryPublicIPAddressId) || + RecoveryLBBackendAddressPoolIds != null && + RecoveryLBBackendAddressPoolIds.Count > 0) && + !(provider is A2AReplicationDetails)) + { + throw new Exception("Setting RecoveryPublicIPAddressId, " + + "RecoveryNetworkSecurityGroupId and RecoveryLBBackendAddressPoolIds " + + "inputs not allowed for providers other than A2A."); + } var vmName = this.Name; var vmSize = this.Size; @@ -545,6 +576,12 @@ private List getNicListToUpdate(IList vmNicList vMNicInputDetails.SelectionType = string.IsNullOrEmpty(this.NicSelectionType) ? Constants.SelectedByUser : this.NicSelectionType; + vMNicInputDetails.RecoveryLBBackendAddressPoolIds = + this.RecoveryLBBackendAddressPoolIds; + vMNicInputDetails.RecoveryPublicIpAddressId = + this.RecoveryPublicIPAddressId; + vMNicInputDetails.RecoveryNetworkSecurityGroupId = + this.RecoveryNetworkSecurityGroupId; vMNicInputDetailsList.Add(vMNicInputDetails); // NicId matched for update nicFoundToBeUpdated = true; @@ -568,6 +605,12 @@ private List getNicListToUpdate(IList vmNicList vMNicInputDetails.SelectionType = nDetails.SelectionType; vMNicInputDetailsList.Add(vMNicInputDetails); vMNicInputDetails.EnableAcceleratedNetworkingOnRecovery = nDetails.EnableAcceleratedNetworkingOnRecovery; + vMNicInputDetails.RecoveryLBBackendAddressPoolIds = + nDetails.RecoveryLBBackendAddressPoolIds; + vMNicInputDetails.RecoveryPublicIpAddressId = + nDetails.RecoveryPublicIpAddressId; + vMNicInputDetails.RecoveryNetworkSecurityGroupId = + nDetails.RecoveryNetworkSecurityGroupId; } } } diff --git a/src/RecoveryServices/RecoveryServices.Test/RecoveryServices.Test.csproj b/src/RecoveryServices/RecoveryServices.Test/RecoveryServices.Test.csproj index 52a591916a30..f0ab0cd7a474 100644 --- a/src/RecoveryServices/RecoveryServices.Test/RecoveryServices.Test.csproj +++ b/src/RecoveryServices/RecoveryServices.Test/RecoveryServices.Test.csproj @@ -14,4 +14,8 @@ + + + + diff --git a/src/RecoveryServices/RecoveryServices/RecoveryServices.csproj b/src/RecoveryServices/RecoveryServices/RecoveryServices.csproj index c5fac232d26c..2fc8ddf424c8 100644 --- a/src/RecoveryServices/RecoveryServices/RecoveryServices.csproj +++ b/src/RecoveryServices/RecoveryServices/RecoveryServices.csproj @@ -34,4 +34,8 @@ + + + + \ No newline at end of file diff --git a/src/RecoveryServices/RecoveryServices/help/Set-AzRecoveryServicesAsrReplicationProtectedItem.md b/src/RecoveryServices/RecoveryServices/help/Set-AzRecoveryServicesAsrReplicationProtectedItem.md index cef7c078d809..1911bbf73df2 100644 --- a/src/RecoveryServices/RecoveryServices/help/Set-AzRecoveryServicesAsrReplicationProtectedItem.md +++ b/src/RecoveryServices/RecoveryServices/help/Set-AzRecoveryServicesAsrReplicationProtectedItem.md @@ -414,6 +414,47 @@ Default value: None Accept pipeline input: False Accept wildcard characters: False ``` +### -RecoveryPublicIPAddressId +Specifies the ID of the public IP address resource to be associated with the recovery NIC. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False + +### -RecoveryNetworkSecurityGroupId +Specifies the ID of the network security group to be associated with the recovery NIC. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False + +### -RecoveryLBBackendAddressPoolIds +Specifies the target backend address pools to be associated with the recovery NIC. + +```yaml +Type: System.Collections.Generic.List`1[String] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False ### -Confirm Prompts you for confirmation before running the cmdlet. diff --git a/tools/LocalFeed/Microsoft.Azure.Management.RecoveryServices.SiteRecovery.2.0.2-preview.nupkg b/tools/LocalFeed/Microsoft.Azure.Management.RecoveryServices.SiteRecovery.2.0.2-preview.nupkg new file mode 100644 index 000000000000..dedcd5f10873 Binary files /dev/null and b/tools/LocalFeed/Microsoft.Azure.Management.RecoveryServices.SiteRecovery.2.0.2-preview.nupkg differ diff --git a/tools/ScenarioTest.ResourceManager/ScenarioTest.ResourceManager.csproj b/tools/ScenarioTest.ResourceManager/ScenarioTest.ResourceManager.csproj index 2fcf2a0f5418..56ff579833dd 100644 --- a/tools/ScenarioTest.ResourceManager/ScenarioTest.ResourceManager.csproj +++ b/tools/ScenarioTest.ResourceManager/ScenarioTest.ResourceManager.csproj @@ -39,4 +39,8 @@ + + + + \ No newline at end of file diff --git a/tools/TestFx/TestFx.csproj b/tools/TestFx/TestFx.csproj index 779e9de99476..6953c5aed34a 100644 --- a/tools/TestFx/TestFx.csproj +++ b/tools/TestFx/TestFx.csproj @@ -17,4 +17,8 @@ + + + +