Skip to content

Commit 55900e5

Browse files
authored
Merge branch 'preview' into ifdef-tagging
2 parents b0f1c49 + 4d8e174 commit 55900e5

File tree

24 files changed

+10184
-1225
lines changed

24 files changed

+10184
-1225
lines changed

src/ResourceManager/Profile/Commands.Profile/AzureRmAlias/Mappings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2470,6 +2470,7 @@
24702470
"Get-AzWebAppContainerContinuousDeploymentUrl": "Get-AzureRmWebAppContainerContinuousDeploymentUrl",
24712471
"Enter-AzWebAppContainerPSSession": "Enter-AzureRmWebAppContainerPSSession",
24722472
"New-AzWebAppContainerPSSession": "New-AzureRmWebAppContainerPSSession",
2473-
"Swap-AzWebAppSlot": "Swap-AzureRmWebAppSlot"
2473+
"Swap-AzWebAppSlot": "Swap-AzureRmWebAppSlot",
2474+
"New-AzWebAppAzureStoragePath": "New-AzureRmWebAppAzureStoragePath"
24742475
}
24752476
}

src/ResourceManager/Websites/Commands.Websites.Test/Commands.Websites.Test.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,9 @@
158158
<None Include="SessionRecords\Microsoft.Azure.Commands.Websites.Test.ScenarioTests.WebAppSlotTests\TestManageSlotSlotConfigName.json">
159159
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
160160
</None>
161+
<None Include="SessionRecords\Microsoft.Azure.Commands.Websites.Test.ScenarioTests.WebAppSlotTests\TestSetAzureStorageWebAppHyperVSlot.json">
162+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
163+
</None>
161164
<None Include="SessionRecords\Microsoft.Azure.Commands.Websites.Test.ScenarioTests.WebAppSlotTests\TestSetWebAppSlot.json">
162165
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
163166
</None>
@@ -194,6 +197,9 @@
194197
<None Include="SessionRecords\Microsoft.Azure.Commands.Websites.Test.ScenarioTests.WebAppTests\TestRemoveWebApp.json">
195198
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
196199
</None>
200+
<None Include="SessionRecords\Microsoft.Azure.Commands.Websites.Test.ScenarioTests.WebAppTests\TestSetAzureStorageWebAppHyperV.json">
201+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
202+
</None>
197203
<None Include="SessionRecords\Microsoft.Azure.Commands.Websites.Test.ScenarioTests.WebAppTests\TestSetWebApp.json">
198204
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
199205
</None>

src/ResourceManager/Websites/Commands.Websites.Test/ScenarioTests/WebAppSlotTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,5 +122,12 @@ public void TestWebAppSwapWithPreviewCompleteSlotSwap()
122122
{
123123
WebsitesController.NewInstance.RunPsTest(_logger, "Test-WebAppSwapWithPreviewCompleteSlotSwap");
124124
}
125+
126+
[Fact]
127+
[Trait(Category.AcceptanceType, Category.CheckIn)]
128+
public void TestSetAzureStorageWebAppHyperVSlot()
129+
{
130+
WebsitesController.NewInstance.RunPsTest(_logger, "Test-SetAzureStorageWebAppHyperVSlot");
131+
}
125132
}
126133
}

src/ResourceManager/Websites/Commands.Websites.Test/ScenarioTests/WebAppSlotTests.ps1

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -908,6 +908,152 @@ function Test-SlotSwapWithPreview($swapWithPreviewAction)
908908

909909
}
910910

