Skip to content
Merged
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: 1 addition & 1 deletion .pipelines/azure-pipelines-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ resources:
options: --entrypoint=""

variables:
VcVersion : 1.14.21
VcVersion : 1.14.22
ROOT: $(Build.SourcesDirectory)
CDP_DEFINITION_BUILD_COUNT: $[counter('', 0)] # needed for onebranch.pipeline.version task https://aka.ms/obpipelines/versioning
ENABLE_PRS_DELAYSIGN: 1
Expand Down
2 changes: 1 addition & 1 deletion .pipelines/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ pool:
vmImage: windows-latest

variables:
VcVersion : 1.14.21
VcVersion : 1.14.22
ROOT: $(Build.SourcesDirectory)
CDP_DEFINITION_BUILD_COUNT: $[counter('', 0)] # needed for onebranch.pipeline.version task https://aka.ms/obpipelines/versioning
ENABLE_PRS_DELAYSIGN: 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ private async Task CheckDistroSupportAsync(EventContext telemetryContext, Cancel
case LinuxDistribution.Debian:
case LinuxDistribution.CentOS8:
case LinuxDistribution.RHEL8:
case LinuxDistribution.Mariner:
case LinuxDistribution.AzLinux:
case LinuxDistribution.CentOS7:
case LinuxDistribution.RHEL7:
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -244,14 +244,14 @@ private async Task ValidatePlatformSupportAsync(CancellationToken cancellationTo
case LinuxDistribution.Debian:
case LinuxDistribution.CentOS8:
case LinuxDistribution.RHEL8:
case LinuxDistribution.Mariner:
case LinuxDistribution.AzLinux:
break;
default:
throw new WorkloadException(
$"The workload/benchmark is not supported on the current Linux distro " +
$"'{distroInfo.LinuxDistribution}'. Supported distros include: " +
$"{Enum.GetName(typeof(LinuxDistribution), LinuxDistribution.Ubuntu)},{Enum.GetName(typeof(LinuxDistribution), LinuxDistribution.Debian)}" +
$"{Enum.GetName(typeof(LinuxDistribution), LinuxDistribution.CentOS8)},{Enum.GetName(typeof(LinuxDistribution), LinuxDistribution.RHEL8)},{Enum.GetName(typeof(LinuxDistribution), LinuxDistribution.Mariner)}",
$"{Enum.GetName(typeof(LinuxDistribution), LinuxDistribution.CentOS8)},{Enum.GetName(typeof(LinuxDistribution), LinuxDistribution.RHEL8)},{Enum.GetName(typeof(LinuxDistribution), LinuxDistribution.AzLinux)}",
ErrorReason.LinuxDistributionNotSupported);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ private async Task CheckDistroSupportAsync(EventContext telemetryContext, Cancel
case LinuxDistribution.Debian:
case LinuxDistribution.CentOS8:
case LinuxDistribution.RHEL8:
case LinuxDistribution.Mariner:
case LinuxDistribution.AzLinux:
case LinuxDistribution.CentOS7:
case LinuxDistribution.RHEL7:
break;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Static hostname: omega
Icon name: computer-vm
Chassis: vm 🖴
Machine ID: cf5e3269332149319128b5b09f03c002
Boot ID: e28e22f759d8431da7f93d28cca0b10c
Virtualization: qemu
Operating System: Microsoft Azure Linux 3.0
Kernel: Linux 6.6.22.1-2.azl3
Architecture: arm64
Hardware Vendor: QEMU
Hardware Model: QEMU Virtual Machine
Firmware Version: 0.0.0
Firmware Date: Fri 2015-02-06
Firmware Age: 9y 2month 3w 5d
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
NAME="Microsoft Azure Linux"
VERSION="3.0.20240401"
ID=azurelinux
VERSION_ID="3.0"
PRETTY_NAME="Microsoft Azure Linux 3.0"
ANSI_COLOR="1;34"
HOME_URL="https://aka.ms/azurelinux"
BUG_REPORT_URL="https://aka.ms/azurelinux"
SUPPORT_URL="https://aka.ms/azurelinux"
Original file line number Diff line number Diff line change
Expand Up @@ -96,15 +96,25 @@ public void HostnamectlParserRecognizeCentOS8()
}

[Test]
public void HostnamectlParserRecognizeMariner()
public void HostnamectlParserRecognizeMariner2()
{
string outputPath = Path.Combine(this.ExamplePath, "MarinerExample.txt");
this.rawText = File.ReadAllText(outputPath);
this.testParser = new HostnamectlParser(this.rawText);
Assert.AreEqual(LinuxDistribution.Mariner, this.testParser.Parse().LinuxDistribution);
Assert.AreEqual(LinuxDistribution.AzLinux, this.testParser.Parse().LinuxDistribution);
Assert.AreEqual("CBL-Mariner/Linux", this.testParser.Parse().OperationSystemFullName);
}

[Test]
public void HostnamectlParserRecognizeAzLinux3()
{
string outputPath = Path.Combine(this.ExamplePath, "AzLinux3Example.txt");
this.rawText = File.ReadAllText(outputPath);
this.testParser = new HostnamectlParser(this.rawText);
Assert.AreEqual(LinuxDistribution.AzLinux, this.testParser.Parse().LinuxDistribution);
Assert.AreEqual("Microsoft Azure Linux 3.0", this.testParser.Parse().OperationSystemFullName);
}

[Test]
public void HostnamectlParserRecognizeSUSE()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ private string ExamplePath
}

[Test]
public void OsReleaseFileParserrRecognizeFedoraOS()
public void OsReleaseFileParserRecognizeFedoraOS()
{
string outputPath = Path.Combine(this.ExamplePath, "FedoraOSExample.txt");
this.rawText = File.ReadAllText(outputPath);
Expand All @@ -37,7 +37,7 @@ public void OsReleaseFileParserrRecognizeFedoraOS()
}

[Test]
public void OsReleaseFileParserrRecognizeUbuntu22()
public void OsReleaseFileParserRecognizeUbuntu22()
{
string outputPath = Path.Combine(this.ExamplePath, "Ubuntu22Example.txt");
this.rawText = File.ReadAllText(outputPath);
Expand All @@ -47,7 +47,7 @@ public void OsReleaseFileParserrRecognizeUbuntu22()
}

[Test]
public void OsReleaseFileParserrRecognizeDebian11()
public void OsReleaseFileParserRecognizeDebian11()
{
string outputPath = Path.Combine(this.ExamplePath, "Debian11Example.txt");
this.rawText = File.ReadAllText(outputPath);
Expand All @@ -57,13 +57,23 @@ public void OsReleaseFileParserrRecognizeDebian11()
}

[Test]
public void OsReleaseFileParserrRecognizeRHEL93()
public void OsReleaseFileParserRecognizeRHEL93()
{
string outputPath = Path.Combine(this.ExamplePath, "RHEL93Example.txt");
this.rawText = File.ReadAllText(outputPath);
this.testParser = new OsReleaseFileParser(this.rawText);
Assert.AreEqual(LinuxDistribution.RHEL8, this.testParser.Parse().LinuxDistribution);
Assert.AreEqual("Red Hat Enterprise Linux 9.3 (Plow)", this.testParser.Parse().OperationSystemFullName);
}

[Test]
public void OsReleaseFileParserRecognizeAzLinux3()
{
string outputPath = Path.Combine(this.ExamplePath, "AzLinux3Example.txt");
this.rawText = File.ReadAllText(outputPath);
this.testParser = new OsReleaseFileParser(this.rawText);
Assert.AreEqual(LinuxDistribution.AzLinux, this.testParser.Parse().LinuxDistribution);
Assert.AreEqual("Microsoft Azure Linux 3.0", this.testParser.Parse().OperationSystemFullName);
}
}
}
4 changes: 2 additions & 2 deletions src/VirtualClient/VirtualClient.Contracts/Enumerations.cs
Original file line number Diff line number Diff line change
Expand Up @@ -541,9 +541,9 @@ public enum LinuxDistribution
Fedora,

