-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrate Availability Zone from private repository #4523
Merged
Merged
Changes from all commits
Commits
Show all changes
26 commits
Select commit
Hold shift + click to select a range
8f5ef2b
Initial support for VM and single zone VMSS (#14)
yugangw-msft 7436a62
use a private copy of network sdk with zone support (#15)
yugangw-msft 9e79e60
Support for zoned public IP. Make global zone_type and zones_type. (#16)
tjprescott 9f071df
apply api version range on vm zone test (#19)
yugangw-msft 1b2bcc2
show zone in the table output (#20)
yugangw-msft 1db07c3
install: support to build out a msi installer from local sources (#17)
yugangw-msft 4ec859c
doc:add command examples using availability zones (#21)
yugangw-msft 9757370
resolve conflicts with master
yugangw-msft cebafe6
Merge branch 'master' into az
yugangw-msft 157ca06
Installer: build debian bundle from a local clone (#28)
yugangw-msft 6d751d3
resolve conflicts caused by zone support
yugangw-msft e505c66
skip a few expeneive travis builds
yugangw-msft 881353c
test: update tests to work with new azure-mgmt-compute with zone support
yugangw-msft 1bb2ef0
network: support zone in network lb create (#37)
yugangw-msft 64afaa3
resolve conflicts from public master branch
yugangw-msft 7458d24
VNet peering examples. (#51)
tjprescott e82f1d0
Add BrazilUS and Dogfood cloud config files. (#50)
tjprescott 0baf2c1
resolve conflicts with public master
yugangw-msft 2aa24b8
merge conflicts with public master
yugangw-msft ceb0d44
resolve conflicts with public master
yugangw-msft 6577c45
Merge branch 'master' into az
yugangw-msft 493d42a
Merge branch 'master' into az
yugangw-msft d205eb1
undo all changes specifically for private repository
yugangw-msft b0d81f8
fix help per review feedback
yugangw-msft c396c1c
fix lint error
yugangw-msft d7586ad
use newer nrp sdk version
yugangw-msft File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -28,7 +28,7 @@ class ResourceType(Enum): # pylint: disable=too-few-public-methods | |
|
||
MGMT_STORAGE = ('azure.mgmt.storage', | ||
'StorageManagementClient') | ||
MGMT_COMPUTE = ('azure.mgmt.compute.compute', | ||
MGMT_COMPUTE = ('azure.mgmt.compute', | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. With the new SDK, is There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. yes |
||
'ComputeManagementClient') | ||
MGMT_NETWORK = ('azure.mgmt.network', | ||
'NetworkManagementClient') | ||
|
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.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR does more than "Integrate Availability Zone from private repository". It also introduces
packaged_releases/windows/scripts/build_local.cmd
which is very similar topackaged_releases/windows/scripts/prepareBuild.cmd
(introduced by #2655).packaged_releases/windows/scripts/build_local.cmd
should have been moved to a separate PR.Later in #4696,
packaged_releases/windows/scripts/build_local.cmd
was renamed tobuild_scripts/windows/scripts/build.cmd
andpackaged_releases/windows/scripts/prepareBuild.cmd
was deleted.