911+
<#
912+
.SYNOPSIS
913+
Tests setting and Azure Storage Account in a new Windows container app. Currently the API fails when adding Azure Storage Accounts for slots. Will enable this test when the API is fixed.
914+
.DESCRIPTION
915+
SmokeTest
916+
#>
917+
function Test-SetAzureStorageWebAppHyperVSlot
918+
{
919+
# Setup
920+
$rgname = Get-ResourceGroupName
921+
$wname = Get-WebsiteName
922+
$slotname = "staging"
923+
$location = Get-WebLocation
924+
$whpName = Get-WebHostPlanName
925+
$tier = "PremiumContainer"
926+
$apiversion = "2015-08-01"
927+
$resourceType = "Microsoft.Web/sites"
928+
$containerImageName = "testcontainer.io/test/iis"
929+
$containerRegistryUrl = "https://testcontainer.azurecr.io"
930+
$ontainerRegistryUser = "testregistry"
931+
$pass = "7Dxo9p79Ins2K3ZU"
932+
$containerRegistryPassword = ConvertTo-SecureString -String $pass -AsPlainText -Force
933+
$dockerPrefix = "DOCKER|"
934+
$azureStorageAccountCustomId1 = "mystorageaccount"
935+
$azureStorageAccountType1 = "AzureFiles"
936+
$azureStorageAccountName1 = "myaccountname.file.core.windows.net"
937+
$azureStorageAccountShareName1 = "myremoteshare"
938+
$azureStorageAccountAccessKey1 = "AnAccessKey"
939+
$azureStorageAccountMountPath1 = "C:\mymountpath"
940+
$azureStorageAccountCustomId2 = "mystorageaccount2"
941+
$azureStorageAccountType2 = "AzureFiles"
942+
$azureStorageAccountName2 = "myaccountname2.file.core.windows.net"
943+
$azureStorageAccountShareName2 = "myremoteshare2"
944+
$azureStorageAccountAccessKey2 = "AnAccessKey2"
945+
$azureStorageAccountMountPath2 = "C:\mymountpath2"
946+
947+
try
948+
{
949+
###
950+
# Currently the API fails when adding Azure Storage Accounts for slots. Will enable this test when the API is fixed.
951+
###
952+
953+
#Setup
954+
New-AzureRmResourceGroup -Name $rgname -Location $location
955+
$serverFarm = New-AzureRmAppServicePlan -ResourceGroupName $rgname -Name $whpName -Location $location -Tier $tier -WorkerSize Small -HyperV
956+
957+
# Create new web app
958+
$job = New-AzureRmWebApp -ResourceGroupName $rgname -Name $wname -Location $location -AppServicePlan $whpName -ContainerImageName $containerImageName -ContainerRegistryUrl $containerRegistryUrl -ContainerRegistryUser $ontainerRegistryUser -ContainerRegistryPassword $containerRegistryPassword -AsJob
959+
$job | Wait-Job
960+
$actual = $job | Receive-Job
961+
962+
# Assert
963+
Assert-AreEqual $wname $actual.Name
964+
Assert-AreEqual $serverFarm.Id $actual.ServerFarmId
965+
966+
# Get new web app
967+
$result = Get-AzureRmWebApp -ResourceGroupName $rgname -Name $wname
968+
969+
Write-Debug "Created the web app"
970+
971+
# Assert
972+
Assert-AreEqual $wname $result.Name
973+
Assert-AreEqual $serverFarm.Id $result.ServerFarmId
974+
Assert-AreEqual $true $result.IsXenon
975+
Assert-AreEqual ($dockerPrefix + $containerImageName) $result.SiteConfig.WindowsFxVersion
976+
977+
# Create deployment slot
978+
$job = New-AzureRmWebAppSlot -ResourceGroupName $rgname -Name $wname -Slot $slotname -AsJob
979+
$job | Wait-Job
980+
$slot1 = $job | Receive-Job
981+
982+
Write-Debug "Created the slot"
983+
984+
$appWithSlotName = "$wname/$slotname"
985+
986+
Write-Debug $appWithSlotName
987+
988+
# Assert
989+
Assert-AreEqual $appWithSlotName $slot1.Name
990+
Assert-AreEqual $serverFarm.Id $slot1.ServerFarmId
991+
992+
$testStorageAccount1 = New-AzureRmWebAppAzureStoragePath -Name $azureStorageAccountCustomId1 -Type $azureStorageAccountType1 -AccountName $azureStorageAccountName1 -ShareName $azureStorageAccountShareName1 -AccessKey $azureStorageAccountAccessKey1 -MountPath $azureStorageAccountMountPath1
993+
$testStorageAccount2 = New-AzureRmWebAppAzureStoragePath -Name $azureStorageAccountCustomId2 -Type $azureStorageAccountType2 -AccountName $azureStorageAccountName2 -ShareName $azureStorageAccountShareName2 -AccessKey $azureStorageAccountAccessKey2 -MountPath $azureStorageAccountMountPath2
994+
995+
Write-Debug "Created the new storage account paths"
996+
997+
Write-Debug $testStorageAccount1.Name
998+
Write-Debug $testStorageAccount2.Name
999+
1000+
1001+
# set Azure Storage accounts
1002+
$webApp = Set-AzureRmWebAppSlot -ResourceGroupName $rgname -Name $wname -Slot $slotname -AzureStoragePath $testStorageAccount1, $testStorageAccount2
1003+
1004+
Write-Debug "Set the new storage account paths"
1005+
1006+
1007+
# get the web app
1008+
$result = Get-AzureRmWebAppSlot -ResourceGroupName $rgname -Name $wname -Slot $slotname
1009+
$azureStorageAccounts = $result.AzureStoragePath
1010+
1011+
# Assert
1012+
Write-Debug $azureStorageAccounts[0].Name
1013+
Assert-AreEqual $azureStorageAccounts[0].Name $azureStorageAccountCustomId1
1014+
1015+
Write-Debug $azureStorageAccounts[0].Type
1016+
Assert-AreEqual $azureStorageAccounts[0].Type $azureStorageAccountType1
1017+
1018+
Write-Debug $azureStorageAccounts[0].AccountName
1019+
Assert-AreEqual $azureStorageAccounts[0].AccountName $azureStorageAccountName1
1020+
1021+
Write-Debug $azureStorageAccounts[0].ShareName
1022+
Assert-AreEqual $azureStorageAccounts[0].ShareName $azureStorageAccountShareName1
1023+
1024+
Write-Debug $azureStorageAccounts[0].AccessKey
1025+
Assert-AreEqual $azureStorageAccounts[0].AccessKey $azureStorageAccountAccessKey1
1026+
1027+
Write-Debug $azureStorageAccounts[0].MountPath
1028+
Assert-AreEqual $azureStorageAccounts[0].MountPath $azureStorageAccountMountPath1
1029+
1030+
Write-Debug $azureStorageAccounts[1].Name
1031+
Assert-AreEqual $azureStorageAccounts[1].Name $azureStorageAccountCustomId2
1032+
1033+
Write-Debug $azureStorageAccounts[1].Type
1034+
Assert-AreEqual $azureStorageAccounts[1].Type $azureStorageAccountType2
1035+
1036+
Write-Debug $azureStorageAccounts[1].AccountName
1037+
Assert-AreEqual $azureStorageAccounts[1].AccountName $azureStorageAccountName2
1038+
1039+
Write-Debug $azureStorageAccounts[1].ShareName
1040+
Assert-AreEqual $azureStorageAccounts[1].ShareName $azureStorageAccountShareName2
1041+
1042+
Write-Debug $azureStorageAccounts[1].AccessKey
1043+
Assert-AreEqual $azureStorageAccounts[1].AccessKey $azureStorageAccountAccessKey2
1044+
1045+
Write-Debug $azureStorageAccounts[1].MountPath
1046+
Assert-AreEqual $azureStorageAccounts[1].MountPath $azureStorageAccountMountPath2
1047+
}
1048+
finally
1049+
{
1050+
# Cleanup
1051+
Remove-AzureRmWebApp -ResourceGroupName $rgname -Name $wname -Force
1052+
Remove-AzureRmAppServicePlan -ResourceGroupName $rgname -Name $whpName -Force
1053+
Remove-AzureRmResourceGroup -Name $rgname -Force
1054+
}
1055+
}
1056+
9111057
<#
9121058
.SYNOPSIS
9131059
Validates slot app setting for slot swap tests