/// <summary>
/// MSFT internal CentOS based distro Mariner
/// MSFT internal CentOS based distro AzLinux (Previously Mariner)
/// </summary>
Mariner
AzLinux
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ public override LinuxDistributionInfo Parse()
Regex flatcarRegex = new Regex("Operating System: Flatcar", RegexOptions.Multiline | RegexOptions.IgnoreCase);
Regex centos7Regex = new Regex("Operating System: CentOS Linux 7", RegexOptions.Multiline | RegexOptions.IgnoreCase);
Regex centos8Regex = new Regex("Operating System: CentOS Linux 8", RegexOptions.Multiline | RegexOptions.IgnoreCase);
Regex marinerRegex = new Regex("Operating System: CBL-Mariner", RegexOptions.Multiline | RegexOptions.IgnoreCase);
// Mariner 3+ renamed to AzLinux 3
Regex azLinuxRegex = new Regex("Operating System: (CBL-Mariner|Microsoft Azure Linux)", RegexOptions.Multiline | RegexOptions.IgnoreCase);
Regex suseRegex = new Regex("Operating System: SUSE", RegexOptions.Multiline | RegexOptions.IgnoreCase);

Dictionary<Regex, LinuxDistribution> distroMapping = new Dictionary<Regex, LinuxDistribution>()
Expand All @@ -47,7 +48,7 @@ public override LinuxDistributionInfo Parse()
{ centos7Regex, LinuxDistribution.CentOS7 },
{ centos8Regex, LinuxDistribution.CentOS8 },
{ suseRegex, LinuxDistribution.SUSE },
{ marinerRegex, LinuxDistribution.Mariner }
{ azLinuxRegex, LinuxDistribution.AzLinux }
};

