Skip to content

Add VM validation for Hyper-V/VMware to Azure local replication #27641

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/Migrate/Migrate.Autorest/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ generated
internal
exports
tools
custom/*.psm1
custom/autogen-model-cmdlets
test/*-TestResults.xml
license.txt
/*.ps1
Expand Down
6 changes: 4 additions & 2 deletions src/Migrate/Migrate.Autorest/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,11 @@
[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)]




13 changes: 6 additions & 7 deletions src/Migrate/Migrate.Autorest/custom/AzLocalDiskInput.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

/// <summary>Gets or sets the type of the virtual hard disk, vhd or vhdx.</summary>
Expand All @@ -54,7 +53,7 @@ public AzLocalDiskInput(
/// <summary>Gets or sets a value indicating whether disk is os disk.</summary>
public bool IsOSDisk { get; set; }

// /// <summary>Gets or sets the target storage account ARM Id.</summary>
// public string StorageContainerId { get; set; }
/// <summary>Gets or sets the target storage account ARM Id.</summary>
public string StorageContainerId { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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";
}
42 changes: 42 additions & 0 deletions src/Migrate/Migrate.Autorest/custom/Helper/CommonHelper.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -230,4 +230,46 @@ function InvokeAzMigrateGetCommandWithRetries {

return $result
}
}
function ValidateReplication {
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
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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]

Expand Down Expand Up @@ -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."
}
}

Expand Down Expand Up @@ -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)) {
Expand Down
5 changes: 4 additions & 1 deletion src/Migrate/Migrate.Autorest/docs/Az.Migrate.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -135,3 +135,6 @@ Cleans up the test migration for the replicating server.
### [Suspend-AzMigrateServerReplication](Suspend-AzMigrateServerReplication.md)
Suspends the ongoing replication.

### [ValidateReplication](ValidateReplication.md)


2 changes: 1 addition & 1 deletion src/Migrate/Migrate.Autorest/generate-info.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"generate_Id": "145f526c-1786-4548-bea6-6c9c35ec0f0e"
"generate_Id": "3cf27c48-486f-4878-9e97-b4fd1411e1b6"
}
87 changes: 79 additions & 8 deletions src/Migrate/Migrate.sln
Original file line number Diff line number Diff line change
Expand Up @@ -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", "{E30868D0-5521-4826-97E3-94BDABB82B4C}"
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
{E30868D0-5521-4826-97E3-94BDABB82B4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E30868D0-5521-4826-97E3-94BDABB82B4C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E30868D0-5521-4826-97E3-94BDABB82B4C}.Debug|x64.ActiveCfg = Debug|Any CPU
{E30868D0-5521-4826-97E3-94BDABB82B4C}.Debug|x64.Build.0 = Debug|Any CPU
{E30868D0-5521-4826-97E3-94BDABB82B4C}.Debug|x86.ActiveCfg = Debug|Any CPU
{E30868D0-5521-4826-97E3-94BDABB82B4C}.Debug|x86.Build.0 = Debug|Any CPU
{E30868D0-5521-4826-97E3-94BDABB82B4C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E30868D0-5521-4826-97E3-94BDABB82B4C}.Release|Any CPU.Build.0 = Release|Any CPU
{E30868D0-5521-4826-97E3-94BDABB82B4C}.Release|x64.ActiveCfg = Release|Any CPU
{E30868D0-5521-4826-97E3-94BDABB82B4C}.Release|x64.Build.0 = Release|Any CPU
{E30868D0-5521-4826-97E3-94BDABB82B4C}.Release|x86.ActiveCfg = Release|Any CPU
{E30868D0-5521-4826-97E3-94BDABB82B4C}.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}
Expand All @@ -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}
{E30868D0-5521-4826-97E3-94BDABB82B4C} = {9AA2C35A-2264-B74D-8556-EB72BD88EE60}
EndGlobalSection
EndGlobal
14 changes: 7 additions & 7 deletions src/Migrate/Migrate/Az.Migrate.psd1
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#
# Generated by: Microsoft Corporation
#
# Generated on: 2/25/2025
# Generated on: 4/22/2025
#

@{
Expand Down Expand Up @@ -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'
Expand Down Expand Up @@ -96,7 +96,7 @@ FunctionsToExport = 'Get-AzMigrateDiscoveredServer', 'Get-AzMigrateJob',
'Start-AzMigrateLocalServerMigration',
'Start-AzMigrateServerMigration', 'Start-AzMigrateTestMigration',
'Start-AzMigrateTestMigrationCleanup',
'Suspend-AzMigrateServerReplication'
'Suspend-AzMigrateServerReplication', 'ValidateReplication'

# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
CmdletsToExport = @()
Expand All @@ -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'
Expand Down Expand Up @@ -150,7 +150,7 @@ PrivateData = @{

} # End of PSData hashtable

} # End of PrivateData hashtable
} # End of PrivateData hashtable

# HelpInfo URI of this module
# HelpInfoURI = ''
Expand Down
Loading