From 54d8396d681c97ace18e2710394b8b34fa8f0411 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tony=20Saraj=C3=A4rvi?= Date: Tue, 2 Jan 2018 12:58:13 +0200 Subject: Set proxy on Windows VMs while provisioning Task-number: QTQAINFRA-1669 Change-Id: Ia6b5b668051642a3729d7c7c83c69d8797045847 Reviewed-by: Heikki Halmet --- coin/provisioning/common/http_proxy.txt | 2 + .../common/unix/check_and_set_proxy.sh | 2 +- coin/provisioning/common/unix/http_proxy.txt | 2 - coin/provisioning/common/windows/helpers.ps1 | 8 +++ coin/provisioning/common/windows/python.ps1 | 4 ++ coin/provisioning/common/windows/python3.ps1 | 4 ++ coin/provisioning/common/windows/set-proxy.ps1 | 64 ++++++++++++++++++++++ coin/provisioning/common/windows/unset-proxy.ps1 | 41 ++++++++++++++ 8 files changed, 124 insertions(+), 3 deletions(-) create mode 100644 coin/provisioning/common/http_proxy.txt delete mode 100644 coin/provisioning/common/unix/http_proxy.txt create mode 100644 coin/provisioning/common/windows/set-proxy.ps1 create mode 100644 coin/provisioning/common/windows/unset-proxy.ps1 (limited to 'coin/provisioning/common') diff --git a/coin/provisioning/common/http_proxy.txt b/coin/provisioning/common/http_proxy.txt new file mode 100644 index 00000000..3aa6ceba --- /dev/null +++ b/coin/provisioning/common/http_proxy.txt @@ -0,0 +1,2 @@ +proxy="http://proxy.intra.qt.io:3128" + diff --git a/coin/provisioning/common/unix/check_and_set_proxy.sh b/coin/provisioning/common/unix/check_and_set_proxy.sh index 8dad878c..38905d56 100755 --- a/coin/provisioning/common/unix/check_and_set_proxy.sh +++ b/coin/provisioning/common/unix/check_and_set_proxy.sh @@ -33,7 +33,7 @@ ############################################################################# source "${BASH_SOURCE%/*}/try_catch.sh" -source "${BASH_SOURCE%/*}/http_proxy.txt" +source "${BASH_SOURCE%/*}/../http_proxy.txt" try ( diff --git a/coin/provisioning/common/unix/http_proxy.txt b/coin/provisioning/common/unix/http_proxy.txt deleted file mode 100644 index 3aa6ceba..00000000 --- a/coin/provisioning/common/unix/http_proxy.txt +++ /dev/null @@ -1,2 +0,0 @@ -proxy="http://proxy.intra.qt.io:3128" - diff --git a/coin/provisioning/common/windows/helpers.ps1 b/coin/provisioning/common/windows/helpers.ps1 index b24de870..9c6706a2 100644 --- a/coin/provisioning/common/windows/helpers.ps1 +++ b/coin/provisioning/common/windows/helpers.ps1 @@ -144,3 +144,11 @@ Function Execute-Command exit 1 } } + +function isProxyEnabled { + return (Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings').proxyEnable +} + +function getProxy { + return (Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings').proxyServer +} diff --git a/coin/provisioning/common/windows/python.ps1 b/coin/provisioning/common/windows/python.ps1 index c3eba2d8..fe75aa35 100644 --- a/coin/provisioning/common/windows/python.ps1 +++ b/coin/provisioning/common/windows/python.ps1 @@ -63,4 +63,8 @@ Add-Path "C:\Python27;C:\Python27\Scripts" C:\Python27\python.exe -m ensurepip # Install python virtual env +#if ( isProxyEnabled ) { +# echo "Using proxy with pip" +# $pip_args = "--proxy=" + (getProxy) +#} C:\Python27\Scripts\pip.exe install virtualenv diff --git a/coin/provisioning/common/windows/python3.ps1 b/coin/provisioning/common/windows/python3.ps1 index 316b567a..23ddb553 100644 --- a/coin/provisioning/common/windows/python3.ps1 +++ b/coin/provisioning/common/windows/python3.ps1 @@ -67,4 +67,8 @@ del $package [Environment]::SetEnvironmentVariable("PIP3_PATH", "$install_path\Scripts", [EnvironmentVariableTarget]::Machine) # Install python virtual env +#if ( isProxyEnabled ) { +# echo "Using proxy with pip" +# $pip_args = "--proxy=" + (getProxy) +#} cmd /c "$install_path\Scripts\pip3.exe install virtualenv" diff --git a/coin/provisioning/common/windows/set-proxy.ps1 b/coin/provisioning/common/windows/set-proxy.ps1 new file mode 100644 index 00000000..914769f1 --- /dev/null +++ b/coin/provisioning/common/windows/set-proxy.ps1 @@ -0,0 +1,64 @@ +############################################################################# +## +## Copyright (C) 2017 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see http://www.qt.io/terms-conditions. For further +## information use the contact form at http://www.qt.io/contact-us. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + +$n = Get-Content "$PSScriptRoot\..\http_proxy.txt" +$n = $n.Split('=') +New-Variable -Name $n[0] -Value $n[1] + +if (([string]::IsNullOrEmpty($proxy)) -or ($proxy -eq '""')) { + echo "No proxy is defined." +} +else { + echo "Checking proxy @ $proxy" + $proxy = $proxy -replace '"', "" + $webclient = New-Object System.Net.WebClient + $proxy_obj = New-Object System.Net.WebProxy($proxy) + $webclient.proxy = $proxy_obj + try { + $webpage = $webclient.DownloadData("http://proxy.intra.qt.io") + } + catch { + $ErrorMessage = $_.Exception.Message + $FailedItem = $_.Exception.ItemName + $iserror = $true + } + if ($iserror -eq $true) { + echo "Testing download with proxy does not work: $ErrorMessage, $FailedItem. Not setting proxy." + } + else { + echo "Setting proxy to: $proxy" + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyServer -Value "$proxy" + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyEnable -Value 1 + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyOverride -Value 10.215 + } +} diff --git a/coin/provisioning/common/windows/unset-proxy.ps1 b/coin/provisioning/common/windows/unset-proxy.ps1 new file mode 100644 index 00000000..86374ec1 --- /dev/null +++ b/coin/provisioning/common/windows/unset-proxy.ps1 @@ -0,0 +1,41 @@ +############################################################################# +## +## Copyright (C) 2017 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see http://www.qt.io/terms-conditions. For further +## information use the contact form at http://www.qt.io/contact-us. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + +echo "Disabling proxy" +$dcs = (Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections").DefaultConnectionSettings +$dcs[8] = $_ -band 0xF7 +Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections" -Name DefaultConnectionSettings -Value $dcs +Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyEnable -Value 0 +Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyServer +Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyOverride + -- cgit v1.2.3