diff --git a/src/Migrate/Migrate.Autorest/Properties/AssemblyInfo.cs b/src/Migrate/Migrate.Autorest/Properties/AssemblyInfo.cs index 8ecfe6531dff..013b322be4c5 100644 --- a/src/Migrate/Migrate.Autorest/Properties/AssemblyInfo.cs +++ b/src/Migrate/Migrate.Autorest/Properties/AssemblyInfo.cs @@ -20,9 +20,7 @@ [assembly: System.Reflection.AssemblyCopyrightAttribute("Copyright © Microsoft")] [assembly: System.Reflection.AssemblyProductAttribute("Microsoft Azure PowerShell")] [assembly: System.Reflection.AssemblyTitleAttribute("Microsoft Azure PowerShell - Migrate")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("2.6.0")] -[assembly: System.Reflection.AssemblyVersionAttribute("2.6.0")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("2.7.0")] +[assembly: System.Reflection.AssemblyVersionAttribute("2.7.0")] [assembly: System.Runtime.InteropServices.ComVisibleAttribute(false)] [assembly: System.CLSCompliantAttribute(false)] - - diff --git a/src/Migrate/Migrate.Autorest/custom/AzLocalDiskInput.cs b/src/Migrate/Migrate.Autorest/custom/AzLocalDiskInput.cs index 0849af772452..b2988ab5941f 100644 --- a/src/Migrate/Migrate.Autorest/custom/AzLocalDiskInput.cs +++ b/src/Migrate/Migrate.Autorest/custom/AzLocalDiskInput.cs @@ -26,11 +26,10 @@ public AzLocalDiskInput( ? diskPhysicalSectorSize : null; - // TODO(helenafework): Add this code back once backend is fixed to check for empty string - // StorageContainerId = - // string.IsNullOrWhiteSpace(storageContainerId) - // ? null - // : storageContainerId; + StorageContainerId = + string.IsNullOrWhiteSpace(storageContainerId) + ? null + : storageContainerId; } /// Gets or sets the type of the virtual hard disk, vhd or vhdx. @@ -54,7 +53,7 @@ public AzLocalDiskInput( /// Gets or sets a value indicating whether disk is os disk. public bool IsOSDisk { get; set; } - // /// Gets or sets the target storage account ARM Id. - // public string StorageContainerId { get; set; } + /// Gets or sets the target storage account ARM Id. + public string StorageContainerId { get; set; } } } \ No newline at end of file diff --git a/src/Migrate/Migrate.Autorest/custom/Helper/AzLocalCommonSettings.ps1 b/src/Migrate/Migrate.Autorest/custom/Helper/AzLocalCommonSettings.ps1 index 41dbeae04757..eb9abf2cad81 100644 --- a/src/Migrate/Migrate.Autorest/custom/Helper/AzLocalCommonSettings.ps1 +++ b/src/Migrate/Migrate.Autorest/custom/Helper/AzLocalCommonSettings.ps1 @@ -81,4 +81,32 @@ enum StorageAccountProvisioningState $VMNicSelection = @{ SelectedByUser = "SelectedByUser"; NotSelected = "NotSelected"; +} + +$PowerStatus = @{ + OffVMware = "OFF"; + OnVMWare = "ON"; + OffHyperV = "PowerOff"; + OnHyperV = "Running"; +} + +$HighAvailability = @{ + NO = "No"; + YES = "Yes"; +} + +$VMwareToolsStatus = @{ + NotRunning = "NotRunning"; + OK = "OK"; + NotInstalled = "NotInstalled"; +} + +$VmReplicationValidationMessage = "Replication could not be initiated. Please ensure the necessary changes are made, and allow up to 30 minutes before re-trying." +$VmReplicationValidationMessages = @{ + VmPoweredOff = "The VM is currently powered off. $VmReplicationValidationMessage"; + AlreadyInReplication = "The VM is already in replication. $VmReplicationValidationMessage"; + VmWareToolsNotInstalled = "VMware tools not installed on VM. $VmReplicationValidationMessage"; + VmWareToolsNotRunning = "VMware tools not running on VM. $VmReplicationValidationMessage"; + VmNotHighlyAvailable = "VM not highly available. $VmReplicationValidationMessage"; + OsTypeNotFound = "Hyper-V Integration Services not running on VM. $VmReplicationValidationMessage"; } \ No newline at end of file diff --git a/src/Migrate/Migrate.Autorest/custom/Helper/CommonHelper.ps1 b/src/Migrate/Migrate.Autorest/custom/Helper/CommonHelper.ps1 index c3e4e31a347e..a84c9520191f 100644 --- a/src/Migrate/Migrate.Autorest/custom/Helper/CommonHelper.ps1 +++ b/src/Migrate/Migrate.Autorest/custom/Helper/CommonHelper.ps1 @@ -230,4 +230,47 @@ function InvokeAzMigrateGetCommandWithRetries { return $result } +} +function ValidateReplication { + [Microsoft.Azure.PowerShell.Cmdlets.Migrate.DoNotExportAttribute()] + param ( + [Parameter(Mandatory)] + [PSCustomObject] + ${Machine}, + + [Parameter(Mandatory)] + [System.String] + ${MigrationType} + ) + # Check if the VM is already protected + $protectedItem = Az.Migrate\Get-AzMigrateLocalServerReplication ` + -DiscoveredMachineId $Machine.Id ` + -ErrorAction SilentlyContinue + if ($null -ne $protectedItem) { + throw $VmReplicationValidationMessages.AlreadyInReplication + } + + if ($Machine.PowerStatus -eq $PowerStatus.OffVMware -or $Machine.PowerStatus -eq $PowerStatus.OffHyperV) { + throw $VmReplicationValidationMessages.VmPoweredOff + } + + if ($MigrationType -eq $AzLocalInstanceTypes.HyperVToAzLocal) { + if (-not $Machine.OperatingSystemDetailOSType -or $Machine.OperatingSystemDetailOSType -eq "") { + throw $VmReplicationValidationMessages.OsTypeNotFound + } + + if ($Machine.ClusterId -and $Machine.HighAvailability -eq $HighAvailability.NO) { + throw $VmReplicationValidationMessages.VmNotHighlyAvailable + } + } + + if ($MigrationType -eq $AzLocalInstanceTypes.VMwareToAzLocal) { + if ($Machine.VMwareToolsStatus -eq $VMwareToolsStatus.NotRunning) { + throw $VmReplicationValidationMessages.VmWareToolsNotRunning + } + + if ($Machine.VMwareToolsStatus -eq $VMwareToolsStatus.NotInstalled) { + throw $VmReplicationValidationMessages.VmWareToolsNotInstalled + } + } } \ No newline at end of file diff --git a/src/Migrate/Migrate.Autorest/custom/New-AzMigrateLocalServerReplication.ps1 b/src/Migrate/Migrate.Autorest/custom/New-AzMigrateLocalServerReplication.ps1 index 4233b0455385..5e6abbe2d78e 100644 --- a/src/Migrate/Migrate.Autorest/custom/New-AzMigrateLocalServerReplication.ps1 +++ b/src/Migrate/Migrate.Autorest/custom/New-AzMigrateLocalServerReplication.ps1 @@ -231,6 +231,9 @@ function New-AzMigrateLocalServerReplication { -ErrorMessage "Machine site '$SiteName' with Type '$SiteType' not found." } + # Validate the VM + ValidateReplication -Machine $machine -MigrationType $instanceType + # $siteObject is not null or exception would have been thrown $ProjectName = $siteObject.DiscoverySolutionId.Split("/")[8] @@ -419,23 +422,23 @@ function New-AzMigrateLocalServerReplication { if ($SiteType -eq $SiteTypes.HyperVSites) { $osDisk = $machine.Disk | Where-Object { $_.InstanceId -eq $OSDiskID } if ($null -eq $osDisk) { - throw "No Disk found with InstanceId '$OSDiskID' from discovered machine disks." + throw "No Disk found with InstanceId $OSDiskID from discovered machine disks." } $diskName = Split-Path $osDisk.Path -leaf if (IsReservedOrTrademarked($diskName)) { - throw "The disk name '$diskName' or part of the name is a trademarked or reserved word." + throw "The disk name $diskName or part of the name is a trademarked or reserved word." } } elseif ($SiteType -eq $SiteTypes.VMwareSites) { $osDisk = $machine.Disk | Where-Object { $_.Uuid -eq $OSDiskID } if ($null -eq $osDisk) { - throw "No Disk found with Uuid '$OSDiskID' from discovered machine disks." + throw "No Disk found with Uuid $OSDiskID from discovered machine disks." } $diskName = Split-Path $osDisk.Path -leaf if (IsReservedOrTrademarked($diskName)) { - throw "The disk name '$diskName' or part of the name is a trademarked or reserved word." + throw "The disk name $diskName or part of the name is a trademarked or reserved word." } } @@ -495,7 +498,7 @@ function New-AzMigrateLocalServerReplication { $diskName = Split-Path -Path $discoveredDisk.Path -Leaf if (IsReservedOrTrademarked($diskName)) { - throw "The disk name '$diskName' or part of the name is a trademarked or reserved word." + throw "The disk name $diskName or part of the name is a trademarked or reserved word." } if ($uniqueDisks.Contains($disk.DiskId)) { diff --git a/src/Migrate/Migrate.Autorest/docs/Az.Migrate.md b/src/Migrate/Migrate.Autorest/docs/Az.Migrate.md index a3510cdfbe80..159e806ed611 100644 --- a/src/Migrate/Migrate.Autorest/docs/Az.Migrate.md +++ b/src/Migrate/Migrate.Autorest/docs/Az.Migrate.md @@ -1,6 +1,6 @@ --- Module Name: Az.Migrate -Module Guid: 72e0bbdf-2561-4f4e-90e1-2a27c36b7ab8 +Module Guid: f86539fb-ae5e-499c-af58-5b21bbeef039 Download Help Link: https://learn.microsoft.com/powershell/module/az.migrate Help Version: 1.0.0.0 Locale: en-US diff --git a/src/Migrate/Migrate.Autorest/generate-info.json b/src/Migrate/Migrate.Autorest/generate-info.json index 1eadcf07bbdc..060084d49064 100644 --- a/src/Migrate/Migrate.Autorest/generate-info.json +++ b/src/Migrate/Migrate.Autorest/generate-info.json @@ -1,3 +1,3 @@ { - "generate_Id": "145f526c-1786-4548-bea6-6c9c35ec0f0e" + "generate_Id": "46df379f-23ec-4e1f-b9b2-d493388e0d5c" } diff --git a/src/Migrate/Migrate.sln b/src/Migrate/Migrate.sln index 1eee604afe06..ca718abc88df 100644 --- a/src/Migrate/Migrate.sln +++ b/src/Migrate/Migrate.sln @@ -19,49 +19,119 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Authenticators", "..\Accoun EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Migrate", "Migrate\Migrate.csproj", "{1847EC8D-87A5-4772-9E75-1DEA1DC531EE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Az.Migrate", "..\..\generated\Migrate\Migrate.Autorest\Az.Migrate.csproj", "{DE49266B-1267-409E-A68D-49AE62DD73A5}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Migrate.Autorest", "Migrate.Autorest", "{9AA2C35A-2264-B74D-8556-EB72BD88EE60}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Az.Migrate", "..\..\generated\Migrate\Migrate.Autorest\Az.Migrate.csproj", "{0A0C9F3C-5853-40D8-9584-35186085C965}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE + Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Debug|Any CPU.Build.0 = Debug|Any CPU + {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Debug|x64.ActiveCfg = Debug|Any CPU + {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Debug|x64.Build.0 = Debug|Any CPU + {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Debug|x86.ActiveCfg = Debug|Any CPU + {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Debug|x86.Build.0 = Debug|Any CPU {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Release|Any CPU.ActiveCfg = Release|Any CPU {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Release|Any CPU.Build.0 = Release|Any CPU + {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Release|x64.ActiveCfg = Release|Any CPU + {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Release|x64.Build.0 = Release|Any CPU + {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Release|x86.ActiveCfg = Release|Any CPU + {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Release|x86.Build.0 = Release|Any CPU {F8556062-9A47-4812-8D95-213808B0B620}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F8556062-9A47-4812-8D95-213808B0B620}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8556062-9A47-4812-8D95-213808B0B620}.Debug|x64.ActiveCfg = Debug|Any CPU + {F8556062-9A47-4812-8D95-213808B0B620}.Debug|x64.Build.0 = Debug|Any CPU + {F8556062-9A47-4812-8D95-213808B0B620}.Debug|x86.ActiveCfg = Debug|Any CPU + {F8556062-9A47-4812-8D95-213808B0B620}.Debug|x86.Build.0 = Debug|Any CPU {F8556062-9A47-4812-8D95-213808B0B620}.Release|Any CPU.ActiveCfg = Release|Any CPU {F8556062-9A47-4812-8D95-213808B0B620}.Release|Any CPU.Build.0 = Release|Any CPU + {F8556062-9A47-4812-8D95-213808B0B620}.Release|x64.ActiveCfg = Release|Any CPU + {F8556062-9A47-4812-8D95-213808B0B620}.Release|x64.Build.0 = Release|Any CPU + {F8556062-9A47-4812-8D95-213808B0B620}.Release|x86.ActiveCfg = Release|Any CPU + {F8556062-9A47-4812-8D95-213808B0B620}.Release|x86.Build.0 = Release|Any CPU {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Debug|x64.ActiveCfg = Debug|Any CPU + {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Debug|x64.Build.0 = Debug|Any CPU + {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Debug|x86.ActiveCfg = Debug|Any CPU + {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Debug|x86.Build.0 = Debug|Any CPU {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Release|Any CPU.ActiveCfg = Release|Any CPU {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Release|Any CPU.Build.0 = Release|Any CPU + {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Release|x64.ActiveCfg = Release|Any CPU + {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Release|x64.Build.0 = Release|Any CPU + {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Release|x86.ActiveCfg = Release|Any CPU + {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Release|x86.Build.0 = Release|Any CPU {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Debug|x64.ActiveCfg = Debug|Any CPU + {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Debug|x64.Build.0 = Debug|Any CPU + {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Debug|x86.ActiveCfg = Debug|Any CPU + {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Debug|x86.Build.0 = Debug|Any CPU {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Release|Any CPU.ActiveCfg = Release|Any CPU {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Release|Any CPU.Build.0 = Release|Any CPU + {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Release|x64.ActiveCfg = Release|Any CPU + {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Release|x64.Build.0 = Release|Any CPU + {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Release|x86.ActiveCfg = Release|Any CPU + {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Release|x86.Build.0 = Release|Any CPU {D8D28132-CE20-45C8-8476-6B88C891D945}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D8D28132-CE20-45C8-8476-6B88C891D945}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D8D28132-CE20-45C8-8476-6B88C891D945}.Debug|x64.ActiveCfg = Debug|Any CPU + {D8D28132-CE20-45C8-8476-6B88C891D945}.Debug|x64.Build.0 = Debug|Any CPU + {D8D28132-CE20-45C8-8476-6B88C891D945}.Debug|x86.ActiveCfg = Debug|Any CPU + {D8D28132-CE20-45C8-8476-6B88C891D945}.Debug|x86.Build.0 = Debug|Any CPU {D8D28132-CE20-45C8-8476-6B88C891D945}.Release|Any CPU.ActiveCfg = Release|Any CPU {D8D28132-CE20-45C8-8476-6B88C891D945}.Release|Any CPU.Build.0 = Release|Any CPU + {D8D28132-CE20-45C8-8476-6B88C891D945}.Release|x64.ActiveCfg = Release|Any CPU + {D8D28132-CE20-45C8-8476-6B88C891D945}.Release|x64.Build.0 = Release|Any CPU + {D8D28132-CE20-45C8-8476-6B88C891D945}.Release|x86.ActiveCfg = Release|Any CPU + {D8D28132-CE20-45C8-8476-6B88C891D945}.Release|x86.Build.0 = Release|Any CPU {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Debug|x64.ActiveCfg = Debug|Any CPU + {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Debug|x64.Build.0 = Debug|Any CPU + {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Debug|x86.ActiveCfg = Debug|Any CPU + {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Debug|x86.Build.0 = Debug|Any CPU {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Release|Any CPU.ActiveCfg = Release|Any CPU {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Release|Any CPU.Build.0 = Release|Any CPU + {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Release|x64.ActiveCfg = Release|Any CPU + {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Release|x64.Build.0 = Release|Any CPU + {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Release|x86.ActiveCfg = Release|Any CPU + {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Release|x86.Build.0 = Release|Any CPU {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Debug|x64.ActiveCfg = Debug|Any CPU + {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Debug|x64.Build.0 = Debug|Any CPU + {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Debug|x86.ActiveCfg = Debug|Any CPU + {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Debug|x86.Build.0 = Debug|Any CPU {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Release|Any CPU.ActiveCfg = Release|Any CPU {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Release|Any CPU.Build.0 = Release|Any CPU - {DE49266B-1267-409E-A68D-49AE62DD73A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DE49266B-1267-409E-A68D-49AE62DD73A5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DE49266B-1267-409E-A68D-49AE62DD73A5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DE49266B-1267-409E-A68D-49AE62DD73A5}.Release|Any CPU.Build.0 = Release|Any CPU + {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Release|x64.ActiveCfg = Release|Any CPU + {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Release|x64.Build.0 = Release|Any CPU + {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Release|x86.ActiveCfg = Release|Any CPU + {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Release|x86.Build.0 = Release|Any CPU + {0A0C9F3C-5853-40D8-9584-35186085C965}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0A0C9F3C-5853-40D8-9584-35186085C965}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0A0C9F3C-5853-40D8-9584-35186085C965}.Debug|x64.ActiveCfg = Debug|Any CPU + {0A0C9F3C-5853-40D8-9584-35186085C965}.Debug|x64.Build.0 = Debug|Any CPU + {0A0C9F3C-5853-40D8-9584-35186085C965}.Debug|x86.ActiveCfg = Debug|Any CPU + {0A0C9F3C-5853-40D8-9584-35186085C965}.Debug|x86.Build.0 = Debug|Any CPU + {0A0C9F3C-5853-40D8-9584-35186085C965}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0A0C9F3C-5853-40D8-9584-35186085C965}.Release|Any CPU.Build.0 = Release|Any CPU + {0A0C9F3C-5853-40D8-9584-35186085C965}.Release|x64.ActiveCfg = Release|Any CPU + {0A0C9F3C-5853-40D8-9584-35186085C965}.Release|x64.Build.0 = Release|Any CPU + {0A0C9F3C-5853-40D8-9584-35186085C965}.Release|x86.ActiveCfg = Release|Any CPU + {0A0C9F3C-5853-40D8-9584-35186085C965}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {395019BE-8D3A-46E4-9CFB-7E298FEEB747} = {2D0176AD-AE30-4235-9D62-17043F0D4CD8} @@ -70,5 +140,6 @@ Global {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F} = {2D0176AD-AE30-4235-9D62-17043F0D4CD8} {D8D28132-CE20-45C8-8476-6B88C891D945} = {2D0176AD-AE30-4235-9D62-17043F0D4CD8} {B799EA2F-9E28-421A-9301-BB061C6ADDC2} = {2D0176AD-AE30-4235-9D62-17043F0D4CD8} + {0A0C9F3C-5853-40D8-9584-35186085C965} = {9AA2C35A-2264-B74D-8556-EB72BD88EE60} EndGlobalSection EndGlobal diff --git a/src/Migrate/Migrate/Az.Migrate.psd1 b/src/Migrate/Migrate/Az.Migrate.psd1 index f5f9a3b3c72d..7faa5bd9a30b 100644 --- a/src/Migrate/Migrate/Az.Migrate.psd1 +++ b/src/Migrate/Migrate/Az.Migrate.psd1 @@ -3,7 +3,7 @@ # # Generated by: Microsoft Corporation # -# Generated on: 2/25/2025 +# Generated on: 5/8/2025 # @{ @@ -51,16 +51,16 @@ DotNetFrameworkVersion = '4.7.2' # ProcessorArchitecture = '' # Modules that must be imported into the global environment prior to importing this module -RequiredModules = @(@{ModuleName = 'Az.Accounts'; ModuleVersion = '4.0.2'; }) +RequiredModules = @(@{ModuleName = 'Az.Accounts'; ModuleVersion = '4.1.0'; }) # Assemblies that must be loaded prior to importing this module RequiredAssemblies = 'Migrate.Autorest/bin/Az.Migrate.private.dll' # Script files (.ps1) that are run in the caller's environment prior to importing this module. -# ScriptsToProcess = @() +ScriptsToProcess = @() # Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() +TypesToProcess = @() # Format files (.ps1xml) to be loaded when importing this module FormatsToProcess = 'Migrate.Autorest/Az.Migrate.format.ps1xml' @@ -122,7 +122,7 @@ PrivateData = @{ PSData = @{ # Tags applied to this module. These help with module discovery in online galleries. - Tags = 'Azure','ResourceManager','ARM','PSModule','Migrate' + Tags = 'Azure', 'ResourceManager', 'ARM', 'PSModule', 'Migrate' # A URL to the license for this module. LicenseUri = 'https://aka.ms/azps-license' @@ -150,7 +150,7 @@ PrivateData = @{ } # End of PSData hashtable - } # End of PrivateData hashtable +} # End of PrivateData hashtable # HelpInfo URI of this module # HelpInfoURI = '' diff --git a/src/Migrate/Migrate/ChangeLog.md b/src/Migrate/Migrate/ChangeLog.md index 48af4130fe1f..db5155136304 100644 --- a/src/Migrate/Migrate/ChangeLog.md +++ b/src/Migrate/Migrate/ChangeLog.md @@ -19,6 +19,9 @@ --> ## Upcoming Release +* Added validation for Data.Replication + - Added validation to protect virtual machines in `New-AzMigrateLocalServerReplication` + ## Version 2.7.0 * Updated Data.Replication to newer API version - Updated Data.Replication to point to stable API version 2024-09-01