src/ResourceManager/Websites/Commands.Websites.Test/ScenarioTests/WebAppTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,13 @@ public void TestEnableContainerContinuousDeploymentAndGetUrl()
5252
WebsitesController.NewInstance.RunPsTest(_logger, "Test-EnableContainerContinuousDeploymentAndGetUrl");
5353
}
5454

55+
[Fact]
56+
[Trait(Category.AcceptanceType, Category.CheckIn)]
57+
public void TestSetAzureStorageWebAppHyperV()
58+
{
59+
WebsitesController.NewInstance.RunPsTest(_logger, "Test-SetAzureStorageWebAppHyperV");
60+
}
61+
5562
[Fact]
5663
[Trait(Category.AcceptanceType, Category.CheckIn)]
5764
public void TestCreateNewAppOnAse()

src/ResourceManager/Websites/Commands.Websites.Test/ScenarioTests/WebAppTests.ps1

Lines changed: 130 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -933,6 +933,130 @@ function Test-WindowsContainerWebAppPSSessionOpened
933933
}
934934
}
935935

936+
<#
937+
.SYNOPSIS
938+
Tests setting and Azure Storage Account in a new Windows container app.
939+
.DESCRIPTION
940+
SmokeTest
941+
#>
942+
function Test-SetAzureStorageWebAppHyperV
943+
{
944+
# Setup
945+
$rgname = Get-ResourceGroupName
946+
$wname = Get-WebsiteName
947+
$location = Get-WebLocation
948+
$whpName = Get-WebHostPlanName
949+
$tier = "PremiumContainer"
950+
$apiversion = "2015-08-01"
951+
$resourceType = "Microsoft.Web/sites"
952+
$containerImageName = "testcontainer.io/test/iis"
953+
$containerRegistryUrl = "https://testcontainer.azurecr.io"
954+
$ontainerRegistryUser = "testregistry"
955+
$pass = "7Dxo9p79Ins2K3ZU"
956+
$containerRegistryPassword = ConvertTo-SecureString -String $pass -AsPlainText -Force
957+
$dockerPrefix = "DOCKER|"
958+
$azureStorageAccountCustomId1 = "mystorageaccount"
959+
$azureStorageAccountType1 = "AzureFiles"
960+
$azureStorageAccountName1 = "myaccountname.file.core.windows.net"
961+
$azureStorageAccountShareName1 = "myremoteshare"
962+
$azureStorageAccountAccessKey1 = "AnAccessKey"
963+
$azureStorageAccountMountPath1 = "C:\mymountpath"
964+
$azureStorageAccountCustomId2 = "mystorageaccount2"
965+
$azureStorageAccountType2 = "AzureFiles"
966+
$azureStorageAccountName2 = "myaccountname2.file.core.windows.net"
967+
$azureStorageAccountShareName2 = "myremoteshare2"
968+
$azureStorageAccountAccessKey2 = "AnAccessKey2"
969+
$azureStorageAccountMountPath2 = "C:\mymountpath2"
970+
971+
try
972+
{
973+
#Setup
974+
New-AzureRmResourceGroup -Name $rgname -Location $location
975+
$serverFarm = New-AzureRmAppServicePlan -ResourceGroupName $rgname -Name $whpName -Location $location -Tier $tier -WorkerSize Small -HyperV
976+
977+
# Create new web app
978+
$job = New-AzureRmWebApp -ResourceGroupName $rgname -Name $wname -Location $location -AppServicePlan $whpName -ContainerImageName $containerImageName -ContainerRegistryUrl $containerRegistryUrl -ContainerRegistryUser $ontainerRegistryUser -ContainerRegistryPassword $containerRegistryPassword -AsJob
979+
$job | Wait-Job
980+
$actual = $job | Receive-Job
981+
982+
# Assert
983+
Assert-AreEqual $wname $actual.Name
984+
Assert-AreEqual $serverFarm.Id $actual.ServerFarmId
985+
986+
# Get new web app
987+
$result = Get-AzureRmWebApp -ResourceGroupName $rgname -Name $wname
988+
989+
# Assert
990+
Assert-AreEqual $wname $result.Name
991+
Assert-AreEqual $serverFarm.Id $result.ServerFarmId
992+
Assert-AreEqual $true $result.IsXenon
993+
Assert-AreEqual ($dockerPrefix + $containerImageName) $result.SiteConfig.WindowsFxVersion
994+
995+
$testStorageAccount1 = New-AzureRmWebAppAzureStoragePath -Name $azureStorageAccountCustomId1 -Type $azureStorageAccountType1 -AccountName $azureStorageAccountName1 -ShareName $azureStorageAccountShareName1 -AccessKey $azureStorageAccountAccessKey1 -MountPath $azureStorageAccountMountPath1
996+
$testStorageAccount2 = New-AzureRmWebAppAzureStoragePath -Name $azureStorageAccountCustomId2 -Type $azureStorageAccountType2 -AccountName $azureStorageAccountName2 -ShareName $azureStorageAccountShareName2 -AccessKey $azureStorageAccountAccessKey2 -MountPath $azureStorageAccountMountPath2
997+
998+
Write-Debug "Created the new storage account paths"
999+
1000+
Write-Debug $testStorageAccount1.Name
1001+
Write-Debug $testStorageAccount2.Name
1002+
1003+
1004+
# set Azure Storage accounts
1005+
$webApp = Set-AzureRmWebApp -ResourceGroupName $rgname -Name $wname -AzureStoragePath $testStorageAccount1, $testStorageAccount2
1006+
1007+
Write-Debug "Set the new storage account paths"
1008+
1009+
1010+
# get the web app
1011+
$result = Get-AzureRmWebApp -ResourceGroupName $rgname -Name $wname
1012+
$azureStorageAccounts = $result.AzureStoragePath
1013+
1014+
# Assert
1015+
Write-Debug $azureStorageAccounts[0].Name
1016+
Assert-AreEqual $azureStorageAccounts[0].Name $azureStorageAccountCustomId1
1017+
1018+
Write-Debug $azureStorageAccounts[0].Type
1019+
Assert-AreEqual $azureStorageAccounts[0].Type $azureStorageAccountType1
1020+
1021+
Write-Debug $azureStorageAccounts[0].AccountName
1022+
Assert-AreEqual $azureStorageAccounts[0].AccountName $azureStorageAccountName1
1023+
1024+
Write-Debug $azureStorageAccounts[0].ShareName
1025+
Assert-AreEqual $azureStorageAccounts[0].ShareName $azureStorageAccountShareName1
1026+
1027+
Write-Debug $azureStorageAccounts[0].AccessKey
1028+
Assert-AreEqual $azureStorageAccounts[0].AccessKey $azureStorageAccountAccessKey1
1029+
1030+
Write-Debug $azureStorageAccounts[0].MountPath
1031+
Assert-AreEqual $azureStorageAccounts[0].MountPath $azureStorageAccountMountPath1
1032+
1033+
Write-Debug $azureStorageAccounts[1].Name
1034+
Assert-AreEqual $azureStorageAccounts[1].Name $azureStorageAccountCustomId2
1035+
1036+
Write-Debug $azureStorageAccounts[1].Type
1037+
Assert-AreEqual $azureStorageAccounts[1].Type $azureStorageAccountType2
1038+
1039+
Write-Debug $azureStorageAccounts[1].AccountName
1040+
Assert-AreEqual $azureStorageAccounts[1].AccountName $azureStorageAccountName2
1041+
1042+
Write-Debug $azureStorageAccounts[1].ShareName
1043+
Assert-AreEqual $azureStorageAccounts[1].ShareName $azureStorageAccountShareName2
1044+
1045+
Write-Debug $azureStorageAccounts[1].AccessKey
1046+
Assert-AreEqual $azureStorageAccounts[1].AccessKey $azureStorageAccountAccessKey2
1047+
1048+
Write-Debug $azureStorageAccounts[1].MountPath
1049+
Assert-AreEqual $azureStorageAccounts[1].MountPath $azureStorageAccountMountPath2
1050+
}
1051+
finally
1052+
{
1053+
# Cleanup
1054+
Remove-AzureRmWebApp -ResourceGroupName $rgname -Name $wname -Force
1055+
Remove-AzureRmAppServicePlan -ResourceGroupName $rgname -Name $whpName -Force
1056+
Remove-AzureRmResourceGroup -Name $rgname -Force
1057+
}
1058+
}
1059+
9361060
<#
9371061
.SYNOPSIS
9381062
Tests creating a new website on an ase
@@ -1005,7 +1129,8 @@ function Test-SetWebApp
10051129