LinuxDistribution distribution = LinuxDistribution.Unknown;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ public override LinuxDistributionInfo Parse()
Regex flatcarRegex = new Regex("Name=(\")?Flatcar", RegexOptions.Multiline | RegexOptions.IgnoreCase);
Regex centos7Regex = new Regex("Name=(\")?CentOS Linux 7", RegexOptions.Multiline | RegexOptions.IgnoreCase);
Regex centos8Regex = new Regex("Name=(\")?CentOS Linux 8", RegexOptions.Multiline | RegexOptions.IgnoreCase);
Regex marinerRegex = new Regex("Name=(\")?CBL-Mariner", RegexOptions.Multiline | RegexOptions.IgnoreCase);
// Mariner 3+ renamed to AzLinux
Regex marinerRegex = new Regex("Name=(\")?(CBL-Mariner|Microsoft Azure Linux)", RegexOptions.Multiline | RegexOptions.IgnoreCase);
Regex suseRegex = new Regex("Name=(\")?SUSE", RegexOptions.Multiline | RegexOptions.IgnoreCase);
Regex fedoraRegex = new Regex("Name=(\")?Fedora", RegexOptions.Multiline | RegexOptions.IgnoreCase);

Expand All @@ -49,7 +50,7 @@ public override LinuxDistributionInfo Parse()
{ centos7Regex, LinuxDistribution.CentOS7 },
{ centos8Regex, LinuxDistribution.CentOS8 },
{ suseRegex, LinuxDistribution.SUSE },
{ marinerRegex, LinuxDistribution.Mariner },
{ marinerRegex, LinuxDistribution.AzLinux },
{ fedoraRegex, LinuxDistribution.Fedora }
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public void DCGMIInstallationThrowsIfDistroNotSupported()
LinuxDistributionInfo mockInfo = new LinuxDistributionInfo()
{
OperationSystemFullName = "TestUbuntu",
LinuxDistribution = LinuxDistribution.Mariner
LinuxDistribution = LinuxDistribution.AzLinux
};
this.mockFixture.SystemManagement.Setup(sm => sm.GetLinuxDistributionAsync(It.IsAny<CancellationToken>())).ReturnsAsync(mockInfo);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ public async Task LinuxPackageInstallationInstantiateCorrectAptInstalltionUbuntu
{ "Repositories-Ubuntu", "extrarepo1,extrarepo2" },
{ "Packages-Ubuntu", "morepack1,morepack2" },
{ "Packages-Debian", "wrongpack1,wrongpack2" },
{ "Packages-Mariner", "wrongpack1,wrongpack2" },
{ "Packages-AzLinux", "wrongpack1,wrongpack2" },
{ "Repositories-SUSE", "wrongrepo1,wrongrepo2" },
};

