-
Notifications
You must be signed in to change notification settings - Fork 3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Integrate Availability Zone from private repository (#4523)
* Initial support for VM and single zone VMSS (#14) * wire up the initial zone support work * add output * add tests * disable package verifications * use a private copy of network sdk with zone support (#15) * Support for zoned public IP. Make global zone_type and zones_type. (#16) * Support for zoned public IP. Make global zone_type and zones_type. * Code review feedback. * apply api version range on vm zone test (#19) * show zone in the table output (#20) * install: support to build out a msi installer from local sources (#17) * doc:add command examples using availability zones (#21) * Installer: build debian bundle from a local clone (#28) * skip a few expeneive travis builds * test: update tests to work with new azure-mgmt-compute with zone support * network: support zone in network lb create (#37) * VNet peering examples. (#51) * Add BrazilUS and Dogfood cloud config files. (#50) * undo all changes specifically for private repository * fix help per review feedback * fix lint error * use newer nrp sdk version
- Loading branch information
1 parent
ac16b40
commit eb9a2f4
Showing
31 changed files
with
3,059 additions
and
204 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
# -------------------------------------------------------------------------------------------- | ||
# Copyright (c) Microsoft Corporation. All rights reserved. | ||
# Licensed under the MIT License. See License.txt in the project root for license information. | ||
# -------------------------------------------------------------------------------------------- | ||
|
||
""" | ||
Script to build all command modules that can be used to install a fully self-contained instance of the CLI. | ||
""" | ||
|
||
from __future__ import print_function | ||
|
||
import glob | ||
import os | ||
import sys | ||
import tempfile | ||
import subprocess | ||
|
||
def _error_exit(msg): | ||
print('ERROR: '+msg, file=sys.stderr) | ||
sys.exit(1) | ||
|
||
def _print_status(msg=''): | ||
print('-- '+msg) | ||
|
||
def _get_tmp_dir(): | ||
return tempfile.mkdtemp() | ||
|
||
def _get_tmp_file(): | ||
return tempfile.mkstemp()[1] | ||
|
||
def _exec_command(command_list, cwd=None, stdout=None): | ||
"""Returns True in the command was executed successfully""" | ||
try: | ||
_print_status('Executing {}'.format(command_list)) | ||
subprocess.check_call(command_list, stdout=stdout, cwd=cwd) | ||
return True | ||
except subprocess.CalledProcessError as err: | ||
print(err, file=sys.stderr) | ||
return False | ||
|
||
def _build_package(path_to_package, dist_dir): | ||
cmd_success = _exec_command(['python', 'setup.py', 'bdist_wheel', '-d', dist_dir], cwd=path_to_package) | ||
if not cmd_success: | ||
_error_exit('Error building {}.'.format(path_to_package)) | ||
|
||
def build_packages(clone_root, dist_dir): | ||
packages_to_build = [ | ||
os.path.join(clone_root, 'src', 'azure-cli'), | ||
os.path.join(clone_root, 'src', 'azure-cli-core'), | ||
os.path.join(clone_root, 'src', 'azure-cli-nspkg'), | ||
os.path.join(clone_root, 'src', 'azure-cli-command_modules-nspkg'), | ||
] | ||
|
||
packages_to_build.extend(glob.glob(os.path.join(clone_root, 'src', 'command_modules', 'azure-cli-*'))) | ||
for p in packages_to_build: | ||
if os.path.isfile(os.path.join(p, 'setup.py')): | ||
_build_package(p, dist_dir) | ||
|
||
if __name__ == '__main__': | ||
if len(sys.argv) == 1: | ||
raise ValueError('Please provide temporary path for local built packages') | ||
dist_dir = sys.argv[1] | ||
clone_root = sys.argv[2] | ||
build_packages(clone_root, dist_dir) | ||
print("package were built to {}".format(dist_dir)) | ||
print("Done.") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
@echo off | ||
SetLocal EnableDelayedExpansion | ||
echo build a msi installer using local cli sources and python executables. You need to have curl.exe, unzip.exe and msbuild.exe available under PATH | ||
echo. | ||
|
||
set "PATH=%PATH%;%ProgramFiles%\Git\bin;%ProgramFiles%\Git\usr\bin" | ||
|
||
if "%CLIVERSION%"=="" ( | ||
echo Please set the CLIVERSION environment variable, e.g. 2.0.13 | ||
goto ERROR | ||
) | ||
set PYTHON_VERSION=3.6.1 | ||
|
||
set WIX_DOWNLOAD_URL="https://azurecliprod.blob.core.windows.net/msi/wix310-binaries-mirror.zip" | ||
|
||
:: Set up the output directory and temp. directories | ||
echo Cleaning previous build artifacts... | ||
set OUTPUT_DIR=%~dp0..\out | ||
if exist %OUTPUT_DIR% rmdir /s /q %OUTPUT_DIR% | ||
mkdir %OUTPUT_DIR% | ||
|
||
set TEMP_SCRATCH_FOLDER=%HOMEDRIVE%%HOMEPATH%\zcli_scratch | ||
set BUILDING_DIR=%HOMEDRIVE%%HOMEPATH%\zcli | ||
set WIX_DIR=%HOMEDRIVE%%HOMEPATH%\zwix | ||
set REPO_ROOT=%~dp0..\..\.. | ||
|
||
:: look for python 3.x so we can build into the installer | ||
if not "%1"=="" ( | ||
set PYTHON_DIR=%1 | ||
set PYTHON_EXE=%1\python.exe | ||
goto PYTHON_FOUND | ||
) | ||
|
||
FOR /f %%i IN ('where python') DO ( | ||
set PY_FILE_DRIVE=%%~di | ||
set PY_FILE_PATH=%%~pi | ||
set PY_FILE_NAME=%%~ni | ||
set PYTHON_EXE=!PY_FILE_DRIVE!!PY_FILE_PATH!!PY_FILE_NAME!.exe | ||
set PYTHON_DIR=!PY_FILE_DRIVE!!PY_FILE_PATH! | ||
FOR /F "delims=" %%j IN ('!PYTHON_EXE! --version') DO ( | ||
set PYTHON_VER=%%j | ||
echo.!PYTHON_VER!|findstr /C:"%PYTHON_VERSION%" >nul 2>&1 | ||
if not errorlevel 1 ( | ||
goto PYTHON_FOUND | ||
) | ||
) | ||
) | ||
echo python %PYTHON_VERSION% is needed to create installer. | ||
exit /b 1 | ||
:PYTHON_FOUND | ||
echo Python Executables: %PYTHON_DIR%, %PYTHON_EXE% | ||
|
||
::reset working folders | ||
if exist %BUILDING_DIR% rmdir /s /q %BUILDING_DIR% | ||
::rmdir always returns 0, so check folder's existence | ||
if exist %BUILDING_DIR% ( | ||
echo Failed to delete %BUILDING_DIR%. | ||
goto ERROR | ||
) | ||
mkdir %BUILDING_DIR% | ||
|
||
if exist %TEMP_SCRATCH_FOLDER% rmdir /s /q %TEMP_SCRATCH_FOLDER% | ||
if exist %TEMP_SCRATCH_FOLDER% ( | ||
echo Failed to delete %TEMP_SCRATCH_FOLDER%. | ||
goto ERROR | ||
) | ||
mkdir %TEMP_SCRATCH_FOLDER% | ||
|
||
copy %REPO_ROOT%\privates\*.whl %TEMP_SCRATCH_FOLDER% | ||
|
||
::ensure wix is available | ||
if exist %WIX_DIR% ( | ||
echo Using existing Wix at %WIX_DIR% | ||
) | ||
if not exist %WIX_DIR% ( | ||
mkdir %WIX_DIR% | ||
pushd %WIX_DIR% | ||
echo Downloading Wix. | ||
curl -o wix-archive.zip %WIX_DOWNLOAD_URL% -k | ||
unzip -q wix-archive.zip | ||
if %errorlevel% neq 0 goto ERROR | ||
del wix-archive.zip | ||
echo Wix downloaded and extracted successfully. | ||
popd | ||
) | ||
|
||
:: Use the Python version on the machine that creates the MSI | ||
robocopy %PYTHON_DIR% %BUILDING_DIR% /s /NFL /NDL | ||
|
||
:: Build & install all the packages with bdist_wheel | ||
%BUILDING_DIR%\python %~dp0build-packages.py %TEMP_SCRATCH_FOLDER% %REPO_ROOT% | ||
if %errorlevel% neq 0 goto ERROR | ||
:: Install them to the temp folder so to be packaged | ||
%BUILDING_DIR%\python.exe -m pip install -f %TEMP_SCRATCH_FOLDER% --no-cache-dir azure-cli | ||
%BUILDING_DIR%\python.exe -m pip install --force-reinstall --upgrade azure-nspkg azure-mgmt-nspkg | ||
|
||
echo Creating the wbin (Windows binaries) folder that will be added to the path... | ||
mkdir %BUILDING_DIR%\wbin | ||
copy %REPO_ROOT%\packaged_releases\windows\scripts\az.cmd %BUILDING_DIR%\wbin\ | ||
if %errorlevel% neq 0 goto ERROR | ||
copy %REPO_ROOT%\packaged_releases\windows\resources\CLI_LICENSE.rtf %BUILDING_DIR% | ||
copy %REPO_ROOT%\packaged_releases\windows\resources\ThirdPartyNotices.txt %BUILDING_DIR% | ||
del %BUILDING_DIR%\Scripts\pip.exe | ||
del %BUILDING_DIR%\Scripts\pip3.exe | ||
del %BUILDING_DIR%\Scripts\pip3.6.exe | ||
if %errorlevel% neq 0 goto ERROR | ||
|
||
echo Building MSI... | ||
msbuild /t:rebuild /p:Configuration=Release %REPO_ROOT%\packaged_releases\windows\azure-cli.wixproj | ||
|
||
start %OUTPUT_DIR% | ||
|
||
goto END | ||
|
||
:ERROR | ||
echo Error occurred, please check the output for details. | ||
exit /b 1 | ||
|
||
:END | ||
exit /b 0 | ||
popd |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.