Added ARM support for Wordpress test and fixed minor issues (#35)

* Updated the detect_linux_distribution_version lib function to get proper distro version

* Minor fix to support package installation for CentOS

* Minor fix to support package installation for CentOS and RHEL distros in FIO perf test

* Minor fix for FIO test

* Minor fix for detect distro version

* Updated the perf_iperf3.sh script to install the required packages for CentOS & RHEL

* Added new test scripts for LIS build scenario tests

1. Added new test scripts for LIS build 8 scenario tests
2. Updated ARM test execution mode

* Minor Fix 

to display upgrade & uninstall LIS console messages

* Minor fix to support ARM mode

* Added ARM support for Wordpress test and fixed minor issues

* Minor fix for ARM instance size support
This commit is contained in:
Sivakanth Rebba 2017-07-06 23:11:44 +05:30 коммит произвёл Shital Savekar
Родитель 7057308db6
Коммит 74d2c33cbb
4 изменённых файлов: 246 добавлений и 169 удалений

Просмотреть файл

@ -505,26 +505,13 @@
<VirtualMachine> <VirtualMachine>
<state></state> <state></state>
<InstanceSize>Small</InstanceSize> <InstanceSize>Small</InstanceSize>
<ARMInstanceSize>Standard_A1</ARMInstanceSize>
<EndPoints> <EndPoints>
<Name>SSH</Name> <Name>SSH</Name>
<Protocol>tcp</Protocol> <Protocol>tcp</Protocol>
<LocalPort>22</LocalPort> <LocalPort>22</LocalPort>
<PublicPort>22</PublicPort> <PublicPort>22</PublicPort>
</EndPoints> </EndPoints>
<EndPoints>
<Name>https-1</Name>
<Protocol>tcp</Protocol>
<LocalPort>8443</LocalPort>
<PublicPort>8443</PublicPort>
<LoadBalanced>False</LoadBalanced>
</EndPoints>
<EndPoints>
<Name>https-2</Name>
<Protocol>udp</Protocol>
<LocalPort>443</LocalPort>
<PublicPort>443</PublicPort>
<LoadBalanced>False</LoadBalanced>
</EndPoints>
<EndPoints> <EndPoints>
<Name>http-1</Name> <Name>http-1</Name>
<Protocol>tcp</Protocol> <Protocol>tcp</Protocol>
@ -666,6 +653,7 @@
<VirtualMachine> <VirtualMachine>
<state></state> <state></state>
<InstanceSize>Medium</InstanceSize> <InstanceSize>Medium</InstanceSize>
<ARMInstanceSize>Standard_A2</ARMInstanceSize>
<RoleName>Backend</RoleName> <RoleName>Backend</RoleName>
<EndPoints> <EndPoints>
<Name>SSH</Name> <Name>SSH</Name>
@ -678,6 +666,7 @@
<VirtualMachine> <VirtualMachine>
<state></state> <state></state>
<InstanceSize>Small</InstanceSize> <InstanceSize>Small</InstanceSize>
<ARMInstanceSize>Standard_A1</ARMInstanceSize>
<RoleName>Frontend1</RoleName> <RoleName>Frontend1</RoleName>
<EndPoints> <EndPoints>
<Name>SSH</Name> <Name>SSH</Name>
@ -685,22 +674,6 @@
<LocalPort>22</LocalPort> <LocalPort>22</LocalPort>
<PublicPort>222</PublicPort> <PublicPort>222</PublicPort>
</EndPoints> </EndPoints>
<EndPoints>
<Name>https-1</Name>
<Protocol>tcp</Protocol>
<LocalPort>8443</LocalPort>
<PublicPort>8443</PublicPort>
<ProbePort>8443</ProbePort>
<LoadBalanced>True</LoadBalanced>
</EndPoints>
<EndPoints>
<Name>https-2</Name>
<Protocol>udp</Protocol>
<LocalPort>443</LocalPort>
<PublicPort>443</PublicPort>
<ProbePort>443</ProbePort>
<LoadBalanced>True</LoadBalanced>
</EndPoints>
<EndPoints> <EndPoints>
<Name>http-1</Name> <Name>http-1</Name>
<Protocol>tcp</Protocol> <Protocol>tcp</Protocol>
@ -722,6 +695,7 @@
<VirtualMachine> <VirtualMachine>
<state></state> <state></state>
<InstanceSize>Small</InstanceSize> <InstanceSize>Small</InstanceSize>
<ARMInstanceSize>Standard_A1</ARMInstanceSize>
<RoleName>Frontend2</RoleName> <RoleName>Frontend2</RoleName>
<EndPoints> <EndPoints>
<Name>SSH</Name> <Name>SSH</Name>
@ -729,22 +703,6 @@
<LocalPort>22</LocalPort> <LocalPort>22</LocalPort>
<PublicPort>322</PublicPort> <PublicPort>322</PublicPort>
</EndPoints> </EndPoints>
<EndPoints>
<Name>https-1</Name>
<Protocol>tcp</Protocol>
<LocalPort>8443</LocalPort>
<PublicPort>8443</PublicPort>
<ProbePort>8443</ProbePort>
<LoadBalanced>True</LoadBalanced>
</EndPoints>
<EndPoints>
<Name>https-2</Name>
<Protocol>udp</Protocol>
<LocalPort>443</LocalPort>
<PublicPort>443</PublicPort>
<ProbePort>443</ProbePort>
<LoadBalanced>True</LoadBalanced>
</EndPoints>
<EndPoints> <EndPoints>
<Name>http-1</Name> <Name>http-1</Name>
<Protocol>tcp</Protocol> <Protocol>tcp</Protocol>
@ -766,6 +724,7 @@
<VirtualMachine> <VirtualMachine>
<state></state> <state></state>
<InstanceSize>Small</InstanceSize> <InstanceSize>Small</InstanceSize>
<ARMInstanceSize>Standard_A1</ARMInstanceSize>
<RoleName>Frontend3</RoleName> <RoleName>Frontend3</RoleName>
<EndPoints> <EndPoints>
<Name>SSH</Name> <Name>SSH</Name>
@ -773,22 +732,6 @@
<LocalPort>22</LocalPort> <LocalPort>22</LocalPort>
<PublicPort>422</PublicPort> <PublicPort>422</PublicPort>
</EndPoints> </EndPoints>
<EndPoints>
<Name>https-1</Name>
<Protocol>tcp</Protocol>
<LocalPort>8443</LocalPort>
<PublicPort>8443</PublicPort>
<ProbePort>8443</ProbePort>
<LoadBalanced>True</LoadBalanced>
</EndPoints>
<EndPoints>
<Name>https-2</Name>
<Protocol>udp</Protocol>
<LocalPort>443</LocalPort>
<PublicPort>443</PublicPort>
<ProbePort>443</ProbePort>
<LoadBalanced>True</LoadBalanced>
</EndPoints>
<EndPoints> <EndPoints>
<Name>http-1</Name> <Name>http-1</Name>
<Protocol>tcp</Protocol> <Protocol>tcp</Protocol>
@ -5968,12 +5911,12 @@
<testName>E2E-WORDPRESS-SINGLE-VM-SETUP</testName> <testName>E2E-WORDPRESS-SINGLE-VM-SETUP</testName>
<testScript>E2E-WORDPRESS-SETUP.py</testScript> <testScript>E2E-WORDPRESS-SETUP.py</testScript>
<testScriptps1>E2E-WORDPRESS-SETUP.ps1</testScriptps1> <testScriptps1>E2E-WORDPRESS-SETUP.ps1</testScriptps1>
<files>.\remote-scripts\Packages\wordpress.zip,.\remote-scripts\Packages\Wordpress.DDL,.\remote-scripts\E2E-WORDPRESS-SETUP.py,.\remote-scripts\azuremodules.py</files> <files>.\remote-scripts\E2E-WORDPRESS-SETUP.py,.\remote-scripts\azuremodules.py,.\tools\packages\python-pexpect-3.1-1.1.noarch.rpm</files>
<setupType>E2ESingleVM</setupType> <setupType>E2ESingleVM</setupType>
<TestType></TestType> <TestType></TestType>
<E2ESetupCmdLineArgument>singleVM_setup</E2ESetupCmdLineArgument> <E2ESetupCmdLineArgument>singleVM_setup</E2ESetupCmdLineArgument>
<TestFeature></TestFeature> <TestFeature></TestFeature>
<SupportedExecutionModes>AzureServiceManagement</SupportedExecutionModes> <SupportedExecutionModes>AzureServiceManagement,AzureResourceManager</SupportedExecutionModes>
<TestID></TestID> <TestID></TestID>
<Priority>P0</Priority> <Priority>P0</Priority>
</test> </test>
@ -5999,12 +5942,12 @@
<testName>E2E-WORDPRESS-FOUR-VM-SETUP</testName> <testName>E2E-WORDPRESS-FOUR-VM-SETUP</testName>
<testScript>E2E-WORDPRESS-SETUP.py</testScript> <testScript>E2E-WORDPRESS-SETUP.py</testScript>
<testScriptps1>E2E-WORDPRESS-SETUP.ps1</testScriptps1> <testScriptps1>E2E-WORDPRESS-SETUP.ps1</testScriptps1>
<files>.\remote-scripts\Packages\wordpress.zip,.\remote-scripts\Packages\Wordpress.DDL,.\remote-scripts\E2E-WORDPRESS-SETUP.py,.\remote-scripts\azuremodules.py</files> <files>.\remote-scripts\E2E-WORDPRESS-SETUP.py,.\remote-scripts\azuremodules.py,.\tools\packages\python-pexpect-3.1-1.1.noarch.rpm</files>
<setupType>E2EFourVM</setupType> <setupType>E2EFourVM</setupType>
<TestType></TestType> <TestType></TestType>
<E2ESetupCmdLineArgument>loadbalancer_setup</E2ESetupCmdLineArgument> <E2ESetupCmdLineArgument>loadbalancer_setup</E2ESetupCmdLineArgument>
<TestFeature></TestFeature> <TestFeature></TestFeature>
<SupportedExecutionModes>AzureServiceManagement</SupportedExecutionModes> <SupportedExecutionModes>AzureServiceManagement,AzureResourceManager</SupportedExecutionModes>
<TestID></TestID> <TestID></TestID>
<Priority>P0</Priority> <Priority>P0</Priority>
</test> </test>

Просмотреть файл

@ -11,35 +11,37 @@ if ($isDeployed)
{ {
try try
{ {
$testServiceData = Get-AzureService -ServiceName $isDeployed LogMsg "TEST VM : $($allVMData.ServiceName)"
#Get VMs deployed in the service..
$testVMsinService = $testServiceData | Get-AzureVM
try{ try{
if($currentTestData.E2ESetupCmdLineArgument -imatch "singleVM_setup") if($currentTestData.E2ESetupCmdLineArgument -imatch "singleVM_setup")
{ {
#region FOR WORDPRESS 1 VM TEST
write-host "Preparing WordPress SingleVM Setup" write-host "Preparing WordPress SingleVM Setup"
$hs1vm1 = $testVMsinService [string] $ServiceName = $allVMData.ServiceName
$hs1vm1Endpoints = $hs1vm1 | Get-AzureEndpoint $hs1vm1sshport = $allVMData.SSHPort
$hs1vm1sshport = GetPort -Endpoints $hs1vm1Endpoints -usage ssh $hs1bkvmurl = $allVMData.URL
$hs1VIP = $hs1vm1Endpoints[0].Vip $wordpressUrl = "http://"+$hs1bkvmurl+"/wordpress/wp-admin/install.php"
$wordpressUrl = $hs1vm1.DNSName+"wordpress/wp-admin/install.php" $hs1vm1Hostname = $allVMData.RoleName
$hs1ServiceUrl = $hs1vm1.DNSName $hs1VIP = $allVMData.PublicIP
$hs1ServiceUrl = $hs1ServiceUrl.Replace("http://","") $hs1IP = $allVMData.InternalIP
$hs1ServiceUrl = $hs1ServiceUrl.Replace("/","")
$hs1vm1Hostname = $hs1vm1.Name
"#all the IPs should be Internal ips `n<username>$user</username>`n<password>$passwd</password>" > 'wordpress_install.XML' LogMsg "TEST VM details :"
# Uploading files into VM LogMsg " RoleName : $hs1vm1Hostname"
$out = RemoteCopy -uploadTo $hs1VIP -port $hs1vm1sshport -files "wordpress_install.XML" -username $user -password $password -upload 2>&1 | Out-Null LogMsg " Public IP : $hs1VIP"
LogMsg " SSH Port : $hs1vm1sshport"
LogMsg " WORDPRESS URL : $wordpressUrl"
Set-Content -Value "#all the IPs should be Internal ips `n<username>$user</username>`n<password>$passwd</password>" -Path "$LogDir\wordpress_install.XML"
# Uploading files into VM # Uploading files into VM
$out = RemoteCopy -uploadTo $hs1VIP -port $hs1vm1sshport -files ".\$LogDir\wordpress_install.XML" -username $user -password $password -upload 2>&1 | Out-Null
$out = RemoteCopy -uploadTo $hs1VIP -port $hs1vm1sshport -files $currentTestData.files -username $user -password $password -upload 2>&1 | Out-Null $out = RemoteCopy -uploadTo $hs1VIP -port $hs1vm1sshport -files $currentTestData.files -username $user -password $password -upload 2>&1 | Out-Null
# Assiging Permissions to uploaded files into VM # Assiging Permissions to uploaded files into VM
$out = RunLinuxCmd -username $user -password $password -ip $hs1VIP -port $hs1vm1sshport -command "chmod +x *" -runAsSudo 2>&1 | Out-Null $out = RunLinuxCmd -username $user -password $password -ip $hs1VIP -port $hs1vm1sshport -command "chmod +x *" -runAsSudo 2>&1 | Out-Null
# Converting the file from UTF-16 to ASCII
$out = RunLinuxCmd -username $user -password $password -ip $hs1VIP -port $hs1vm1sshport -command "iconv -f UTF-16 -t ASCII wordpress_install.XML > wordpress_install.XML.tmp ; mv -f wordpress_install.XML.tmp wordpress_install.XML" -runAsSudo 2>&1 | Out-Null
LogMsg "Executing : $($currentTestData.testScript)" LogMsg "Executing : $($currentTestData.testScript)"
#region EXECUTE TEST
Set-Content -Value "python $($currentTestData.testScript) singleVM_setup 2>&1> /home/$user/wordpressConsole.txt" -Path "$LogDir\StartWordpressTest.sh"
$out = RemoteCopy -uploadTo $hs1VIP -port $hs1vm1sshport -files ".\$LogDir\StartWordpressTest.sh" -username $user -password $password -upload
# Wordpress installation on E2ESingleVM" # Wordpress installation on E2ESingleVM"
Write-host "#################################################################################################" Write-host "#################################################################################################"
Write-host "" Write-host ""
@ -48,45 +50,106 @@ if ($isDeployed)
Write-host "" Write-host ""
Write-host "#################################################################################################" Write-host "#################################################################################################"
# Wordpress Setup file is executing on E2ESingleVM" # Wordpress Setup file is executing on E2ESingleVM"
$out = RunLinuxCmd -username $user -password $password -ip $hs1VIP -port $hs1vm1sshport -command " python $($currentTestData.testScript) singleVM_setup 2>&1 > print.log" -runAssudo -ignoreLinuxExitCode -runmaxallowedtime 3600 2>&1 | Out-Null $testJob = RunLinuxCmd -username $user -password $password -ip $hs1VIP -port $hs1vm1sshport -command "bash /home/$user/StartWordpressTest.sh" -runAsSudo -RunInBackground
#region MONITOR TEST
while ( (Get-Job -Id $testJob).State -eq "Running" )
{
$wordpressTestInfo = RunLinuxCmd -username $user -password $password -ip $hs1VIP -port $hs1vm1sshport -command "cat /home/$user/Runtime.log | grep 'INFO :' | tail -2 " -runAsSudo
LogMsg "** Current TEST Staus : $wordpressTestInfo"
WaitFor -seconds 2
}
# Downloading the files VM # Downloading the files VM
RemoteCopy -download -downloadFrom $hs1VIP -files "/home/$user/wdp_test.txt , /home/$user/logs.tar.gz" -downloadTo $LogDir -port $hs1vm1sshport -username $user -password $password 2>&1 | Out-Null RemoteCopy -download -downloadFrom $hs1VIP -files "/home/$user/wdp_test.txt , /home/$user/logs.tar.gz" -downloadTo $LogDir -port $hs1vm1sshport -username $user -password $password 2>&1 | Out-Null
} }
elseif($currentTestData.E2ESetupCmdLineArgument -imatch "loadbalancer_setup") elseif($currentTestData.E2ESetupCmdLineArgument -imatch "loadbalancer_setup")
{ {
#region FOR WORDPRESS 4 VM TEST
write-host "Preparing WordPress FourVM Setup" write-host "Preparing WordPress FourVM Setup"
$hs1bkvm = $testVMsinService[0] $noFrontend = $true
$hs1fe1vm1 = $testVMsinService[1] $noBackend = $true
$hs1fe2vm2 = $testVMsinService[2] foreach ( $vmData in $allVMData )
$hs1fe3vm3 = $testVMsinService[3] {
if ( $vmData.RoleName -imatch "Frontend1" )
{
$fronend1VMData = $vmData
$noFrontend = $false
}
elseif ( $vmData.RoleName -imatch "Frontend2" )
{
$fronend2VMData = $vmData
$noFrontend = $false
}
elseif ( $vmData.RoleName -imatch "Frontend3" )
{
$fronend3VMData = $vmData
$noFrontend = $false
}
elseif ( $vmData.RoleName -imatch "Backend" )
{
$noBackend = $fase
$backendVMData = $vmData
}
}
if ( $noFrontend )
{
Throw "No any slave VM defined. Be sure that, Server machine role names matches with pattern `"*slave*`" Aborting Test."
}
if ( $noBackend )
{
Throw "No any master VM defined. Be sure that, Client VM role name matches with the pattern `"*master*`". Aborting Test."
}
$hs1bkvmEndpoints = $hs1bkvm | Get-AzureEndpoint $hs1bkvmurl = $allVMData.url[0]
$hs1bkvmsshport = GetPort -Endpoints $hs1bkvmEndpoints -usage ssh $wordpressUrl = "http://"+$hs1bkvmurl+"/wordpress/wp-admin/install.php"
$hs1VIP = $hs1bkvmEndpoints.Vip LogMsg "FRONTEND VM details :"
LogMsg " RoleName : $($fronend1VMData.RoleName)"
LogMsg " Public IP : $($fronend1VMData.PublicIP)"
LogMsg " SSH Port : $($fronend1VMData.SSHPort)"
$wordpressUrl = $hs1bkvm.DNSName+"wordpress/wp-admin/install.php" LogMsg " RoleName : $($fronend2VMData.RoleName)"
$hs1ServiceUrl = $hs1bkvm.DNSName LogMsg " Public IP : $($fronend2VMData.PublicIP)"
$hs1ServiceUrl = $hs1ServiceUrl.Replace("http://","") LogMsg " SSH Port : $($fronend2VMData.SSHPort)"
$hs1ServiceUrl = $hs1ServiceUrl.Replace("/","")
$bkendip = $hs1bkvm.Ipaddress.ToString() LogMsg " RoleName : $($fronend3VMData.RoleName)"
$fe1ip = $hs1fe1vm1.Ipaddress.ToString() LogMsg " Public IP : $($fronend3VMData.PublicIP)"
$fe2ip = $hs1fe2vm2.Ipaddress.ToString() LogMsg " SSH Port : $($fronend3VMData.SSHPort)"
$fe3ip = $hs1fe3vm3.Ipaddress.ToString()
LogMsg "BACKEND VM details :"
LogMsg " RoleName : $($backendVMData.RoleName)"
LogMsg " Public IP : $($backendVMData.PublicIP)"
LogMsg " SSH Port : $($backendVMData.SSHPort)"
LogMsg " WORDPRESS URL : $wordpressUrl"
$hs1VIP = $backendVMData.PublicIP
[string] $ServiceName = $allVMData.ServiceName
$bkendip = $backendVMData.InternalIP.ToString()
$fe1ip = $fronend1VMData.InternalIP.ToString()
$fe2ip = $fronend2VMData.InternalIP.ToString()
$fe3ip = $fronend3VMData.InternalIP.ToString()
$hs1bkvmsshport = $backendVMData.SSHPort
$fe1sshport = $fronend1VMData.SSHPort
$fe2sshport = $fronend2VMData.SSHPort
$fe3sshport = $fronend3VMData.SSHPort
#Preparation of wordpress install xml file #Preparation of wordpress install xml file
"#all the IPs should be Internal ips `n<back_endVM_ip>$bkendip</back_endVM_ip>`n<front_endVM_ips>$fe1ip $fe2ip $fe3ip</front_endVM_ips>`n<username>$user</username>`n<password>$passwd</password>" > 'wordpress_install.XML' Set-Content -Value "#all the IPs should be Internal ips `n<back_endVM_ip>$bkendip</back_endVM_ip>`n<front_endVM_ips>$fe1ip $fe2ip $fe3ip</front_endVM_ips>`n<username>$user</username>`n<password>$passwd</password>" -Path "$LogDir\wordpress_install.XML"
# Uploading xml file into VM
$out = RemoteCopy -uploadTo $hs1VIP -port $hs1bkvmsshport -files "wordpress_install.XML" -username $user -password $password -upload 2>&1 | Out-Null
# Uploading files into VM # Uploading files into VM
$out = RemoteCopy -uploadTo $hs1VIP -port $hs1bkvmsshport -files ".\$LogDir\wordpress_install.XML" -username $user -password $password -upload 2>&1 | Out-Null
$out = RemoteCopy -uploadTo $hs1VIP -port $hs1bkvmsshport -files $currentTestData.files -username $user -password $password -upload 2>&1 | Out-Null $out = RemoteCopy -uploadTo $hs1VIP -port $hs1bkvmsshport -files $currentTestData.files -username $user -password $password -upload 2>&1 | Out-Null
# Assiging Permissions to uploaded files into VM # Assiging Permissions to uploaded files into VM
$out = RunLinuxCmd -username $user -password $password -ip $hs1VIP -port $hs1bkvmsshport -command "chmod 777 *.XML" -runAsSudo 2>&1 | Out-Null $out = RunLinuxCmd -username $user -password $password -ip $hs1VIP -port $hs1bkvmsshport -command "chmod +x *" -runAsSudo 2>&1 | Out-Null
# Converting the file from UTF-16 to ASCII
$out = RunLinuxCmd -username $user -password $password -ip $hs1VIP -port $hs1bkvmsshport -command "iconv -f UTF-16 -t ASCII wordpress_install.XML > wordpress_install.XML.tmp ; mv -f wordpress_install.XML.tmp wordpress_install.XML" -runAsSudo 2>&1 | Out-Null
#region EXECUTE TEST
Set-Content -Value "python $($currentTestData.testScript) loadbalancer_setup 2>&1 > /home/$user/wordpressConsole.txt" -Path "$LogDir\StartWordpressTest.sh"
$out = RemoteCopy -uploadTo $hs1VIP -port $hs1bkvmsshport -files ".\$LogDir\StartWordpressTest.sh" -username $user -password $password -upload
LogMsg "Executing : $($currentTestData.testScript)" LogMsg "Executing : $($currentTestData.testScript)"
$cmdStr = '`date` INFO : Setup Not Started..'
$out = RunLinuxCmd -username $user -password $password -ip $hs1VIP -port $fe1sshport -command "echo $cmdStr > /home/$user/Runtime.log" #-runAsSudo
$out = RunLinuxCmd -username $user -password $password -ip $hs1VIP -port $fe2sshport -command "echo $cmdStr > /home/$user/Runtime.log" #-runAsSudo
$out = RunLinuxCmd -username $user -password $password -ip $hs1VIP -port $fe3sshport -command "echo $cmdStr > /home/$user/Runtime.log" #-runAsSudo
# Wordpress installation on E2EFOURVM # Wordpress installation on E2EFOURVM
Write-host "#################################################################################################" Write-host "#################################################################################################"
Write-host "" Write-host ""
@ -94,9 +157,21 @@ if ($isDeployed)
Write-host "It will take more than 30 minutes and may take more time depending on internet speed." -foregroundcolor "magenta" Write-host "It will take more than 30 minutes and may take more time depending on internet speed." -foregroundcolor "magenta"
Write-host "" Write-host ""
Write-host "#################################################################################################" Write-host "#################################################################################################"
# Wordpress Setup file is executing on E2EFOURVM # Read-host "Verify 4VM detais...."
$out = RunLinuxCmd -username $user -password $password -ip $hs1VIP -port $hs1bkvmsshport -command "python $($currentTestData.testScript) loadbalancer_setup 2>&1 > print.log" -runAsSudo -ignoreLinuxExitCode -runmaxallowedtime 3600 2>&1 | Out-Null $testJob = RunLinuxCmd -username $user -password $password -ip $hs1VIP -port $hs1bkvmsshport -command "bash /home/$user/StartWordpressTest.sh" -runAsSudo -RunInBackground
# Downloading the files VM #region MONITOR TEST
while ( (Get-Job -Id $testJob).State -eq "Running" )
{
$wordpressTestInfo = RunLinuxCmd -username $user -password $password -ip $hs1VIP -port $hs1bkvmsshport -command "cat /home/$user/Runtime.log | grep 'INFO :' | tail -2 " -runAsSudo
LogMsg "** Current TEST Staus BACKEND : $wordpressTestInfo"
$fe1TestInfo = RunLinuxCmd -username $user -password $password -ip $hs1VIP -port $fe1sshport -command "cat /home/$user/Runtime.log | grep 'INFO :' | tail -2 " -runAsSudo -ignoreLinuxExitCode
LogMsg "** Current TEST Staus of FRONTEND1 : $fe1TestInfo"
$fe2TestInfo = RunLinuxCmd -username $user -password $password -ip $hs1VIP -port $fe2sshport -command "cat /home/$user/Runtime.log | grep 'INFO :' | tail -2 " -runAsSudo -ignoreLinuxExitCode
LogMsg "** Current TEST Staus of FRONTEND2 : $fe2TestInfo"
$fe3TestInfo = RunLinuxCmd -username $user -password $password -ip $hs1VIP -port $fe3sshport -command "cat /home/$user/Runtime.log | grep 'INFO :' | tail -2 " -runAsSudo -ignoreLinuxExitCode
LogMsg "** Current TEST Staus of FRONTEND3 : $fe3TestInfo"
WaitFor -seconds 10
}
RemoteCopy -download -downloadFrom $hs1VIP -files "/home/$user/wdp_test.txt,/home/$user/logs.tar.gz " -downloadTo $LogDir -port $hs1bkvmsshport -username $user -password $password 2>&1 | Out-Null RemoteCopy -download -downloadFrom $hs1VIP -files "/home/$user/wdp_test.txt,/home/$user/logs.tar.gz " -downloadTo $LogDir -port $hs1bkvmsshport -username $user -password $password 2>&1 | Out-Null
}else{ }else{
$testResult="FAIL" $testResult="FAIL"
@ -170,7 +245,7 @@ $result = GetFinalResultHeader -resultarr $resultArr
$result = $testResult $result = $testResult
#Clean up the setup #Clean up the setup
#DoTestCleanUp -result $result -testName $currentTestData.testName -deployedServices $isDeployed #DoTestCleanUp -result $result -testName $currentTestData.testName -deployedServices $isDeployed -ResourceGroups $isDeployed
#Return the result and summery to the test suite script.. #Return the result and summery to the test suite script..
if ($testResult -eq "PASS") if ($testResult -eq "PASS")

Просмотреть файл

@ -7,8 +7,9 @@ import os.path
from azuremodules import * from azuremodules import *
#OS independent variables #OS independent variables
wdp_downlink = "http://wordpress.org/latest.tar.gz" # wdp_downlink = "http://wordpress.org/latest.tar.gz"
##wdp_db_root_password = "wordpress_root_password" # wdp_configlink = "https://konkasoftpackages.blob.core.windows.net/testpackages/wordpress/wp-config-sample.php"
wdp_downlink = "https://github.com/WordPress/WordPress.git"
wdp_db_root_password = "wordpress_password" wdp_db_root_password = "wordpress_password"
wdp_db_name = "wordpressdb" wdp_db_name = "wordpressdb"
wdp_db_hostname = "localhost" wdp_db_hostname = "localhost"
@ -55,50 +56,50 @@ def set_variables_OS_dependent():
service_httpd_name = "httpd" service_httpd_name = "httpd"
service_mysqld_name = "mysqld" service_mysqld_name = "mysqld"
mysql_pkg_name = "mysql-server" mysql_pkg_name = "mysql-server"
frontend_packages_list = ["mysql.x86_64","php", "php-mysql","httpd","wget","sendmail"] frontend_packages_list = ["mysql.x86_64","php", "php-mysql","httpd","wget","sendmail", "git"]
if(distro_version >= 7): if(distro_version >= 7):
service_mysqld_name = "mariadb" service_mysqld_name = "mariadb"
mysql_pkg_name = "mariadb-server" mysql_pkg_name = "mariadb-server"
frontend_packages_list = ["mariadb","php", "php-mysql","httpd","wget","sendmail"] frontend_packages_list = ["mariadb","php", "php-mysql","httpd","wget","sendmail", "git"]
elif (current_distro == "ubuntu"): elif (current_distro == "ubuntu"):
pexpect_pkg_name = "python-pexpect" pexpect_pkg_name = "python-pexpect"
service_httpd_name = "apache2" service_httpd_name = "apache2"
service_mysqld_name = "mysql" service_mysqld_name = "mysql"
mysql_pkg_name = "mysql-server" mysql_pkg_name = "mysql-server"
frontend_packages_list = ["mysql-client","php5", "php5-mysql","libapache2-mod-php5","apache2","wget","sendmail"] frontend_packages_list = ["mysql-client","php", "php-mysql","libapache2-mod-php","apache2","wget","sendmail", "git"]
elif (current_distro == "opensuse"): elif (current_distro == "opensuse"):
pexpect_pkg_name = "python-pexpect" pexpect_pkg_name = "python-pexpect"
service_httpd_name = "apache2" service_httpd_name = "apache2"
service_mysqld_name = "mysql" service_mysqld_name = "mysql"
mysql_pkg_name = "mysql-community-server" mysql_pkg_name = "mysql-community-server"
frontend_packages_list = ["mysql-community-server-client","php5", "php5-mysql","apache2-mod_php5","apache2","wget", "sendmail"] frontend_packages_list = ["mysql-community-server-client","php5", "php5-mysql","apache2-mod_php5","apache2","wget", "sendmail", "git"]
elif (current_distro == "SUSE Linux"): elif (current_distro == "SUSE Linux"):
pexpect_pkg_name = "python-pexpect" pexpect_pkg_name = "python-pexpect"
service_httpd_name = "apache2" service_httpd_name = "apache2"
service_mysqld_name = "mysql" service_mysqld_name = "mysql"
mysql_pkg_name = "mysql" mysql_pkg_name = "mysql"
#service_command = "/etc/init.d/" #service_command = "/etc/init.d/"
frontend_packages_list = ["mysql-client","php53", "php53-mysql","apache2-mod_php53","apache2","wget","sendmail"] frontend_packages_list = ["mysql-client","php53", "php53-mysql","apache2-mod_php53","apache2","wget","sendmail", "git"]
elif (current_distro == "sles"): elif (current_distro == "sles"):
pexpect_pkg_name = "python-pexpect" pexpect_pkg_name = "python-pexpect"
service_httpd_name = "apache2" service_httpd_name = "apache2"
service_mysqld_name = "mysql" service_mysqld_name = "mysql"
mysql_pkg_name = "mariadb" mysql_pkg_name = "mariadb"
frontend_packages_list = ["mariadb-client","apache2-mod_php5","apache2","php5", "php5-mysql","wget","sendmail"] frontend_packages_list = ["mariadb-client","apache2-mod_php5","apache2","php5", "php5-mysql","wget","sendmail", "git"]
if(distro_version >= 12): if(distro_version >= 12):
service_mysqld_name = "mysql" service_mysqld_name = "mysql"
mysql_pkg_name = "mariadb" mysql_pkg_name = "mariadb"
frontend_packages_list = ["mariadb-client","apache2-mod_php5","apache2","php5", "php5-mysql","wget","sendmail"] frontend_packages_list = ["mariadb-client","apache2-mod_php5","apache2","php5", "php5-mysql","wget","sendmail", "git"]
elif ((current_distro == "Red Hat") or (current_distro == "rhel")): elif ((current_distro == "Red Hat") or (current_distro == "rhel")):
pexpect_pkg_name = "pexpect" pexpect_pkg_name = "pexpect"
service_httpd_name = "httpd" service_httpd_name = "httpd"
service_mysqld_name = "mysqld" service_mysqld_name = "mysqld"
mysql_pkg_name = "mysql-server" mysql_pkg_name = "mysql-server"
frontend_packages_list = ["mysql.x86_64","php", "php-mysql", "httpd" , "wget","sendmail"] frontend_packages_list = ["mysql.x86_64","php", "php-mysql", "httpd" , "wget","sendmail", "git"]
if(distro_version >= 7): if(distro_version >= 7):
service_mysqld_name = "mariadb" service_mysqld_name = "mariadb"
mysql_pkg_name = "mariadb-server" mysql_pkg_name = "mariadb-server"
frontend_packages_list = ["mariadb","mysql.x86_64","php", "php-mysql", "httpd" , "wget","sendmail"] frontend_packages_list = ["mariadb","mysql.x86_64","php", "php-mysql", "httpd" , "wget","sendmail", "git"]
singlevm_packages_list = frontend_packages_list + [mysql_pkg_name] singlevm_packages_list = frontend_packages_list + [mysql_pkg_name]
RunLog.info( "set_variables_OS_dependent .. [done]") RunLog.info( "set_variables_OS_dependent .. [done]")
@ -120,6 +121,18 @@ def DetectDistro():
matchObj = re.match( r'^VERSION_ID=(.*)', line, re.M|re.I) matchObj = re.match( r'^VERSION_ID=(.*)', line, re.M|re.I)
version = float(matchObj.group(1)) version = float(matchObj.group(1))
if(version == "unknown"):
RunLog.info("Detecting Distro Version")
oslist = Run("echo '"+vm_password+"' | sudo -S ls /etc/*-release")
if("/etc/centos-release" in oslist):
version = float(Run("echo '"+vm_password+"' | sudo -S cat /etc/centos-release | sed s/.*release\ // | sed s/\ .*// "))
elif("/etc/oracle-release" in oslist):
version = float(Run("echo '"+vm_password+"' | sudo -S cat /etc/oracle-release | sed s/.*release\ // | sed s/\ .*// ") )
elif("/etc/redhat-release" in oslist):
version = float(Run("echo '"+vm_password+"' | sudo -S cat /etc/redhat-release | sed s/.*release\ // | sed s/\ .*// "))
else:
RunLog.info("Detected Distro Version : " +str(version))
if(distribution == 'unknown'): if(distribution == 'unknown'):
for line in outputlist: for line in outputlist:
if (re.match(r'.*ubuntu.*',line,re.M|re.I) ): if (re.match(r'.*ubuntu.*',line,re.M|re.I) ):
@ -321,8 +334,27 @@ def download_url(url, destination_folder):
print rtrn print rtrn
return False return False
def download_git_url(url, destination_folder):
RunLog.info("Downloading the WordPress from git URL...")
rtrn = Run("echo '"+vm_password+"' | sudo -S git clone "+url+" "+destination_folder+"wordpress 2>&1")
# Faild to find git package
if(rtrn.rfind("git command not found") != -1):
install_package("git")
rtrn = Run("echo '"+vm_password+"' | sudo -S git clone "+url+" "+destination_folder+"wordpress 2>&1")
RunLog.info("Downloading the WordPress from git URL... status...." + rtrn)
rtrn = Run("echo '"+vm_password+"' | sudo -S ls "+destination_folder+"wordpress 2>&1")
if( rtrn.rfind("No such file or directory") == -1) :
RunLog.info("Downloading the WordPress from git URL... status...." + rtrn)
print rtrn
return True
else:
print rtrn
return False
def install_packages_singleVM(): def install_packages_singleVM():
global wdp_install_folder global wdp_install_folder
global wdp_configlink
RunLog.info("Installing Packages in SingleVM") RunLog.info("Installing Packages in SingleVM")
for package in singlevm_packages_list: for package in singlevm_packages_list:
@ -338,9 +370,30 @@ def install_packages_singleVM():
RunLog.error("Aborting the installation.") RunLog.error("Aborting the installation.")
end_the_script() end_the_script()
if(download_url(wdp_downlink, wdp_install_folder)): if(".git" in wdp_downlink):
RunLog.info("Wordpress package is downloading from git" +wdp_downlink)
if(download_git_url(wdp_downlink, wdp_install_folder)):
RunLog.info("Wordpress package downloaded successfully") RunLog.info("Wordpress package downloaded successfully")
Run("echo '"+vm_password+"' | sudo -S tar -xvf "+wdp_install_folder+"/latest.tar.gz -C "+wdp_install_folder) else:
RunLog.info("Wordpress package downloaded failed.")
return False
elif(".tar" in wdp_downlink):
if(download_url(wdp_downlink, wdp_install_folder)):
RunLog.info("Wordpress package extraction is Started..")
Run("echo '"+vm_password+"' | sudo -S tar -xvzf "+wdp_install_folder+"/latest.tar.gz -C "+wdp_install_folder+" 2>&1")
RunLog.info("Wordpress package extract verification is Started..")
wdp_configfileStatus = Run("echo '"+vm_password+"' | sudo -S ls "+wdp_install_folder+"wordpress/wp-config-sample.php")
if("wp-config-sample.php" in wdp_configfileStatus):
RunLog.info(""+wdp_install_folder+"wordpress/wp-config-sample.php is there.. Wordpress extacred Successfully.. & update user, Db details for wordpress setup in config")
else:
RunLog.error(""+wdp_install_folder+"wordpress/wp-config-sample.php is NOT there.. So copy Sample-Config file")
if(download_url(wdp_configlink, wdp_install_folder)):
RunLog.info("wp-config-sample.php downloaded successfully")
Run("echo '"+vm_password+"' | sudo -S cp "+wdp_install_folder+"wp-config-sample.php -C "+wdp_install_folder+"/wordpress/ 2>&1")
return True
else:
RunLog.info("wp-config-sample.php downloaded failed.")
return False
else: else:
RunLog.info("Wordpress package downloaded failed.") RunLog.info("Wordpress package downloaded failed.")
return False return False
@ -388,10 +441,30 @@ def install_packages_frontend():
end_the_script() end_the_script()
#Downloading "WordPress" from Web URL #Downloading "WordPress" from Web URL
#wdp_install_folder = get_apache_document_root() if(".git" in wdp_downlink):
if(download_url(wdp_downlink, wdp_install_folder)): RunLog.info("Wordpress package is downloading from git" +wdp_downlink)
if(download_git_url(wdp_downlink, wdp_install_folder)):
RunLog.info("Wordpress package downloaded successfully") RunLog.info("Wordpress package downloaded successfully")
Run("echo '"+vm_password+"' | sudo -S tar -xvf "+wdp_install_folder+"/latest.tar.gz -C "+wdp_install_folder) else:
RunLog.info("Wordpress package downloaded failed.")
return False
elif(".tar" in wdp_downlink):
if(download_url(wdp_downlink, wdp_install_folder)):
RunLog.info("Wordpress package extraction is Started..")
Run("echo '"+vm_password+"' | sudo -S tar -xvzf "+wdp_install_folder+"/latest.tar.gz -C "+wdp_install_folder+" 2>&1")
RunLog.info("Wordpress package extract verification is Started..")
wdp_configfileStatus = Run("echo '"+vm_password+"' | sudo -S ls "+wdp_install_folder+"wordpress/wp-config-sample.php")
if("wp-config-sample.php" in wdp_configfileStatus):
RunLog.info(""+wdp_install_folder+"wordpress/wp-config-sample.php is there.. Wordpress extacred Successfully.. & update user, Db details for wordpress setup in config")
else:
RunLog.error(""+wdp_install_folder+"wordpress/wp-config-sample.php is NOT there.. So copy Sample-Config file")
if(download_url(wdp_configlink, wdp_install_folder)):
RunLog.info("wp-config-sample.php downloaded successfully")
Run("echo '"+vm_password+"' | sudo -S cp "+wdp_install_folder+"wp-config-sample.php -C "+wdp_install_folder+"/wordpress/ 2>&1")
return True
else:
RunLog.info("wp-config-sample.php downloaded failed.")
return False
else: else:
RunLog.info("Wordpress package downloaded failed.") RunLog.info("Wordpress package downloaded failed.")
return False return False
@ -591,17 +664,28 @@ def disable_selinux():
def disable_iptables(): def disable_iptables():
RunLog.info("Disabling IPPTABLES...") RunLog.info("Disabling IPPTABLES...")
iptablesInfo = Run ("echo '"+vm_password+"' | sudo -S iptables -nL")
RunLog.info("iptables status " +iptablesInfo)
#Identify the Distro and disable the Firewall #Identify the Distro and disable the Firewall
if (current_distro == 'ubuntu'): if (current_distro == 'ubuntu'):
ufw = Run ("echo '"+vm_password+"' | sudo -S ufw disable") ufw = Run ("echo '"+vm_password+"' | sudo -S ufw disable")
RunLog.info(ufw) RunLog.info(ufw)
if ((current_distro == 'Red Hat') or (current_distro == 'rhel')): elif ((current_distro == 'Red Hat') or (current_distro == 'rhel') or (current_distro == 'centos') or (current_distro == 'oracle')):
Run ("echo '"+vm_password+"' | sudo -S service iptables save") cmds = ("iptables -F","service iptables save","service iptables stop","chkconfig iptables off","service firewalld stop","chkconfig firewalld off")
Run ("echo '"+vm_password+"' | sudo -S service iptables stop") output = exec_multi_cmds_local_sudo(cmds)
Run ("echo '"+vm_password+"' | sudo -S chkconfig iptables off") elif((current_distro == 'SUSE Linux')or(current_distro == 'sles') or (current_distro == "opensuse")):
cmds = ("/sbin/yast2 firewall startup manual","/sbin/rcSuSEfirewall2 stop","chkconfig SuSEfirewall2_setup off")
output = exec_multi_cmds_local_sudo(cmds)
output = Run("echo '"+vm_password+"' | sudo -S /sbin/rcSuSEfirewall2 status")
if((output.find('unused') != -1) or (output.find('dead') != -1)):
RunLog.info( "Diasabling iptables..[done]")
else: else:
Run ("echo '"+vm_password+"' | sudo -S chkconfig iptables off") RunLog.info( "Diasabling iptables..[failed]")
Run ("echo '"+vm_password+"' | sudo -S chkconfig ip6tables off") else:
Run ("echo '"+vm_password+"' | sudo -S iptables -F")
iptablesInfo = Run ("echo '"+vm_password+"' | sudo -S iptables -nL")
RunLog.info("iptables status " +iptablesInfo)
RunLog.info("Disabling IPPTABLES...[done]") RunLog.info("Disabling IPPTABLES...[done]")
def setup_wordpress(): def setup_wordpress():
@ -614,6 +698,7 @@ def setup_wordpress():
RunLog.error("Aborting the installation.") RunLog.error("Aborting the installation.")
end_the_script() end_the_script()
else: else:
RunLog.info("wp-config.php updating with user & DB credentails Started..")
Run("echo '"+vm_password+"' | sudo -S cp "+wdp_install_folder+"wordpress/wp-config-sample.php "+wdp_install_folder+"wordpress/wp-config.php") Run("echo '"+vm_password+"' | sudo -S cp "+wdp_install_folder+"wordpress/wp-config-sample.php "+wdp_install_folder+"wordpress/wp-config.php")
Run("echo '"+vm_password+"' | sudo -S sed -i 's/database_name_here/" +wdp_db_name+ "/' "+wdp_install_folder+"wordpress/wp-config.php") Run("echo '"+vm_password+"' | sudo -S sed -i 's/database_name_here/" +wdp_db_name+ "/' "+wdp_install_folder+"wordpress/wp-config.php")
Run("echo '"+vm_password+"' | sudo -S sed -i 's/username_here/"+wdp_db_username+"/' "+wdp_install_folder+"wordpress/wp-config.php") Run("echo '"+vm_password+"' | sudo -S sed -i 's/username_here/"+wdp_db_username+"/' "+wdp_install_folder+"wordpress/wp-config.php")
@ -693,8 +778,6 @@ def setup_wordpress_singleVM():
def setup_wordpress_E2ELoadBalance_backend(front_end_users): def setup_wordpress_E2ELoadBalance_backend(front_end_users):
RunLog.info("Setup WordPress for E2ELoadbalancer Backend VM") RunLog.info("Setup WordPress for E2ELoadbalancer Backend VM")
disable_selinux()
disable_iptables()
# Installing packages in Backend VM Role # Installing packages in Backend VM Role
if (not install_packages_backend()): if (not install_packages_backend()):
@ -708,7 +791,6 @@ def setup_wordpress_E2ELoadBalance_backend(front_end_users):
end_the_script() end_the_script()
# To make to connection from backend to other IP's ranging from 0.0.0.0 # To make to connection from backend to other IP's ranging from 0.0.0.0
#bind = Run("echo '"+vm_password+"' | sudo -S sed -i 's/\(bind-address.*= \)\(.*\)/\\1 0.0.0.0/' /etc/mysql/my.cnf | grep bind")
bind = Run("echo '"+vm_password+"' | sudo -S sed -i 's/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/' /etc/mysql/my.cnf| grep bind") bind = Run("echo '"+vm_password+"' | sudo -S sed -i 's/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/' /etc/mysql/my.cnf| grep bind")
bind = Run("echo '"+vm_password+"' | sudo -S sed -i 's/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/' /etc/mysql/mysql.conf.d/mysqld.cnf | grep bind") bind = Run("echo '"+vm_password+"' | sudo -S sed -i 's/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/' /etc/mysql/mysql.conf.d/mysqld.cnf | grep bind")
bind = Run("echo '"+vm_password+"' | sudo -S sed -i 's/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/' /etc/mysql/mariadb.conf.d/mysqld.cnf | grep bind") bind = Run("echo '"+vm_password+"' | sudo -S sed -i 's/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/' /etc/mysql/mariadb.conf.d/mysqld.cnf | grep bind")
@ -737,8 +819,6 @@ def setup_wordpress_E2ELoadBalance_backend(front_end_users):
def setup_wordpress_E2ELoadBalance_frontend(): def setup_wordpress_E2ELoadBalance_frontend():
global wdp_install_folder global wdp_install_folder
RunLog.info("Setup WordPress for E2ELoadbalancer Frontend VM") RunLog.info("Setup WordPress for E2ELoadbalancer Frontend VM")
disable_selinux()
disable_iptables()
# Installing packages in Front-end VM Role's # Installing packages in Front-end VM Role's
if (not install_packages_frontend()): if (not install_packages_frontend()):
@ -998,7 +1078,7 @@ def main():
frontend_count = 1 frontend_count = 1
for ip in front_endVM_ips: for ip in front_endVM_ips:
RunLog.info("**********************************************************") RunLog.info("**********************************************************")
RunLog.info("\nConfiguring frontend"+str(frontend_count)+" at "+ip+":\n") RunLog.info("Configuring frontend"+str(frontend_count)+" at "+ip+":\n")
# TODO FIX TCP alive on Servers and restart the # TODO FIX TCP alive on Servers and restart the
RunLog.info("Copying "+__file__+" to "+ ip) RunLog.info("Copying "+__file__+" to "+ ip)
RunLog.info(put_file_sftp(front_endVM_username, front_endVM_password, ip, __file__)) RunLog.info(put_file_sftp(front_endVM_username, front_endVM_password, ip, __file__))
@ -1021,7 +1101,7 @@ def main():
wdp_db_hostname = sys.argv[2] wdp_db_hostname = sys.argv[2]
setup_wordpress_E2ELoadBalance_frontend() setup_wordpress_E2ELoadBalance_frontend()
#Reboot the Frontend1,2,3 #Reboot the Frontend1,2,3
RunLog.info( "Rebooting the frontend....\n") RunLog.info( "Wordpress setup done and Rebooting the frontend....\n")
if (current_distro != "opensuse"): if (current_distro != "opensuse"):
RunLog.info( exec_multi_cmds_local_sudo(["reboot"])) RunLog.info( exec_multi_cmds_local_sudo(["reboot"]))
else: else:
@ -1047,6 +1127,9 @@ get_username_password_from_xml()
set_variables_OS_dependent() set_variables_OS_dependent()
UpdateRepos() UpdateRepos()
disable_selinux()
disable_iptables()
#check for availability of pexpect module #check for availability of pexpect module
try: try:
imp.find_module('pexpect') imp.find_module('pexpect')
@ -1060,7 +1143,7 @@ except ImportError:
RunLog.info( "pexpect module could not be installed") RunLog.info( "pexpect module could not be installed")
pythonversion = Run ("echo '"+vm_password+"' | sudo -S python --version 2>&1") pythonversion = Run ("echo '"+vm_password+"' | sudo -S python --version 2>&1")
if(pythonversion.find('Python 2.7.') or pythonversion.find('Python 3.')): if(pythonversion.find('Python 2.7.') or pythonversion.find('Python 3.')):
if((current_distro == 'sles') and (distro_version == "12")): if((current_distro == 'sles') and (distro_version >= 12)):
RunLog.info( "Trying to install pexpect module using rpm package") RunLog.info( "Trying to install pexpect module using rpm package")
out = Run("echo '"+vm_password+"' | sudo -S rpm -ivh python-pexpect-3.1-1.1.noarch.rpm 2>&1") out = Run("echo '"+vm_password+"' | sudo -S rpm -ivh python-pexpect-3.1-1.1.noarch.rpm 2>&1")
RunLog.info("out = "+out) RunLog.info("out = "+out)

Просмотреть файл

@ -16,37 +16,13 @@ $SAName = $currentTestData.remoteSA
$SAPrimaryKey = (Get-AzureStorageKey -StorageAccountName $SAName).Primary $SAPrimaryKey = (Get-AzureStorageKey -StorageAccountName $SAName).Primary
$SAContainer = $currentTestData.remoteSAContainer $SAContainer = $currentTestData.remoteSAContainer
$remoteDebPath = $currentTestData.remoteDEBPath $remoteDebPath = $currentTestData.remoteDEBPath
$imageType = $currentTestData.imageType
$BaseOsImageName = GetOSImageFromDistro -Distro $Distro -xmlConfig $xmlConfig
LogMsg "Remote Storage Account to copy deb package : $SAName" LogMsg "Remote Storage Account to copy deb package : $SAName"
Logmsg "Image type : $imageType"
if($imageType -imatch "Standard")
{
LogMsg "BaseOsImageName : $BaseOsImageName"
LogMsg "Collecting latest $imageType ubuntu image from Azure gallery.."
$latestLinuxImage = (Get-AzureVMImage | where {$_.ImageName -imatch "Ubuntu-16_04-LTS-amd64-server" } | sort PublishedDate -Descending)[0].ImageName
LogMsg "Latest $imageType Image from Azure gallery : $latestLinuxImage"
$latestOsImage = SetOSImageToDistro -Distro $Distro -xmlConfig $xmlConfig -ImageName $latestLinuxImage
LogMsg "Is $imageType latestOsImage SET : $latestOsImage"
}
elseif($imageType -imatch "Daily")
{
LogMsg "BaseOsImageName : $BaseOsImageName"
LogMsg "Collecting latest ubuntu $imageType image from Azure gallery"
$latestLinuxImage = (Get-AzureVMImage | where {$_.ImageName -imatch "Ubuntu_DAILY_BUILD-xenial-16_04-" } | sort PublishedDate -Descending)[0].ImageName
LogMsg "Latest $imageType Image from Azure gallery : $latestLinuxImage"
$latestOsImage = SetOSImageToDistro -Distro $Distro -xmlConfig $xmlConfig -ImageName $latestLinuxImage
LogMsg "Is $imageType latestOsImage SET : $latestOsImage"
}
$isDeployed = DeployVMS -setupType $currentTestData.setupType -Distro $Distro -xmlConfig $xmlConfig $isDeployed = DeployVMS -setupType $currentTestData.setupType -Distro $Distro -xmlConfig $xmlConfig
if ($isDeployed) if ($isDeployed)
{ {
try try
{ {
$allVMData = GetAllDeployementData -DeployedServices $isDeployed
Set-Variable -Name AllVMData -Value $allVMData
[string] $ServiceName = $allVMData.ServiceName [string] $ServiceName = $allVMData.ServiceName
$hs1VIP = $allVMData.PublicIP $hs1VIP = $allVMData.PublicIP
$hs1ServiceUrl = $allVMData.URL $hs1ServiceUrl = $allVMData.URL