10061130
# Create new web app
10071131
$webApp = New-AzureRmWebApp -ResourceGroupName $rgname -Name $webAppName -Location $location -AppServicePlan $appServicePlanName1
1008-
1132+
Write-Debug "DEBUG: Created the Web App"
1133+
10091134
# Assert
10101135
Assert-AreEqual $webAppName $webApp.Name
10111136
Assert-AreEqual $serverFarm1.Id $webApp.ServerFarmId
@@ -1017,6 +1142,8 @@ function Test-SetWebApp
10171142
$job | Wait-Job
10181143
$webApp = $job | Receive-Job
10191144

1145+
Write-Debug "DEBUG: Changed service plan"
1146+
10201147
# Assert
10211148
Assert-AreEqual $webAppName $webApp.Name
10221149
Assert-AreEqual $serverFarm2.Id $webApp.ServerFarmId
@@ -1029,6 +1156,8 @@ function Test-SetWebApp
10291156
# Set site properties
10301157
$webApp = $webApp | Set-AzureRmWebApp
10311158

1159+
Write-Debug "DEBUG: Changed site properties"
1160+
10321161
# Assert
10331162
Assert-AreEqual $webAppName $webApp.Name
10341163
Assert-AreEqual $serverFarm2.Id $webApp.ServerFarmId

0 commit comments

Comments
 (0)