Expand All @@ -146,7 +146,7 @@ public async Task LinuxPackageInstallationInstantiateCorrectDnfInstalltionMarine
LinuxDistributionInfo mockInfo = new LinuxDistributionInfo()
{
OperationSystemFullName = "TestMariner",
LinuxDistribution = LinuxDistribution.Mariner
LinuxDistribution = LinuxDistribution.AzLinux
};
this.mockFixture.SystemManagement.Setup(sm => sm.GetLinuxDistributionAsync(It.IsAny<CancellationToken>())).ReturnsAsync(mockInfo);

Expand All @@ -159,10 +159,10 @@ public async Task LinuxPackageInstallationInstantiateCorrectDnfInstalltionMarine
{ "Packages-Yum", "wrongpack1,wrongpack2" },
{ "Repositories-Ubuntu", "wrongpack1,wrongpack2" },
{ "Repositories-Dnf", "repo1,repo2" },
{ "Repositories-Mariner", "extrarepo1,extrarepo2" },
{ "Repositories-AzLinux", "extrarepo1,extrarepo2" },
{ "Packages-Ubuntu", "morepack1,morepack2" },
{ "Packages-Debian", "wrongpack1,wrongpack2" },
{ "Packages-Mariner", "morepack1,morepack2" },
{ "Packages-AzLinux", "morepack1,morepack2" },
{ "Repositories-SUSE", "wrongrepo1,wrongrepo2" },
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ private async Task InstallGccAsync(string gccVersion, EventContext telemetryCont

case LinuxDistribution.CentOS8:
case LinuxDistribution.RHEL8:
case LinuxDistribution.Mariner:
case LinuxDistribution.AzLinux:
await this.RemoveAlternativesAsync(telemetryContext, cancellationToken);
await this.ExecuteCommandAsync("dnf", @$"install make gcc-toolset-{gccVersion} gcc-toolset-{gccVersion}-gcc-gfortran -y --quiet", Environment.CurrentDirectory, telemetryContext, cancellationToken);
await this.SetGccPriorityAsync(gccVersion, telemetryContext, cancellationToken);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ protected override async Task ExecuteAsync(EventContext telemetryContext, Cancel

case LinuxDistribution.CentOS8:
case LinuxDistribution.RHEL8:
case LinuxDistribution.Mariner:
case LinuxDistribution.AzLinux:
installer = this.InstantiateDnfInstaller();
break;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
"Type": "LinuxPackageInstallation",
"Parameters": {
"Scenario": "InstallEpelPackage",
"Packages-Mariner": "https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm",
"Packages-RHEL8": "https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm",
"Packages-RHEL7": "https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm",
"Packages-CentOS7": "epel-release"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
"Type": "LinuxPackageInstallation",
"Parameters": {
"Scenario": "InstallEpelPackage",
"Packages-Mariner": "https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm",
"Packages-RHEL8": "https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm",
"Packages-RHEL7": "https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm",
"Packages-CentOS7": "epel-release"
Expand Down