зеркало из https://github.com/Azure/azure-cli.git
Dev Branch rebase to Knack (#4965)
* sp reset-credentials from dev * rebase polish rbac error message * rebase role assignment list: show default assignments for classic administrators * Modified AzureUSGov Endpoint to .US (#4877) * Modified AzureUSGov Endpoint to .US * Updated History.RST to include USGovAADEndPoint Change * Updated Setup.py to match HISTORY.RST * Reduced previous change in HISTORY.RST to a single line * HISTORY.rst merge with latest commit * HISTORY.RST Syntax Correction * webapp/functionapp: ensure list/show display correct set of apps (#4891) * Fix authoring doc typo (#4903) * Changing CLI for azure-consumption reflecting the new api-version (#4900) * Changing CLI for azure-consumption reflecting the new api-version * Modifying Setup.py and history.rst * Implementing review comments * Rebase remove component module * [acr] typo fix in help (#4904) * [acr] typo fix in help * [acr] bump version and add history line item * Rebase of support raw format on resource show * Web: add node appsetting when runtime is not specified (#4907) * webapp: fix a bug in the cert name generation (#4909) * Fix container module default ports (#4950) * fix default ports * bump up version * update history * Advisor command module (#4898) * Initial change to add Advisor module. * Add list recommendations command. * More commands. * More commands. * Pylint fixes and adding a test. * More updates. * More updates. * Fixing precheck errors. * Fixing more precheck errors. * Initial change to add Advisor module. * Add list recommendations command. * More commands. * More commands. * Pylint fixes and adding a test. * More updates. * More updates. * Fixing precheck errors. * Fixing more precheck errors. * Adding missing manifest. * Fixes for test failures. * Addressing review comments and add unit tests. * More fixes. * Address CI failures. * Extra space. * One more fix. * rebase sql usage commands. * Add advisor to default install (#4956) * Add consumption module to code owners (#4906) * Added sql server conn-policy show/update commands (#4888) * Update proj file
This commit is contained in:
Родитель
e8e8b25f61
Коммит
fe81db993b
|
@ -7,6 +7,7 @@
|
|||
/src/azure-cli-testsdk/ @troydai
|
||||
/src/command_modules/azure-cli-acr/ @djyou
|
||||
/src/command_modules/azure-cli-acs/ @rjtsdl
|
||||
/src/command_modules/azure-cli-advisor/ @Prasanna-Padmanabhan
|
||||
/src/command_modules/azure-cli-appservice/ @yugangw-msft
|
||||
/src/command_modules/azure-cli-backup/ @dragonfly91
|
||||
/src/command_modules/azure-cli-batch/ @annatisch
|
||||
|
@ -15,6 +16,7 @@
|
|||
/src/command_modules/azure-cli-cosmosdb/ @dmakwana
|
||||
/src/command_modules/azure-cli-cloud/ @derekbekoe
|
||||
/src/command_modules/azure-cli-container/ @yolo3301
|
||||
/src/command_modules/azure-cli-consumption/ @sandeepnl
|
||||
/src/command_modules/azure-cli-eventgrid/ @kalyanaj
|
||||
/src/command_modules/azure-cli-extension/ @derekbekoe
|
||||
/src/command_modules/azure-cli-keyvault/ @tjprescott
|
||||
|
|
|
@ -49,7 +49,6 @@
|
|||
<Compile Include="azure-cli-core\azure\cli\core\tests\test_add_resourcegroup_transform.py" />
|
||||
<Compile Include="azure-cli-core\azure\cli\core\tests\test_api_profiles.py" />
|
||||
<Compile Include="azure-cli-core\azure\cli\core\tests\test_application.py" />
|
||||
<Compile Include="azure-cli-core\azure\cli\core\tests\test_arm.py" />
|
||||
<Compile Include="azure-cli-core\azure\cli\core\tests\test_cloud.py" />
|
||||
<Compile Include="azure-cli-core\azure\cli\core\tests\test_command_registration.py" />
|
||||
<Compile Include="azure-cli-core\azure\cli\core\tests\test_command_with_configured_defaults.py" />
|
||||
|
@ -124,6 +123,16 @@
|
|||
<Compile Include="command_modules\azure-cli-acs\azure\cli\command_modules\acs\_validators.py" />
|
||||
<Compile Include="command_modules\azure-cli-acs\azure\cli\command_modules\acs\__init__.py" />
|
||||
<Compile Include="command_modules\azure-cli-acs\setup.py" />
|
||||
<Compile Include="command_modules\azure-cli-advisor\azure\cli\command_modules\advisor\commands.py" />
|
||||
<Compile Include="command_modules\azure-cli-advisor\azure\cli\command_modules\advisor\custom.py" />
|
||||
<Compile Include="command_modules\azure-cli-advisor\azure\cli\command_modules\advisor\tests\test_advisor_commands.py" />
|
||||
<Compile Include="command_modules\azure-cli-advisor\azure\cli\command_modules\advisor\tests\__init__.py" />
|
||||
<Compile Include="command_modules\azure-cli-advisor\azure\cli\command_modules\advisor\_client_factory.py" />
|
||||
<Compile Include="command_modules\azure-cli-advisor\azure\cli\command_modules\advisor\_help.py" />
|
||||
<Compile Include="command_modules\azure-cli-advisor\azure\cli\command_modules\advisor\_params.py" />
|
||||
<Compile Include="command_modules\azure-cli-advisor\azure\cli\command_modules\advisor\__init__.py" />
|
||||
<Compile Include="command_modules\azure-cli-advisor\azure_bdist_wheel.py" />
|
||||
<Compile Include="command_modules\azure-cli-advisor\setup.py" />
|
||||
<Compile Include="command_modules\azure-cli-appservice\azure\cli\command_modules\appservice\commands.py" />
|
||||
<Compile Include="command_modules\azure-cli-appservice\azure\cli\command_modules\appservice\custom.py" />
|
||||
<Compile Include="command_modules\azure-cli-appservice\azure\cli\command_modules\appservice\tests\test_webapp_commands.py" />
|
||||
|
@ -203,9 +212,6 @@
|
|||
<Compile Include="command_modules\azure-cli-cognitiveservices\azure\cli\command_modules\cognitiveservices\__init__.py" />
|
||||
<Compile Include="command_modules\azure-cli-cognitiveservices\azure_bdist_wheel.py" />
|
||||
<Compile Include="command_modules\azure-cli-cognitiveservices\setup.py" />
|
||||
<Compile Include="command_modules\azure-cli-component\azure\cli\command_modules\component\_help.py">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="command_modules\azure-cli-configure\azure\cli\command_modules\configure\custom.py" />
|
||||
<Compile Include="command_modules\azure-cli-configure\azure\cli\command_modules\configure\_consts.py" />
|
||||
<Compile Include="command_modules\azure-cli-configure\azure\cli\command_modules\configure\_help.py" />
|
||||
|
@ -441,6 +447,16 @@
|
|||
<Compile Include="command_modules\azure-cli-redis\azure\cli\command_modules\redis\_validators.py" />
|
||||
<Compile Include="command_modules\azure-cli-redis\azure\cli\command_modules\redis\__init__.py" />
|
||||
<Compile Include="command_modules\azure-cli-redis\setup.py" />
|
||||
<Compile Include="command_modules\azure-cli-reservations\azure\cli\command_modules\reservations\commands.py" />
|
||||
<Compile Include="command_modules\azure-cli-reservations\azure\cli\command_modules\reservations\custom.py" />
|
||||
<Compile Include="command_modules\azure-cli-reservations\azure\cli\command_modules\reservations\tests\test_reservations_commands.py" />
|
||||
<Compile Include="command_modules\azure-cli-reservations\azure\cli\command_modules\reservations\_client_factory.py" />
|
||||
<Compile Include="command_modules\azure-cli-reservations\azure\cli\command_modules\reservations\_exception_handler.py" />
|
||||
<Compile Include="command_modules\azure-cli-reservations\azure\cli\command_modules\reservations\_help.py" />
|
||||
<Compile Include="command_modules\azure-cli-reservations\azure\cli\command_modules\reservations\_params.py" />
|
||||
<Compile Include="command_modules\azure-cli-reservations\azure\cli\command_modules\reservations\__init__.py" />
|
||||
<Compile Include="command_modules\azure-cli-reservations\azure_bdist_wheel.py" />
|
||||
<Compile Include="command_modules\azure-cli-reservations\setup.py" />
|
||||
<Compile Include="command_modules\azure-cli-resource\azure\cli\command_modules\resource\tests\test_api_check.py" />
|
||||
<Compile Include="command_modules\azure-cli-resource\azure\cli\command_modules\resource\tests\test_custom.py" />
|
||||
<Compile Include="command_modules\azure-cli-resource\azure\cli\command_modules\resource\tests\test_locks.py" />
|
||||
|
@ -509,9 +525,6 @@
|
|||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="command_modules\azure-cli-storage\azure\cli\command_modules\storage\_transformers.py" />
|
||||
<Compile Include="command_modules\azure-cli-component\azure\cli\command_modules\component\custom.py" />
|
||||
<Compile Include="command_modules\azure-cli-component\azure\cli\command_modules\component\commands.py" />
|
||||
<Compile Include="command_modules\azure-cli-component\azure\cli\command_modules\component\_params.py" />
|
||||
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\custom.py" />
|
||||
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\commands.py" />
|
||||
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\_params.py">
|
||||
|
@ -540,8 +553,6 @@
|
|||
</Compile>
|
||||
<Compile Include="command_modules\azure-cli-storage\azure\cli\command_modules\storage\_params.py" />
|
||||
<Compile Include="command_modules\azure-cli-storage\azure\cli\command_modules\storage\_validators.py" />
|
||||
<Compile Include="command_modules\azure-cli-component\azure\cli\command_modules\component\__init__.py" />
|
||||
<Compile Include="command_modules\azure-cli-component\setup.py" />
|
||||
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\__init__.py" />
|
||||
<Compile Include="command_modules\azure-cli-network\setup.py" />
|
||||
<Compile Include="command_modules\azure-cli-profile\azure\cli\command_modules\profile\__init__.py" />
|
||||
|
@ -622,6 +633,12 @@
|
|||
<Folder Include="command_modules\azure-cli-acs\azure\cli\command_modules\" />
|
||||
<Folder Include="command_modules\azure-cli-acs\azure\cli\command_modules\acs\" />
|
||||
<Folder Include="command_modules\azure-cli-acs\azure\cli\command_modules\acs\tests\" />
|
||||
<Folder Include="command_modules\azure-cli-advisor\" />
|
||||
<Folder Include="command_modules\azure-cli-advisor\azure\" />
|
||||
<Folder Include="command_modules\azure-cli-advisor\azure\cli\" />
|
||||
<Folder Include="command_modules\azure-cli-advisor\azure\cli\command_modules\" />
|
||||
<Folder Include="command_modules\azure-cli-advisor\azure\cli\command_modules\advisor\" />
|
||||
<Folder Include="command_modules\azure-cli-advisor\azure\cli\command_modules\advisor\tests\" />
|
||||
<Folder Include="command_modules\azure-cli-appservice\" />
|
||||
<Folder Include="command_modules\azure-cli-appservice\azure\" />
|
||||
<Folder Include="command_modules\azure-cli-appservice\azure\cli\" />
|
||||
|
@ -667,11 +684,6 @@
|
|||
<Folder Include="command_modules\azure-cli-cognitiveservices\azure\cli\command_modules\" />
|
||||
<Folder Include="command_modules\azure-cli-cognitiveservices\azure\cli\command_modules\cognitiveservices\" />
|
||||
<Folder Include="command_modules\azure-cli-cognitiveservices\azure\cli\command_modules\cognitiveservices\tests\" />
|
||||
<Folder Include="command_modules\azure-cli-component\" />
|
||||
<Folder Include="command_modules\azure-cli-component\azure\" />
|
||||
<Folder Include="command_modules\azure-cli-component\azure\cli\" />
|
||||
<Folder Include="command_modules\azure-cli-component\azure\cli\command_modules\" />
|
||||
<Folder Include="command_modules\azure-cli-component\azure\cli\command_modules\component\" />
|
||||
<Folder Include="command_modules\azure-cli-configure\" />
|
||||
<Folder Include="command_modules\azure-cli-configure\azure\" />
|
||||
<Folder Include="command_modules\azure-cli-configure\azure\cli\" />
|
||||
|
@ -789,6 +801,12 @@
|
|||
<Folder Include="command_modules\azure-cli-redis\azure\cli\command_modules\" />
|
||||
<Folder Include="command_modules\azure-cli-redis\azure\cli\command_modules\redis\" />
|
||||
<Folder Include="command_modules\azure-cli-redis\azure\cli\command_modules\redis\tests\" />
|
||||
<Folder Include="command_modules\azure-cli-reservations\" />
|
||||
<Folder Include="command_modules\azure-cli-reservations\azure\" />
|
||||
<Folder Include="command_modules\azure-cli-reservations\azure\cli\" />
|
||||
<Folder Include="command_modules\azure-cli-reservations\azure\cli\command_modules\" />
|
||||
<Folder Include="command_modules\azure-cli-reservations\azure\cli\command_modules\reservations\" />
|
||||
<Folder Include="command_modules\azure-cli-reservations\azure\cli\command_modules\reservations\tests\" />
|
||||
<Folder Include="command_modules\azure-cli-resource\azure\cli\command_modules\resource\tests\" />
|
||||
<Folder Include="command_modules\azure-cli-role\azure\cli\command_modules\role\tests\" />
|
||||
<Folder Include="command_modules\azure-cli-servicefabric\" />
|
||||
|
@ -859,6 +877,10 @@
|
|||
<Content Include="command_modules\azure-cli-acr\azure\cli\command_modules\acr\template_new_storage.json" />
|
||||
<Content Include="command_modules\azure-cli-acr\HISTORY.rst" />
|
||||
<Content Include="command_modules\azure-cli-acs\HISTORY.rst" />
|
||||
<Content Include="command_modules\azure-cli-advisor\HISTORY.rst" />
|
||||
<Content Include="command_modules\azure-cli-advisor\MANIFEST.in" />
|
||||
<Content Include="command_modules\azure-cli-advisor\README.rst" />
|
||||
<Content Include="command_modules\azure-cli-advisor\setup.cfg" />
|
||||
<Content Include="command_modules\azure-cli-appservice\azure\cli\command_modules\appservice\tests\sample_web\.gitignore" />
|
||||
<Content Include="command_modules\azure-cli-appservice\azure\cli\command_modules\appservice\tests\sample_web\package.json" />
|
||||
<Content Include="command_modules\azure-cli-appservice\azure\cli\command_modules\appservice\tests\sample_web\server.js" />
|
||||
|
@ -907,7 +929,6 @@
|
|||
<Content Include="command_modules\azure-cli-cognitiveservices\MANIFEST.in" />
|
||||
<Content Include="command_modules\azure-cli-cognitiveservices\README.rst" />
|
||||
<Content Include="command_modules\azure-cli-cognitiveservices\setup.cfg" />
|
||||
<Content Include="command_modules\azure-cli-component\HISTORY.rst" />
|
||||
<Content Include="command_modules\azure-cli-configure\HISTORY.rst" />
|
||||
<Content Include="command_modules\azure-cli-consumption\HISTORY.rst" />
|
||||
<Content Include="command_modules\azure-cli-consumption\MANIFEST.in" />
|
||||
|
@ -980,6 +1001,10 @@
|
|||
<Content Include="command_modules\azure-cli-rdbms\README.rst" />
|
||||
<Content Include="command_modules\azure-cli-rdbms\setup.cfg" />
|
||||
<Content Include="command_modules\azure-cli-redis\HISTORY.rst" />
|
||||
<Content Include="command_modules\azure-cli-reservations\HISTORY.rst" />
|
||||
<Content Include="command_modules\azure-cli-reservations\MANIFEST.in" />
|
||||
<Content Include="command_modules\azure-cli-reservations\README.rst" />
|
||||
<Content Include="command_modules\azure-cli-reservations\setup.cfg" />
|
||||
<Content Include="command_modules\azure-cli-resource\azure\cli\command_modules\resource\tests\crossrg_deploy.json" />
|
||||
<Content Include="command_modules\azure-cli-resource\azure\cli\command_modules\resource\tests\param-validation-params.json" />
|
||||
<Content Include="command_modules\azure-cli-resource\azure\cli\command_modules\resource\tests\param-validation-ref-params.json" />
|
||||
|
|
|
@ -190,45 +190,3 @@ Release History
|
|||
* This is the changelog from a prev. release.
|
||||
|
||||
```
|
||||
|
||||
Packaging/Publishing
|
||||
--------------------
|
||||
### Packaging
|
||||
You have finished your command module and now want to package and publish it.
|
||||
|
||||
Make sure you are in the directory for your command module.
|
||||
Create the package by running:
|
||||
```
|
||||
python setup.py sdist
|
||||
```
|
||||
This will create a `dist` directory that contains your package.
|
||||
|
||||
### Publishing
|
||||
You are now ready to publish the package to PyPI or a private PyPI server of your choice.
|
||||
|
||||
There are many ways to publish but here is a template using Twine.
|
||||
```bash
|
||||
echo "[distutils]
|
||||
index-servers =
|
||||
cli-pypi
|
||||
|
||||
[cli-pypi]
|
||||
repository: <PYPI_REPO_URL>
|
||||
username: <PYPI_REPO_USERNAME>
|
||||
password: <PYPI_REPO_PASSWORD>
|
||||
" > ~/.pypirc
|
||||
|
||||
pip install twine
|
||||
# Uploads the packages in dist/ to the server referred to by cli-pypi.
|
||||
twine upload -r cli-pypi dist/*
|
||||
```
|
||||
|
||||
### Installing your published command module
|
||||
|
||||
If you published the package publicly, simply use `az component update --add example`.
|
||||
|
||||
If you published it to a private server, use `az component update --add example --private`.
|
||||
|
||||
NOTE:
|
||||
- Don't include the `azure-cli-` prefix when installing a command module.
|
||||
|
||||
|
|
|
@ -145,7 +145,7 @@ register_cli_argument('mypackage command2', 'my_param', ...) # command2 inherit
|
|||
|
||||
The follow keyword arguments are supported:
|
||||
- `options_list` - By default, your argument will be exposed as an option in hyphenated form (ex: `my_param` becomes `--my-param`). If you would like to change the option string without changing the parameter name, and/or add a short option, specify the `options_list` kwarg. This is a tuple of two string values, one for an standard option string, and the other for an optional short string. (Ex: `options_list=('--myparam', '-m')`)
|
||||
- `validator` - The name of a callable that takes the function namespace as a parameter. Allows you to perform any custom logic or validation on the entire namespace prior to command execution. Validators are executed after argument parsing, and thus after `type` and `action` have been applied. However, because the order in which validators are exectued is random, you should not have multiple validators modifying the same parameter within the namespace.
|
||||
- `validator` - The name of a callable that takes the function namespace as a parameter. Allows you to perform any custom logic or validation on the entire namespace prior to command execution. Validators are executed after argument parsing, and thus after `type` and `action` have been applied. However, because the order in which validators are executed is random, you should not have multiple validators modifying the same parameter within the namespace.
|
||||
- `completer` - The name of a callable that takes the following parameters `(prefix, action, parsed_args, **kwargs)` and return a list of completion values.
|
||||
|
||||
Additionally, the following `kwargs`, supported by argparse, are supported as well:
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
"ad": "src/command_modules/azure-cli-role/azure/cli/command_modules/role/_help.py",
|
||||
"acr": "src/command_modules/azure-cli-acr/azure/cli/command_modules/acr/_help.py",
|
||||
"acs": "src/command_modules/azure-cli-acs/azure/cli/command_modules/acs/_help.py",
|
||||
"advisor": "src/command_modules/azure-cli-advisor/azure/cli/command_modules/advisor/_help.py",
|
||||
"appservice": "src/command_modules/azure-cli-appservice/azure/cli/command_modules/appservice/_help.py",
|
||||
"batch": "src/command_modules/azure-cli-batch/azure/cli/command_modules/batch/_help.py",
|
||||
"batchai": "src/command_modules/azure-cli-batchai/azure/cli/command_modules/batchai/_help.py",
|
||||
|
@ -15,7 +16,6 @@
|
|||
"billing": "src/command_modules/azure-cli-billing/azure/cli/command_modules/billing/_help.py",
|
||||
"cdn": "src/command_modules/azure-cli-cdn/azure/cli/command_modules/cdn/_help.py",
|
||||
"cloud": "src/command_modules/azure-cli-cloud/azure/cli/command_modules/cloud/_help.py",
|
||||
"component": "src/command_modules/azure-cli-component/azure/cli/command_modules/component/_help.py",
|
||||
"consumption": "src/command_modules/azure-cli-consumption/azure/cli/command_modules/consumption/_help.py",
|
||||
"container": "src/command_modules/azure-cli-container/azure/cli/command_modules/container/_help.py",
|
||||
"cognitiveservices": "src/command_modules/azure-cli-cognitiveservices/azure/cli/command_modules/cognitiveservices/_help.py",
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
|
||||
Release History
|
||||
===============
|
||||
|
||||
2.0.22
|
||||
++++++
|
||||
* Minor fixes
|
||||
* Modified the AZURE_US_GOV_CLOUD's AAD authority endpoint from login.microsoftonline.com to login.microsoftonline.us.
|
||||
|
||||
2.0.21
|
||||
++++++
|
||||
|
|
|
@ -28,7 +28,7 @@ CONFIRM_PARAM_NAME = 'yes'
|
|||
# 1 hour in milliseconds
|
||||
DEFAULT_QUERY_TIME_RANGE = 3600000
|
||||
|
||||
BLACKLISTED_MODS = ['context', 'shell', 'documentdb']
|
||||
BLACKLISTED_MODS = ['context', 'shell', 'documentdb', 'component']
|
||||
|
||||
|
||||
def _explode_list_args(args):
|
||||
|
|
|
@ -5,7 +5,7 @@ Release History
|
|||
|
||||
2.0.22
|
||||
++++++
|
||||
* Minor fixes
|
||||
* Remove `az component` commands. Use `az extension` instead. `az component` has been deprecated for several months now.
|
||||
|
||||
2.0.21
|
||||
++++++
|
||||
|
|
|
@ -51,6 +51,7 @@ CLASSIFIERS = [
|
|||
DEPENDENCIES = [
|
||||
'azure-cli-acr',
|
||||
'azure-cli-acs',
|
||||
'azure-cli-advisor',
|
||||
'azure-cli-appservice',
|
||||
'azure-cli-batch',
|
||||
'azure-cli-batchai',
|
||||
|
@ -59,7 +60,6 @@ DEPENDENCIES = [
|
|||
'azure-cli-cdn',
|
||||
'azure-cli-cloud',
|
||||
'azure-cli-cognitiveservices',
|
||||
'azure-cli-component',
|
||||
'azure-cli-container',
|
||||
'azure-cli-configure',
|
||||
'azure-cli-consumption',
|
||||
|
|
|
@ -3,6 +3,10 @@
|
|||
Release History
|
||||
===============
|
||||
|
||||
2.0.16
|
||||
++++++
|
||||
* Documentation fixes.
|
||||
|
||||
2.0.15
|
||||
++++++
|
||||
* Add creating webhooks in replication regions.
|
||||
|
|
|
@ -122,10 +122,10 @@ helps['acr credential show'] = """
|
|||
- name: Get the login credentials for a container registry.
|
||||
text: >
|
||||
az acr credential show -n MyRegistry
|
||||
- name: Get the username used to log into a container registry.
|
||||
- name: Get the username used to log in to a container registry.
|
||||
text: >
|
||||
az acr credential show -n MyRegistry --query username
|
||||
- name: Get a password used to log into a container registry.
|
||||
- name: Get a password used to log in to a container registry.
|
||||
text: >
|
||||
az acr credential show -n MyRegistry --query passwords[0].value
|
||||
"""
|
||||
|
@ -179,7 +179,7 @@ helps['acr repository delete'] = """
|
|||
- name: Delete the manifest referenced by a tag. This also deletes any associated layer data and all other tags referencing the manifest.
|
||||
text:
|
||||
az acr repository delete -n MyRegistry --repository MyRepository --tag MyTag --manifest
|
||||
- name: Delete a manfiest from a repository. This also deletes any associated layer data and all tags referencing the manifest.
|
||||
- name: Delete a manifest from a repository. This also deletes any associated layer data and all tags referencing the manifest.
|
||||
text:
|
||||
az acr repository delete -n MyRegistry --repository MyRepository --manifest MyManifest
|
||||
"""
|
||||
|
|
|
@ -14,7 +14,7 @@ except ImportError:
|
|||
logger.warn("Wheel is not available, disabling bdist_wheel hook")
|
||||
cmdclass = {}
|
||||
|
||||
VERSION = "2.0.15"
|
||||
VERSION = "2.0.16"
|
||||
CLASSIFIERS = [
|
||||
'Development Status :: 4 - Beta',
|
||||
'Intended Audience :: Developers',
|
||||
|
|
|
@ -2,6 +2,10 @@
|
|||
|
||||
Release History
|
||||
===============
|
||||
2.0.20
|
||||
++++++
|
||||
* `acs create`: emit out an actionable error if provisioning application failed for lack of permissions
|
||||
|
||||
|
||||
2.0.19
|
||||
++++++
|
||||
|
|
|
@ -959,6 +959,7 @@ def create_application(client, display_name, homepage, identifier_uris,
|
|||
available_to_other_tenants=False, password=None, reply_urls=None,
|
||||
key_value=None, key_type=None, key_usage=None, start_date=None,
|
||||
end_date=None):
|
||||
from azure.graphrbac.models import GraphErrorException
|
||||
password_creds, key_creds = _build_application_creds(password, key_value, key_type,
|
||||
key_usage, start_date, end_date)
|
||||
|
||||
|
@ -969,7 +970,14 @@ def create_application(client, display_name, homepage, identifier_uris,
|
|||
reply_urls=reply_urls,
|
||||
key_credentials=key_creds,
|
||||
password_credentials=password_creds)
|
||||
return client.create(app_create_param)
|
||||
try:
|
||||
return client.create(app_create_param)
|
||||
except GraphErrorException as ex:
|
||||
if 'insufficient privileges' in str(ex).lower():
|
||||
link = 'https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal' # pylint: disable=line-too-long
|
||||
raise CLIError("Directory permission is needed for the current user to register the application. "
|
||||
"For how to configure, please refer '{}'. Original error: {}".format(link, ex))
|
||||
raise
|
||||
|
||||
|
||||
def _build_application_creds(password=None, key_value=None, key_type=None,
|
||||
|
|
|
@ -12,11 +12,12 @@ import unittest
|
|||
import yaml
|
||||
|
||||
from msrestazure.azure_exceptions import CloudError
|
||||
|
||||
from azure.graphrbac.models import GraphErrorException
|
||||
from azure.cli.command_modules.acs._params import (regionsInPreview,
|
||||
regionsInProd)
|
||||
from azure.cli.command_modules.acs.custom import (merge_kubernetes_configurations, list_acs_locations,
|
||||
_acs_browse_internal, _add_role_assignment, _get_default_dns_prefix)
|
||||
_acs_browse_internal, _add_role_assignment, _get_default_dns_prefix,
|
||||
create_application)
|
||||
from azure.mgmt.containerservice.models import (ContainerServiceOrchestratorTypes,
|
||||
ContainerService,
|
||||
ContainerServiceOrchestratorProfile)
|
||||
|
@ -291,3 +292,23 @@ class AcsCustomCommandTest(unittest.TestCase):
|
|||
self.assertEqual(len(merged['users']), 2)
|
||||
self.assertEqual(merged['users'], ['user1', 'user2'])
|
||||
self.assertEqual(merged['current-context'], obj2['current-context'])
|
||||
|
||||
def test_acs_sp_create_failed_with_polished_error_if_due_to_permission(self):
|
||||
|
||||
class FakedError(object):
|
||||
def __init__(self, message):
|
||||
self.message = message
|
||||
|
||||
def _test_deserializer(resp_type, response):
|
||||
err = FakedError('Insufficient privileges to complete the operation')
|
||||
return err
|
||||
|
||||
client = mock.MagicMock()
|
||||
client.create.side_effect = GraphErrorException(_test_deserializer, None)
|
||||
|
||||
# action
|
||||
with self.assertRaises(CLIError) as context:
|
||||
create_application(client, 'acs_sp', 'http://acs_sp', ['http://acs_sp'])
|
||||
|
||||
# assert we handled such error
|
||||
self.assertTrue('https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal' in str(context.exception))
|
||||
|
|
|
@ -14,7 +14,7 @@ except ImportError:
|
|||
logger.warn("Wheel is not available, disabling bdist_wheel hook")
|
||||
cmdclass = {}
|
||||
|
||||
VERSION = "2.0.19"
|
||||
VERSION = "2.0.20"
|
||||
CLASSIFIERS = [
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Intended Audience :: Developers',
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
.. :changelog:
|
||||
|
||||
Release History
|
||||
===============
|
||||
|
||||
0.1.0
|
||||
+++++
|
||||
|
||||
* Initial release of module.
|
|
@ -0,0 +1 @@
|
|||
include *.rst
|
|
@ -0,0 +1,5 @@
|
|||
Microsoft Azure CLI 'advisor' Command Module
|
||||
============================================
|
||||
|
||||
This package is for the 'advisor' module.
|
||||
i.e. 'az advisor'
|
|
@ -0,0 +1,6 @@
|
|||
# --------------------------------------------------------------------------------------------
|
||||
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
# Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
# --------------------------------------------------------------------------------------------
|
||||
import pkg_resources
|
||||
pkg_resources.declare_namespace(__name__)
|
|
@ -0,0 +1,6 @@
|
|||
# --------------------------------------------------------------------------------------------
|
||||
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
# Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
# --------------------------------------------------------------------------------------------
|
||||
import pkg_resources
|
||||
pkg_resources.declare_namespace(__name__)
|
|
@ -0,0 +1,6 @@
|
|||
# --------------------------------------------------------------------------------------------
|
||||
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
# Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
# --------------------------------------------------------------------------------------------
|
||||
import pkg_resources
|
||||
pkg_resources.declare_namespace(__name__)
|
|
@ -0,0 +1,14 @@
|
|||
# --------------------------------------------------------------------------------------------
|
||||
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
# Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
import azure.cli.command_modules.advisor._help # pylint: disable=unused-import
|
||||
|
||||
|
||||
def load_params(_):
|
||||
import azure.cli.command_modules.advisor._params # pylint: disable=redefined-outer-name, unused-variable
|
||||
|
||||
|
||||
def load_commands():
|
||||
import azure.cli.command_modules.advisor.commands # pylint: disable=redefined-outer-name, unused-variable
|
|
@ -0,0 +1,26 @@
|
|||
# --------------------------------------------------------------------------------------------
|
||||
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
# Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
def cf_advisor(**_):
|
||||
from azure.cli.core.commands.client_factory import get_mgmt_service_client
|
||||
from azure.mgmt.advisor import AdvisorManagementClient
|
||||
return get_mgmt_service_client(AdvisorManagementClient)
|
||||
|
||||
|
||||
def advisor_mgmt_client_factory(kwargs):
|
||||
return cf_advisor(**kwargs)
|
||||
|
||||
|
||||
def recommendations_mgmt_client_factory(kwargs):
|
||||
return cf_advisor(**kwargs).recommendations
|
||||
|
||||
|
||||
def suppressions_mgmt_client_factory(kwargs):
|
||||
return cf_advisor(**kwargs).suppressions
|
||||
|
||||
|
||||
def configurations_mgmt_client_factory(kwargs):
|
||||
return cf_advisor(**kwargs).configurations
|
|
@ -0,0 +1,51 @@
|
|||
# --------------------------------------------------------------------------------------------
|
||||
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
# Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
from azure.cli.core.help_files import helps
|
||||
|
||||
helps['advisor'] = """
|
||||
type: group
|
||||
short-summary: (PREVIEW) Manage Azure Advisor.
|
||||
"""
|
||||
|
||||
helps['advisor configuration'] = """
|
||||
type: group
|
||||
short-summary: Manage Azure Advisor configuration.
|
||||
"""
|
||||
|
||||
helps['advisor recommendation'] = """
|
||||
type: group
|
||||
short-summary: Review Azure Advisor recommendations.
|
||||
"""
|
||||
|
||||
helps['advisor configuration get'] = """
|
||||
type: command
|
||||
short-summary: Get Azure Advisor configuration.
|
||||
"""
|
||||
|
||||
helps['advisor configuration set'] = """
|
||||
type: command
|
||||
short-summary: Set Azure Advisor configuration.
|
||||
"""
|
||||
|
||||
helps['advisor recommendation generate'] = """
|
||||
type: command
|
||||
short-summary: Generate Azure Advisor recommendations.
|
||||
"""
|
||||
|
||||
helps['advisor recommendation list'] = """
|
||||
type: command
|
||||
short-summary: List Azure Advisor recommendations.
|
||||
"""
|
||||
|
||||
helps['advisor recommendation disable'] = """
|
||||
type: command
|
||||
short-summary: Disable Azure Advisor recommendations.
|
||||
"""
|
||||
|
||||
helps['advisor recommendation enable'] = """
|
||||
type: command
|
||||
short-summary: Enable Azure Advisor recommendations.
|
||||
"""
|
|
@ -0,0 +1,103 @@
|
|||
# --------------------------------------------------------------------------------------------
|
||||
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
# Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
from azure.cli.core.commands import register_cli_argument
|
||||
from azure.cli.core.commands.parameters import resource_group_name_type
|
||||
from azure.cli.core.util import CLIError
|
||||
|
||||
|
||||
def validate_include_or_exclude(namespace):
|
||||
if namespace.include and namespace.exclude:
|
||||
raise CLIError('usage error: --include | --exclude')
|
||||
|
||||
|
||||
def validate_ids_or_resource_group(namespace):
|
||||
if namespace.ids and namespace.resource_group_name:
|
||||
raise CLIError('usage error: --ids | --resource-group')
|
||||
|
||||
|
||||
register_cli_argument(
|
||||
'advisor recommendation list',
|
||||
'ids',
|
||||
nargs='+',
|
||||
options_list=('--ids'),
|
||||
help='One or more resource IDs (space delimited). If provided, no other "Resource Id" arguments should be specified.' # pylint: disable=line-too-long
|
||||
)
|
||||
|
||||
register_cli_argument(
|
||||
'advisor recommendation list',
|
||||
'resource_group_name',
|
||||
resource_group_name_type,
|
||||
validator=validate_ids_or_resource_group
|
||||
)
|
||||
|
||||
register_cli_argument(
|
||||
'advisor recommendation list',
|
||||
'category',
|
||||
options_list=('--category', '-c'),
|
||||
help='Name of recommendation category (Cost, HighAvailability, Performance or Security).'
|
||||
)
|
||||
|
||||
register_cli_argument(
|
||||
'advisor recommendation disable',
|
||||
'ids',
|
||||
nargs='+',
|
||||
options_list=('--ids'),
|
||||
help='One or more resource IDs (space delimited). If provided, no other "Resource Id" arguments should be specified.' # pylint: disable=line-too-long
|
||||
)
|
||||
|
||||
register_cli_argument(
|
||||
'advisor recommendation disable',
|
||||
'days',
|
||||
options_list=('--days', '-d'),
|
||||
type=int,
|
||||
help='Number of days to disable. If not specified, the recommendation is disabled forever.'
|
||||
)
|
||||
|
||||
register_cli_argument(
|
||||
'advisor recommendation enable',
|
||||
'ids',
|
||||
nargs='+',
|
||||
options_list=('--ids'),
|
||||
help='One or more resource IDs (space delimited). If provided, no other "Resource Id" arguments should be specified.' # pylint: disable=line-too-long
|
||||
)
|
||||
|
||||
register_cli_argument(
|
||||
'advisor configuration get',
|
||||
'resource_group_name',
|
||||
resource_group_name_type
|
||||
)
|
||||
|
||||
register_cli_argument(
|
||||
'advisor configuration set',
|
||||
'resource_group_name',
|
||||
resource_group_name_type
|
||||
)
|
||||
|
||||
register_cli_argument(
|
||||
'advisor configuration set',
|
||||
'low_cpu_threshold',
|
||||
options_list=('--low-cpu-threshold', '-l'),
|
||||
type=int,
|
||||
help='Value for low CPU threshold (5, 10, 15 or 20).'
|
||||
)
|
||||
|
||||
register_cli_argument(
|
||||
'advisor configuration set',
|
||||
'exclude',
|
||||
options_list=('--exclude', '-e'),
|
||||
action='store_true',
|
||||
help='Exclude from recommendation generation.',
|
||||
validator=validate_include_or_exclude
|
||||
)
|
||||
|
||||
register_cli_argument(
|
||||
'advisor configuration set',
|
||||
'include',
|
||||
options_list=('--include', '-i'),
|
||||
action='store_true',
|
||||
help='Include in recommendation generation.',
|
||||
validator=validate_include_or_exclude
|
||||
)
|
|
@ -0,0 +1,55 @@
|
|||
# --------------------------------------------------------------------------------------------
|
||||
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
# Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
from azure.cli.core.commands import cli_command
|
||||
from azure.cli.command_modules.advisor._client_factory import \
|
||||
(advisor_mgmt_client_factory,
|
||||
recommendations_mgmt_client_factory,
|
||||
suppressions_mgmt_client_factory,
|
||||
configurations_mgmt_client_factory)
|
||||
|
||||
custom_path = 'azure.cli.command_modules.advisor.custom#'
|
||||
|
||||
cli_command(
|
||||
__name__,
|
||||
'advisor recommendation generate',
|
||||
custom_path + 'cli_advisor_generate_recommendations',
|
||||
recommendations_mgmt_client_factory
|
||||
)
|
||||
|
||||
cli_command(
|
||||
__name__,
|
||||
'advisor recommendation list',
|
||||
custom_path + 'cli_advisor_list_recommendations',
|
||||
recommendations_mgmt_client_factory
|
||||
)
|
||||
|
||||
cli_command(
|
||||
__name__,
|
||||
'advisor recommendation disable',
|
||||
custom_path + 'cli_advisor_disable_recommendations',
|
||||
suppressions_mgmt_client_factory
|
||||
)
|
||||
|
||||
cli_command(
|
||||
__name__,
|
||||
'advisor recommendation enable',
|
||||
custom_path + 'cli_advisor_enable_recommendations',
|
||||
advisor_mgmt_client_factory # using advisor client here because this spans recommendations and suppressions
|
||||
)
|
||||
|
||||
cli_command(
|
||||
__name__,
|
||||
'advisor configuration get',
|
||||
custom_path + 'cli_advisor_get_configurations',
|
||||
configurations_mgmt_client_factory
|
||||
)
|
||||
|
||||
cli_command(
|
||||
__name__,
|
||||
'advisor configuration set',
|
||||
custom_path + 'cli_advisor_set_configurations',
|
||||
configurations_mgmt_client_factory
|
||||
)
|
|
@ -0,0 +1,134 @@
|
|||
# --------------------------------------------------------------------------------------------
|
||||
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
# Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
import uuid
|
||||
|
||||
from azure.mgmt.advisor.models import ConfigData, ConfigDataProperties
|
||||
from msrestazure.azure_exceptions import CloudError
|
||||
|
||||
|
||||
def cli_advisor_generate_recommendations(client):
|
||||
response = client.generate(raw=True)
|
||||
location = response.headers['Location']
|
||||
operation_id = parse_operation_id(location)
|
||||
|
||||
try:
|
||||
client.get_generate_status(operation_id=operation_id)
|
||||
except CloudError as ex:
|
||||
# Advisor API returns 204 which is not aligned with ARM guidelines
|
||||
# so the SDK will throw an exception that we will have to ignore
|
||||
if ex.status_code != 204:
|
||||
raise ex
|
||||
|
||||
|
||||
def cli_advisor_list_recommendations(client, ids=None, resource_group_name=None, category=None):
|
||||
scope = build_filter_string(ids, resource_group_name, category)
|
||||
return client.list(scope)
|
||||
|
||||
|
||||
def cli_advisor_disable_recommendations(client, ids, days=None):
|
||||
suppressions = []
|
||||
suppressionName = str(uuid.uuid4())
|
||||
for id_arg in ids:
|
||||
result = parse_recommendation_uri(id_arg)
|
||||
resourceUri = result['resourceUri']
|
||||
recommendationId = result['recommendationId']
|
||||
ttl = '{}:00:00:00'.format(days) if days else ''
|
||||
client.create(
|
||||
resource_uri=resourceUri,
|
||||
recommendation_id=recommendationId,
|
||||
name=suppressionName,
|
||||
ttl=ttl
|
||||
)
|
||||
suppressions.append(client.get(
|
||||
resource_uri=resourceUri,
|
||||
recommendation_id=recommendationId,
|
||||
name=suppressionName
|
||||
))
|
||||
return suppressions
|
||||
|
||||
|
||||
def cli_advisor_enable_recommendations(client, ids):
|
||||
enabledRecs = []
|
||||
allSups = list(client.suppressions.list())
|
||||
for id_arg in ids:
|
||||
result = parse_recommendation_uri(id_arg)
|
||||
resourceUri = result['resourceUri']
|
||||
recommendationId = result['recommendationId']
|
||||
recs = cli_advisor_list_recommendations(
|
||||
client=client.recommendations,
|
||||
ids=[resourceUri]
|
||||
)
|
||||
rec = next(x for x in recs if x.name == recommendationId)
|
||||
matches = [x for x in allSups if x.suppression_id in rec.suppression_ids]
|
||||
for match in matches:
|
||||
client.suppressions.delete(
|
||||
resource_uri=resourceUri,
|
||||
recommendation_id=recommendationId,
|
||||
name=match.name
|
||||
)
|
||||
rec.suppression_ids = None
|
||||
enabledRecs.append(rec)
|
||||
return enabledRecs
|
||||
|
||||
|
||||
def cli_advisor_get_configurations(client, resource_group_name=None):
|
||||
if resource_group_name:
|
||||
return client.list_by_resource_group(resource_group_name)
|
||||
return client.list_by_subscription()
|
||||
|
||||
|
||||
def cli_advisor_set_configurations(client, resource_group_name=None,
|
||||
low_cpu_threshold=None, exclude=None, include=None):
|
||||
|
||||
cfg = ConfigData()
|
||||
cfg.properties = ConfigDataProperties()
|
||||
|
||||
cfg.properties.low_cpu_threshold = low_cpu_threshold
|
||||
cfg.properties.exclude = exclude
|
||||
if include:
|
||||
cfg.properties.exclude = False
|
||||
|
||||
if resource_group_name:
|
||||
return client.create_in_resource_group(
|
||||
config_contract=cfg,
|
||||
resource_group=resource_group_name)
|
||||
|
||||
return client.create_in_subscription(cfg)
|
||||
|
||||
|
||||
def build_filter_string(ids=None, resource_group_name=None, category=None):
|
||||
|
||||
idFilter = None
|
||||
if ids:
|
||||
idFilter = ' or '.join(["ResourceId eq '{}'".format(id_arg) for id_arg in ids])
|
||||
elif resource_group_name:
|
||||
idFilter = "ResourceGroup eq '{}'".format(resource_group_name)
|
||||
|
||||
categoryFilter = "Category eq '{}'".format(category) if category else None
|
||||
|
||||
if idFilter:
|
||||
if categoryFilter:
|
||||
return '({}) and {}'.format(idFilter, categoryFilter)
|
||||
return idFilter
|
||||
elif categoryFilter:
|
||||
return categoryFilter
|
||||
|
||||
return None
|
||||
|
||||
|
||||
def parse_operation_id(location):
|
||||
# extract the operation ID from the Location header
|
||||
# it is a GUID (i.e. a string of length 36) immediately preceding the api-version query parameter
|
||||
end = location.find('?api-version')
|
||||
start = end - 36
|
||||
operation_id = location[start:end]
|
||||
return operation_id
|
||||
|
||||
|
||||
def parse_recommendation_uri(recommendationUri):
|
||||
resourceUri = recommendationUri[:recommendationUri.find("/providers/Microsoft.Advisor/recommendations")]
|
||||
recommendationId = recommendationUri[recommendationUri.find("/recommendations/") + len('/recommendations/'):]
|
||||
return {'resourceUri': resourceUri, 'recommendationId': recommendationId}
|
|
@ -0,0 +1,4 @@
|
|||
# --------------------------------------------------------------------------------------------
|
||||
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
# Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
# --------------------------------------------------------------------------------------------
|
|
@ -0,0 +1,56 @@
|
|||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor recommendation generate]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: POST
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/generateRecommendations?api-version=2017-04-19
|
||||
response:
|
||||
body: {string: ''}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['0']
|
||||
date: ['Sat, 18 Nov 2017 03:36:35 GMT']
|
||||
expires: ['-1']
|
||||
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/generateRecommendations/3db769b2-72c3-4ef0-b721-83bec2d85ee7?api-version=2017-04-19']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-content-type-options: [nosniff]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 202, message: Accepted}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor recommendation generate]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/generateRecommendations/3db769b2-72c3-4ef0-b721-83bec2d85ee7?api-version=2017-04-19
|
||||
response:
|
||||
body: {string: ''}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['0']
|
||||
date: ['Sat, 18 Nov 2017 03:36:36 GMT']
|
||||
expires: ['-1']
|
||||
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/generateRecommendations/3db769b2-72c3-4ef0-b721-83bec2d85ee7?api-version=2017-04-19']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-content-type-options: [nosniff]
|
||||
status: {code: 202, message: Accepted}
|
||||
version: 1
|
|
@ -0,0 +1,192 @@
|
|||
interactions:
|
||||
- request:
|
||||
body: '{"location": "westus", "tags": {"use": "az-test"}}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [group create]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['50']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_advisor000001?api-version=2017-05-10
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_advisor000001","name":"cli_test_advisor000001","location":"westus","tags":{"use":"az-test"},"properties":{"provisioningState":"Succeeded"}}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['328']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Sat, 18 Nov 2017 03:36:38 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 201, message: Created}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor configuration get]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_advisor000001/providers/Microsoft.Advisor/configurations?api-version=2017-04-19
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_advisor000001/providers/Microsoft.Advisor/configurations/70b0b95c-8a41-41c0-8e3f-3ed8351a2d61-cli_test_advisor000001","type":"Microsoft.Advisor/Configurations","name":"70b0b95c-8a41-41c0-8e3f-3ed8351a2d61-cli_test_advisor000001","properties":{"exclude":false}}]}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['514']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Sat, 18 Nov 2017 03:36:40 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '{"properties": {"exclude": true}}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor configuration set]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['33']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_advisor000001/providers/Microsoft.Advisor/configurations?api-version=2017-04-19
|
||||
response:
|
||||
body: {string: ''}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
date: ['Sat, 18 Nov 2017 03:36:41 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-content-type-options: [nosniff]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 204, message: No Content}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor configuration get]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_advisor000001/providers/Microsoft.Advisor/configurations?api-version=2017-04-19
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_advisor000001/providers/Microsoft.Advisor/configurations/70b0b95c-8a41-41c0-8e3f-3ed8351a2d61-cli_test_advisor000001","type":"Microsoft.Advisor/Configurations","name":"70b0b95c-8a41-41c0-8e3f-3ed8351a2d61-cli_test_advisor000001","properties":{"exclude":true}}]}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['513']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Sat, 18 Nov 2017 03:36:41 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '{"properties": {"exclude": false}}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor configuration set]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['34']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_advisor000001/providers/Microsoft.Advisor/configurations?api-version=2017-04-19
|
||||
response:
|
||||
body: {string: ''}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
date: ['Sat, 18 Nov 2017 03:36:43 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-content-type-options: [nosniff]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 204, message: No Content}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor configuration get]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_advisor000001/providers/Microsoft.Advisor/configurations?api-version=2017-04-19
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_advisor000001/providers/Microsoft.Advisor/configurations/70b0b95c-8a41-41c0-8e3f-3ed8351a2d61-cli_test_advisor000001","type":"Microsoft.Advisor/Configurations","name":"70b0b95c-8a41-41c0-8e3f-3ed8351a2d61-cli_test_advisor000001","properties":{"exclude":false}}]}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['514']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Sat, 18 Nov 2017 03:36:44 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [group delete]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: DELETE
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_advisor000001?api-version=2017-05-10
|
||||
response:
|
||||
body: {string: ''}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['0']
|
||||
date: ['Sat, 18 Nov 2017 03:36:46 GMT']
|
||||
expires: ['-1']
|
||||
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTEk6NUZURVNUOjVGQURWSVNPUkZCRllRU0Y3V0pHUUFOU0lFM09MTFhCWVJESnw3N0VGNzk5MzNBNEVCMTRDLVdFU1RVUyIsImpvYkxvY2F0aW9uIjoid2VzdHVzIn0?api-version=2017-05-10']
|
||||
pragma: [no-cache]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 202, message: Accepted}
|
||||
version: 1
|
|
@ -0,0 +1,138 @@
|
|||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor configuration get]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/configurations?api-version=2017-04-19
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/configurations/70b0b95c-8a41-41c0-8e3f-3ed8351a2d61","type":"Microsoft.Advisor/Configurations","name":"70b0b95c-8a41-41c0-8e3f-3ed8351a2d61","properties":{"low_cpu_threshold":"5","exclude":false}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_advisorfbfyqsf7wjgqansie3ollxbyrdjm6ynngvyoutgebro6c5svyrj3tkqbrom/providers/Microsoft.Advisor/configurations/70b0b95c-8a41-41c0-8e3f-3ed8351a2d61-cli_test_advisorfbfyqsf7wjgqansie3ollxbyrdjm6ynngvyoutgebro6c5svyrj3tkqbrom","type":"Microsoft.Advisor/Configurations","name":"70b0b95c-8a41-41c0-8e3f-3ed8351a2d61-cli_test_advisorfbfyqsf7wjgqansie3ollxbyrdjm6ynngvyoutgebro6c5svyrj3tkqbrom","properties":{"exclude":false}}]}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['798']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Sat, 18 Nov 2017 03:36:48 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '{"properties": {"exclude": true, "low_cpu_threshold": "20"}}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor configuration set]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['60']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/configurations?api-version=2017-04-19
|
||||
response:
|
||||
body: {string: ''}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
date: ['Sat, 18 Nov 2017 03:36:50 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-content-type-options: [nosniff]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 204, message: No Content}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor configuration get]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/configurations?api-version=2017-04-19
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/configurations/70b0b95c-8a41-41c0-8e3f-3ed8351a2d61","type":"Microsoft.Advisor/Configurations","name":"70b0b95c-8a41-41c0-8e3f-3ed8351a2d61","properties":{"low_cpu_threshold":"20","exclude":true}}]}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['295']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Sat, 18 Nov 2017 03:36:51 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '{"properties": {"exclude": true, "low_cpu_threshold": "5"}}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor configuration set]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['59']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/configurations?api-version=2017-04-19
|
||||
response:
|
||||
body: {string: ''}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
date: ['Sat, 18 Nov 2017 03:36:52 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-content-type-options: [nosniff]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 204, message: No Content}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor configuration get]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/configurations?api-version=2017-04-19
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/configurations/70b0b95c-8a41-41c0-8e3f-3ed8351a2d61","type":"Microsoft.Advisor/Configurations","name":"70b0b95c-8a41-41c0-8e3f-3ed8351a2d61","properties":{"low_cpu_threshold":"5","exclude":true}}]}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['294']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Sat, 18 Nov 2017 03:36:53 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
|
@ -0,0 +1,267 @@
|
|||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor recommendation list]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/recommendations?api-version=2017-04-19
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/recommendations/2e6ee8e4-9c0d-fb4d-253e-27c6ed1488ae","name":"2e6ee8e4-9c0d-fb4d-253e-27c6ed1488ae","properties":{"category":"Security","impact":"High","impactedField":"","impactedValue":"","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AZEXPERTSTGEUS/providers/Microsoft.Compute/virtualMachines/EUS-Test/providers/Microsoft.Advisor/recommendations/dba85867-7188-e8ff-3cc2-351336487e7f","name":"dba85867-7188-e8ff-3cc2-351336487e7f","properties":{"category":"Security","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"EUS-Test","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/recommendations/e6a28e1d-9c18-c7fc-cc8d-f2f7e008b7d9","name":"e6a28e1d-9c18-c7fc-cc8d-f2f7e008b7d9","properties":{"category":"Security","impact":"High","impactedField":"","impactedValue":"","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/recommendations/01251607-ff25-6192-85bf-e004fe766491","name":"01251607-ff25-6192-85bf-e004fe766491","properties":{"category":"Security","impact":"High","impactedField":"","impactedValue":"","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AZEXPERTSTGWCUS/providers/Microsoft.Compute/virtualMachines/WCUS-Test/providers/Microsoft.Advisor/recommendations/25366bb0-17ae-70cd-4783-ecc5e08ac1ca","name":"25366bb0-17ae-70cd-4783-ecc5e08ac1ca","properties":{"category":"Security","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"WCUS-Test","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/recommendations/b1abc525-e2aa-abdb-ac0c-c2282371e126","name":"b1abc525-e2aa-abdb-ac0c-c2282371e126","properties":{"category":"Security","impact":"High","impactedField":"","impactedValue":"","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AZEXPERTSTGWCUS/providers/Microsoft.Compute/virtualMachines/WCUS-Test/providers/Microsoft.Advisor/recommendations/a6a17e46-8078-f4ab-2527-8d03051e745e","name":"a6a17e46-8078-f4ab-2527-8d03051e745e","properties":{"category":"Security","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"WCUS-Test","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/FUNCTIONALTEST/providers/Microsoft.Compute/virtualMachines/vmnobackup1/providers/Microsoft.Advisor/recommendations/3bc9d079-1911-e91c-d08d-d3ebb52b3e93","name":"3bc9d079-1911-e91c-d08d-d3ebb52b3e93","properties":{"category":"Security","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"vmnobackup1","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/FUNCTIONALTEST/providers/Microsoft.Compute/virtualMachines/vmnobackup1/providers/Microsoft.Advisor/recommendations/3f967503-8b3f-c991-c2be-2a3a0e401a21","name":"3f967503-8b3f-c991-c2be-2a3a0e401a21","properties":{"category":"Security","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"vmnobackup1","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/COSMOSDATA/providers/Microsoft.Compute/virtualMachines/azatestvm/providers/Microsoft.Advisor/recommendations/405a11f1-f7e2-4ee3-f7e9-4b51cdaa6efc","name":"405a11f1-f7e2-4ee3-f7e9-4b51cdaa6efc","properties":{"category":"Security","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"azatestvm","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/COSMOSDATA/providers/Microsoft.Compute/virtualMachines/azatestvm/providers/Microsoft.Advisor/recommendations/6b2263e0-3881-88cd-ded5-6520b1b18dfc","name":"6b2263e0-3881-88cd-ded5-6520b1b18dfc","properties":{"category":"Security","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"azatestvm","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/FUNCTIONALTEST/providers/Microsoft.Compute/virtualMachines/vmnobackup1/providers/Microsoft.Advisor/recommendations/e72e1401-659c-30d9-6cc4-3f6dea42d2bc","name":"e72e1401-659c-30d9-6cc4-3f6dea42d2bc","properties":{"category":"Security","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"vmnobackup1","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/FUNCTIONALTEST/providers/Microsoft.Compute/virtualMachines/vmnobackup1/providers/Microsoft.Advisor/recommendations/aedd45a5-d2e6-6e6b-55ff-f68991ab2c6b","name":"aedd45a5-d2e6-6e6b-55ff-f68991ab2c6b","properties":{"category":"Security","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"vmnobackup1","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/COSMOSDATA/providers/Microsoft.Compute/virtualMachines/azatestvm/providers/Microsoft.Advisor/recommendations/a0ca9267-1ca0-0c39-d8f9-ad7ee177c408","name":"a0ca9267-1ca0-0c39-d8f9-ad7ee177c408","properties":{"category":"Security","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"azatestvm","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AZEXPERTSTGEUS/providers/Microsoft.Compute/virtualMachines/EUS-Test/providers/Microsoft.Advisor/recommendations/75900b89-f998-d17b-d149-d94366b52eda","name":"75900b89-f998-d17b-d149-d94366b52eda","properties":{"category":"Security","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"EUS-Test","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/functionaltest/providers/Microsoft.Compute/virtualMachines/vmnobackup1/providers/Microsoft.Advisor/recommendations/9d88ef0e-e8c0-a056-c303-fc9ca5e71c2a","name":"9d88ef0e-e8c0-a056-c303-fc9ca5e71c2a","properties":{"category":"HighAvailability","impact":"Medium","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"vmnobackup1","lastUpdated":"2017-11-16T17:18:16.1814518Z","risk":"None","shortDescription":{"problem":"Your
|
||||
virtual machine is not configured for backup","solution":"Enable virtual machine
|
||||
backup to protect your data from corruption and accidental deletion"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cosmosdata/providers/Microsoft.Compute/virtualMachines/azatestvm/providers/Microsoft.Advisor/recommendations/73cdeb24-ff47-432a-8eef-c55d4b754df1","name":"73cdeb24-ff47-432a-8eef-c55d4b754df1","properties":{"category":"HighAvailability","impact":"Medium","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"azatestvm","lastUpdated":"2017-11-16T17:18:16.1814518Z","risk":"None","shortDescription":{"problem":"Your
|
||||
virtual machine is not configured for backup","solution":"Enable virtual machine
|
||||
backup to protect your data from corruption and accidental deletion"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/functionaltest/providers/Microsoft.Compute/virtualMachines/vmnobackup1/providers/Microsoft.Advisor/recommendations/3f7f8549-a4ec-9548-3b63-09bf5845724c","name":"3f7f8549-a4ec-9548-3b63-09bf5845724c","properties":{"category":"Cost","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"vmnobackup1","lastUpdated":"2017-11-16T11:02:58.0160597Z","risk":"None","shortDescription":{"problem":"Your
|
||||
virtual machine has low usage","solution":"Right-size or shutdown underutilized
|
||||
virtual machines"}},"type":"Microsoft.Advisor/recommendations","hardwareDetails":{"resourceId":"y8fx4nayf4ptcckwy6pri8bbx5z4mwufo9ax4nayrti71j3x5pdwtc7y4imyqeyy6a","size":"Standard_D1_v2"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/functionaltest/providers/Microsoft.Compute/availabilitySets/avset1/providers/Microsoft.Advisor/recommendations/53162ec9-8175-8a19-bf2c-1271a893e24a","name":"53162ec9-8175-8a19-bf2c-1271a893e24a","properties":{"category":"HighAvailability","impact":"Medium","impactedField":"Microsoft.Compute/availabilitySets","impactedValue":"avset1","lastUpdated":"2017-11-16T10:56:18.6499735Z","risk":"Warning","shortDescription":{"problem":"This
|
||||
availability set is not configured for fault tolerance","solution":"Add more
|
||||
virtual machines for improved fault tolerance"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cosmosdata/providers/Microsoft.Compute/virtualMachines/azatestvm/providers/Microsoft.Advisor/recommendations/fd97b114-f106-e610-ee6a-7deca5f9963d","name":"fd97b114-f106-e610-ee6a-7deca5f9963d","properties":{"category":"HighAvailability","impact":"Medium","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"azatestvm","lastUpdated":"2017-11-16T10:56:02.056374Z","risk":"None","shortDescription":{"problem":"This
|
||||
virtual machine is not configured for fault tolerance","solution":"Use availability
|
||||
sets for improved fault tolerance"}},"type":"Microsoft.Advisor/recommendations"}]}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['12585']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Thu, 16 Nov 2017 17:18:25 GMT']
|
||||
expires: ['-1']
|
||||
iscutoff: ['False']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor recommendation list]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/recommendations?api-version=2017-04-19&$filter=Category%20eq%20%27cost%27
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/functionaltest/providers/Microsoft.Compute/virtualMachines/vmnobackup1/providers/Microsoft.Advisor/recommendations/3f7f8549-a4ec-9548-3b63-09bf5845724c","name":"3f7f8549-a4ec-9548-3b63-09bf5845724c","properties":{"category":"Cost","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"vmnobackup1","lastUpdated":"2017-11-16T11:02:58.0160597Z","risk":"None","shortDescription":{"problem":"Your
|
||||
virtual machine has low usage","solution":"Right-size or shutdown underutilized
|
||||
virtual machines"}},"type":"Microsoft.Advisor/recommendations","hardwareDetails":{"resourceId":"y8fx4nayf4ptcckwy6pri8bbx5z4mwufo9ax4nayrti71j3x5pdwtc7y4imyqeyy6a","size":"Standard_D1_v2"}}]}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['779']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Thu, 16 Nov 2017 17:18:27 GMT']
|
||||
expires: ['-1']
|
||||
iscutoff: ['False']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '{"properties": {"ttl": "1:00:00:00"}}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor recommendation disable]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['37']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/%2Fsubscriptions%2F658c8950-e79d-4704-a903-1df66ba90258%2FresourceGroups%2Ffunctionaltest%2Fproviders%2FMicrosoft.Compute%2FvirtualMachines%2Fvmnobackup1/providers/Microsoft.Advisor/recommendations/3f7f8549-a4ec-9548-3b63-09bf5845724c/suppressions/d8a63867-e3cc-43b4-8400-3d75f3a8f9fe?api-version=2017-04-19
|
||||
response:
|
||||
body: {string: '{"properties":{"suppressionId":"eacbc09d-e003-8167-fa4e-47d8a9c61f0a","ttl":"1:00:00:00"}}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['90']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Thu, 16 Nov 2017 17:18:30 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor recommendation disable]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/%2Fsubscriptions%2F658c8950-e79d-4704-a903-1df66ba90258%2FresourceGroups%2Ffunctionaltest%2Fproviders%2FMicrosoft.Compute%2FvirtualMachines%2Fvmnobackup1/providers/Microsoft.Advisor/recommendations/3f7f8549-a4ec-9548-3b63-09bf5845724c/suppressions/d8a63867-e3cc-43b4-8400-3d75f3a8f9fe?api-version=2017-04-19
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/functionaltest/providers/Microsoft.Compute/virtualMachines/vmnobackup1/providers/Microsoft.Advisor/recommendations/3f7f8549-a4ec-9548-3b63-09bf5845724c/suppressions/d8a63867-e3cc-43b4-8400-3d75f3a8f9fe","name":"d8a63867-e3cc-43b4-8400-3d75f3a8f9fe","type":"Microsoft.Advisor/suppressions","properties":{"suppressionId":"eacbc09d-e003-8167-fa4e-47d8a9c61f0a","ttl":"1.00:00:00"}}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['452']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Thu, 16 Nov 2017 17:18:32 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor recommendation enable]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/suppressions?api-version=2017-04-19
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/functionaltest/providers/Microsoft.Compute/virtualMachines/vmnobackup1/providers/Microsoft.Advisor/recommendations/3f7f8549-a4ec-9548-3b63-09bf5845724c/suppressions/d8a63867-e3cc-43b4-8400-3d75f3a8f9fe","name":"d8a63867-e3cc-43b4-8400-3d75f3a8f9fe","type":"Microsoft.Advisor/suppressions","properties":{"suppressionId":"eacbc09d-e003-8167-fa4e-47d8a9c61f0a","ttl":"1.00:00:00"}}]}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['464']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Thu, 16 Nov 2017 17:18:32 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor recommendation enable]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/recommendations?api-version=2017-04-19&$filter=ResourceId%20eq%20%27%2Fsubscriptions%2F658c8950-e79d-4704-a903-1df66ba90258%2FresourceGroups%2Ffunctionaltest%2Fproviders%2FMicrosoft.Compute%2FvirtualMachines%2Fvmnobackup1%27
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/FUNCTIONALTEST/providers/Microsoft.Compute/virtualMachines/vmnobackup1/providers/Microsoft.Advisor/recommendations/3bc9d079-1911-e91c-d08d-d3ebb52b3e93","name":"3bc9d079-1911-e91c-d08d-d3ebb52b3e93","properties":{"category":"Security","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"vmnobackup1","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/FUNCTIONALTEST/providers/Microsoft.Compute/virtualMachines/vmnobackup1/providers/Microsoft.Advisor/recommendations/3f967503-8b3f-c991-c2be-2a3a0e401a21","name":"3f967503-8b3f-c991-c2be-2a3a0e401a21","properties":{"category":"Security","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"vmnobackup1","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/FUNCTIONALTEST/providers/Microsoft.Compute/virtualMachines/vmnobackup1/providers/Microsoft.Advisor/recommendations/e72e1401-659c-30d9-6cc4-3f6dea42d2bc","name":"e72e1401-659c-30d9-6cc4-3f6dea42d2bc","properties":{"category":"Security","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"vmnobackup1","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/FUNCTIONALTEST/providers/Microsoft.Compute/virtualMachines/vmnobackup1/providers/Microsoft.Advisor/recommendations/aedd45a5-d2e6-6e6b-55ff-f68991ab2c6b","name":"aedd45a5-d2e6-6e6b-55ff-f68991ab2c6b","properties":{"category":"Security","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"vmnobackup1","lastUpdated":"2017-11-16T17:18:15.9001896Z","risk":"None","shortDescription":{"problem":"Improve
|
||||
the security of your Azure resources","solution":"Follow Security Center recommendations"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/functionaltest/providers/Microsoft.Compute/virtualMachines/vmnobackup1/providers/Microsoft.Advisor/recommendations/9d88ef0e-e8c0-a056-c303-fc9ca5e71c2a","name":"9d88ef0e-e8c0-a056-c303-fc9ca5e71c2a","properties":{"category":"HighAvailability","impact":"Medium","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"vmnobackup1","lastUpdated":"2017-11-16T17:18:16.1814518Z","risk":"None","shortDescription":{"problem":"Your
|
||||
virtual machine is not configured for backup","solution":"Enable virtual machine
|
||||
backup to protect your data from corruption and accidental deletion"}},"type":"Microsoft.Advisor/recommendations"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/functionaltest/providers/Microsoft.Compute/virtualMachines/vmnobackup1/providers/Microsoft.Advisor/recommendations/3f7f8549-a4ec-9548-3b63-09bf5845724c","name":"3f7f8549-a4ec-9548-3b63-09bf5845724c","properties":{"category":"Cost","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"vmnobackup1","lastUpdated":"2017-11-16T11:02:58.0160597Z","risk":"None","shortDescription":{"problem":"Your
|
||||
virtual machine has low usage","solution":"Right-size or shutdown underutilized
|
||||
virtual machines"},"suppressionIds":["eacbc09d-e003-8167-fa4e-47d8a9c61f0a"]},"type":"Microsoft.Advisor/recommendations","hardwareDetails":{"resourceId":"y8fx4nayf4ptcckwy6pri8bbx5z4mwufo9ax4nayrti71j3x5pdwtc7y4imyqeyy6a","size":"Standard_D1_v2"}}]}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['4109']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Thu, 16 Nov 2017 17:18:34 GMT']
|
||||
expires: ['-1']
|
||||
iscutoff: ['False']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor recommendation enable]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: DELETE
|
||||
uri: https://management.azure.com/%2Fsubscriptions%2F658c8950-e79d-4704-a903-1df66ba90258%2FresourceGroups%2Ffunctionaltest%2Fproviders%2FMicrosoft.Compute%2FvirtualMachines%2Fvmnobackup1/providers/Microsoft.Advisor/recommendations/3f7f8549-a4ec-9548-3b63-09bf5845724c/suppressions/d8a63867-e3cc-43b4-8400-3d75f3a8f9fe?api-version=2017-04-19
|
||||
response:
|
||||
body: {string: ''}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
date: ['Thu, 16 Nov 2017 17:18:35 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-content-type-options: [nosniff]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 204, message: No Content}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [advisor recommendation list]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.15 azure-mgmt-advisor/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/recommendations?api-version=2017-04-19&$filter=Category%20eq%20%27cost%27
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/functionaltest/providers/Microsoft.Compute/virtualMachines/vmnobackup1/providers/Microsoft.Advisor/recommendations/3f7f8549-a4ec-9548-3b63-09bf5845724c","name":"3f7f8549-a4ec-9548-3b63-09bf5845724c","properties":{"category":"Cost","impact":"High","impactedField":"Microsoft.Compute/virtualMachines","impactedValue":"vmnobackup1","lastUpdated":"2017-11-16T11:02:58.0160597Z","risk":"None","shortDescription":{"problem":"Your
|
||||
virtual machine has low usage","solution":"Right-size or shutdown underutilized
|
||||
virtual machines"}},"type":"Microsoft.Advisor/recommendations","hardwareDetails":{"resourceId":"y8fx4nayf4ptcckwy6pri8bbx5z4mwufo9ax4nayrti71j3x5pdwtc7y4imyqeyy6a","size":"Standard_D1_v2"}}]}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['779']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Thu, 16 Nov 2017 17:18:37 GMT']
|
||||
expires: ['-1']
|
||||
iscutoff: ['False']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
|
@ -0,0 +1,95 @@
|
|||
# --------------------------------------------------------------------------------------------
|
||||
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
# Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
import unittest
|
||||
|
||||
from azure.cli.testsdk import LiveScenarioTest, ScenarioTest, ResourceGroupPreparer
|
||||
|
||||
from azure.cli.command_modules.advisor.custom import build_filter_string, parse_operation_id, parse_recommendation_uri
|
||||
|
||||
# pylint: disable=line-too-long
|
||||
|
||||
|
||||
class AzureAdvisorUnitTest(unittest.TestCase):
|
||||
|
||||
def test_build_filter(self):
|
||||
ids = ['a', 'b', 'c']
|
||||
resource_group_name = 'r'
|
||||
category = 'cost'
|
||||
|
||||
self.assertEqual(build_filter_string(), None)
|
||||
self.assertEqual(build_filter_string(ids=ids), "ResourceId eq 'a' or ResourceId eq 'b' or ResourceId eq 'c'")
|
||||
self.assertEqual(build_filter_string(resource_group_name=resource_group_name), "ResourceGroup eq 'r'")
|
||||
self.assertEqual(build_filter_string(category=category), "Category eq 'cost'")
|
||||
self.assertEqual(build_filter_string(ids=ids, category=category), "(ResourceId eq 'a' or ResourceId eq 'b' or ResourceId eq 'c') and Category eq 'cost'")
|
||||
self.assertEqual(build_filter_string(resource_group_name=resource_group_name, category=category), "(ResourceGroup eq 'r') and Category eq 'cost'")
|
||||
|
||||
def test_parse_operation_id(self):
|
||||
location = 'https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Advisor/generateRecommendations/a9544ca5-5837-4cb4-94d6-bad2b6e76320?api-version=2017-04-19'
|
||||
operation_id = parse_operation_id(location)
|
||||
self.assertEqual(operation_id, 'a9544ca5-5837-4cb4-94d6-bad2b6e76320')
|
||||
|
||||
def test_parse_recommendation_uri(self):
|
||||
recommendation_uri = '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/foo/providers/Microsoft.Network/expressRouteCircuits/test/providers/Microsoft.Advisor/recommendations/c4deb869-ea38-f90d-331f-91770021d425'
|
||||
result = parse_recommendation_uri(recommendation_uri)
|
||||
self.assertEqual(
|
||||
result['resourceUri'],
|
||||
'/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/foo/providers/Microsoft.Network/expressRouteCircuits/test'
|
||||
)
|
||||
self.assertEqual(result['recommendationId'], 'c4deb869-ea38-f90d-331f-91770021d425')
|
||||
|
||||
|
||||
class AzureAdvisorLiveScenarioTest(LiveScenarioTest):
|
||||
|
||||
def test_list_disable_enable_recommendations(self):
|
||||
output = self.cmd('advisor recommendation list').get_output_in_json()
|
||||
self.assertGreater(len(output), 1)
|
||||
output = self.cmd('advisor recommendation list --category cost').get_output_in_json()
|
||||
self.assertGreater(len(output), 0)
|
||||
disableCmd = 'advisor recommendation disable --ids {} --days 1'.format(output[0]['id'])
|
||||
enableCmd = 'advisor recommendation enable --ids {}'.format(output[0]['id'])
|
||||
output = self.cmd(disableCmd).get_output_in_json()
|
||||
self.assertEqual(output[0]['ttl'], '1.00:00:00')
|
||||
self.cmd(enableCmd)
|
||||
output = self.cmd('advisor recommendation list --category cost').get_output_in_json()
|
||||
self.assertGreater(len(output), 0)
|
||||
self.assertEqual(output[0]['suppressionIds'], None)
|
||||
|
||||
|
||||
class AzureAdvisorScenarioTest(ScenarioTest):
|
||||
|
||||
def test_generate_recommendations(self):
|
||||
self.cmd('advisor recommendation generate')
|
||||
|
||||
def test_get_set_configurations_subscription(self):
|
||||
output = self.cmd('advisor configuration get').get_output_in_json()
|
||||
self.assertGreater(len(output), 1)
|
||||
self.cmd('advisor configuration set --low-cpu-threshold 20')
|
||||
output = self.cmd('advisor configuration get').get_output_in_json()
|
||||
for entry in output['value']:
|
||||
if entry['properties']['lowCpuThreshold']:
|
||||
self.assertEqual(entry['properties']['lowCpuThreshold'], '20')
|
||||
self.cmd('advisor configuration set --low-cpu-threshold 5')
|
||||
output = self.cmd('advisor configuration get').get_output_in_json()
|
||||
for entry in output['value']:
|
||||
if entry['properties']['lowCpuThreshold']:
|
||||
self.assertEqual(entry['properties']['lowCpuThreshold'], '5')
|
||||
|
||||
@ResourceGroupPreparer(name_prefix='cli_test_advisor')
|
||||
def test_get_set_configurations_resource_group(self, resource_group):
|
||||
output = self.cmd('advisor configuration get --resource-group {}'.format(resource_group)).get_output_in_json()
|
||||
self.assertGreater(len(output), 0)
|
||||
self.cmd('advisor configuration set --exclude --resource-group {}'.format(resource_group))
|
||||
output = self.cmd('advisor configuration get --resource-group {}'.format(resource_group)).get_output_in_json()
|
||||
self.assertGreater(len(output), 0)
|
||||
self.assertTrue(output['value'][0]['properties']['exclude'])
|
||||
self.cmd('advisor configuration set --include --resource-group {}'.format(resource_group))
|
||||
output = self.cmd('advisor configuration get --resource-group {}'.format(resource_group)).get_output_in_json()
|
||||
self.assertGreater(len(output), 0)
|
||||
self.assertTrue(not output['value'][0]['properties']['exclude'])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
|
@ -0,0 +1,533 @@
|
|||
"""
|
||||
"wheel" copyright (c) 2012-2017 Daniel Holth <dholth@fastmail.fm> and
|
||||
contributors.
|
||||
|
||||
The MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Create a Azure wheel (.whl) distribution (a wheel is a built archive format).
|
||||
|
||||
This file is a copy of the official bdist_wheel file from wheel 0.30.0a0, enhanced
|
||||
of the bottom with some Microsoft extension for Azure SDK for Python
|
||||
|
||||
"""
|
||||
|
||||
import csv
|
||||
import hashlib
|
||||
import os
|
||||
import subprocess
|
||||
import warnings
|
||||
import shutil
|
||||
import json
|
||||
import sys
|
||||
|
||||
try:
|
||||
import sysconfig
|
||||
except ImportError: # pragma nocover
|
||||
# Python < 2.7
|
||||
import distutils.sysconfig as sysconfig
|
||||
|
||||
import pkg_resources
|
||||
|
||||
safe_name = pkg_resources.safe_name
|
||||
safe_version = pkg_resources.safe_version
|
||||
|
||||
from shutil import rmtree
|
||||
from email.generator import Generator
|
||||
|
||||
from distutils.core import Command
|
||||
from distutils.sysconfig import get_python_version
|
||||
|
||||
from distutils import log as logger
|
||||
|
||||
from wheel.pep425tags import get_abbr_impl, get_impl_ver, get_abi_tag, get_platform
|
||||
from wheel.util import native, open_for_csv
|
||||
from wheel.archive import archive_wheelfile
|
||||
from wheel.pkginfo import read_pkg_info, write_pkg_info
|
||||
from wheel.metadata import pkginfo_to_dict
|
||||
from wheel import pep425tags, metadata
|
||||
from wheel import __version__ as wheel_version
|
||||
|
||||
def safer_name(name):
|
||||
return safe_name(name).replace('-', '_')
|
||||
|
||||
def safer_version(version):
|
||||
return safe_version(version).replace('-', '_')
|
||||
|
||||
class bdist_wheel(Command):
|
||||
|
||||
description = 'create a wheel distribution'
|
||||
|
||||
user_options = [('bdist-dir=', 'b',
|
||||
"temporary directory for creating the distribution"),
|
||||
('plat-name=', 'p',
|
||||
"platform name to embed in generated filenames "
|
||||
"(default: %s)" % get_platform()),
|
||||
('keep-temp', 'k',
|
||||
"keep the pseudo-installation tree around after " +
|
||||
"creating the distribution archive"),
|
||||
('dist-dir=', 'd',
|
||||
"directory to put final built distributions in"),
|
||||
('skip-build', None,
|
||||
"skip rebuilding everything (for testing/debugging)"),
|
||||
('relative', None,
|
||||
"build the archive using relative paths"
|
||||
"(default: false)"),
|
||||
('owner=', 'u',
|
||||
"Owner name used when creating a tar file"
|
||||
" [default: current user]"),
|
||||
('group=', 'g',
|
||||
"Group name used when creating a tar file"
|
||||
" [default: current group]"),
|
||||
('universal', None,
|
||||
"make a universal wheel"
|
||||
" (default: false)"),
|
||||
('python-tag=', None,
|
||||
"Python implementation compatibility tag"
|
||||
" (default: py%s)" % get_impl_ver()[0]),
|
||||
]
|
||||
|
||||
boolean_options = ['keep-temp', 'skip-build', 'relative', 'universal']
|
||||
|
||||
def initialize_options(self):
|
||||
self.bdist_dir = None
|
||||
self.data_dir = None
|
||||
self.plat_name = None
|
||||
self.plat_tag = None
|
||||
self.format = 'zip'
|
||||
self.keep_temp = False
|
||||
self.dist_dir = None
|
||||
self.distinfo_dir = None
|
||||
self.egginfo_dir = None
|
||||
self.root_is_pure = None
|
||||
self.skip_build = None
|
||||
self.relative = False
|
||||
self.owner = None
|
||||
self.group = None
|
||||
self.universal = False
|
||||
self.python_tag = 'py' + get_impl_ver()[0]
|
||||
self.plat_name_supplied = False
|
||||
|
||||
def finalize_options(self):
|
||||
if self.bdist_dir is None:
|
||||
bdist_base = self.get_finalized_command('bdist').bdist_base
|
||||
self.bdist_dir = os.path.join(bdist_base, 'wheel')
|
||||
|
||||
self.data_dir = self.wheel_dist_name + '.data'
|
||||
self.plat_name_supplied = self.plat_name is not None
|
||||
|
||||
need_options = ('dist_dir', 'plat_name', 'skip_build')
|
||||
|
||||
self.set_undefined_options('bdist',
|
||||
*zip(need_options, need_options))
|
||||
|
||||
self.root_is_pure = not (self.distribution.has_ext_modules()
|
||||
or self.distribution.has_c_libraries())
|
||||
|
||||
# Support legacy [wheel] section for setting universal
|
||||
wheel = self.distribution.get_option_dict('wheel')
|
||||
if 'universal' in wheel:
|
||||
# please don't define this in your global configs
|
||||
val = wheel['universal'][1].strip()
|
||||
if val.lower() in ('1', 'true', 'yes'):
|
||||
self.universal = True
|
||||
|
||||
@property
|
||||
def wheel_dist_name(self):
|
||||
"""Return distribution full name with - replaced with _"""
|
||||
return '-'.join((safer_name(self.distribution.get_name()),
|
||||
safer_version(self.distribution.get_version())))
|
||||
|
||||
def get_tag(self):
|
||||
# bdist sets self.plat_name if unset, we should only use it for purepy
|
||||
# wheels if the user supplied it.
|
||||
if self.plat_name_supplied:
|
||||
plat_name = self.plat_name
|
||||
elif self.root_is_pure:
|
||||
plat_name = 'any'
|
||||
else:
|
||||
plat_name = self.plat_name or get_platform()
|
||||
if plat_name in ('linux-x86_64', 'linux_x86_64') and sys.maxsize == 2147483647:
|
||||
plat_name = 'linux_i686'
|
||||
plat_name = plat_name.replace('-', '_').replace('.', '_')
|
||||
|
||||
|
||||
if self.root_is_pure:
|
||||
if self.universal:
|
||||
impl = 'py2.py3'
|
||||
else:
|
||||
impl = self.python_tag
|
||||
tag = (impl, 'none', plat_name)
|
||||
else:
|
||||
impl_name = get_abbr_impl()
|
||||
impl_ver = get_impl_ver()
|
||||
# PEP 3149
|
||||
abi_tag = str(get_abi_tag()).lower()
|
||||
tag = (impl_name + impl_ver, abi_tag, plat_name)
|
||||
supported_tags = pep425tags.get_supported(
|
||||
supplied_platform=plat_name if self.plat_name_supplied else None)
|
||||
# XXX switch to this alternate implementation for non-pure:
|
||||
assert tag == supported_tags[0], "%s != %s" % (tag, supported_tags[0])
|
||||
return tag
|
||||
|
||||
def get_archive_basename(self):
|
||||
"""Return archive name without extension"""
|
||||
|
||||
impl_tag, abi_tag, plat_tag = self.get_tag()
|
||||
|
||||
archive_basename = "%s-%s-%s-%s" % (
|
||||
self.wheel_dist_name,
|
||||
impl_tag,
|
||||
abi_tag,
|
||||
plat_tag)
|
||||
return archive_basename
|
||||
|
||||
def run(self):
|
||||
build_scripts = self.reinitialize_command('build_scripts')
|
||||
build_scripts.executable = 'python'
|
||||
|
||||
if not self.skip_build:
|
||||
self.run_command('build')
|
||||
|
||||
install = self.reinitialize_command('install',
|
||||
reinit_subcommands=True)
|
||||
install.root = self.bdist_dir
|
||||
install.compile = False
|
||||
install.skip_build = self.skip_build
|
||||
install.warn_dir = False
|
||||
|
||||
# A wheel without setuptools scripts is more cross-platform.
|
||||
# Use the (undocumented) `no_ep` option to setuptools'
|
||||
# install_scripts command to avoid creating entry point scripts.
|
||||
install_scripts = self.reinitialize_command('install_scripts')
|
||||
install_scripts.no_ep = True
|
||||
|
||||
# Use a custom scheme for the archive, because we have to decide
|
||||
# at installation time which scheme to use.
|
||||
for key in ('headers', 'scripts', 'data', 'purelib', 'platlib'):
|
||||
setattr(install,
|
||||
'install_' + key,
|
||||
os.path.join(self.data_dir, key))
|
||||
|
||||
basedir_observed = ''
|
||||
|
||||
if os.name == 'nt':
|
||||
# win32 barfs if any of these are ''; could be '.'?
|
||||
# (distutils.command.install:change_roots bug)
|
||||
basedir_observed = os.path.normpath(os.path.join(self.data_dir, '..'))
|
||||
self.install_libbase = self.install_lib = basedir_observed
|
||||
|
||||
setattr(install,
|
||||
'install_purelib' if self.root_is_pure else 'install_platlib',
|
||||
basedir_observed)
|
||||
|
||||
logger.info("installing to %s", self.bdist_dir)
|
||||
|
||||
self.run_command('install')
|
||||
|
||||
archive_basename = self.get_archive_basename()
|
||||
|
||||
pseudoinstall_root = os.path.join(self.dist_dir, archive_basename)
|
||||
if not self.relative:
|
||||
archive_root = self.bdist_dir
|
||||
else:
|
||||
archive_root = os.path.join(
|
||||
self.bdist_dir,
|
||||
self._ensure_relative(install.install_base))
|
||||
|
||||
self.set_undefined_options(
|
||||
'install_egg_info', ('target', 'egginfo_dir'))
|
||||
self.distinfo_dir = os.path.join(self.bdist_dir,
|
||||
'%s.dist-info' % self.wheel_dist_name)
|
||||
self.egg2dist(self.egginfo_dir,
|
||||
self.distinfo_dir)
|
||||
|
||||
self.write_wheelfile(self.distinfo_dir)
|
||||
|
||||
self.write_record(self.bdist_dir, self.distinfo_dir)
|
||||
|
||||
# Make the archive
|
||||
if not os.path.exists(self.dist_dir):
|
||||
os.makedirs(self.dist_dir)
|
||||
wheel_name = archive_wheelfile(pseudoinstall_root, archive_root)
|
||||
|
||||
# Sign the archive
|
||||
if 'WHEEL_TOOL' in os.environ:
|
||||
subprocess.call([os.environ['WHEEL_TOOL'], 'sign', wheel_name])
|
||||
|
||||
# Add to 'Distribution.dist_files' so that the "upload" command works
|
||||
getattr(self.distribution, 'dist_files', []).append(
|
||||
('bdist_wheel', get_python_version(), wheel_name))
|
||||
|
||||
if not self.keep_temp:
|
||||
if self.dry_run:
|
||||
logger.info('removing %s', self.bdist_dir)
|
||||
else:
|
||||
rmtree(self.bdist_dir)
|
||||
|
||||
def write_wheelfile(self, wheelfile_base, generator='bdist_wheel (' + wheel_version + ')'):
|
||||
from email.message import Message
|
||||
msg = Message()
|
||||
msg['Wheel-Version'] = '1.0' # of the spec
|
||||
msg['Generator'] = generator
|
||||
msg['Root-Is-Purelib'] = str(self.root_is_pure).lower()
|
||||
|
||||
# Doesn't work for bdist_wininst
|
||||
impl_tag, abi_tag, plat_tag = self.get_tag()
|
||||
for impl in impl_tag.split('.'):
|
||||
for abi in abi_tag.split('.'):
|
||||
for plat in plat_tag.split('.'):
|
||||
msg['Tag'] = '-'.join((impl, abi, plat))
|
||||
|
||||
wheelfile_path = os.path.join(wheelfile_base, 'WHEEL')
|
||||
logger.info('creating %s', wheelfile_path)
|
||||
with open(wheelfile_path, 'w') as f:
|
||||
Generator(f, maxheaderlen=0).flatten(msg)
|
||||
|
||||
def _ensure_relative(self, path):
|
||||
# copied from dir_util, deleted
|
||||
drive, path = os.path.splitdrive(path)
|
||||
if path[0:1] == os.sep:
|
||||
path = drive + path[1:]
|
||||
return path
|
||||
|
||||
def _pkginfo_to_metadata(self, egg_info_path, pkginfo_path):
|
||||
return metadata.pkginfo_to_metadata(egg_info_path, pkginfo_path)
|
||||
|
||||
def license_file(self):
|
||||
"""Return license filename from a license-file key in setup.cfg, or None."""
|
||||
metadata = self.distribution.get_option_dict('metadata')
|
||||
if not 'license_file' in metadata:
|
||||
return None
|
||||
return metadata['license_file'][1]
|
||||
|
||||
def setupcfg_requirements(self):
|
||||
"""Generate requirements from setup.cfg as
|
||||
('Requires-Dist', 'requirement; qualifier') tuples. From a metadata
|
||||
section in setup.cfg:
|
||||
|
||||
[metadata]
|
||||
provides-extra = extra1
|
||||
extra2
|
||||
requires-dist = requirement; qualifier
|
||||
another; qualifier2
|
||||
unqualified
|
||||
|
||||
Yields
|
||||
|
||||
('Provides-Extra', 'extra1'),
|
||||
('Provides-Extra', 'extra2'),
|
||||
('Requires-Dist', 'requirement; qualifier'),
|
||||
('Requires-Dist', 'another; qualifier2'),
|
||||
('Requires-Dist', 'unqualified')
|
||||
"""
|
||||
metadata = self.distribution.get_option_dict('metadata')
|
||||
|
||||
# our .ini parser folds - to _ in key names:
|
||||
for key, title in (('provides_extra', 'Provides-Extra'),
|
||||
('requires_dist', 'Requires-Dist')):
|
||||
if not key in metadata:
|
||||
continue
|
||||
field = metadata[key]
|
||||
for line in field[1].splitlines():
|
||||
line = line.strip()
|
||||
if not line:
|
||||
continue
|
||||
yield (title, line)
|
||||
|
||||
def add_requirements(self, metadata_path):
|
||||
"""Add additional requirements from setup.cfg to file metadata_path"""
|
||||
additional = list(self.setupcfg_requirements())
|
||||
if not additional: return
|
||||
pkg_info = read_pkg_info(metadata_path)
|
||||
if 'Provides-Extra' in pkg_info or 'Requires-Dist' in pkg_info:
|
||||
warnings.warn('setup.cfg requirements overwrite values from setup.py')
|
||||
del pkg_info['Provides-Extra']
|
||||
del pkg_info['Requires-Dist']
|
||||
for k, v in additional:
|
||||
pkg_info[k] = v
|
||||
write_pkg_info(metadata_path, pkg_info)
|
||||
|
||||
def egg2dist(self, egginfo_path, distinfo_path):
|
||||
"""Convert an .egg-info directory into a .dist-info directory"""
|
||||
def adios(p):
|
||||
"""Appropriately delete directory, file or link."""
|
||||
if os.path.exists(p) and not os.path.islink(p) and os.path.isdir(p):
|
||||
shutil.rmtree(p)
|
||||
elif os.path.exists(p):
|
||||
os.unlink(p)
|
||||
|
||||
adios(distinfo_path)
|
||||
|
||||
if not os.path.exists(egginfo_path):
|
||||
# There is no egg-info. This is probably because the egg-info
|
||||
# file/directory is not named matching the distribution name used
|
||||
# to name the archive file. Check for this case and report
|
||||
# accordingly.
|
||||
import glob
|
||||
pat = os.path.join(os.path.dirname(egginfo_path), '*.egg-info')
|
||||
possible = glob.glob(pat)
|
||||
err = "Egg metadata expected at %s but not found" % (egginfo_path,)
|
||||
if possible:
|
||||
alt = os.path.basename(possible[0])
|
||||
err += " (%s found - possible misnamed archive file?)" % (alt,)
|
||||
|
||||
raise ValueError(err)
|
||||
|
||||
if os.path.isfile(egginfo_path):
|
||||
# .egg-info is a single file
|
||||
pkginfo_path = egginfo_path
|
||||
pkg_info = self._pkginfo_to_metadata(egginfo_path, egginfo_path)
|
||||
os.mkdir(distinfo_path)
|
||||
else:
|
||||
# .egg-info is a directory
|
||||
pkginfo_path = os.path.join(egginfo_path, 'PKG-INFO')
|
||||
pkg_info = self._pkginfo_to_metadata(egginfo_path, pkginfo_path)
|
||||
|
||||
# ignore common egg metadata that is useless to wheel
|
||||
shutil.copytree(egginfo_path, distinfo_path,
|
||||
ignore=lambda x, y: set(('PKG-INFO',
|
||||
'requires.txt',
|
||||
'SOURCES.txt',
|
||||
'not-zip-safe',)))
|
||||
|
||||
# delete dependency_links if it is only whitespace
|
||||
dependency_links_path = os.path.join(distinfo_path, 'dependency_links.txt')
|
||||
with open(dependency_links_path, 'r') as dependency_links_file:
|
||||
dependency_links = dependency_links_file.read().strip()
|
||||
if not dependency_links:
|
||||
adios(dependency_links_path)
|
||||
|
||||
write_pkg_info(os.path.join(distinfo_path, 'METADATA'), pkg_info)
|
||||
|
||||
# XXX deprecated. Still useful for current distribute/setuptools.
|
||||
metadata_path = os.path.join(distinfo_path, 'METADATA')
|
||||
self.add_requirements(metadata_path)
|
||||
|
||||
# XXX intentionally a different path than the PEP.
|
||||
metadata_json_path = os.path.join(distinfo_path, 'metadata.json')
|
||||
pymeta = pkginfo_to_dict(metadata_path,
|
||||
distribution=self.distribution)
|
||||
|
||||
if 'description' in pymeta:
|
||||
description_filename = 'DESCRIPTION.rst'
|
||||
description_text = pymeta.pop('description')
|
||||
description_path = os.path.join(distinfo_path,
|
||||
description_filename)
|
||||
with open(description_path, "wb") as description_file:
|
||||
description_file.write(description_text.encode('utf-8'))
|
||||
pymeta['extensions']['python.details']['document_names']['description'] = description_filename
|
||||
|
||||
# XXX heuristically copy any LICENSE/LICENSE.txt?
|
||||
license = self.license_file()
|
||||
if license:
|
||||
license_filename = 'LICENSE.txt'
|
||||
shutil.copy(license, os.path.join(self.distinfo_dir, license_filename))
|
||||
pymeta['extensions']['python.details']['document_names']['license'] = license_filename
|
||||
|
||||
with open(metadata_json_path, "w") as metadata_json:
|
||||
json.dump(pymeta, metadata_json, sort_keys=True)
|
||||
|
||||
adios(egginfo_path)
|
||||
|
||||
def write_record(self, bdist_dir, distinfo_dir):
|
||||
from wheel.util import urlsafe_b64encode
|
||||
|
||||
record_path = os.path.join(distinfo_dir, 'RECORD')
|
||||
record_relpath = os.path.relpath(record_path, bdist_dir)
|
||||
|
||||
def walk():
|
||||
for dir, dirs, files in os.walk(bdist_dir):
|
||||
dirs.sort()
|
||||
for f in sorted(files):
|
||||
yield os.path.join(dir, f)
|
||||
|
||||
def skip(path):
|
||||
"""Wheel hashes every possible file."""
|
||||
return (path == record_relpath)
|
||||
|
||||
with open_for_csv(record_path, 'w+') as record_file:
|
||||
writer = csv.writer(record_file)
|
||||
for path in walk():
|
||||
relpath = os.path.relpath(path, bdist_dir)
|
||||
if skip(relpath):
|
||||
hash = ''
|
||||
size = ''
|
||||
else:
|
||||
with open(path, 'rb') as f:
|
||||
data = f.read()
|
||||
digest = hashlib.sha256(data).digest()
|
||||
hash = 'sha256=' + native(urlsafe_b64encode(digest))
|
||||
size = len(data)
|
||||
record_path = os.path.relpath(
|
||||
path, bdist_dir).replace(os.path.sep, '/')
|
||||
writer.writerow((record_path, hash, size))
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
# Licensed under the MIT License. See License.txt in the project root for
|
||||
# license information.
|
||||
#--------------------------------------------------------------------------
|
||||
|
||||
from distutils import log as logger
|
||||
import os.path
|
||||
|
||||
#from wheel.bdist_wheel import bdist_wheel
|
||||
class azure_bdist_wheel(bdist_wheel):
|
||||
|
||||
description = "Create an Azure wheel distribution"
|
||||
|
||||
user_options = bdist_wheel.user_options + \
|
||||
[('azure-namespace-package=', None,
|
||||
"Name of the deepest nspkg used")]
|
||||
|
||||
def initialize_options(self):
|
||||
bdist_wheel.initialize_options(self)
|
||||
self.azure_namespace_package = None
|
||||
|
||||
def finalize_options(self):
|
||||
bdist_wheel.finalize_options(self)
|
||||
if self.azure_namespace_package and not self.azure_namespace_package.endswith("-nspkg"):
|
||||
raise ValueError("azure_namespace_package must finish by -nspkg")
|
||||
|
||||
def run(self):
|
||||
if not self.distribution.install_requires:
|
||||
self.distribution.install_requires = []
|
||||
self.distribution.install_requires.append(
|
||||
"{}>=2.0.0".format(self.azure_namespace_package.replace('_', '-')))
|
||||
bdist_wheel.run(self)
|
||||
|
||||
def write_record(self, bdist_dir, distinfo_dir):
|
||||
if self.azure_namespace_package:
|
||||
# Split and remove last part, assuming it's "nspkg"
|
||||
subparts = self.azure_namespace_package.split('-')[0:-1]
|
||||
folder_with_init = [os.path.join(*subparts[0:i+1]) for i in range(len(subparts))]
|
||||
for azure_sub_package in folder_with_init:
|
||||
init_file = os.path.join(bdist_dir, azure_sub_package, '__init__.py')
|
||||
if os.path.isfile(init_file):
|
||||
logger.info("manually remove {} while building the wheel".format(init_file))
|
||||
os.remove(init_file)
|
||||
else:
|
||||
raise ValueError("Unable to find {}. Are you sure of your namespace package?".format(init_file))
|
||||
bdist_wheel.write_record(self, bdist_dir, distinfo_dir)
|
||||
cmdclass = {
|
||||
'bdist_wheel': azure_bdist_wheel,
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
[bdist_wheel]
|
||||
universal=1
|
||||
azure-namespace-package=azure-cli-command_modules-nspkg
|
|
@ -0,0 +1,62 @@
|
|||
#!/usr/bin/env python
|
||||
# --------------------------------------------------------------------------------------------
|
||||
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
# Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
from codecs import open
|
||||
from setuptools import setup
|
||||
|
||||
try:
|
||||
from azure_bdist_wheel import cmdclass
|
||||
except ImportError:
|
||||
from distutils import log as logger
|
||||
logger.warn("Wheel is not available, disabling bdist_wheel hook")
|
||||
cmdclass = {}
|
||||
|
||||
VERSION = "0.1.0"
|
||||
|
||||
# The full list of classifiers is available at
|
||||
# https://pypi.python.org/pypi?%3Aaction=list_classifiers
|
||||
CLASSIFIERS = [
|
||||
'Development Status :: 4 - Beta',
|
||||
'Intended Audience :: Developers',
|
||||
'Intended Audience :: System Administrators',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 2',
|
||||
'Programming Language :: Python :: 2.7',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.4',
|
||||
'Programming Language :: Python :: 3.5',
|
||||
'Programming Language :: Python :: 3.6',
|
||||
]
|
||||
|
||||
DEPENDENCIES = [
|
||||
'azure-cli-core',
|
||||
'azure-mgmt-advisor==0.1.0'
|
||||
]
|
||||
|
||||
with open('README.rst', 'r', encoding='utf-8') as f:
|
||||
README = f.read()
|
||||
with open('HISTORY.rst', 'r', encoding='utf-8') as f:
|
||||
HISTORY = f.read()
|
||||
|
||||
setup(
|
||||
name='azure-cli-advisor',
|
||||
version=VERSION,
|
||||
description='Microsoft Azure Command-Line Tools Advisor Command Module',
|
||||
long_description=README + '\n\n' + HISTORY,
|
||||
license='MIT',
|
||||
author='Microsoft Corporation',
|
||||
author_email='azpycli@microsoft.com',
|
||||
url='https://github.com/Azure/azure-cli',
|
||||
classifiers=CLASSIFIERS,
|
||||
packages=[
|
||||
'azure',
|
||||
'azure.cli',
|
||||
'azure.cli.command_modules',
|
||||
'azure.cli.command_modules.advisor',
|
||||
],
|
||||
install_requires=DEPENDENCIES,
|
||||
cmdclass=cmdclass
|
||||
)
|
|
@ -2,6 +2,12 @@
|
|||
|
||||
Release History
|
||||
===============
|
||||
0.1.21
|
||||
++++++
|
||||
* `webapp config ssl upload`: fix a bug in the cert name generation
|
||||
* `webapp/functionapp`: ensure list/show display correct set of apps
|
||||
* webapp: set WEBSITE_NODE_DEFAULT_VERSION in case where runtime is not set
|
||||
|
||||
0.1.20
|
||||
++++++
|
||||
* webapp: add deployment source config-zip support for webapps and functions apps
|
||||
|
|
|
@ -7,18 +7,21 @@ from knack.util import CLIError
|
|||
|
||||
from ._client_factory import web_client_factory
|
||||
|
||||
FUNCTION_APP_TYPES = ['functionapp', 'functionapp,linux']
|
||||
WEB_APP_TYPES = ['app', 'app,linux']
|
||||
|
||||
|
||||
def validate_existing_function_app(namespace):
|
||||
validate_existing_app(namespace, 'functionapp')
|
||||
validate_existing_app(namespace, FUNCTION_APP_TYPES)
|
||||
|
||||
|
||||
def validate_existing_web_app(namespace):
|
||||
validate_existing_app(namespace, 'app')
|
||||
validate_existing_app(namespace, WEB_APP_TYPES)
|
||||
|
||||
|
||||
def validate_existing_app(namespace, app_type):
|
||||
client = web_client_factory()
|
||||
instance = client.web_apps.get(namespace.resource_group_name, namespace.name)
|
||||
if instance.kind != app_type: # pylint: disable=no-member
|
||||
if instance.kind not in app_type: # pylint: disable=no-member
|
||||
raise CLIError('Usage Error: {} is not a correct app type'.format(namespace.name))
|
||||
setattr(namespace, 'app_instance', instance)
|
||||
|
|
|
@ -48,6 +48,7 @@ def create_webapp(resource_group_name, name, plan, runtime=None, startup_file=No
|
|||
else:
|
||||
plan_info = client.app_service_plans.get(resource_group_name, plan)
|
||||
is_linux = plan_info.reserved
|
||||
node_default_version = "6.9.1"
|
||||
location = plan_info.location
|
||||
site_config = SiteConfig(app_settings=[])
|
||||
webapp_def = Site(server_farm_id=plan_info.id, location=location, site_config=site_config)
|
||||
|
@ -66,7 +67,7 @@ def create_webapp(resource_group_name, name, plan, runtime=None, startup_file=No
|
|||
else: # must specify runtime
|
||||
raise CLIError('usage error: must specify --runtime | --deployment-container-image-name') # pylint: disable=line-too-long
|
||||
|
||||
elif runtime: # windows webapp
|
||||
elif runtime: # windows webapp with runtime specified
|
||||
if startup_file or deployment_container_image_name:
|
||||
raise CLIError("usage error: --startup-file or --deployment-container-image-name is "
|
||||
"only appliable on linux webapp")
|
||||
|
@ -77,7 +78,12 @@ def create_webapp(resource_group_name, name, plan, runtime=None, startup_file=No
|
|||
match['setter'](match, site_config)
|
||||
# Be consistent with portal: any windows webapp should have this even it doesn't have node in the stack
|
||||
if not match['displayName'].startswith('node'):
|
||||
site_config.app_settings.append(NameValuePair("WEBSITE_NODE_DEFAULT_VERSION", "6.9.1"))
|
||||
site_config.app_settings.append(NameValuePair("WEBSITE_NODE_DEFAULT_VERSION",
|
||||
node_default_version))
|
||||
|
||||
else: # windows webapp without runtime specified
|
||||
site_config.app_settings.append(NameValuePair("WEBSITE_NODE_DEFAULT_VERSION",
|
||||
node_default_version))
|
||||
|
||||
if site_config.app_settings:
|
||||
for setting in site_config.app_settings:
|
||||
|
@ -111,11 +117,13 @@ def update_webapp(instance, client_affinity_enabled=None):
|
|||
|
||||
|
||||
def list_webapp(resource_group_name=None):
|
||||
return _list_app(['app', 'app,linux'], resource_group_name)
|
||||
from ._validators import WEB_APP_TYPES
|
||||
return _list_app(WEB_APP_TYPES, resource_group_name)
|
||||
|
||||
|
||||
def list_function_app(resource_group_name=None):
|
||||
return _list_app(['functionapp', 'functionapp,linux'], resource_group_name)
|
||||
from ._validators import FUNCTION_APP_TYPES
|
||||
return _list_app(FUNCTION_APP_TYPES, resource_group_name)
|
||||
|
||||
|
||||
def _list_app(app_types, resource_group_name=None):
|
||||
|
@ -1265,9 +1273,8 @@ def upload_ssl_cert(resource_group_name, name, certificate_password, certificate
|
|||
cert_resource_group_name = parse_resource_id(webapp.server_farm_id)['resource_group']
|
||||
cert_file = open(certificate_file, 'rb')
|
||||
cert_contents = cert_file.read()
|
||||
hosting_environment_profile_param = webapp.hosting_environment_profile
|
||||
if hosting_environment_profile_param is None:
|
||||
hosting_environment_profile_param = ""
|
||||
hosting_environment_profile_param = (webapp.hosting_environment_profile.name
|
||||
if webapp.hosting_environment_profile else '')
|
||||
|
||||
thumb_print = _get_cert(certificate_password, certificate_file)
|
||||
cert_name = _generate_cert_name(thumb_print, hosting_environment_profile_param,
|
||||
|
|
|
@ -8,9 +8,9 @@ interactions:
|
|||
Connection: [keep-alive]
|
||||
Content-Length: ['50']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/azurecli-functionapp-c-e2e000001?api-version=2017-05-10
|
||||
|
@ -20,15 +20,15 @@ interactions:
|
|||
cache-control: [no-cache]
|
||||
content-length: ['328']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Tue, 24 Oct 2017 23:24:31 GMT']
|
||||
date: ['Wed, 15 Nov 2017 22:21:20 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1197']
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1198']
|
||||
status: {code: 201, message: Created}
|
||||
- request:
|
||||
body: '{"sku": {"name": "Standard_LRS"}, "properties": {"supportsHttpsTrafficOnly":
|
||||
false}, "location": "westus", "kind": "Storage"}'
|
||||
body: '{"location": "westus", "kind": "Storage", "sku": {"name": "Standard_LRS"},
|
||||
"properties": {"supportsHttpsTrafficOnly": false}}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
|
@ -36,8 +36,8 @@ interactions:
|
|||
Connection: [keep-alive]
|
||||
Content-Length: ['125']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 storagemanagementclient/1.4.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 storagemanagementclient/1.4.0 Azure-SDK-For-Python AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Storage/storageAccounts/clitest000002?api-version=2017-06-01
|
||||
|
@ -46,13 +46,13 @@ interactions:
|
|||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['0']
|
||||
date: ['Tue, 24 Oct 2017 23:24:33 GMT']
|
||||
date: ['Wed, 15 Nov 2017 22:21:31 GMT']
|
||||
expires: ['-1']
|
||||
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus/asyncoperations/106c815f-4c58-4096-a261-3b78f7ad2272?monitor=true&api-version=2017-06-01']
|
||||
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus/asyncoperations/c23a0be2-7e64-4261-83ee-d65fd8215306?monitor=true&api-version=2017-06-01']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1198']
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 202, message: Accepted}
|
||||
- request:
|
||||
body: null
|
||||
|
@ -62,20 +62,45 @@ interactions:
|
|||
CommandName: [storage account create]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 storagemanagementclient/1.4.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 storagemanagementclient/1.4.0 Azure-SDK-For-Python AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus/asyncoperations/106c815f-4c58-4096-a261-3b78f7ad2272?monitor=true&api-version=2017-06-01
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus/asyncoperations/c23a0be2-7e64-4261-83ee-d65fd8215306?monitor=true&api-version=2017-06-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Storage/storageAccounts/clitest000002","kind":"Storage","location":"westus","name":"clitest000002","properties":{"creationTime":"2017-10-24T23:24:33.7074291Z","encryption":{"keySource":"Microsoft.Storage","services":{"blob":{"enabled":true,"lastEnabledTime":"2017-10-24T23:24:33.7104272Z"},"file":{"enabled":true,"lastEnabledTime":"2017-10-24T23:24:33.7104272Z"}}},"networkAcls":{"bypass":"AzureServices","defaultAction":"Allow","ipRules":[],"virtualNetworkRules":[]},"primaryEndpoints":{"blob":"https://clitest000002.blob.core.windows.net/","file":"https://clitest000002.file.core.windows.net/","queue":"https://clitest000002.queue.core.windows.net/","table":"https://clitest000002.table.core.windows.net/"},"primaryLocation":"westus","provisioningState":"Succeeded","statusOfPrimary":"available","supportsHttpsTrafficOnly":false},"sku":{"name":"Standard_LRS","tier":"Standard"},"tags":{},"type":"Microsoft.Storage/storageAccounts"}
|
||||
body: {string: ''}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['0']
|
||||
date: ['Wed, 15 Nov 2017 22:21:49 GMT']
|
||||
expires: ['-1']
|
||||
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus/asyncoperations/c23a0be2-7e64-4261-83ee-d65fd8215306?monitor=true&api-version=2017-06-01']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
status: {code: 202, message: Accepted}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [storage account create]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 storagemanagementclient/1.4.0 Azure-SDK-For-Python AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus/asyncoperations/c23a0be2-7e64-4261-83ee-d65fd8215306?monitor=true&api-version=2017-06-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Storage/storageAccounts/clitest000002","kind":"Storage","location":"westus","name":"clitest000002","properties":{"creationTime":"2017-11-15T22:21:21.6280868Z","encryption":{"keySource":"Microsoft.Storage","services":{"blob":{"enabled":true,"lastEnabledTime":"2017-11-15T22:21:21.6300866Z"},"file":{"enabled":true,"lastEnabledTime":"2017-11-15T22:21:21.6300866Z"}}},"networkAcls":{"bypass":"AzureServices","defaultAction":"Allow","ipRules":[],"virtualNetworkRules":[]},"primaryEndpoints":{"blob":"https://clitest000002.blob.core.windows.net/","file":"https://clitest000002.file.core.windows.net/","queue":"https://clitest000002.queue.core.windows.net/","table":"https://clitest000002.table.core.windows.net/"},"primaryLocation":"westus","provisioningState":"Succeeded","statusOfPrimary":"available","supportsHttpsTrafficOnly":false},"sku":{"name":"Standard_LRS","tier":"Standard"},"tags":{},"type":"Microsoft.Storage/storageAccounts"}
|
||||
|
||||
'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['1170']
|
||||
content-type: [application/json]
|
||||
date: ['Tue, 24 Oct 2017 23:24:50 GMT']
|
||||
date: ['Wed, 15 Nov 2017 22:22:06 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
|
||||
|
@ -92,27 +117,27 @@ interactions:
|
|||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 storagemanagementclient/1.4.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 storagemanagementclient/1.4.0 Azure-SDK-For-Python AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: POST
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Storage/storageAccounts/clitest000002/listKeys?api-version=2017-06-01
|
||||
response:
|
||||
body: {string: '{"keys":[{"keyName":"key1","permissions":"Full","value":"FFBwgB9RI9FW17YxAGGG41N54i2TqRkQ12MVkMq0u4tvK5SEGUZgtnpQW27CZLbu+RrcoQl8/h1XFXXobPHgsA=="},{"keyName":"key2","permissions":"Full","value":"NpwIzGC6ymKh8dKxVOHdd9siMZplXc+O9ZFilB7NiyzSPhlXVzqUsvyOViEI81LBrLffROUcKcYh/YZc7X8iKQ=="}]}
|
||||
body: {string: '{"keys":[{"keyName":"key1","permissions":"Full","value":"dhjze/964wI3nkzmZ62qYay2PEDlxSQ+iZ8amSk4cHgUp1+qKRLTjxB+HRxISA7L8RJboeOWXUTqFpJYXhwOUQ=="},{"keyName":"key2","permissions":"Full","value":"eXS8D5WRKsczlFChajtTNrGEIIb0c6+oQHl1YkAc0w5Nuuk4gTM2i8BEbrnkbtWXDf1GoEn7LwkFGIED/neBeg=="}]}
|
||||
|
||||
'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['289']
|
||||
content-type: [application/json]
|
||||
date: ['Tue, 24 Oct 2017 23:24:51 GMT']
|
||||
date: ['Wed, 15 Nov 2017 22:22:06 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1198']
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
|
@ -122,17 +147,16 @@ interactions:
|
|||
CommandName: [functionapp create]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Web/geoRegions?sku=Dynamic&api-version=2016-03-01
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Web/geoRegions?api-version=2016-03-01&sku=Dynamic
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Web/geoRegions/South
|
||||
Central US","name":"South Central US","type":"Microsoft.Web/geoRegions","properties":{"name":"South
|
||||
Central US","description":null,"sortOrder":0,"displayName":"South Central
|
||||
US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Web/geoRegions/North
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Web/geoRegions/Central
|
||||
US","name":"Central US","type":"Microsoft.Web/geoRegions","properties":{"name":"Central
|
||||
US","description":null,"sortOrder":0,"displayName":"Central US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Web/geoRegions/North
|
||||
Europe","name":"North Europe","type":"Microsoft.Web/geoRegions","properties":{"name":"North
|
||||
Europe","description":null,"sortOrder":1,"displayName":"North Europe"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Web/geoRegions/West
|
||||
Europe","name":"West Europe","type":"Microsoft.Web/geoRegions","properties":{"name":"West
|
||||
|
@ -153,9 +177,10 @@ interactions:
|
|||
US 2","description":null,"sortOrder":9,"displayName":"East US 2"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Web/geoRegions/North
|
||||
Central US","name":"North Central US","type":"Microsoft.Web/geoRegions","properties":{"name":"North
|
||||
Central US","description":null,"sortOrder":10,"displayName":"North Central
|
||||
US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Web/geoRegions/Central
|
||||
US","name":"Central US","type":"Microsoft.Web/geoRegions","properties":{"name":"Central
|
||||
US","description":null,"sortOrder":11,"displayName":"Central US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Web/geoRegions/Brazil
|
||||
US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Web/geoRegions/South
|
||||
Central US","name":"South Central US","type":"Microsoft.Web/geoRegions","properties":{"name":"South
|
||||
Central US","description":null,"sortOrder":11,"displayName":"South Central
|
||||
US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Web/geoRegions/Brazil
|
||||
South","name":"Brazil South","type":"Microsoft.Web/geoRegions","properties":{"name":"Brazil
|
||||
South","description":null,"sortOrder":12,"displayName":"Brazil South"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Web/geoRegions/Australia
|
||||
East","name":"Australia East","type":"Microsoft.Web/geoRegions","properties":{"name":"Australia
|
||||
|
@ -185,10 +210,10 @@ interactions:
|
|||
cache-control: [no-cache]
|
||||
content-length: ['6403']
|
||||
content-type: [application/json]
|
||||
date: ['Tue, 24 Oct 2017 23:24:52 GMT']
|
||||
date: ['Wed, 15 Nov 2017 22:22:08 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/8.0]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
|
@ -203,20 +228,20 @@ interactions:
|
|||
CommandName: [functionapp create]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 storagemanagementclient/1.4.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 storagemanagementclient/1.4.0 Azure-SDK-For-Python AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Storage/storageAccounts/clitest000002?api-version=2017-06-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Storage/storageAccounts/clitest000002","kind":"Storage","location":"westus","name":"clitest000002","properties":{"creationTime":"2017-10-24T23:24:33.7074291Z","encryption":{"keySource":"Microsoft.Storage","services":{"blob":{"enabled":true,"lastEnabledTime":"2017-10-24T23:24:33.7104272Z"},"file":{"enabled":true,"lastEnabledTime":"2017-10-24T23:24:33.7104272Z"}}},"networkAcls":{"bypass":"AzureServices","defaultAction":"Allow","ipRules":[],"virtualNetworkRules":[]},"primaryEndpoints":{"blob":"https://clitest000002.blob.core.windows.net/","file":"https://clitest000002.file.core.windows.net/","queue":"https://clitest000002.queue.core.windows.net/","table":"https://clitest000002.table.core.windows.net/"},"primaryLocation":"westus","provisioningState":"Succeeded","statusOfPrimary":"available","supportsHttpsTrafficOnly":false},"sku":{"name":"Standard_LRS","tier":"Standard"},"tags":{},"type":"Microsoft.Storage/storageAccounts"}
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Storage/storageAccounts/clitest000002","kind":"Storage","location":"westus","name":"clitest000002","properties":{"creationTime":"2017-11-15T22:21:21.6280868Z","encryption":{"keySource":"Microsoft.Storage","services":{"blob":{"enabled":true,"lastEnabledTime":"2017-11-15T22:21:21.6300866Z"},"file":{"enabled":true,"lastEnabledTime":"2017-11-15T22:21:21.6300866Z"}}},"networkAcls":{"bypass":"AzureServices","defaultAction":"Allow","ipRules":[],"virtualNetworkRules":[]},"primaryEndpoints":{"blob":"https://clitest000002.blob.core.windows.net/","file":"https://clitest000002.file.core.windows.net/","queue":"https://clitest000002.queue.core.windows.net/","table":"https://clitest000002.table.core.windows.net/"},"primaryLocation":"westus","provisioningState":"Succeeded","statusOfPrimary":"available","supportsHttpsTrafficOnly":false},"sku":{"name":"Standard_LRS","tier":"Standard"},"tags":{},"type":"Microsoft.Storage/storageAccounts"}
|
||||
|
||||
'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['1170']
|
||||
content-type: [application/json]
|
||||
date: ['Tue, 24 Oct 2017 23:24:52 GMT']
|
||||
date: ['Wed, 15 Nov 2017 22:22:08 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
|
||||
|
@ -233,67 +258,171 @@ interactions:
|
|||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 storagemanagementclient/1.4.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 storagemanagementclient/1.4.0 Azure-SDK-For-Python AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: POST
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Storage/storageAccounts/clitest000002/listKeys?api-version=2017-06-01
|
||||
response:
|
||||
body: {string: '{"keys":[{"keyName":"key1","permissions":"Full","value":"FFBwgB9RI9FW17YxAGGG41N54i2TqRkQ12MVkMq0u4tvK5SEGUZgtnpQW27CZLbu+RrcoQl8/h1XFXXobPHgsA=="},{"keyName":"key2","permissions":"Full","value":"NpwIzGC6ymKh8dKxVOHdd9siMZplXc+O9ZFilB7NiyzSPhlXVzqUsvyOViEI81LBrLffROUcKcYh/YZc7X8iKQ=="}]}
|
||||
body: {string: '{"keys":[{"keyName":"key1","permissions":"Full","value":"dhjze/964wI3nkzmZ62qYay2PEDlxSQ+iZ8amSk4cHgUp1+qKRLTjxB+HRxISA7L8RJboeOWXUTqFpJYXhwOUQ=="},{"keyName":"key2","permissions":"Full","value":"eXS8D5WRKsczlFChajtTNrGEIIb0c6+oQHl1YkAc0w5Nuuk4gTM2i8BEbrnkbtWXDf1GoEn7LwkFGIED/neBeg=="}]}
|
||||
|
||||
'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['289']
|
||||
content-type: [application/json]
|
||||
date: ['Tue, 24 Oct 2017 23:24:53 GMT']
|
||||
date: ['Wed, 15 Nov 2017 22:22:08 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1197']
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1198']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: 'b''b\''{"properties": {"siteConfig": {"localMySqlEnabled": false, "netFrameworkVersion":
|
||||
"v4.6", "appSettings": [{"name": "AzureWebJobsStorage", "value": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=clitest000002;AccountKey=FFBwgB9RI9FW17YxAGGG41N54i2TqRkQ12MVkMq0u4tvK5SEGUZgtnpQW27CZLbu+RrcoQl8/h1XFXXobPHgsA=="},
|
||||
{"name": "AzureWebJobsDashboard", "value": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=clitest000002;AccountKey=FFBwgB9RI9FW17YxAGGG41N54i2TqRkQ12MVkMq0u4tvK5SEGUZgtnpQW27CZLbu+RrcoQl8/h1XFXXobPHgsA=="},
|
||||
{"name": "WEBSITE_NODE_DEFAULT_VERSION", "value": "6.5.0"}, {"name": "FUNCTIONS_EXTENSION_VERSION",
|
||||
"value": "~1"}, {"name": "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING", "value":
|
||||
"DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=clitest000002;AccountKey=FFBwgB9RI9FW17YxAGGG41N54i2TqRkQ12MVkMq0u4tvK5SEGUZgtnpQW27CZLbu+RrcoQl8/h1XFXXobPHgsA=="},
|
||||
{"name": "WEBSITE_CONTENTSHARE", "value": "functionappconsumption000003"}]},
|
||||
"scmSiteAlsoStopped": false, "reserved": false}, "location": "westus", "kind":
|
||||
"functionapp"}\'''''
|
||||
body: 'b''b\''{"location": "westus", "kind": "functionapp", "properties": {"reserved":
|
||||
false, "scmSiteAlsoStopped": false, "siteConfig": {"appSettings": [{"name":
|
||||
"AzureWebJobsStorage", "value": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=clitest000002;AccountKey=dhjze/964wI3nkzmZ62qYay2PEDlxSQ+iZ8amSk4cHgUp1+qKRLTjxB+HRxISA7L8RJboeOWXUTqFpJYXhwOUQ=="},
|
||||
{"name": "AzureWebJobsDashboard", "value": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=clitest000002;AccountKey=dhjze/964wI3nkzmZ62qYay2PEDlxSQ+iZ8amSk4cHgUp1+qKRLTjxB+HRxISA7L8RJboeOWXUTqFpJYXhwOUQ=="},
|
||||
{"name": "WEBSITE_NODE_DEFAULT_VERSION", "value": "6.5.0"}, {"name": "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING",
|
||||
"value": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=clitest000002;AccountKey=dhjze/964wI3nkzmZ62qYay2PEDlxSQ+iZ8amSk4cHgUp1+qKRLTjxB+HRxISA7L8RJboeOWXUTqFpJYXhwOUQ=="},
|
||||
{"name": "WEBSITE_CONTENTSHARE", "value": "functionappconsumption000003"}],
|
||||
"localMySqlEnabled": false, "netFrameworkVersion": "v4.6"}}}\'''''
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [functionapp create]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['1162']
|
||||
Content-Length: ['1106']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Web/sites/functionappconsumption000003?api-version=2016-08-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Web/sites/functionappconsumption000003","name":"functionappconsumption000003","type":"Microsoft.Web/sites","kind":"functionapp","location":"westus","properties":{"name":"functionappconsumption000003","state":"Running","hostNames":["functionappconsumption000003.azurewebsites.net"],"webSpace":"azurecli-functionapp-c-e2e000001-WestUSwebspace","selfLink":"https://waws-prod-bay-033.api.azurewebsites.windows.net/subscriptions/00000000-0000-0000-0000-000000000000/webspaces/azurecli-functionapp-c-e2e000001-WestUSwebspace/sites/functionappconsumption000003","repositorySiteName":"functionappconsumption000003","owner":null,"usageState":"Normal","enabled":true,"adminEnabled":true,"enabledHostNames":["functionappconsumption000003.azurewebsites.net","functionappconsumption000003.scm.azurewebsites.net"],"siteProperties":{"metadata":null,"properties":[],"appSettings":null},"availabilityState":"Normal","sslCertificates":null,"csrs":[],"cers":null,"siteMode":null,"hostNameSslStates":[{"name":"functionappconsumption000003.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Standard"},{"name":"functionappconsumption000003.scm.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Repository"}],"computeMode":null,"serverFarm":null,"serverFarmId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Web/serverfarms/WestUSPlan","reserved":false,"lastModifiedTimeUtc":"2017-10-24T23:24:58.16","storageRecoveryDefaultState":"Running","contentAvailabilityState":"Normal","runtimeAvailabilityState":"Normal","siteConfig":null,"deploymentId":"functionappconsumption000003","trafficManagerHostNames":null,"sku":"Dynamic","scmSiteAlsoStopped":false,"targetSwapSlot":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"clientAffinityEnabled":true,"clientCertEnabled":false,"hostNamesDisabled":false,"domainVerificationIdentifiers":null,"kind":"functionapp","outboundIpAddresses":"40.112.137.127,40.112.139.85,40.112.142.204,40.112.139.188","possibleOutboundIpAddresses":"40.112.137.127,40.112.139.85,40.112.142.204,40.112.139.188","containerSize":1536,"dailyMemoryTimeQuota":0,"suspendedTill":null,"siteDisabledReason":0,"functionExecutionUnitsCache":null,"maxNumberOfWorkers":null,"homeStamp":"waws-prod-bay-033","cloningInfo":null,"snapshotInfo":null,"hostingEnvironmentId":null,"tags":null,"resourceGroup":"azurecli-functionapp-c-e2e000001","defaultHostName":"functionappconsumption000003.azurewebsites.net","slotSwapStatus":null}}'}
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Web/sites/functionappconsumption000003","name":"functionappconsumption000003","type":"Microsoft.Web/sites","kind":"functionapp","location":"westus","properties":{"name":"functionappconsumption000003","state":"Running","hostNames":["functionappconsumption000003.azurewebsites.net"],"webSpace":"azurecli-functionapp-c-e2e000001-WestUSwebspace","selfLink":"https://waws-prod-bay-007.api.azurewebsites.windows.net:454/subscriptions/00000000-0000-0000-0000-000000000000/webspaces/azurecli-functionapp-c-e2e000001-WestUSwebspace/sites/functionappconsumption000003","repositorySiteName":"functionappconsumption000003","owner":null,"usageState":"Normal","enabled":true,"adminEnabled":true,"enabledHostNames":["functionappconsumption000003.azurewebsites.net","functionappconsumption000003.scm.azurewebsites.net"],"siteProperties":{"metadata":null,"properties":[],"appSettings":null},"availabilityState":"Normal","sslCertificates":null,"csrs":[],"cers":null,"siteMode":null,"hostNameSslStates":[{"name":"functionappconsumption000003.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Standard"},{"name":"functionappconsumption000003.scm.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Repository"}],"computeMode":null,"serverFarm":null,"serverFarmId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Web/serverfarms/WestUSPlan","reserved":false,"lastModifiedTimeUtc":"2017-11-15T22:22:12.54","storageRecoveryDefaultState":"Running","contentAvailabilityState":"Normal","runtimeAvailabilityState":"Normal","siteConfig":null,"deploymentId":"functionappconsumption000003","trafficManagerHostNames":null,"sku":"Dynamic","scmSiteAlsoStopped":false,"targetSwapSlot":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"clientAffinityEnabled":true,"clientCertEnabled":false,"hostNamesDisabled":false,"domainVerificationIdentifiers":null,"kind":"functionapp","outboundIpAddresses":"138.91.225.153,138.91.226.7,138.91.226.231,138.91.226.57","possibleOutboundIpAddresses":"138.91.225.153,138.91.226.7,138.91.226.231,138.91.226.57","containerSize":1536,"dailyMemoryTimeQuota":0,"suspendedTill":null,"siteDisabledReason":0,"functionExecutionUnitsCache":null,"maxNumberOfWorkers":null,"homeStamp":"waws-prod-bay-007","cloningInfo":null,"snapshotInfo":null,"hostingEnvironmentId":null,"tags":null,"resourceGroup":"azurecli-functionapp-c-e2e000001","defaultHostName":"functionappconsumption000003.azurewebsites.net","slotSwapStatus":null,"httpsOnly":false}}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['3260']
|
||||
content-length: ['3278']
|
||||
content-type: [application/json]
|
||||
date: ['Tue, 24 Oct 2017 23:25:10 GMT']
|
||||
etag: ['"1D34D1F4EE60A20"']
|
||||
date: ['Wed, 15 Nov 2017 22:22:19 GMT']
|
||||
etag: ['"1D35E602FAB4060"']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/8.0]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1195']
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [functionapp list]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Web/sites?api-version=2016-08-01
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Web/sites/functionappconsumption000003","name":"functionappconsumption000003","type":"Microsoft.Web/sites","kind":"functionapp","location":"West
|
||||
US","properties":{"name":"functionappconsumption000003","state":"Running","hostNames":["functionappconsumption000003.azurewebsites.net"],"webSpace":"azurecli-functionapp-c-e2e000001-WestUSwebspace","selfLink":"https://waws-prod-bay-007.api.azurewebsites.windows.net:454/subscriptions/00000000-0000-0000-0000-000000000000/webspaces/azurecli-functionapp-c-e2e000001-WestUSwebspace/sites/functionappconsumption000003","repositorySiteName":"functionappconsumption000003","owner":null,"usageState":"Normal","enabled":true,"adminEnabled":true,"enabledHostNames":["functionappconsumption000003.azurewebsites.net","functionappconsumption000003.scm.azurewebsites.net"],"siteProperties":{"metadata":null,"properties":[],"appSettings":null},"availabilityState":"Normal","sslCertificates":null,"csrs":[],"cers":null,"siteMode":null,"hostNameSslStates":[{"name":"functionappconsumption000003.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Standard"},{"name":"functionappconsumption000003.scm.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Repository"}],"computeMode":null,"serverFarm":null,"serverFarmId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Web/serverfarms/WestUSPlan","reserved":false,"lastModifiedTimeUtc":"2017-11-15T22:22:13.35","storageRecoveryDefaultState":"Running","contentAvailabilityState":"Normal","runtimeAvailabilityState":"Normal","siteConfig":null,"deploymentId":"functionappconsumption000003","trafficManagerHostNames":null,"sku":"Dynamic","scmSiteAlsoStopped":false,"targetSwapSlot":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"clientAffinityEnabled":true,"clientCertEnabled":false,"hostNamesDisabled":false,"domainVerificationIdentifiers":null,"kind":"functionapp","outboundIpAddresses":"138.91.225.153,138.91.226.7,138.91.226.231,138.91.226.57","possibleOutboundIpAddresses":"138.91.225.153,138.91.226.7,138.91.226.231,138.91.226.57","containerSize":1536,"dailyMemoryTimeQuota":0,"suspendedTill":null,"siteDisabledReason":0,"functionExecutionUnitsCache":null,"maxNumberOfWorkers":null,"homeStamp":"waws-prod-bay-007","cloningInfo":null,"snapshotInfo":null,"hostingEnvironmentId":null,"tags":null,"resourceGroup":"azurecli-functionapp-c-e2e000001","defaultHostName":"functionappconsumption000003.azurewebsites.net","slotSwapStatus":null,"httpsOnly":false}}],"nextLink":null,"id":null}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['3317']
|
||||
content-type: [application/json]
|
||||
date: ['Wed, 15 Nov 2017 22:22:19 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [functionapp show]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Web/sites/functionappconsumption000003?api-version=2016-08-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Web/sites/functionappconsumption000003","name":"functionappconsumption000003","type":"Microsoft.Web/sites","kind":"functionapp","location":"West
|
||||
US","properties":{"name":"functionappconsumption000003","state":"Running","hostNames":["functionappconsumption000003.azurewebsites.net"],"webSpace":"azurecli-functionapp-c-e2e000001-WestUSwebspace","selfLink":"https://waws-prod-bay-007.api.azurewebsites.windows.net:454/subscriptions/00000000-0000-0000-0000-000000000000/webspaces/azurecli-functionapp-c-e2e000001-WestUSwebspace/sites/functionappconsumption000003","repositorySiteName":"functionappconsumption000003","owner":null,"usageState":"Normal","enabled":true,"adminEnabled":true,"enabledHostNames":["functionappconsumption000003.azurewebsites.net","functionappconsumption000003.scm.azurewebsites.net"],"siteProperties":{"metadata":null,"properties":[],"appSettings":null},"availabilityState":"Normal","sslCertificates":null,"csrs":[],"cers":null,"siteMode":null,"hostNameSslStates":[{"name":"functionappconsumption000003.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Standard"},{"name":"functionappconsumption000003.scm.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Repository"}],"computeMode":null,"serverFarm":null,"serverFarmId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Web/serverfarms/WestUSPlan","reserved":false,"lastModifiedTimeUtc":"2017-11-15T22:22:13.35","storageRecoveryDefaultState":"Running","contentAvailabilityState":"Normal","runtimeAvailabilityState":"Normal","siteConfig":null,"deploymentId":"functionappconsumption000003","trafficManagerHostNames":null,"sku":"Dynamic","scmSiteAlsoStopped":false,"targetSwapSlot":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"clientAffinityEnabled":true,"clientCertEnabled":false,"hostNamesDisabled":false,"domainVerificationIdentifiers":null,"kind":"functionapp","outboundIpAddresses":"138.91.225.153,138.91.226.7,138.91.226.231,138.91.226.57","possibleOutboundIpAddresses":"138.91.225.153,138.91.226.7,138.91.226.231,138.91.226.57","containerSize":1536,"dailyMemoryTimeQuota":0,"suspendedTill":null,"siteDisabledReason":0,"functionExecutionUnitsCache":null,"maxNumberOfWorkers":null,"homeStamp":"waws-prod-bay-007","cloningInfo":null,"snapshotInfo":null,"hostingEnvironmentId":null,"tags":null,"resourceGroup":"azurecli-functionapp-c-e2e000001","defaultHostName":"functionappconsumption000003.azurewebsites.net","slotSwapStatus":null,"httpsOnly":false}}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['3279']
|
||||
content-type: [application/json]
|
||||
date: ['Wed, 15 Nov 2017 22:22:20 GMT']
|
||||
etag: ['"1D35E602FAB4060"']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '{}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [functionapp show]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['2']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: POST
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Web/sites/functionappconsumption000003/publishxml?api-version=2016-08-01
|
||||
response:
|
||||
body: {string: '<publishData><publishProfile profileName="functionappconsumption000003
|
||||
- Web Deploy" publishMethod="MSDeploy" publishUrl="functionappconsumption000003.scm.azurewebsites.net:443"
|
||||
msdeploySite="functionappconsumption000003" userName="$functionappconsumption000003"
|
||||
userPWD="qWeHvv5Wsmm7JqqxZEftmWbYwpG9A8jMhaqSchGAm3qo2iAs4iEEfAlLp0eq" destinationAppUrl="http://functionappconsumption000003.azurewebsites.net"
|
||||
SQLServerDBConnectionString="" mySQLDBConnectionString="" hostingProviderForumLink=""
|
||||
controlPanelLink="http://windows.azure.com" webSystem="WebSites"><databases
|
||||
/></publishProfile><publishProfile profileName="functionappconsumption000003
|
||||
- FTP" publishMethod="FTP" publishUrl="ftp://waws-prod-bay-007.ftp.azurewebsites.windows.net/site/wwwroot"
|
||||
ftpPassiveMode="True" userName="functionappconsumption000003\$functionappconsumption000003"
|
||||
userPWD="qWeHvv5Wsmm7JqqxZEftmWbYwpG9A8jMhaqSchGAm3qo2iAs4iEEfAlLp0eq" destinationAppUrl="http://functionappconsumption000003.azurewebsites.net"
|
||||
SQLServerDBConnectionString="" mySQLDBConnectionString="" hostingProviderForumLink=""
|
||||
controlPanelLink="http://windows.azure.com" webSystem="WebSites"><databases
|
||||
/></publishProfile></publishData>'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['1294']
|
||||
content-type: [application/xml]
|
||||
date: ['Wed, 15 Nov 2017 22:22:20 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-ms-ratelimit-remaining-subscription-resource-requests: ['11999']
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
|
@ -305,9 +434,9 @@ interactions:
|
|||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: DELETE
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azurecli-functionapp-c-e2e000001/providers/Microsoft.Web/sites/functionappconsumption000003?api-version=2016-08-01
|
||||
|
@ -316,14 +445,14 @@ interactions:
|
|||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['0']
|
||||
date: ['Tue, 24 Oct 2017 23:25:17 GMT']
|
||||
etag: ['"1D34D1F4EE60A20"']
|
||||
date: ['Wed, 15 Nov 2017 22:22:25 GMT']
|
||||
etag: ['"1D35E602FAB4060"']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/8.0]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1198']
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
|
@ -335,9 +464,9 @@ interactions:
|
|||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: DELETE
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/azurecli-functionapp-c-e2e000001?api-version=2017-05-10
|
||||
|
@ -346,11 +475,11 @@ interactions:
|
|||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['0']
|
||||
date: ['Tue, 24 Oct 2017 23:25:18 GMT']
|
||||
date: ['Wed, 15 Nov 2017 22:22:26 GMT']
|
||||
expires: ['-1']
|
||||
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BWlVSRUNMSToyREZVTkNUSU9OQVBQOjJEQzoyREUyRVIzVUM1RTRCU1pGMkhNRnwxQTE4QkM1NkU1NDNGRkRFLVdFU1RVUyIsImpvYkxvY2F0aW9uIjoid2VzdHVzIn0?api-version=2017-05-10']
|
||||
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BWlVSRUNMSToyREZVTkNUSU9OQVBQOjJEQzoyREUyRUZGTE4zWldYNEtISFQzTHwxMzQ2M0UwMjg1OTQ1QTZBLVdFU1RVUyIsImpvYkxvY2F0aW9uIjoid2VzdHVzIn0?api-version=2017-05-10']
|
||||
pragma: [no-cache]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1191']
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 202, message: Accepted}
|
||||
version: 1
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,6 +1,6 @@
|
|||
interactions:
|
||||
- request:
|
||||
body: '{"location": "japaneast", "tags": {"use": "az-test"}}'
|
||||
body: '{"tags": {"use": "az-test"}, "location": "japaneast"}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
|
@ -8,9 +8,9 @@ interactions:
|
|||
Connection: [keep-alive]
|
||||
Content-Length: ['53']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.2 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2017-05-10
|
||||
|
@ -20,7 +20,7 @@ interactions:
|
|||
cache-control: [no-cache]
|
||||
content-length: ['331']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Tue, 24 Oct 2017 23:33:59 GMT']
|
||||
date: ['Sat, 18 Nov 2017 01:13:04 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
|
@ -34,9 +34,9 @@ interactions:
|
|||
CommandName: [appservice plan create]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.2 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2017-05-10
|
||||
|
@ -46,16 +46,16 @@ interactions:
|
|||
cache-control: [no-cache]
|
||||
content-length: ['331']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Tue, 24 Oct 2017 23:33:59 GMT']
|
||||
date: ['Sat, 18 Nov 2017 01:13:04 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
vary: [Accept-Encoding]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: 'b''{"sku": {"tier": "BASIC", "name": "B1", "capacity": 1}, "properties":
|
||||
{"perSiteScaling": false, "reserved": true, "name": "plan-quick-linux000003"},
|
||||
"location": "japaneast"}'''
|
||||
body: 'b''{"properties": {"name": "plan-quick-linux000003", "perSiteScaling":
|
||||
false, "reserved": true}, "location": "japaneast", "sku": {"name": "B1", "tier":
|
||||
"BASIC", "capacity": 1}}'''
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
|
@ -63,29 +63,29 @@ interactions:
|
|||
Connection: [keep-alive]
|
||||
Content-Length: ['175']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.2 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/plan-quick-linux000003?api-version=2016-09-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/plan-quick-linux000003","name":"plan-quick-linux000003","type":"Microsoft.Web/serverfarms","kind":"linux","location":"Japan
|
||||
East","properties":{"serverFarmId":0,"name":"plan-quick-linux000003","workerSize":"Default","workerSizeId":0,"workerTierName":null,"numberOfWorkers":1,"currentWorkerSize":"Default","currentWorkerSizeId":0,"currentNumberOfWorkers":1,"status":"Ready","webSpace":"clitest.rg000001-JapanEastwebspace","subscription":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","adminSiteName":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"maximumNumberOfWorkers":3,"planName":"VirtualDedicatedPlan","adminRuntimeSiteName":null,"computeMode":"Shared","siteMode":null,"geoRegion":"Japan
|
||||
East","perSiteScaling":false,"numberOfSites":0,"hostingEnvironmentId":null,"isSpot":false,"spotExpirationTime":null,"tags":null,"kind":"linux","resourceGroup":"clitest.rg000001","reserved":true,"mdmId":"waws-prod-ty1-011_567","targetWorkerCount":0,"targetWorkerSizeId":0,"provisioningState":"Succeeded"},"sku":{"name":"B1","tier":"Basic","size":"B1","family":"B","capacity":1}}'}
|
||||
East","properties":{"serverFarmId":0,"name":"plan-quick-linux000003","workerSize":"Default","workerSizeId":0,"workerTierName":null,"numberOfWorkers":1,"currentWorkerSize":"Default","currentWorkerSizeId":0,"currentNumberOfWorkers":1,"status":"Ready","webSpace":"clitest.rg000001-JapanEastwebspace","subscription":"8d57ddbd-c779-40ea-b660-1015f4bf027d","adminSiteName":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"maximumNumberOfWorkers":3,"planName":"VirtualDedicatedPlan","adminRuntimeSiteName":null,"computeMode":"Shared","siteMode":null,"geoRegion":"Japan
|
||||
East","perSiteScaling":false,"numberOfSites":0,"hostingEnvironmentId":null,"isSpot":false,"spotExpirationTime":null,"tags":null,"kind":"linux","resourceGroup":"clitest.rg000001","reserved":true,"mdmId":"waws-prod-ty1-011_833","targetWorkerCount":0,"targetWorkerSizeId":0,"provisioningState":"Succeeded"},"sku":{"name":"B1","tier":"Basic","size":"B1","family":"B","capacity":1}}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['1389']
|
||||
content-type: [application/json]
|
||||
date: ['Tue, 24 Oct 2017 23:34:13 GMT']
|
||||
date: ['Sat, 18 Nov 2017 01:13:17 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/8.0]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1193']
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
|
@ -96,24 +96,24 @@ interactions:
|
|||
CommandName: [webapp create]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.2 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/plan-quick-linux000003?api-version=2016-09-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/plan-quick-linux000003","name":"plan-quick-linux000003","type":"Microsoft.Web/serverfarms","kind":"linux","location":"Japan
|
||||
East","properties":{"serverFarmId":0,"name":"plan-quick-linux000003","workerSize":"Default","workerSizeId":0,"workerTierName":null,"numberOfWorkers":1,"currentWorkerSize":"Default","currentWorkerSizeId":0,"currentNumberOfWorkers":1,"status":"Ready","webSpace":"clitest.rg000001-JapanEastwebspace","subscription":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","adminSiteName":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"maximumNumberOfWorkers":3,"planName":"VirtualDedicatedPlan","adminRuntimeSiteName":null,"computeMode":"Shared","siteMode":null,"geoRegion":"Japan
|
||||
East","perSiteScaling":false,"numberOfSites":0,"hostingEnvironmentId":null,"isSpot":false,"spotExpirationTime":null,"tags":null,"kind":"linux","resourceGroup":"clitest.rg000001","reserved":true,"mdmId":"waws-prod-ty1-011_567","targetWorkerCount":0,"targetWorkerSizeId":0,"provisioningState":"Succeeded"},"sku":{"name":"B1","tier":"Basic","size":"B1","family":"B","capacity":1}}'}
|
||||
East","properties":{"serverFarmId":0,"name":"plan-quick-linux000003","workerSize":"Default","workerSizeId":0,"workerTierName":null,"numberOfWorkers":1,"currentWorkerSize":"Default","currentWorkerSizeId":0,"currentNumberOfWorkers":1,"status":"Ready","webSpace":"clitest.rg000001-JapanEastwebspace","subscription":"8d57ddbd-c779-40ea-b660-1015f4bf027d","adminSiteName":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"maximumNumberOfWorkers":3,"planName":"VirtualDedicatedPlan","adminRuntimeSiteName":null,"computeMode":"Shared","siteMode":null,"geoRegion":"Japan
|
||||
East","perSiteScaling":false,"numberOfSites":0,"hostingEnvironmentId":null,"isSpot":false,"spotExpirationTime":null,"tags":null,"kind":"linux","resourceGroup":"clitest.rg000001","reserved":true,"mdmId":"waws-prod-ty1-011_833","targetWorkerCount":0,"targetWorkerSizeId":0,"provisioningState":"Succeeded"},"sku":{"name":"B1","tier":"Basic","size":"B1","family":"B","capacity":1}}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['1389']
|
||||
content-type: [application/json]
|
||||
date: ['Tue, 24 Oct 2017 23:34:14 GMT']
|
||||
date: ['Sat, 18 Nov 2017 01:13:18 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/8.0]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
|
@ -121,11 +121,11 @@ interactions:
|
|||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: 'b''b\''{"properties": {"siteConfig": {"localMySqlEnabled": false, "netFrameworkVersion":
|
||||
"v4.6", "linuxFxVersion": "DOCKER|naziml/ruby-hello", "appSettings": [{"name":
|
||||
"WEBSITES_ENABLE_APP_SERVICE_STORAGE", "value": "false"}]}, "scmSiteAlsoStopped":
|
||||
false, "reserved": false, "serverFarmId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/plan-quick-linux000003"},
|
||||
"location": "Japan East"}\'''''
|
||||
body: 'b''b\''{"properties": {"serverFarmId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/plan-quick-linux000003",
|
||||
"reserved": false, "siteConfig": {"netFrameworkVersion": "v4.6", "appSettings":
|
||||
[{"name": "WEBSITES_ENABLE_APP_SERVICE_STORAGE", "value": "false"}], "localMySqlEnabled":
|
||||
false, "linuxFxVersion": "DOCKER|naziml/ruby-hello"}, "scmSiteAlsoStopped":
|
||||
false}, "location": "Japan East"}\'''''
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
|
@ -133,29 +133,29 @@ interactions:
|
|||
Connection: [keep-alive]
|
||||
Content-Length: ['518']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.2 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/sites/webapp-quick-linux000002?api-version=2016-08-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/sites/webapp-quick-linux000002","name":"webapp-quick-linux000002","type":"Microsoft.Web/sites","kind":"app","location":"Japan
|
||||
East","properties":{"name":"webapp-quick-linux000002","state":"Running","hostNames":["webapp-quick-linux000002.azurewebsites.net"],"webSpace":"clitest.rg000001-JapanEastwebspace","selfLink":"https://waws-prod-ty1-011.api.azurewebsites.windows.net:454/subscriptions/00000000-0000-0000-0000-000000000000/webspaces/clitest.rg000001-JapanEastwebspace/sites/webapp-quick-linux000002","repositorySiteName":"webapp-quick-linux000002","owner":null,"usageState":"Normal","enabled":true,"adminEnabled":true,"enabledHostNames":["webapp-quick-linux000002.azurewebsites.net","webapp-quick-linux000002.scm.azurewebsites.net"],"siteProperties":{"metadata":null,"properties":[],"appSettings":null},"availabilityState":"Normal","sslCertificates":null,"csrs":[],"cers":null,"siteMode":null,"hostNameSslStates":[{"name":"webapp-quick-linux000002.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Standard"},{"name":"webapp-quick-linux000002.scm.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Repository"}],"computeMode":null,"serverFarm":null,"serverFarmId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/plan-quick-linux000003","reserved":true,"lastModifiedTimeUtc":"2017-10-24T23:34:20.5366667","storageRecoveryDefaultState":"Running","contentAvailabilityState":"Normal","runtimeAvailabilityState":"Normal","siteConfig":null,"deploymentId":"webapp-quick-linux000002","trafficManagerHostNames":null,"sku":"Basic","scmSiteAlsoStopped":false,"targetSwapSlot":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"clientAffinityEnabled":true,"clientCertEnabled":false,"hostNamesDisabled":false,"domainVerificationIdentifiers":null,"kind":"app","outboundIpAddresses":"13.73.26.73,13.73.30.113,52.243.32.123,52.243.37.163,13.73.27.207","possibleOutboundIpAddresses":"13.73.26.73,13.73.30.113,52.243.32.123,52.243.37.163,13.73.27.207","containerSize":0,"dailyMemoryTimeQuota":0,"suspendedTill":null,"siteDisabledReason":0,"functionExecutionUnitsCache":null,"maxNumberOfWorkers":null,"homeStamp":"waws-prod-ty1-011","cloningInfo":null,"snapshotInfo":null,"hostingEnvironmentId":null,"tags":null,"resourceGroup":"clitest.rg000001","defaultHostName":"webapp-quick-linux000002.azurewebsites.net","slotSwapStatus":null}}'}
|
||||
East","properties":{"name":"webapp-quick-linux000002","state":"Running","hostNames":["webapp-quick-linux000002.azurewebsites.net"],"webSpace":"clitest.rg000001-JapanEastwebspace","selfLink":"https://waws-prod-ty1-011.api.azurewebsites.windows.net:454/subscriptions/00000000-0000-0000-0000-000000000000/webspaces/clitest.rg000001-JapanEastwebspace/sites/webapp-quick-linux000002","repositorySiteName":"webapp-quick-linux000002","owner":null,"usageState":"Normal","enabled":true,"adminEnabled":true,"enabledHostNames":["webapp-quick-linux000002.azurewebsites.net","webapp-quick-linux000002.scm.azurewebsites.net"],"siteProperties":{"metadata":null,"properties":[],"appSettings":null},"availabilityState":"Normal","sslCertificates":null,"csrs":[],"cers":null,"siteMode":null,"hostNameSslStates":[{"name":"webapp-quick-linux000002.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Standard"},{"name":"webapp-quick-linux000002.scm.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Repository"}],"computeMode":null,"serverFarm":null,"serverFarmId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/plan-quick-linux000003","reserved":true,"lastModifiedTimeUtc":"2017-11-18T01:13:23.9466667","storageRecoveryDefaultState":"Running","contentAvailabilityState":"Normal","runtimeAvailabilityState":"Normal","siteConfig":null,"deploymentId":"webapp-quick-linux000002","trafficManagerHostNames":null,"sku":"Basic","scmSiteAlsoStopped":false,"targetSwapSlot":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"clientAffinityEnabled":true,"clientCertEnabled":false,"hostNamesDisabled":false,"domainVerificationIdentifiers":null,"kind":"app","outboundIpAddresses":"13.73.26.73,13.73.30.113,52.243.32.123,52.243.37.163,13.73.27.207","possibleOutboundIpAddresses":"13.73.26.73,13.73.30.113,52.243.32.123,52.243.37.163,13.73.27.207","containerSize":0,"dailyMemoryTimeQuota":0,"suspendedTill":null,"siteDisabledReason":0,"functionExecutionUnitsCache":null,"maxNumberOfWorkers":null,"homeStamp":"waws-prod-ty1-011","cloningInfo":null,"snapshotInfo":null,"hostingEnvironmentId":null,"tags":null,"resourceGroup":"clitest.rg000001","defaultHostName":"webapp-quick-linux000002.azurewebsites.net","slotSwapStatus":null,"httpsOnly":false}}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['3093']
|
||||
content-length: ['3111']
|
||||
content-type: [application/json]
|
||||
date: ['Tue, 24 Oct 2017 23:34:22 GMT']
|
||||
etag: ['"1D34D209DFFF80B"']
|
||||
date: ['Sat, 18 Nov 2017 01:13:30 GMT']
|
||||
etag: ['"1D3600A6E6CB335"']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/8.0]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1195']
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
|
@ -167,9 +167,9 @@ interactions:
|
|||
Connection: [keep-alive]
|
||||
Content-Length: ['2']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.2 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: POST
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/sites/webapp-quick-linux000002/publishxml?api-version=2016-08-01
|
||||
|
@ -177,13 +177,13 @@ interactions:
|
|||
body: {string: '<publishData><publishProfile profileName="webapp-quick-linux000002
|
||||
- Web Deploy" publishMethod="MSDeploy" publishUrl="webapp-quick-linux000002.scm.azurewebsites.net:443"
|
||||
msdeploySite="webapp-quick-linux000002" userName="$webapp-quick-linux000002"
|
||||
userPWD="vo4svsCQr8FkpqQ4nzstAXKZttng6RAKa9XtRGbgnmllfbrYFTkDPQsqlCls" destinationAppUrl="http://webapp-quick-linux000002.azurewebsites.net"
|
||||
userPWD="lt8XohoqBsG0ggkLlLomCyZlZkxwC1ZeBBm3lYnb4Aqqh2sJwfubn8wg6XHg" destinationAppUrl="http://webapp-quick-linux000002.azurewebsites.net"
|
||||
SQLServerDBConnectionString="" mySQLDBConnectionString="" hostingProviderForumLink=""
|
||||
controlPanelLink="http://windows.azure.com" webSystem="WebSites"><databases
|
||||
/></publishProfile><publishProfile profileName="webapp-quick-linux000002 -
|
||||
FTP" publishMethod="FTP" publishUrl="ftp://waws-prod-ty1-011.ftp.azurewebsites.windows.net/site/wwwroot"
|
||||
ftpPassiveMode="True" userName="webapp-quick-linux000002\$webapp-quick-linux000002"
|
||||
userPWD="vo4svsCQr8FkpqQ4nzstAXKZttng6RAKa9XtRGbgnmllfbrYFTkDPQsqlCls" destinationAppUrl="http://webapp-quick-linux000002.azurewebsites.net"
|
||||
userPWD="lt8XohoqBsG0ggkLlLomCyZlZkxwC1ZeBBm3lYnb4Aqqh2sJwfubn8wg6XHg" destinationAppUrl="http://webapp-quick-linux000002.azurewebsites.net"
|
||||
SQLServerDBConnectionString="" mySQLDBConnectionString="" hostingProviderForumLink=""
|
||||
controlPanelLink="http://windows.azure.com" webSystem="WebSites"><databases
|
||||
/></publishProfile></publishData>'}
|
||||
|
@ -191,10 +191,10 @@ interactions:
|
|||
cache-control: [no-cache]
|
||||
content-length: ['1150']
|
||||
content-type: [application/xml]
|
||||
date: ['Tue, 24 Oct 2017 23:34:23 GMT']
|
||||
date: ['Sat, 18 Nov 2017 01:13:31 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/8.0]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-ms-ratelimit-remaining-subscription-resource-requests: ['11999']
|
||||
|
@ -214,8 +214,8 @@ interactions:
|
|||
headers:
|
||||
content-length: ['34']
|
||||
content-type: [text/html]
|
||||
date: ['Tue, 24 Oct 2017 23:36:56 GMT']
|
||||
set-cookie: [ARRAffinity=c5ca023cf00c2c55d26fd9fde28b31ebeba5d4ab2694580a387d9fd4508b6a79;Path=/;HttpOnly;Domain=webapp-quick-linuxrwuzei.azurewebsites.net]
|
||||
date: ['Sat, 18 Nov 2017 01:16:06 GMT']
|
||||
set-cookie: [ARRAffinity=33f1a758f61e99bd2e8e05c23423e58f3778bcfa2139444201c7d86e863a1711;Path=/;HttpOnly;Domain=webapp-quick-linuxojda2c.azurewebsites.net]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
|
@ -226,9 +226,9 @@ interactions:
|
|||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.2 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: POST
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/sites/webapp-quick-linux000002/config/appsettings/list?api-version=2016-08-01
|
||||
|
@ -239,10 +239,10 @@ interactions:
|
|||
cache-control: [no-cache]
|
||||
content-length: ['367']
|
||||
content-type: [application/json]
|
||||
date: ['Tue, 24 Oct 2017 23:36:55 GMT']
|
||||
date: ['Sat, 18 Nov 2017 01:16:08 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/8.0]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
|
@ -258,9 +258,9 @@ interactions:
|
|||
CommandName: [webapp config appsettings list]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.2 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/sites/webapp-quick-linux000002/config/slotConfigNames?api-version=2016-08-01
|
||||
|
@ -271,10 +271,10 @@ interactions:
|
|||
cache-control: [no-cache]
|
||||
content-length: ['165']
|
||||
content-type: [application/json]
|
||||
date: ['Tue, 24 Oct 2017 23:36:57 GMT']
|
||||
date: ['Sat, 18 Nov 2017 01:16:08 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/8.0]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
|
@ -290,9 +290,9 @@ interactions:
|
|||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.21]
|
||||
User-Agent: [python/3.5.2 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: DELETE
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2017-05-10
|
||||
|
@ -301,11 +301,11 @@ interactions:
|
|||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['0']
|
||||
date: ['Tue, 24 Oct 2017 23:37:01 GMT']
|
||||
date: ['Sat, 18 Nov 2017 01:16:11 GMT']
|
||||
expires: ['-1']
|
||||
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkdQR0dFWk5EUURaTk1CSUVZSFJNUktSV0NDVFpNM01aNUNOUHxBODgxQ0EyMDUwMzkzOTBELUpBUEFORUFTVCIsImpvYkxvY2F0aW9uIjoiamFwYW5lYXN0In0?api-version=2017-05-10']
|
||||
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkczWkhZNFlFNVJQSUJIQkNXNjZYUENMUE5ET1BXVlNBV0xUTXw0MTM1Qjg5QzdBQzcwNjhELUpBUEFORUFTVCIsImpvYkxvY2F0aW9uIjoiamFwYW5lYXN0In0?api-version=2017-05-10']
|
||||
pragma: [no-cache]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1194']
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 202, message: Accepted}
|
||||
version: 1
|
||||
|
|
|
@ -1,536 +1,563 @@
|
|||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
body: '{"tags": {"use": "az-test"}, "location": "westus"}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [group create]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['50']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
|
||||
AZURECLI/TEST/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
x-ms-client-request-id: [4eba1ff8-b915-11e7-90b6-64510658e3b3]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/test_cli_webapp_ssl?api-version=2017-05-10
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl","name":"test_cli_webapp_ssl","location":"westus","tags":{"use":"az-test"},"properties":{"provisioningState":"Succeeded"}}'}
|
||||
headers:
|
||||
Cache-Control: [no-cache]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
Date: ['Tue, 24 Oct 2017 23:44:41 GMT']
|
||||
Expires: ['-1']
|
||||
Pragma: [no-cache]
|
||||
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
|
||||
Vary: [Accept-Encoding]
|
||||
content-length: ['228']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '{"sku": {"tier": "BASIC", "name": "B1", "capacity": 1}, "properties": {"perSiteScaling":
|
||||
false, "name": "webapp-ssl-test-plan"}, "location": "westus"}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['150']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/TEST/2.0.21]
|
||||
accept-language: [en-US]
|
||||
x-ms-client-request-id: [4ed002a2-b915-11e7-bb72-64510658e3b3]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan?api-version=2016-09-01
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2017-05-10
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan","name":"webapp-ssl-test-plan","type":"Microsoft.Web/serverfarms","kind":"app","location":"West
|
||||
US","properties":{"serverFarmId":0,"name":"webapp-ssl-test-plan","workerSize":"Default","workerSizeId":0,"workerTierName":null,"numberOfWorkers":1,"currentWorkerSize":"Default","currentWorkerSizeId":0,"currentNumberOfWorkers":1,"status":"Ready","webSpace":"test_cli_webapp_ssl-WestUSwebspace","subscription":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","adminSiteName":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"maximumNumberOfWorkers":3,"planName":"VirtualDedicatedPlan","adminRuntimeSiteName":null,"computeMode":"Shared","siteMode":null,"geoRegion":"West
|
||||
US","perSiteScaling":false,"numberOfSites":0,"hostingEnvironmentId":null,"isSpot":false,"spotExpirationTime":null,"tags":null,"kind":"app","resourceGroup":"test_cli_webapp_ssl","reserved":false,"mdmId":"waws-prod-bay-085_2410","targetWorkerCount":0,"targetWorkerSizeId":0,"provisioningState":"Succeeded"},"sku":{"name":"B1","tier":"Basic","size":"B1","family":"B","capacity":1}}'}
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"westus","tags":{"use":"az-test"},"properties":{"provisioningState":"Succeeded"}}'}
|
||||
headers:
|
||||
Cache-Control: [no-cache]
|
||||
Content-Type: [application/json]
|
||||
Date: ['Tue, 24 Oct 2017 23:44:54 GMT']
|
||||
Expires: ['-1']
|
||||
Pragma: [no-cache]
|
||||
Server: [Microsoft-IIS/8.0]
|
||||
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: [Accept-Encoding]
|
||||
X-AspNet-Version: [4.0.30319]
|
||||
X-Powered-By: [ASP.NET]
|
||||
content-length: ['1216']
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1192']
|
||||
status: {code: 200, message: OK}
|
||||
cache-control: [no-cache]
|
||||
content-length: ['328']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Sat, 18 Nov 2017 00:40:40 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1197']
|
||||
status: {code: 201, message: Created}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [appservice plan create]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/TEST/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
x-ms-client-request-id: [55bf651c-b915-11e7-b1c9-64510658e3b3]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan?api-version=2016-09-01
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2017-05-10
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan","name":"webapp-ssl-test-plan","type":"Microsoft.Web/serverfarms","kind":"app","location":"West
|
||||
US","properties":{"serverFarmId":0,"name":"webapp-ssl-test-plan","workerSize":"Default","workerSizeId":0,"workerTierName":null,"numberOfWorkers":1,"currentWorkerSize":"Default","currentWorkerSizeId":0,"currentNumberOfWorkers":1,"status":"Ready","webSpace":"test_cli_webapp_ssl-WestUSwebspace","subscription":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","adminSiteName":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"maximumNumberOfWorkers":3,"planName":"VirtualDedicatedPlan","adminRuntimeSiteName":null,"computeMode":"Shared","siteMode":null,"geoRegion":"West
|
||||
US","perSiteScaling":false,"numberOfSites":0,"hostingEnvironmentId":null,"isSpot":false,"spotExpirationTime":null,"tags":null,"kind":"app","resourceGroup":"test_cli_webapp_ssl","reserved":false,"mdmId":"waws-prod-bay-085_2410","targetWorkerCount":0,"targetWorkerSizeId":0,"provisioningState":"Succeeded"},"sku":{"name":"B1","tier":"Basic","size":"B1","family":"B","capacity":1}}'}
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"westus","tags":{"use":"az-test"},"properties":{"provisioningState":"Succeeded"}}'}
|
||||
headers:
|
||||
Cache-Control: [no-cache]
|
||||
Content-Type: [application/json]
|
||||
Date: ['Tue, 24 Oct 2017 23:44:54 GMT']
|
||||
Expires: ['-1']
|
||||
Pragma: [no-cache]
|
||||
Server: [Microsoft-IIS/8.0]
|
||||
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: [Accept-Encoding]
|
||||
X-AspNet-Version: [4.0.30319]
|
||||
X-Powered-By: [ASP.NET]
|
||||
content-length: ['1216']
|
||||
cache-control: [no-cache]
|
||||
content-length: ['328']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Sat, 18 Nov 2017 00:40:40 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
vary: [Accept-Encoding]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '{"properties": {"siteConfig": {"localMySqlEnabled": false, "netFrameworkVersion":
|
||||
"v4.6", "appSettings": []}, "scmSiteAlsoStopped": false, "reserved": false,
|
||||
"serverFarmId": "/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan"},
|
||||
"location": "West US"}'
|
||||
body: 'b''{"sku": {"capacity": 1, "tier": "BASIC", "name": "B1"}, "properties":
|
||||
{"name": "webapp-ssl-test-plan000002", "perSiteScaling": false}, "location":
|
||||
"westus"}'''
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [appservice plan create]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['350']
|
||||
Content-Length: ['154']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/TEST/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
x-ms-client-request-id: [55ea0576-b915-11e7-afef-64510658e3b3]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/sites/webapp-ssl-test123?api-version=2016-08-01
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan000002?api-version=2016-09-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/sites/webapp-ssl-test123","name":"webapp-ssl-test123","type":"Microsoft.Web/sites","kind":"app","location":"West
|
||||
US","properties":{"name":"webapp-ssl-test123","state":"Running","hostNames":["webapp-ssl-test123.azurewebsites.net"],"webSpace":"test_cli_webapp_ssl-WestUSwebspace","selfLink":"https://waws-prod-bay-085.api.azurewebsites.windows.net:454/subscriptions/00000000-0000-0000-0000-000000000000/webspaces/test_cli_webapp_ssl-WestUSwebspace/sites/webapp-ssl-test123","repositorySiteName":"webapp-ssl-test123","owner":null,"usageState":"Normal","enabled":true,"adminEnabled":true,"enabledHostNames":["webapp-ssl-test123.azurewebsites.net","webapp-ssl-test123.scm.azurewebsites.net"],"siteProperties":{"metadata":null,"properties":[],"appSettings":null},"availabilityState":"Normal","sslCertificates":null,"csrs":[],"cers":null,"siteMode":null,"hostNameSslStates":[{"name":"webapp-ssl-test123.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Standard"},{"name":"webapp-ssl-test123.scm.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Repository"}],"computeMode":null,"serverFarm":null,"serverFarmId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan","reserved":false,"lastModifiedTimeUtc":"2017-10-24T23:44:58.2766667","storageRecoveryDefaultState":"Running","contentAvailabilityState":"Normal","runtimeAvailabilityState":"Normal","siteConfig":null,"deploymentId":"webapp-ssl-test123","trafficManagerHostNames":null,"sku":"Basic","scmSiteAlsoStopped":false,"targetSwapSlot":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"clientAffinityEnabled":true,"clientCertEnabled":false,"hostNamesDisabled":false,"domainVerificationIdentifiers":null,"kind":"app","outboundIpAddresses":"104.40.53.219,104.42.226.43,104.42.227.57,104.42.228.164,104.42.230.5","possibleOutboundIpAddresses":"104.40.53.219,104.42.226.43,104.42.227.57,104.42.228.164,104.42.230.5,104.42.229.180,104.42.227.131","containerSize":0,"dailyMemoryTimeQuota":0,"suspendedTill":null,"siteDisabledReason":0,"functionExecutionUnitsCache":null,"maxNumberOfWorkers":null,"homeStamp":"waws-prod-bay-085","cloningInfo":null,"snapshotInfo":null,"hostingEnvironmentId":null,"tags":null,"resourceGroup":"test_cli_webapp_ssl","defaultHostName":"webapp-ssl-test123.azurewebsites.net","slotSwapStatus":null}}'}
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan000002","name":"webapp-ssl-test-plan000002","type":"Microsoft.Web/serverfarms","kind":"app","location":"West
|
||||
US","properties":{"serverFarmId":0,"name":"webapp-ssl-test-plan000002","workerSize":"Default","workerSizeId":0,"workerTierName":null,"numberOfWorkers":1,"currentWorkerSize":"Default","currentWorkerSizeId":0,"currentNumberOfWorkers":1,"status":"Ready","webSpace":"clitest.rg000001-WestUSwebspace","subscription":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","adminSiteName":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"maximumNumberOfWorkers":3,"planName":"VirtualDedicatedPlan","adminRuntimeSiteName":null,"computeMode":"Shared","siteMode":null,"geoRegion":"West
|
||||
US","perSiteScaling":false,"numberOfSites":0,"hostingEnvironmentId":null,"isSpot":false,"spotExpirationTime":null,"tags":null,"kind":"app","resourceGroup":"clitest.rg000001","reserved":false,"mdmId":"waws-prod-bay-087_2139","targetWorkerCount":0,"targetWorkerSizeId":0,"provisioningState":"Succeeded"},"sku":{"name":"B1","tier":"Basic","size":"B1","family":"B","capacity":1}}'}
|
||||
headers:
|
||||
Cache-Control: [no-cache]
|
||||
Content-Type: [application/json]
|
||||
Date: ['Tue, 24 Oct 2017 23:45:00 GMT']
|
||||
ETag: ['"1D34D221A8825B5"']
|
||||
Expires: ['-1']
|
||||
Pragma: [no-cache]
|
||||
Server: [Microsoft-IIS/8.0]
|
||||
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: [Accept-Encoding]
|
||||
X-AspNet-Version: [4.0.30319]
|
||||
X-Powered-By: [ASP.NET]
|
||||
content-length: ['2797']
|
||||
cache-control: [no-cache]
|
||||
content-length: ['1378']
|
||||
content-type: [application/json]
|
||||
date: ['Sat, 18 Nov 2017 00:41:15 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [webapp create]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan000002?api-version=2016-09-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan000002","name":"webapp-ssl-test-plan000002","type":"Microsoft.Web/serverfarms","kind":"app","location":"West
|
||||
US","properties":{"serverFarmId":0,"name":"webapp-ssl-test-plan000002","workerSize":"Default","workerSizeId":0,"workerTierName":null,"numberOfWorkers":1,"currentWorkerSize":"Default","currentWorkerSizeId":0,"currentNumberOfWorkers":1,"status":"Ready","webSpace":"clitest.rg000001-WestUSwebspace","subscription":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","adminSiteName":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"maximumNumberOfWorkers":3,"planName":"VirtualDedicatedPlan","adminRuntimeSiteName":null,"computeMode":"Shared","siteMode":null,"geoRegion":"West
|
||||
US","perSiteScaling":false,"numberOfSites":0,"hostingEnvironmentId":null,"isSpot":false,"spotExpirationTime":null,"tags":null,"kind":"app","resourceGroup":"clitest.rg000001","reserved":false,"mdmId":"waws-prod-bay-087_2139","targetWorkerCount":0,"targetWorkerSizeId":0,"provisioningState":"Succeeded"},"sku":{"name":"B1","tier":"Basic","size":"B1","family":"B","capacity":1}}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['1378']
|
||||
content-type: [application/json]
|
||||
date: ['Sat, 18 Nov 2017 00:41:17 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: 'b''b\''{"properties": {"reserved": false, "scmSiteAlsoStopped": false,
|
||||
"siteConfig": {"appSettings": [], "localMySqlEnabled": false, "netFrameworkVersion":
|
||||
"v4.6"}, "serverFarmId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan000002"},
|
||||
"location": "West US"}\'''''
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [webapp create]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['404']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/sites/webapp-ssl-test123?api-version=2016-08-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/sites/webapp-ssl-test123","name":"webapp-ssl-test123","type":"Microsoft.Web/sites","kind":"app","location":"West
|
||||
US","properties":{"name":"webapp-ssl-test123","state":"Running","hostNames":["webapp-ssl-test123.azurewebsites.net"],"webSpace":"clitest.rg000001-WestUSwebspace","selfLink":"https://waws-prod-bay-087.api.azurewebsites.windows.net:454/subscriptions/00000000-0000-0000-0000-000000000000/webspaces/clitest.rg000001-WestUSwebspace/sites/webapp-ssl-test123","repositorySiteName":"webapp-ssl-test123","owner":null,"usageState":"Normal","enabled":true,"adminEnabled":true,"enabledHostNames":["webapp-ssl-test123.azurewebsites.net","webapp-ssl-test123.scm.azurewebsites.net"],"siteProperties":{"metadata":null,"properties":[],"appSettings":null},"availabilityState":"Normal","sslCertificates":null,"csrs":[],"cers":null,"siteMode":null,"hostNameSslStates":[{"name":"webapp-ssl-test123.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Standard"},{"name":"webapp-ssl-test123.scm.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Repository"}],"computeMode":null,"serverFarm":null,"serverFarmId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan000002","reserved":false,"lastModifiedTimeUtc":"2017-11-18T00:41:20.9166667","storageRecoveryDefaultState":"Running","contentAvailabilityState":"Normal","runtimeAvailabilityState":"Normal","siteConfig":null,"deploymentId":"webapp-ssl-test123","trafficManagerHostNames":null,"sku":"Basic","scmSiteAlsoStopped":false,"targetSwapSlot":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"clientAffinityEnabled":true,"clientCertEnabled":false,"hostNamesDisabled":false,"domainVerificationIdentifiers":null,"kind":"app","outboundIpAddresses":"40.83.145.50,104.42.191.8,104.42.186.112,104.42.186.44,104.42.187.158","possibleOutboundIpAddresses":"40.83.145.50,104.42.191.8,104.42.186.112,104.42.186.44,104.42.187.158,104.42.188.168,104.42.185.137","containerSize":0,"dailyMemoryTimeQuota":0,"suspendedTill":null,"siteDisabledReason":0,"functionExecutionUnitsCache":null,"maxNumberOfWorkers":null,"homeStamp":"waws-prod-bay-087","cloningInfo":null,"snapshotInfo":null,"hostingEnvironmentId":null,"tags":null,"resourceGroup":"clitest.rg000001","defaultHostName":"webapp-ssl-test123.azurewebsites.net","slotSwapStatus":null,"httpsOnly":false}}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['3069']
|
||||
content-type: [application/json]
|
||||
date: ['Sat, 18 Nov 2017 00:41:46 GMT']
|
||||
etag: ['"1D36005F44AF895"']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '{}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [webapp create]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['2']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/TEST/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
x-ms-client-request-id: [5a16f11a-b915-11e7-b505-64510658e3b3]
|
||||
method: POST
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/sites/webapp-ssl-test123/publishxml?api-version=2016-08-01
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/sites/webapp-ssl-test123/publishxml?api-version=2016-08-01
|
||||
response:
|
||||
body: {string: '<publishData><publishProfile profileName="webapp-ssl-test123 -
|
||||
Web Deploy" publishMethod="MSDeploy" publishUrl="webapp-ssl-test123.scm.azurewebsites.net:443"
|
||||
msdeploySite="webapp-ssl-test123" userName="$webapp-ssl-test123" userPWD="MQmexaNcvRQTAi6qCwtjlyGmE0beyhihSDF9Lwxnukdt05cQTQreZnxfDWZX"
|
||||
msdeploySite="webapp-ssl-test123" userName="$webapp-ssl-test123" userPWD="myu5lnHlouWAvY2k4lk1TC2zQqJzduS6j3l6Q83gK2cnyfsC7GBkf10KsvxJ"
|
||||
destinationAppUrl="http://webapp-ssl-test123.azurewebsites.net" SQLServerDBConnectionString=""
|
||||
mySQLDBConnectionString="" hostingProviderForumLink="" controlPanelLink="http://windows.azure.com"
|
||||
webSystem="WebSites"><databases /></publishProfile><publishProfile profileName="webapp-ssl-test123
|
||||
- FTP" publishMethod="FTP" publishUrl="ftp://waws-prod-bay-085.ftp.azurewebsites.windows.net/site/wwwroot"
|
||||
ftpPassiveMode="True" userName="webapp-ssl-test123\$webapp-ssl-test123" userPWD="MQmexaNcvRQTAi6qCwtjlyGmE0beyhihSDF9Lwxnukdt05cQTQreZnxfDWZX"
|
||||
- FTP" publishMethod="FTP" publishUrl="ftp://waws-prod-bay-087.ftp.azurewebsites.windows.net/site/wwwroot"
|
||||
ftpPassiveMode="True" userName="webapp-ssl-test123\$webapp-ssl-test123" userPWD="myu5lnHlouWAvY2k4lk1TC2zQqJzduS6j3l6Q83gK2cnyfsC7GBkf10KsvxJ"
|
||||
destinationAppUrl="http://webapp-ssl-test123.azurewebsites.net" SQLServerDBConnectionString=""
|
||||
mySQLDBConnectionString="" hostingProviderForumLink="" controlPanelLink="http://windows.azure.com"
|
||||
webSystem="WebSites"><databases /></publishProfile></publishData>'}
|
||||
headers:
|
||||
Cache-Control: [no-cache]
|
||||
Content-Length: ['1096']
|
||||
Content-Type: [application/xml]
|
||||
Date: ['Tue, 24 Oct 2017 23:45:01 GMT']
|
||||
Expires: ['-1']
|
||||
Pragma: [no-cache]
|
||||
Server: [Microsoft-IIS/8.0]
|
||||
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
|
||||
X-AspNet-Version: [4.0.30319]
|
||||
X-Powered-By: [ASP.NET]
|
||||
x-ms-ratelimit-remaining-subscription-resource-requests: ['11998']
|
||||
cache-control: [no-cache]
|
||||
content-length: ['1096']
|
||||
content-type: [application/xml]
|
||||
date: ['Sat, 18 Nov 2017 00:41:47 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-ms-ratelimit-remaining-subscription-resource-requests: ['11999']
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [webapp config ssl upload]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/TEST/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
x-ms-client-request-id: [5a6b88b4-b915-11e7-b9c4-64510658e3b3]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/sites/webapp-ssl-test123?api-version=2016-08-01
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/sites/webapp-ssl-test123?api-version=2016-08-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/sites/webapp-ssl-test123","name":"webapp-ssl-test123","type":"Microsoft.Web/sites","kind":"app","location":"West
|
||||
US","properties":{"name":"webapp-ssl-test123","state":"Running","hostNames":["webapp-ssl-test123.azurewebsites.net"],"webSpace":"test_cli_webapp_ssl-WestUSwebspace","selfLink":"https://waws-prod-bay-085.api.azurewebsites.windows.net:454/subscriptions/00000000-0000-0000-0000-000000000000/webspaces/test_cli_webapp_ssl-WestUSwebspace/sites/webapp-ssl-test123","repositorySiteName":"webapp-ssl-test123","owner":null,"usageState":"Normal","enabled":true,"adminEnabled":true,"enabledHostNames":["webapp-ssl-test123.azurewebsites.net","webapp-ssl-test123.scm.azurewebsites.net"],"siteProperties":{"metadata":null,"properties":[],"appSettings":null},"availabilityState":"Normal","sslCertificates":null,"csrs":[],"cers":null,"siteMode":null,"hostNameSslStates":[{"name":"webapp-ssl-test123.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Standard"},{"name":"webapp-ssl-test123.scm.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Repository"}],"computeMode":null,"serverFarm":null,"serverFarmId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan","reserved":false,"lastModifiedTimeUtc":"2017-10-24T23:44:59.3233333","storageRecoveryDefaultState":"Running","contentAvailabilityState":"Normal","runtimeAvailabilityState":"Normal","siteConfig":null,"deploymentId":"webapp-ssl-test123","trafficManagerHostNames":null,"sku":"Basic","scmSiteAlsoStopped":false,"targetSwapSlot":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"clientAffinityEnabled":true,"clientCertEnabled":false,"hostNamesDisabled":false,"domainVerificationIdentifiers":null,"kind":"app","outboundIpAddresses":"104.40.53.219,104.42.226.43,104.42.227.57,104.42.228.164,104.42.230.5","possibleOutboundIpAddresses":"104.40.53.219,104.42.226.43,104.42.227.57,104.42.228.164,104.42.230.5,104.42.229.180,104.42.227.131","containerSize":0,"dailyMemoryTimeQuota":0,"suspendedTill":null,"siteDisabledReason":0,"functionExecutionUnitsCache":null,"maxNumberOfWorkers":null,"homeStamp":"waws-prod-bay-085","cloningInfo":null,"snapshotInfo":null,"hostingEnvironmentId":null,"tags":null,"resourceGroup":"test_cli_webapp_ssl","defaultHostName":"webapp-ssl-test123.azurewebsites.net","slotSwapStatus":null}}'}
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/sites/webapp-ssl-test123","name":"webapp-ssl-test123","type":"Microsoft.Web/sites","kind":"app","location":"West
|
||||
US","properties":{"name":"webapp-ssl-test123","state":"Running","hostNames":["webapp-ssl-test123.azurewebsites.net"],"webSpace":"clitest.rg000001-WestUSwebspace","selfLink":"https://waws-prod-bay-087.api.azurewebsites.windows.net:454/subscriptions/00000000-0000-0000-0000-000000000000/webspaces/clitest.rg000001-WestUSwebspace/sites/webapp-ssl-test123","repositorySiteName":"webapp-ssl-test123","owner":null,"usageState":"Normal","enabled":true,"adminEnabled":true,"enabledHostNames":["webapp-ssl-test123.azurewebsites.net","webapp-ssl-test123.scm.azurewebsites.net"],"siteProperties":{"metadata":null,"properties":[],"appSettings":null},"availabilityState":"Normal","sslCertificates":null,"csrs":[],"cers":null,"siteMode":null,"hostNameSslStates":[{"name":"webapp-ssl-test123.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Standard"},{"name":"webapp-ssl-test123.scm.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Repository"}],"computeMode":null,"serverFarm":null,"serverFarmId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan000002","reserved":false,"lastModifiedTimeUtc":"2017-11-18T00:41:21.3533333","storageRecoveryDefaultState":"Running","contentAvailabilityState":"Normal","runtimeAvailabilityState":"Normal","siteConfig":null,"deploymentId":"webapp-ssl-test123","trafficManagerHostNames":null,"sku":"Basic","scmSiteAlsoStopped":false,"targetSwapSlot":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"clientAffinityEnabled":true,"clientCertEnabled":false,"hostNamesDisabled":false,"domainVerificationIdentifiers":null,"kind":"app","outboundIpAddresses":"40.83.145.50,104.42.191.8,104.42.186.112,104.42.186.44,104.42.187.158","possibleOutboundIpAddresses":"40.83.145.50,104.42.191.8,104.42.186.112,104.42.186.44,104.42.187.158,104.42.188.168,104.42.185.137","containerSize":0,"dailyMemoryTimeQuota":0,"suspendedTill":null,"siteDisabledReason":0,"functionExecutionUnitsCache":null,"maxNumberOfWorkers":null,"homeStamp":"waws-prod-bay-087","cloningInfo":null,"snapshotInfo":null,"hostingEnvironmentId":null,"tags":null,"resourceGroup":"clitest.rg000001","defaultHostName":"webapp-ssl-test123.azurewebsites.net","slotSwapStatus":null,"httpsOnly":false}}'}
|
||||
headers:
|
||||
Cache-Control: [no-cache]
|
||||
Content-Type: [application/json]
|
||||
Date: ['Tue, 24 Oct 2017 23:45:01 GMT']
|
||||
ETag: ['"1D34D221A8825B5"']
|
||||
Expires: ['-1']
|
||||
Pragma: [no-cache]
|
||||
Server: [Microsoft-IIS/8.0]
|
||||
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: [Accept-Encoding]
|
||||
X-AspNet-Version: [4.0.30319]
|
||||
X-Powered-By: [ASP.NET]
|
||||
content-length: ['2797']
|
||||
cache-control: [no-cache]
|
||||
content-length: ['3069']
|
||||
content-type: [application/json]
|
||||
date: ['Sat, 18 Nov 2017 00:41:50 GMT']
|
||||
etag: ['"1D36005F44AF895"']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '{"properties": {"pfxBlob": "MIIJ0QIBAzCCCZcGCSqGSIb3DQEHAaCCCYgEggmEMIIJgDCCBDcGCSqGSIb3DQEHBqCCBCgwggQkAgEAMIIEHQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQINlblqlYslJgCAggAgIID8F0H+UkIxP3wD9FDn9tzt9ATQWlSKZAp7MQWwVxfr3b6Nn+OarlLGDReRoHgYhJelZAyPFPAOlA+DXh8Cr6+g/Skp9KBQf7nqDR6tnQ4VOcEqNfoj5O7LmvjQ9KY8I7CmTr0+ZpWRWoCPZ6WTw3BK9lQhbOuEU0I/5+sIveGuIlC0qITO8WyUDM+Q0GtqlEs9Yv/jtyclhzX4oNCM0RrhQrFNdVSTksV0Oxnldf9SPeMsFCJ3l1VMWj3o3/E8AnR9QJsE7PTLRpSouJZHweQP1WRlQxNwLogOkJuI4ddrqacKo6SC3myMspt0uARPIlpI9IFxCRUGooJV9ZtFziGkA2ey7X0yVYJ0MuZNQcsOFSw4uyx1jmLR9uRvYBBEr+xxwbC/+lDIRbjJBQ32hRKDcWWM7JYbkeFw/3tMtE7Sc1hSFLVwIcoVUqV/02gCgCwYbwXGA0eYo5X88jZxxsoTjkeeMGmw+PGzo1EC3dCxseCrsXXSVaVr/CDeUOJBtIQofnd4E8UdtpuwoTa0cwXAbZmBghzA6J6puQuyN+yf+6RLExzVZPACXna3BHgWGiHGRgc3tF8ua1KnT/dhNu5+CVPajklO4MhrBLIF9JQ7br4vFGFKIy1kV04A0SxLU9JurYCNhPM8/LEXlzAbLpHhlqAAz25yBaYrC4GfAbv6afnd0arbNc40JWaSHmsDjcCDqewh/f7oUsn27/4pDzBgmvOX3lUXe2wkRk7QS/9kdq0cu5mhgyDD+D9MeMRu/gjJRrbtioc8IuQgMO9Y6mmouEpu2cHX70X1mpMORRgNxWfB4nNSfrYC8LngeFjivh2Imu9LKS/7HtxdQ0n1KpVkGGKwOu3pXs1o9cwDpNXK8iQ/IhMF21w6cI7biGxHAsJUas10ApC6e54MGewrjgCMSej8z0Z/Wp+tc7pKxfdlun7H2e0Ou8L5QjjR2ilGrhvuQuXU2DWgprjm7ivYGe+1Yi300L9jvqEXgyCZslfW0PEQyZkdpX6AJSU/EFsay57cSNF3t41GCdD38RbRPvr8A0J4Y5JSuSBux7twrDXQAfZ33y9SyJ8zwzMN9dYc2WG39u0IT7aQ0U6xBS9j7eaMGIRdGq+VBLtAgB22iyTK+FQJFE1aVjmsp+os5SZkfgWEYA7p8AGLd1lVg69kgWu5E0EqaHk4yuoA/X6kDzNLCiV5Q5MODylkTBq9Qdpau/8FZiO8tZ0dbGcELIoGlRVIRIfkUi7Nbk6W9F1719BDYr61KzsB/JElReR0uC9qW52Z+I3Es7mKMmhi3wQJY/+FIraGVD0xMAbE36LTu0RQ01+TD++Z35mvinvZIn1rEjX5DCCBUEGCSqGSIb3DQEHAaCCBTIEggUuMIIFKjCCBSYGCyqGSIb3DQEMCgECoIIE7jCCBOowHAYKKoZIhvcNAQwBAzAOBAhZn41qm5xQYQICCAAEggTI8BsnZxqfxgWTlDSpWzu0G1KF/t3Bi9DPTg0nDdX4PMc8RCCLNOJkQhYZh2Dkog6A0tv0/yElusd08giS86fBCE8MWeeZ0BNRJt7wr8UNa8er3U1unz47hwx1eGF8OhhbF3cRlvR3c2H9BT+kn6j5JaFuCglqzutfJ3oIcJvITi8AtU1c4/+Q4/zLIPbnPAcj2/WJDbvmjxQdYa+v7UZlosRTR93hyxIiY4O942JprBQ4C0ZlKU4i1QKC+57eB/qibxn76fmS/DqCQMooTNNschlXV+I+lAqS6axBW/kCW0QkPp60LcZ79atZLceBcMew452/aR1noj3fPdao4Vv5x6RjZBjm+P2y3XBF68zwd9qrS3cZgyxMuzoyQl9pP7HNaZVG03KZwwDzyOyP1v5EUCON91rKgcAVA+Xw8XKM2+pThE4j0DneqwT+JAPZceOAWIXvt7pPZLYxu8Sd04K6FdE8yRmjDRS20y+j9tArZJyyHRmckS6Tb0G07xQ+wSRnLYLqEhCfMQZS0RXzGPvN82Kd9kqtGkse+ku3ct5pQUowgkrSbfHj9OCyLftvrOc0FL+nXcuJ+VWg0Ui0M3/CHdGxgH5d7uRNAduegS1g+Y4R/W8AXyK4xvyGOkI9LyMV1Ote17F2/qqNqctxDmsH2TjGOLX8FJqpI5L0/gNkmH+kWWIq8N0W9I4lkzRHOE13rC7Rm3HkaUNgwMmiTEs9hmyWO4q5iJuYG3tOLsxrInkj7uZDEf4yyRq6FyauXafiaUs7Qzzg39coIERvkhnqF3nx9kspNviBE9bhP4XsUsxGCdhg4y0TsPxdMeZl7pWSOhX479ZLMtZZmOfm3uUogNyS+BB8A/0AXF8YK6Th2YozpyaKj7o/ghTeAbvhLAn/1BA8YPfy/ynCH2eVOVFkPMeACnZt1/cOua38/1PKrCmN5ZhI7tFmqEiLYWwo78ZuI58LMqpo/urGX6dGz6wxD6Ljmw4MVkQQhu+s/Vor5fNSHl/yj+7nrkw0FMgxlTZbHPbbuBm78LU+B/stBq9MuTjMZAQustV+f8UmJNmlljHdIo103ZtQ6MaxTsq7KQXW4Pjt0w3bw4eF4i/VAn7f9hcT3eRJ2rdIa/A04TDXqYlb0U7Iw4ZfdhxNTwfHGgU25D9z14uupkfOXJfAe/N5YU5+w1J9xcv393gEbYz3z8ALBx5Oiwnak5M/6m20FypRG4OSW9MZZ3g5ppR71JlKZtfaVkrFSVUPCP19ZJvWapVwBnwxcFzsS11klWMLupAAwLOJZ/TA7S8eczd0u2cfKhL5oxAiGvWcnWhd7pmcBWMOYPuq5FlXR8wDTRihtXp3Wt67y+mTNWNADMurbXoamMvx9yR+fBg4FAKuV+TrjhVJP/iSRsoJsmgXPRlKS+DciI3RUh6Pg++MPS+u9lL3STZjEws2oBf6zjzjTiPrVsqMjgrfZfdwZJZAKltalHmiZRaQI6H1wC2wsoCQGc+PUtSMCGq92k8AfOXvvd8uVqC0f+9DoT/HjKqFyvzO1MLqydIKTgu+IAhWdMQIra6GHQDqpNk+NsGhMbcgbjFQ1tzYC0CyNY3o+ThcnoiqL7NICpsWFpIwE0wb+sEhzxrOMAgbAyCMPjK/MSUwIwYJKoZIhvcNAQkVMRYEFNsrpomNCzMKk+f2n/UFxh7zmSG2MDEwITAJBgUrDgMCGgUABBTzbsBu11reT+Sadb94N2t+155P4QQImFXG2dTQ71ACAggA",
|
||||
"password": "test"}, "location": "West US"}'
|
||||
body: '{"properties": {"password": "test", "pfxBlob": "MIIJ0QIBAzCCCZcGCSqGSIb3DQEHAaCCCYgEggmEMIIJgDCCBDcGCSqGSIb3DQEHBqCCBCgwggQkAgEAMIIEHQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQINlblqlYslJgCAggAgIID8F0H+UkIxP3wD9FDn9tzt9ATQWlSKZAp7MQWwVxfr3b6Nn+OarlLGDReRoHgYhJelZAyPFPAOlA+DXh8Cr6+g/Skp9KBQf7nqDR6tnQ4VOcEqNfoj5O7LmvjQ9KY8I7CmTr0+ZpWRWoCPZ6WTw3BK9lQhbOuEU0I/5+sIveGuIlC0qITO8WyUDM+Q0GtqlEs9Yv/jtyclhzX4oNCM0RrhQrFNdVSTksV0Oxnldf9SPeMsFCJ3l1VMWj3o3/E8AnR9QJsE7PTLRpSouJZHweQP1WRlQxNwLogOkJuI4ddrqacKo6SC3myMspt0uARPIlpI9IFxCRUGooJV9ZtFziGkA2ey7X0yVYJ0MuZNQcsOFSw4uyx1jmLR9uRvYBBEr+xxwbC/+lDIRbjJBQ32hRKDcWWM7JYbkeFw/3tMtE7Sc1hSFLVwIcoVUqV/02gCgCwYbwXGA0eYo5X88jZxxsoTjkeeMGmw+PGzo1EC3dCxseCrsXXSVaVr/CDeUOJBtIQofnd4E8UdtpuwoTa0cwXAbZmBghzA6J6puQuyN+yf+6RLExzVZPACXna3BHgWGiHGRgc3tF8ua1KnT/dhNu5+CVPajklO4MhrBLIF9JQ7br4vFGFKIy1kV04A0SxLU9JurYCNhPM8/LEXlzAbLpHhlqAAz25yBaYrC4GfAbv6afnd0arbNc40JWaSHmsDjcCDqewh/f7oUsn27/4pDzBgmvOX3lUXe2wkRk7QS/9kdq0cu5mhgyDD+D9MeMRu/gjJRrbtioc8IuQgMO9Y6mmouEpu2cHX70X1mpMORRgNxWfB4nNSfrYC8LngeFjivh2Imu9LKS/7HtxdQ0n1KpVkGGKwOu3pXs1o9cwDpNXK8iQ/IhMF21w6cI7biGxHAsJUas10ApC6e54MGewrjgCMSej8z0Z/Wp+tc7pKxfdlun7H2e0Ou8L5QjjR2ilGrhvuQuXU2DWgprjm7ivYGe+1Yi300L9jvqEXgyCZslfW0PEQyZkdpX6AJSU/EFsay57cSNF3t41GCdD38RbRPvr8A0J4Y5JSuSBux7twrDXQAfZ33y9SyJ8zwzMN9dYc2WG39u0IT7aQ0U6xBS9j7eaMGIRdGq+VBLtAgB22iyTK+FQJFE1aVjmsp+os5SZkfgWEYA7p8AGLd1lVg69kgWu5E0EqaHk4yuoA/X6kDzNLCiV5Q5MODylkTBq9Qdpau/8FZiO8tZ0dbGcELIoGlRVIRIfkUi7Nbk6W9F1719BDYr61KzsB/JElReR0uC9qW52Z+I3Es7mKMmhi3wQJY/+FIraGVD0xMAbE36LTu0RQ01+TD++Z35mvinvZIn1rEjX5DCCBUEGCSqGSIb3DQEHAaCCBTIEggUuMIIFKjCCBSYGCyqGSIb3DQEMCgECoIIE7jCCBOowHAYKKoZIhvcNAQwBAzAOBAhZn41qm5xQYQICCAAEggTI8BsnZxqfxgWTlDSpWzu0G1KF/t3Bi9DPTg0nDdX4PMc8RCCLNOJkQhYZh2Dkog6A0tv0/yElusd08giS86fBCE8MWeeZ0BNRJt7wr8UNa8er3U1unz47hwx1eGF8OhhbF3cRlvR3c2H9BT+kn6j5JaFuCglqzutfJ3oIcJvITi8AtU1c4/+Q4/zLIPbnPAcj2/WJDbvmjxQdYa+v7UZlosRTR93hyxIiY4O942JprBQ4C0ZlKU4i1QKC+57eB/qibxn76fmS/DqCQMooTNNschlXV+I+lAqS6axBW/kCW0QkPp60LcZ79atZLceBcMew452/aR1noj3fPdao4Vv5x6RjZBjm+P2y3XBF68zwd9qrS3cZgyxMuzoyQl9pP7HNaZVG03KZwwDzyOyP1v5EUCON91rKgcAVA+Xw8XKM2+pThE4j0DneqwT+JAPZceOAWIXvt7pPZLYxu8Sd04K6FdE8yRmjDRS20y+j9tArZJyyHRmckS6Tb0G07xQ+wSRnLYLqEhCfMQZS0RXzGPvN82Kd9kqtGkse+ku3ct5pQUowgkrSbfHj9OCyLftvrOc0FL+nXcuJ+VWg0Ui0M3/CHdGxgH5d7uRNAduegS1g+Y4R/W8AXyK4xvyGOkI9LyMV1Ote17F2/qqNqctxDmsH2TjGOLX8FJqpI5L0/gNkmH+kWWIq8N0W9I4lkzRHOE13rC7Rm3HkaUNgwMmiTEs9hmyWO4q5iJuYG3tOLsxrInkj7uZDEf4yyRq6FyauXafiaUs7Qzzg39coIERvkhnqF3nx9kspNviBE9bhP4XsUsxGCdhg4y0TsPxdMeZl7pWSOhX479ZLMtZZmOfm3uUogNyS+BB8A/0AXF8YK6Th2YozpyaKj7o/ghTeAbvhLAn/1BA8YPfy/ynCH2eVOVFkPMeACnZt1/cOua38/1PKrCmN5ZhI7tFmqEiLYWwo78ZuI58LMqpo/urGX6dGz6wxD6Ljmw4MVkQQhu+s/Vor5fNSHl/yj+7nrkw0FMgxlTZbHPbbuBm78LU+B/stBq9MuTjMZAQustV+f8UmJNmlljHdIo103ZtQ6MaxTsq7KQXW4Pjt0w3bw4eF4i/VAn7f9hcT3eRJ2rdIa/A04TDXqYlb0U7Iw4ZfdhxNTwfHGgU25D9z14uupkfOXJfAe/N5YU5+w1J9xcv393gEbYz3z8ALBx5Oiwnak5M/6m20FypRG4OSW9MZZ3g5ppR71JlKZtfaVkrFSVUPCP19ZJvWapVwBnwxcFzsS11klWMLupAAwLOJZ/TA7S8eczd0u2cfKhL5oxAiGvWcnWhd7pmcBWMOYPuq5FlXR8wDTRihtXp3Wt67y+mTNWNADMurbXoamMvx9yR+fBg4FAKuV+TrjhVJP/iSRsoJsmgXPRlKS+DciI3RUh6Pg++MPS+u9lL3STZjEws2oBf6zjzjTiPrVsqMjgrfZfdwZJZAKltalHmiZRaQI6H1wC2wsoCQGc+PUtSMCGq92k8AfOXvvd8uVqC0f+9DoT/HjKqFyvzO1MLqydIKTgu+IAhWdMQIra6GHQDqpNk+NsGhMbcgbjFQ1tzYC0CyNY3o+ThcnoiqL7NICpsWFpIwE0wb+sEhzxrOMAgbAyCMPjK/MSUwIwYJKoZIhvcNAQkVMRYEFNsrpomNCzMKk+f2n/UFxh7zmSG2MDEwITAJBgUrDgMCGgUABBTzbsBu11reT+Sadb94N2t+155P4QQImFXG2dTQ71ACAggA"},
|
||||
"location": "West US"}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [webapp config ssl upload]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['3430']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/TEST/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
x-ms-client-request-id: [5a93e3e4-b915-11e7-b851-64510658e3b3]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/certificates/DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West%20US_test_cli_webapp_ssl?api-version=2016-03-01
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/certificates/DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West%20US_clitest.rg000001?api-version=2016-03-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/certificates/DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West
|
||||
US_test_cli_webapp_ssl","name":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West
|
||||
US_test_cli_webapp_ssl","type":"Microsoft.Web/certificates","location":"West
|
||||
US","properties":{"friendlyName":"","subjectName":"webapp-ssl-test123.azurewebsites.net","hostNames":["webapp-ssl-test123.azurewebsites.net"],"pfxBlob":null,"siteName":null,"selfLink":null,"issuer":"webapp-ssl-test123.azurewebsites.net","issueDate":"2017-02-08T23:14:36+00:00","expirationDate":"2018-02-08T23:14:36+00:00","password":null,"thumbprint":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6","valid":null,"toDelete":null,"cerBlob":null,"publicKeyHash":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"keyVaultSecretStatus":"Initialized","webSpace":"test_cli_webapp_ssl-WestUSwebspace","serverFarmId":null,"tags":null}}'}
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/certificates/DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West
|
||||
US_clitest.rg000001","name":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West
|
||||
US_clitest.rg000001","type":"Microsoft.Web/certificates","location":"West
|
||||
US","properties":{"friendlyName":"","subjectName":"webapp-ssl-test123.azurewebsites.net","hostNames":["webapp-ssl-test123.azurewebsites.net"],"pfxBlob":null,"siteName":null,"selfLink":null,"issuer":"webapp-ssl-test123.azurewebsites.net","issueDate":"2017-02-08T23:14:36+00:00","expirationDate":"2018-02-08T23:14:36+00:00","password":null,"thumbprint":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6","valid":null,"toDelete":null,"cerBlob":null,"publicKeyHash":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"keyVaultSecretStatus":"Initialized","webSpace":"clitest.rg000001-WestUSwebspace","serverFarmId":null,"tags":null}}'}
|
||||
headers:
|
||||
Cache-Control: [no-cache]
|
||||
Content-Type: [application/json]
|
||||
Date: ['Tue, 24 Oct 2017 23:45:03 GMT']
|
||||
Expires: ['-1']
|
||||
Pragma: [no-cache]
|
||||
Server: [Microsoft-IIS/8.0]
|
||||
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: [Accept-Encoding]
|
||||
Warning: ['199 Some of the uploaded certificates are either self-signed or expired.,199
|
||||
cache-control: [no-cache]
|
||||
content-length: ['1194']
|
||||
content-type: [application/json]
|
||||
date: ['Sat, 18 Nov 2017 00:41:52 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
warning: ['199 Some of the uploaded certificates are either self-signed or expired.,199
|
||||
Some of the uploaded certificates cannot be validated to a trusted CA']
|
||||
X-AspNet-Version: [4.0.30319]
|
||||
X-Powered-By: [ASP.NET]
|
||||
content-length: ['994']
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1189']
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1183']
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [webapp config ssl bind]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/TEST/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
x-ms-client-request-id: [5bdf76e6-b915-11e7-adf5-64510658e3b3]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/sites/webapp-ssl-test123?api-version=2016-08-01
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/sites/webapp-ssl-test123?api-version=2016-08-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/sites/webapp-ssl-test123","name":"webapp-ssl-test123","type":"Microsoft.Web/sites","kind":"app","location":"West
|
||||
US","properties":{"name":"webapp-ssl-test123","state":"Running","hostNames":["webapp-ssl-test123.azurewebsites.net"],"webSpace":"test_cli_webapp_ssl-WestUSwebspace","selfLink":"https://waws-prod-bay-085.api.azurewebsites.windows.net:454/subscriptions/00000000-0000-0000-0000-000000000000/webspaces/test_cli_webapp_ssl-WestUSwebspace/sites/webapp-ssl-test123","repositorySiteName":"webapp-ssl-test123","owner":null,"usageState":"Normal","enabled":true,"adminEnabled":true,"enabledHostNames":["webapp-ssl-test123.azurewebsites.net","webapp-ssl-test123.scm.azurewebsites.net"],"siteProperties":{"metadata":null,"properties":[],"appSettings":null},"availabilityState":"Normal","sslCertificates":null,"csrs":[],"cers":null,"siteMode":null,"hostNameSslStates":[{"name":"webapp-ssl-test123.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Standard"},{"name":"webapp-ssl-test123.scm.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Repository"}],"computeMode":null,"serverFarm":null,"serverFarmId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan","reserved":false,"lastModifiedTimeUtc":"2017-10-24T23:44:59.3233333","storageRecoveryDefaultState":"Running","contentAvailabilityState":"Normal","runtimeAvailabilityState":"Normal","siteConfig":null,"deploymentId":"webapp-ssl-test123","trafficManagerHostNames":null,"sku":"Basic","scmSiteAlsoStopped":false,"targetSwapSlot":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"clientAffinityEnabled":true,"clientCertEnabled":false,"hostNamesDisabled":false,"domainVerificationIdentifiers":null,"kind":"app","outboundIpAddresses":"104.40.53.219,104.42.226.43,104.42.227.57,104.42.228.164,104.42.230.5","possibleOutboundIpAddresses":"104.40.53.219,104.42.226.43,104.42.227.57,104.42.228.164,104.42.230.5,104.42.229.180,104.42.227.131","containerSize":0,"dailyMemoryTimeQuota":0,"suspendedTill":null,"siteDisabledReason":0,"functionExecutionUnitsCache":null,"maxNumberOfWorkers":null,"homeStamp":"waws-prod-bay-085","cloningInfo":null,"snapshotInfo":null,"hostingEnvironmentId":null,"tags":null,"resourceGroup":"test_cli_webapp_ssl","defaultHostName":"webapp-ssl-test123.azurewebsites.net","slotSwapStatus":null}}'}
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/sites/webapp-ssl-test123","name":"webapp-ssl-test123","type":"Microsoft.Web/sites","kind":"app","location":"West
|
||||
US","properties":{"name":"webapp-ssl-test123","state":"Running","hostNames":["webapp-ssl-test123.azurewebsites.net"],"webSpace":"clitest.rg000001-WestUSwebspace","selfLink":"https://waws-prod-bay-087.api.azurewebsites.windows.net:454/subscriptions/00000000-0000-0000-0000-000000000000/webspaces/clitest.rg000001-WestUSwebspace/sites/webapp-ssl-test123","repositorySiteName":"webapp-ssl-test123","owner":null,"usageState":"Normal","enabled":true,"adminEnabled":true,"enabledHostNames":["webapp-ssl-test123.azurewebsites.net","webapp-ssl-test123.scm.azurewebsites.net"],"siteProperties":{"metadata":null,"properties":[],"appSettings":null},"availabilityState":"Normal","sslCertificates":null,"csrs":[],"cers":null,"siteMode":null,"hostNameSslStates":[{"name":"webapp-ssl-test123.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Standard"},{"name":"webapp-ssl-test123.scm.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Repository"}],"computeMode":null,"serverFarm":null,"serverFarmId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan000002","reserved":false,"lastModifiedTimeUtc":"2017-11-18T00:41:21.3533333","storageRecoveryDefaultState":"Running","contentAvailabilityState":"Normal","runtimeAvailabilityState":"Normal","siteConfig":null,"deploymentId":"webapp-ssl-test123","trafficManagerHostNames":null,"sku":"Basic","scmSiteAlsoStopped":false,"targetSwapSlot":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"clientAffinityEnabled":true,"clientCertEnabled":false,"hostNamesDisabled":false,"domainVerificationIdentifiers":null,"kind":"app","outboundIpAddresses":"40.83.145.50,104.42.191.8,104.42.186.112,104.42.186.44,104.42.187.158","possibleOutboundIpAddresses":"40.83.145.50,104.42.191.8,104.42.186.112,104.42.186.44,104.42.187.158,104.42.188.168,104.42.185.137","containerSize":0,"dailyMemoryTimeQuota":0,"suspendedTill":null,"siteDisabledReason":0,"functionExecutionUnitsCache":null,"maxNumberOfWorkers":null,"homeStamp":"waws-prod-bay-087","cloningInfo":null,"snapshotInfo":null,"hostingEnvironmentId":null,"tags":null,"resourceGroup":"clitest.rg000001","defaultHostName":"webapp-ssl-test123.azurewebsites.net","slotSwapStatus":null,"httpsOnly":false}}'}
|
||||
headers:
|
||||
Cache-Control: [no-cache]
|
||||
Content-Type: [application/json]
|
||||
Date: ['Tue, 24 Oct 2017 23:45:04 GMT']
|
||||
ETag: ['"1D34D221A8825B5"']
|
||||
Expires: ['-1']
|
||||
Pragma: [no-cache]
|
||||
Server: [Microsoft-IIS/8.0]
|
||||
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: [Accept-Encoding]
|
||||
X-AspNet-Version: [4.0.30319]
|
||||
X-Powered-By: [ASP.NET]
|
||||
content-length: ['2797']
|
||||
cache-control: [no-cache]
|
||||
content-length: ['3069']
|
||||
content-type: [application/json]
|
||||
date: ['Sat, 18 Nov 2017 00:41:54 GMT']
|
||||
etag: ['"1D36005F44AF895"']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [webapp config ssl bind]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/TEST/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
x-ms-client-request-id: [5c5e70a2-b915-11e7-b3ab-64510658e3b3]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/certificates?api-version=2016-03-01
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/certificates?api-version=2016-03-01
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/certificates/DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West
|
||||
US_test_cli_webapp_ssl","name":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West
|
||||
US_test_cli_webapp_ssl","type":"Microsoft.Web/certificates","location":"West
|
||||
US","properties":{"friendlyName":"","subjectName":"webapp-ssl-test123.azurewebsites.net","hostNames":["webapp-ssl-test123.azurewebsites.net"],"pfxBlob":null,"siteName":null,"selfLink":null,"issuer":"webapp-ssl-test123.azurewebsites.net","issueDate":"2017-02-08T23:14:36+00:00","expirationDate":"2018-02-08T23:14:36+00:00","password":null,"thumbprint":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6","valid":null,"toDelete":null,"cerBlob":null,"publicKeyHash":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"keyVaultSecretStatus":"Initialized","webSpace":"test_cli_webapp_ssl-WestUSwebspace","serverFarmId":null,"tags":null}}],"nextLink":null,"id":null}'}
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/certificates/DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West
|
||||
US_clitest.rg000001","name":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West
|
||||
US_clitest.rg000001","type":"Microsoft.Web/certificates","location":"West
|
||||
US","properties":{"friendlyName":"","subjectName":"webapp-ssl-test123.azurewebsites.net","hostNames":["webapp-ssl-test123.azurewebsites.net"],"pfxBlob":null,"siteName":null,"selfLink":null,"issuer":"webapp-ssl-test123.azurewebsites.net","issueDate":"2017-02-08T23:14:36+00:00","expirationDate":"2018-02-08T23:14:36+00:00","password":null,"thumbprint":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6","valid":null,"toDelete":null,"cerBlob":null,"publicKeyHash":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"keyVaultSecretStatus":"Initialized","webSpace":"clitest.rg000001-WestUSwebspace","serverFarmId":null,"tags":null}}],"nextLink":null,"id":null}'}
|
||||
headers:
|
||||
Cache-Control: [no-cache]
|
||||
Content-Type: [application/json]
|
||||
Date: ['Tue, 24 Oct 2017 23:45:04 GMT']
|
||||
Expires: ['-1']
|
||||
Pragma: [no-cache]
|
||||
Server: [Microsoft-IIS/8.0]
|
||||
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: [Accept-Encoding]
|
||||
X-AspNet-Version: [4.0.30319]
|
||||
X-Powered-By: [ASP.NET]
|
||||
content-length: ['1032']
|
||||
cache-control: [no-cache]
|
||||
content-length: ['1232']
|
||||
content-type: [application/json]
|
||||
date: ['Sat, 18 Nov 2017 00:41:54 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '{"properties": {"scmSiteAlsoStopped": false, "reserved": false, "hostNameSslStates":
|
||||
[{"thumbprint": "DB2BA6898D0B330A93E7F69FF505C61EF39921B6", "name": "webapp-ssl-test123.azurewebsites.net",
|
||||
"sslState": "SniEnabled", "toUpdate": true}]}, "location": "West US"}'
|
||||
body: '{"properties": {"hostNameSslStates": [{"name": "webapp-ssl-test123.azurewebsites.net",
|
||||
"thumbprint": "DB2BA6898D0B330A93E7F69FF505C61EF39921B6", "sslState": "SniEnabled",
|
||||
"toUpdate": true}], "scmSiteAlsoStopped": false, "reserved": false}, "location":
|
||||
"West US"}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [webapp config ssl bind]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['262']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/TEST/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
x-ms-client-request-id: [5cc0d3c2-b915-11e7-914b-64510658e3b3]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/sites/webapp-ssl-test123?api-version=2016-08-01
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/sites/webapp-ssl-test123?api-version=2016-08-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/sites/webapp-ssl-test123","name":"webapp-ssl-test123","type":"Microsoft.Web/sites","kind":"app","location":"West
|
||||
US","properties":{"name":"webapp-ssl-test123","state":"Running","hostNames":["webapp-ssl-test123.azurewebsites.net"],"webSpace":"test_cli_webapp_ssl-WestUSwebspace","selfLink":"https://waws-prod-bay-085.api.azurewebsites.windows.net:454/subscriptions/00000000-0000-0000-0000-000000000000/webspaces/test_cli_webapp_ssl-WestUSwebspace/sites/webapp-ssl-test123","repositorySiteName":"webapp-ssl-test123","owner":null,"usageState":"Normal","enabled":true,"adminEnabled":true,"enabledHostNames":["webapp-ssl-test123.azurewebsites.net","webapp-ssl-test123.scm.azurewebsites.net"],"siteProperties":{"metadata":null,"properties":[],"appSettings":null},"availabilityState":"Normal","sslCertificates":null,"csrs":[],"cers":null,"siteMode":null,"hostNameSslStates":[{"name":"webapp-ssl-test123.azurewebsites.net","sslState":"SniEnabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6","toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Standard"},{"name":"webapp-ssl-test123.scm.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Repository"}],"computeMode":null,"serverFarm":null,"serverFarmId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan","reserved":false,"lastModifiedTimeUtc":"2017-10-24T23:45:07.2366667","storageRecoveryDefaultState":"Running","contentAvailabilityState":"Normal","runtimeAvailabilityState":"Normal","siteConfig":null,"deploymentId":"webapp-ssl-test123","trafficManagerHostNames":null,"sku":"Basic","scmSiteAlsoStopped":false,"targetSwapSlot":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"clientAffinityEnabled":true,"clientCertEnabled":false,"hostNamesDisabled":false,"domainVerificationIdentifiers":null,"kind":"app","outboundIpAddresses":"104.40.53.219,104.42.226.43,104.42.227.57,104.42.228.164,104.42.230.5","possibleOutboundIpAddresses":"104.40.53.219,104.42.226.43,104.42.227.57,104.42.228.164,104.42.230.5,104.42.229.180,104.42.227.131","containerSize":0,"dailyMemoryTimeQuota":0,"suspendedTill":null,"siteDisabledReason":0,"functionExecutionUnitsCache":null,"maxNumberOfWorkers":null,"homeStamp":"waws-prod-bay-085","cloningInfo":null,"snapshotInfo":null,"hostingEnvironmentId":null,"tags":null,"resourceGroup":"test_cli_webapp_ssl","defaultHostName":"webapp-ssl-test123.azurewebsites.net","slotSwapStatus":null}}'}
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/sites/webapp-ssl-test123","name":"webapp-ssl-test123","type":"Microsoft.Web/sites","kind":"app","location":"West
|
||||
US","properties":{"name":"webapp-ssl-test123","state":"Running","hostNames":["webapp-ssl-test123.azurewebsites.net"],"webSpace":"clitest.rg000001-WestUSwebspace","selfLink":"https://waws-prod-bay-087.api.azurewebsites.windows.net:454/subscriptions/00000000-0000-0000-0000-000000000000/webspaces/clitest.rg000001-WestUSwebspace/sites/webapp-ssl-test123","repositorySiteName":"webapp-ssl-test123","owner":null,"usageState":"Normal","enabled":true,"adminEnabled":true,"enabledHostNames":["webapp-ssl-test123.azurewebsites.net","webapp-ssl-test123.scm.azurewebsites.net"],"siteProperties":{"metadata":null,"properties":[],"appSettings":null},"availabilityState":"Normal","sslCertificates":null,"csrs":[],"cers":null,"siteMode":null,"hostNameSslStates":[{"name":"webapp-ssl-test123.azurewebsites.net","sslState":"SniEnabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6","toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Standard"},{"name":"webapp-ssl-test123.scm.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Repository"}],"computeMode":null,"serverFarm":null,"serverFarmId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan000002","reserved":false,"lastModifiedTimeUtc":"2017-11-18T00:41:57.26","storageRecoveryDefaultState":"Running","contentAvailabilityState":"Normal","runtimeAvailabilityState":"Normal","siteConfig":null,"deploymentId":"webapp-ssl-test123","trafficManagerHostNames":null,"sku":"Basic","scmSiteAlsoStopped":false,"targetSwapSlot":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"clientAffinityEnabled":true,"clientCertEnabled":false,"hostNamesDisabled":false,"domainVerificationIdentifiers":null,"kind":"app","outboundIpAddresses":"40.83.145.50,104.42.191.8,104.42.186.112,104.42.186.44,104.42.187.158","possibleOutboundIpAddresses":"40.83.145.50,104.42.191.8,104.42.186.112,104.42.186.44,104.42.187.158,104.42.188.168,104.42.185.137","containerSize":0,"dailyMemoryTimeQuota":0,"suspendedTill":null,"siteDisabledReason":0,"functionExecutionUnitsCache":null,"maxNumberOfWorkers":null,"homeStamp":"waws-prod-bay-087","cloningInfo":null,"snapshotInfo":null,"hostingEnvironmentId":null,"tags":null,"resourceGroup":"clitest.rg000001","defaultHostName":"webapp-ssl-test123.azurewebsites.net","slotSwapStatus":null,"httpsOnly":false}}'}
|
||||
headers:
|
||||
Cache-Control: [no-cache]
|
||||
Content-Type: [application/json]
|
||||
Date: ['Tue, 24 Oct 2017 23:45:09 GMT']
|
||||
ETag: ['"1D34D221F3FA04B"']
|
||||
Expires: ['-1']
|
||||
Pragma: [no-cache]
|
||||
Server: [Microsoft-IIS/8.0]
|
||||
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: [Accept-Encoding]
|
||||
X-AspNet-Version: [4.0.30319]
|
||||
X-Powered-By: [ASP.NET]
|
||||
content-length: ['2837']
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1193']
|
||||
cache-control: [no-cache]
|
||||
content-length: ['3104']
|
||||
content-type: [application/json]
|
||||
date: ['Sat, 18 Nov 2017 00:41:57 GMT']
|
||||
etag: ['"1D3600609B1E4C0"']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1198']
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [webapp config ssl unbind]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/TEST/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
x-ms-client-request-id: [5ec6bb9c-b915-11e7-af43-64510658e3b3]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/sites/webapp-ssl-test123?api-version=2016-08-01
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/sites/webapp-ssl-test123?api-version=2016-08-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/sites/webapp-ssl-test123","name":"webapp-ssl-test123","type":"Microsoft.Web/sites","kind":"app","location":"West
|
||||
US","properties":{"name":"webapp-ssl-test123","state":"Running","hostNames":["webapp-ssl-test123.azurewebsites.net"],"webSpace":"test_cli_webapp_ssl-WestUSwebspace","selfLink":"https://waws-prod-bay-085.api.azurewebsites.windows.net:454/subscriptions/00000000-0000-0000-0000-000000000000/webspaces/test_cli_webapp_ssl-WestUSwebspace/sites/webapp-ssl-test123","repositorySiteName":"webapp-ssl-test123","owner":null,"usageState":"Normal","enabled":true,"adminEnabled":true,"enabledHostNames":["webapp-ssl-test123.azurewebsites.net","webapp-ssl-test123.scm.azurewebsites.net"],"siteProperties":{"metadata":null,"properties":[],"appSettings":null},"availabilityState":"Normal","sslCertificates":null,"csrs":[],"cers":null,"siteMode":null,"hostNameSslStates":[{"name":"webapp-ssl-test123.azurewebsites.net","sslState":"SniEnabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6","toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Standard"},{"name":"webapp-ssl-test123.scm.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Repository"}],"computeMode":null,"serverFarm":null,"serverFarmId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan","reserved":false,"lastModifiedTimeUtc":"2017-10-24T23:45:07.2366667","storageRecoveryDefaultState":"Running","contentAvailabilityState":"Normal","runtimeAvailabilityState":"Normal","siteConfig":null,"deploymentId":"webapp-ssl-test123","trafficManagerHostNames":null,"sku":"Basic","scmSiteAlsoStopped":false,"targetSwapSlot":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"clientAffinityEnabled":true,"clientCertEnabled":false,"hostNamesDisabled":false,"domainVerificationIdentifiers":null,"kind":"app","outboundIpAddresses":"104.40.53.219,104.42.226.43,104.42.227.57,104.42.228.164,104.42.230.5","possibleOutboundIpAddresses":"104.40.53.219,104.42.226.43,104.42.227.57,104.42.228.164,104.42.230.5,104.42.229.180,104.42.227.131","containerSize":0,"dailyMemoryTimeQuota":0,"suspendedTill":null,"siteDisabledReason":0,"functionExecutionUnitsCache":null,"maxNumberOfWorkers":null,"homeStamp":"waws-prod-bay-085","cloningInfo":null,"snapshotInfo":null,"hostingEnvironmentId":null,"tags":null,"resourceGroup":"test_cli_webapp_ssl","defaultHostName":"webapp-ssl-test123.azurewebsites.net","slotSwapStatus":null}}'}
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/sites/webapp-ssl-test123","name":"webapp-ssl-test123","type":"Microsoft.Web/sites","kind":"app","location":"West
|
||||
US","properties":{"name":"webapp-ssl-test123","state":"Running","hostNames":["webapp-ssl-test123.azurewebsites.net"],"webSpace":"clitest.rg000001-WestUSwebspace","selfLink":"https://waws-prod-bay-087.api.azurewebsites.windows.net:454/subscriptions/00000000-0000-0000-0000-000000000000/webspaces/clitest.rg000001-WestUSwebspace/sites/webapp-ssl-test123","repositorySiteName":"webapp-ssl-test123","owner":null,"usageState":"Normal","enabled":true,"adminEnabled":true,"enabledHostNames":["webapp-ssl-test123.azurewebsites.net","webapp-ssl-test123.scm.azurewebsites.net"],"siteProperties":{"metadata":null,"properties":[],"appSettings":null},"availabilityState":"Normal","sslCertificates":null,"csrs":[],"cers":null,"siteMode":null,"hostNameSslStates":[{"name":"webapp-ssl-test123.azurewebsites.net","sslState":"SniEnabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6","toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Standard"},{"name":"webapp-ssl-test123.scm.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Repository"}],"computeMode":null,"serverFarm":null,"serverFarmId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan000002","reserved":false,"lastModifiedTimeUtc":"2017-11-18T00:41:57.26","storageRecoveryDefaultState":"Running","contentAvailabilityState":"Normal","runtimeAvailabilityState":"Normal","siteConfig":null,"deploymentId":"webapp-ssl-test123","trafficManagerHostNames":null,"sku":"Basic","scmSiteAlsoStopped":false,"targetSwapSlot":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"clientAffinityEnabled":true,"clientCertEnabled":false,"hostNamesDisabled":false,"domainVerificationIdentifiers":null,"kind":"app","outboundIpAddresses":"40.83.145.50,104.42.191.8,104.42.186.112,104.42.186.44,104.42.187.158","possibleOutboundIpAddresses":"40.83.145.50,104.42.191.8,104.42.186.112,104.42.186.44,104.42.187.158,104.42.188.168,104.42.185.137","containerSize":0,"dailyMemoryTimeQuota":0,"suspendedTill":null,"siteDisabledReason":0,"functionExecutionUnitsCache":null,"maxNumberOfWorkers":null,"homeStamp":"waws-prod-bay-087","cloningInfo":null,"snapshotInfo":null,"hostingEnvironmentId":null,"tags":null,"resourceGroup":"clitest.rg000001","defaultHostName":"webapp-ssl-test123.azurewebsites.net","slotSwapStatus":null,"httpsOnly":false}}'}
|
||||
headers:
|
||||
Cache-Control: [no-cache]
|
||||
Content-Type: [application/json]
|
||||
Date: ['Tue, 24 Oct 2017 23:45:09 GMT']
|
||||
ETag: ['"1D34D221F3FA04B"']
|
||||
Expires: ['-1']
|
||||
Pragma: [no-cache]
|
||||
Server: [Microsoft-IIS/8.0]
|
||||
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: [Accept-Encoding]
|
||||
X-AspNet-Version: [4.0.30319]
|
||||
X-Powered-By: [ASP.NET]
|
||||
content-length: ['2837']
|
||||
cache-control: [no-cache]
|
||||
content-length: ['3104']
|
||||
content-type: [application/json]
|
||||
date: ['Sat, 18 Nov 2017 00:41:57 GMT']
|
||||
etag: ['"1D3600609B1E4C0"']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [webapp config ssl unbind]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/TEST/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
x-ms-client-request-id: [5eec4d08-b915-11e7-afa8-64510658e3b3]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/certificates?api-version=2016-03-01
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/certificates?api-version=2016-03-01
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/certificates/DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West
|
||||
US_test_cli_webapp_ssl","name":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West
|
||||
US_test_cli_webapp_ssl","type":"Microsoft.Web/certificates","location":"West
|
||||
US","properties":{"friendlyName":"","subjectName":"webapp-ssl-test123.azurewebsites.net","hostNames":["webapp-ssl-test123.azurewebsites.net"],"pfxBlob":null,"siteName":null,"selfLink":null,"issuer":"webapp-ssl-test123.azurewebsites.net","issueDate":"2017-02-08T23:14:36+00:00","expirationDate":"2018-02-08T23:14:36+00:00","password":null,"thumbprint":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6","valid":null,"toDelete":null,"cerBlob":null,"publicKeyHash":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"keyVaultSecretStatus":"Initialized","webSpace":"test_cli_webapp_ssl-WestUSwebspace","serverFarmId":null,"tags":null}}],"nextLink":null,"id":null}'}
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/certificates/DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West
|
||||
US_clitest.rg000001","name":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West
|
||||
US_clitest.rg000001","type":"Microsoft.Web/certificates","location":"West
|
||||
US","properties":{"friendlyName":"","subjectName":"webapp-ssl-test123.azurewebsites.net","hostNames":["webapp-ssl-test123.azurewebsites.net"],"pfxBlob":null,"siteName":null,"selfLink":null,"issuer":"webapp-ssl-test123.azurewebsites.net","issueDate":"2017-02-08T23:14:36+00:00","expirationDate":"2018-02-08T23:14:36+00:00","password":null,"thumbprint":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6","valid":null,"toDelete":null,"cerBlob":null,"publicKeyHash":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"keyVaultSecretStatus":"Initialized","webSpace":"clitest.rg000001-WestUSwebspace","serverFarmId":null,"tags":null}}],"nextLink":null,"id":null}'}
|
||||
headers:
|
||||
Cache-Control: [no-cache]
|
||||
Content-Type: [application/json]
|
||||
Date: ['Tue, 24 Oct 2017 23:45:10 GMT']
|
||||
Expires: ['-1']
|
||||
Pragma: [no-cache]
|
||||
Server: [Microsoft-IIS/8.0]
|
||||
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: [Accept-Encoding]
|
||||
X-AspNet-Version: [4.0.30319]
|
||||
X-Powered-By: [ASP.NET]
|
||||
content-length: ['1032']
|
||||
cache-control: [no-cache]
|
||||
content-length: ['1232']
|
||||
content-type: [application/json]
|
||||
date: ['Sat, 18 Nov 2017 00:42:00 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '{"properties": {"scmSiteAlsoStopped": false, "reserved": false, "hostNameSslStates":
|
||||
[{"thumbprint": "DB2BA6898D0B330A93E7F69FF505C61EF39921B6", "name": "webapp-ssl-test123.azurewebsites.net",
|
||||
"sslState": "Disabled", "toUpdate": true}]}, "location": "West US"}'
|
||||
body: '{"properties": {"hostNameSslStates": [{"name": "webapp-ssl-test123.azurewebsites.net",
|
||||
"thumbprint": "DB2BA6898D0B330A93E7F69FF505C61EF39921B6", "sslState": "Disabled",
|
||||
"toUpdate": true}], "scmSiteAlsoStopped": false, "reserved": false}, "location":
|
||||
"West US"}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [webapp config ssl unbind]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['260']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/TEST/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
x-ms-client-request-id: [5fb53130-b915-11e7-80b7-64510658e3b3]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/sites/webapp-ssl-test123?api-version=2016-08-01
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/sites/webapp-ssl-test123?api-version=2016-08-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/sites/webapp-ssl-test123","name":"webapp-ssl-test123","type":"Microsoft.Web/sites","kind":"app","location":"West
|
||||
US","properties":{"name":"webapp-ssl-test123","state":"Running","hostNames":["webapp-ssl-test123.azurewebsites.net"],"webSpace":"test_cli_webapp_ssl-WestUSwebspace","selfLink":"https://waws-prod-bay-085.api.azurewebsites.windows.net:454/subscriptions/00000000-0000-0000-0000-000000000000/webspaces/test_cli_webapp_ssl-WestUSwebspace/sites/webapp-ssl-test123","repositorySiteName":"webapp-ssl-test123","owner":null,"usageState":"Normal","enabled":true,"adminEnabled":true,"enabledHostNames":["webapp-ssl-test123.azurewebsites.net","webapp-ssl-test123.scm.azurewebsites.net"],"siteProperties":{"metadata":null,"properties":[],"appSettings":null},"availabilityState":"Normal","sslCertificates":null,"csrs":[],"cers":null,"siteMode":null,"hostNameSslStates":[{"name":"webapp-ssl-test123.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Standard"},{"name":"webapp-ssl-test123.scm.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Repository"}],"computeMode":null,"serverFarm":null,"serverFarmId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan","reserved":false,"lastModifiedTimeUtc":"2017-10-24T23:45:12.3","storageRecoveryDefaultState":"Running","contentAvailabilityState":"Normal","runtimeAvailabilityState":"Normal","siteConfig":null,"deploymentId":"webapp-ssl-test123","trafficManagerHostNames":null,"sku":"Basic","scmSiteAlsoStopped":false,"targetSwapSlot":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"clientAffinityEnabled":true,"clientCertEnabled":false,"hostNamesDisabled":false,"domainVerificationIdentifiers":null,"kind":"app","outboundIpAddresses":"104.40.53.219,104.42.226.43,104.42.227.57,104.42.228.164,104.42.230.5","possibleOutboundIpAddresses":"104.40.53.219,104.42.226.43,104.42.227.57,104.42.228.164,104.42.230.5,104.42.229.180,104.42.227.131","containerSize":0,"dailyMemoryTimeQuota":0,"suspendedTill":null,"siteDisabledReason":0,"functionExecutionUnitsCache":null,"maxNumberOfWorkers":null,"homeStamp":"waws-prod-bay-085","cloningInfo":null,"snapshotInfo":null,"hostingEnvironmentId":null,"tags":null,"resourceGroup":"test_cli_webapp_ssl","defaultHostName":"webapp-ssl-test123.azurewebsites.net","slotSwapStatus":null}}'}
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/sites/webapp-ssl-test123","name":"webapp-ssl-test123","type":"Microsoft.Web/sites","kind":"app","location":"West
|
||||
US","properties":{"name":"webapp-ssl-test123","state":"Running","hostNames":["webapp-ssl-test123.azurewebsites.net"],"webSpace":"clitest.rg000001-WestUSwebspace","selfLink":"https://waws-prod-bay-087.api.azurewebsites.windows.net:454/subscriptions/00000000-0000-0000-0000-000000000000/webspaces/clitest.rg000001-WestUSwebspace/sites/webapp-ssl-test123","repositorySiteName":"webapp-ssl-test123","owner":null,"usageState":"Normal","enabled":true,"adminEnabled":true,"enabledHostNames":["webapp-ssl-test123.azurewebsites.net","webapp-ssl-test123.scm.azurewebsites.net"],"siteProperties":{"metadata":null,"properties":[],"appSettings":null},"availabilityState":"Normal","sslCertificates":null,"csrs":[],"cers":null,"siteMode":null,"hostNameSslStates":[{"name":"webapp-ssl-test123.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Standard"},{"name":"webapp-ssl-test123.scm.azurewebsites.net","sslState":"Disabled","ipBasedSslResult":null,"virtualIP":null,"thumbprint":null,"toUpdate":null,"toUpdateIpBasedSsl":null,"ipBasedSslState":"NotConfigured","hostType":"Repository"}],"computeMode":null,"serverFarm":null,"serverFarmId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/serverfarms/webapp-ssl-test-plan000002","reserved":false,"lastModifiedTimeUtc":"2017-11-18T00:42:03.12","storageRecoveryDefaultState":"Running","contentAvailabilityState":"Normal","runtimeAvailabilityState":"Normal","siteConfig":null,"deploymentId":"webapp-ssl-test123","trafficManagerHostNames":null,"sku":"Basic","scmSiteAlsoStopped":false,"targetSwapSlot":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"clientAffinityEnabled":true,"clientCertEnabled":false,"hostNamesDisabled":false,"domainVerificationIdentifiers":null,"kind":"app","outboundIpAddresses":"40.83.145.50,104.42.191.8,104.42.186.112,104.42.186.44,104.42.187.158","possibleOutboundIpAddresses":"40.83.145.50,104.42.191.8,104.42.186.112,104.42.186.44,104.42.187.158,104.42.188.168,104.42.185.137","containerSize":0,"dailyMemoryTimeQuota":0,"suspendedTill":null,"siteDisabledReason":0,"functionExecutionUnitsCache":null,"maxNumberOfWorkers":null,"homeStamp":"waws-prod-bay-087","cloningInfo":null,"snapshotInfo":null,"hostingEnvironmentId":null,"tags":null,"resourceGroup":"clitest.rg000001","defaultHostName":"webapp-ssl-test123.azurewebsites.net","slotSwapStatus":null,"httpsOnly":false}}'}
|
||||
headers:
|
||||
Cache-Control: [no-cache]
|
||||
Content-Type: [application/json]
|
||||
Date: ['Tue, 24 Oct 2017 23:45:12 GMT']
|
||||
ETag: ['"1D34D2222443AC0"']
|
||||
Expires: ['-1']
|
||||
Pragma: [no-cache]
|
||||
Server: [Microsoft-IIS/8.0]
|
||||
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: [Accept-Encoding]
|
||||
X-AspNet-Version: [4.0.30319]
|
||||
X-Powered-By: [ASP.NET]
|
||||
content-length: ['2791']
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1195']
|
||||
cache-control: [no-cache]
|
||||
content-length: ['3064']
|
||||
content-type: [application/json]
|
||||
date: ['Sat, 18 Nov 2017 00:42:02 GMT']
|
||||
etag: ['"1D360060D300F00"']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [webapp config ssl delete]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/TEST/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
x-ms-client-request-id: [611cb2a2-b915-11e7-b3a6-64510658e3b3]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/certificates?api-version=2016-03-01
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/certificates?api-version=2016-03-01
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/certificates/DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West
|
||||
US_test_cli_webapp_ssl","name":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West
|
||||
US_test_cli_webapp_ssl","type":"Microsoft.Web/certificates","location":"West
|
||||
US","properties":{"friendlyName":"","subjectName":"webapp-ssl-test123.azurewebsites.net","hostNames":["webapp-ssl-test123.azurewebsites.net"],"pfxBlob":null,"siteName":null,"selfLink":null,"issuer":"webapp-ssl-test123.azurewebsites.net","issueDate":"2017-02-08T23:14:36+00:00","expirationDate":"2018-02-08T23:14:36+00:00","password":null,"thumbprint":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6","valid":null,"toDelete":null,"cerBlob":null,"publicKeyHash":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"keyVaultSecretStatus":"Initialized","webSpace":"test_cli_webapp_ssl-WestUSwebspace","serverFarmId":null,"tags":null}}],"nextLink":null,"id":null}'}
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/certificates/DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West
|
||||
US_clitest.rg000001","name":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West
|
||||
US_clitest.rg000001","type":"Microsoft.Web/certificates","location":"West
|
||||
US","properties":{"friendlyName":"","subjectName":"webapp-ssl-test123.azurewebsites.net","hostNames":["webapp-ssl-test123.azurewebsites.net"],"pfxBlob":null,"siteName":null,"selfLink":null,"issuer":"webapp-ssl-test123.azurewebsites.net","issueDate":"2017-02-08T23:14:36+00:00","expirationDate":"2018-02-08T23:14:36+00:00","password":null,"thumbprint":"DB2BA6898D0B330A93E7F69FF505C61EF39921B6","valid":null,"toDelete":null,"cerBlob":null,"publicKeyHash":null,"hostingEnvironment":null,"hostingEnvironmentProfile":null,"keyVaultSecretStatus":"Initialized","webSpace":"clitest.rg000001-WestUSwebspace","serverFarmId":null,"tags":null}}],"nextLink":null,"id":null}'}
|
||||
headers:
|
||||
Cache-Control: [no-cache]
|
||||
Content-Type: [application/json]
|
||||
Date: ['Tue, 24 Oct 2017 23:45:13 GMT']
|
||||
Expires: ['-1']
|
||||
Pragma: [no-cache]
|
||||
Server: [Microsoft-IIS/8.0]
|
||||
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: [Accept-Encoding]
|
||||
X-AspNet-Version: [4.0.30319]
|
||||
X-Powered-By: [ASP.NET]
|
||||
content-length: ['1032']
|
||||
cache-control: [no-cache]
|
||||
content-length: ['1232']
|
||||
content-type: [application/json]
|
||||
date: ['Sat, 18 Nov 2017 00:42:03 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [webapp config ssl delete]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/TEST/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 websitemanagementclient/0.34.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
x-ms-client-request-id: [6192474a-b915-11e7-b0d7-64510658e3b3]
|
||||
method: DELETE
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/certificates/DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West%20US_test_cli_webapp_ssl?api-version=2016-03-01
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Web/certificates/DB2BA6898D0B330A93E7F69FF505C61EF39921B6__West%20US_clitest.rg000001?api-version=2016-03-01
|
||||
response:
|
||||
body: {string: ''}
|
||||
headers:
|
||||
Cache-Control: [no-cache]
|
||||
Content-Length: ['0']
|
||||
Date: ['Tue, 24 Oct 2017 23:45:14 GMT']
|
||||
Expires: ['-1']
|
||||
Pragma: [no-cache]
|
||||
Server: [Microsoft-IIS/8.0]
|
||||
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
|
||||
X-AspNet-Version: [4.0.30319]
|
||||
X-Powered-By: [ASP.NET]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1194']
|
||||
cache-control: [no-cache]
|
||||
content-length: ['0']
|
||||
date: ['Sat, 18 Nov 2017 00:42:05 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/10.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [group delete]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.15063-SP0) requests/2.18.4 msrest/0.4.15
|
||||
msrest_azure/0.4.11 websitemanagementclient/0.33.0 Azure-SDK-For-Python
|
||||
AZURECLI/TEST/2.0.21]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.22]
|
||||
accept-language: [en-US]
|
||||
x-ms-client-request-id: [6251397e-b915-11e7-93ff-64510658e3b3]
|
||||
method: DELETE
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_cli_webapp_ssl/providers/Microsoft.Web/sites/webapp-ssl-test123?api-version=2016-08-01
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2017-05-10
|
||||
response:
|
||||
body: {string: ''}
|
||||
headers:
|
||||
Cache-Control: [no-cache]
|
||||
Content-Length: ['0']
|
||||
Date: ['Tue, 24 Oct 2017 23:45:18 GMT']
|
||||
ETag: ['"1D34D2222443AC0"']
|
||||
Expires: ['-1']
|
||||
Pragma: [no-cache]
|
||||
Server: [Microsoft-IIS/8.0]
|
||||
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
|
||||
X-AspNet-Version: [4.0.30319]
|
||||
X-Powered-By: [ASP.NET]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1191']
|
||||
status: {code: 200, message: OK}
|
||||
cache-control: [no-cache]
|
||||
content-length: ['0']
|
||||
date: ['Sat, 18 Nov 2017 00:42:07 GMT']
|
||||
expires: ['-1']
|
||||
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkdCT0VKQlIzSkNLWjJFTUlXQUc3SjNRWUtJTjNVRUVTSFhLRnxGNzJGREU4MUE3RkEwOUVFLVdFU1RVUyIsImpvYkxvY2F0aW9uIjoid2VzdHVzIn0?api-version=2017-05-10']
|
||||
pragma: [no-cache]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 202, message: Accepted}
|
||||
version: 1
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -95,8 +95,20 @@ class WebappBasicE2ETest(ResourceGroupVCRTestBase):
|
|||
class WebappQuickCreateTest(ScenarioTest):
|
||||
@ResourceGroupPreparer()
|
||||
def test_win_webapp_quick_create(self, resource_group):
|
||||
webapp_name = 'webapp-quick'
|
||||
plan = 'plan-quick'
|
||||
webapp_name = self.create_random_name(prefix='webapp-quick', length=24)
|
||||
plan = self.create_random_name(prefix='plan-quick', length=24)
|
||||
self.cmd('appservice plan create -g {} -n {}'.format(resource_group, plan))
|
||||
r = self.cmd('webapp create -g {} -n {} --plan {} --deployment-local-git'.format(resource_group, webapp_name, plan)).get_output_in_json()
|
||||
self.assertTrue(r['ftpPublishingUrl'].startswith('ftp://'))
|
||||
self.cmd('webapp config appsettings list -g {} -n {}'.format(resource_group, webapp_name, checks=[
|
||||
JMESPathCheckV2('[0].name', 'WEBSITE_NODE_DEFAULT_VERSION'),
|
||||
JMESPathCheckV2('[0].value', '6.9.1'),
|
||||
]))
|
||||
|
||||
@ResourceGroupPreparer()
|
||||
def test_win_webapp_quick_create_runtime(self, resource_group):
|
||||
webapp_name = self.create_random_name(prefix='webapp-quick', length=24)
|
||||
plan = self.create_random_name(prefix='plan-quick', length=24)
|
||||
self.cmd('appservice plan create -g {} -n {}'.format(resource_group, plan))
|
||||
r = self.cmd('webapp create -g {} -n {} --plan {} --deployment-local-git -r "node|6.1"'.format(resource_group, webapp_name, plan)).get_output_in_json()
|
||||
self.assertTrue(r['ftpPublishingUrl'].startswith('ftp://'))
|
||||
|
@ -397,7 +409,12 @@ class LinuxWebappSceanrioTest(ScenarioTest):
|
|||
])
|
||||
self.cmd('webapp list -g {}'.format(resource_group), checks=[
|
||||
JMESPathCheckV2('length([])', 1),
|
||||
JMESPathCheckV2('[0].name', webapp)
|
||||
JMESPathCheckV2('[0].name', webapp),
|
||||
JMESPathCheckV2('[0].kind', 'app,linux')
|
||||
])
|
||||
self.cmd('webapp show -g {} -n {}'.format(resource_group, webapp), checks=[
|
||||
JMESPathCheckV2('name', webapp),
|
||||
JMESPathCheckV2('kind', 'app,linux')
|
||||
])
|
||||
self.cmd('webapp config set -g {} -n {} --startup-file {}'.format(resource_group, webapp, 'process.json'), checks=[
|
||||
JMESPathCheckV2('appCommandLine', 'process.json')
|
||||
|
@ -582,35 +599,29 @@ class WebappSlotSwapScenarioTest(ScenarioTest):
|
|||
])
|
||||
|
||||
|
||||
class WebappSSLCertTest(ResourceGroupVCRTestBase):
|
||||
def __init__(self, test_method):
|
||||
super(WebappSSLCertTest, self).__init__(__file__, test_method, resource_group='test_cli_webapp_ssl')
|
||||
self.webapp_name = 'webapp-ssl-test123'
|
||||
|
||||
def test_webapp_ssl(self):
|
||||
self.execute()
|
||||
|
||||
def body(self):
|
||||
plan = 'webapp-ssl-test-plan'
|
||||
class WebappSSLCertTest(ScenarioTest):
|
||||
@ResourceGroupPreparer()
|
||||
def test_webapp_ssl(self, resource_group):
|
||||
plan = self.create_random_name(prefix='webapp-ssl-test-plan', length=24)
|
||||
webapp_name = 'webapp-ssl-test123' # do not randomlize it as the test cert is bound to the hostname
|
||||
# Cert Generated using
|
||||
# https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-configure-ssl-certificate#bkmk_ssopenssl
|
||||
pfx_file = os.path.join(TEST_DIR, 'server.pfx')
|
||||
cert_password = 'test'
|
||||
cert_thumbprint = 'DB2BA6898D0B330A93E7F69FF505C61EF39921B6'
|
||||
self.cmd('appservice plan create -g {} -n {} --sku B1'.format(self.resource_group, plan))
|
||||
self.cmd('webapp create -g {} -n {} --plan {}'.format(self.resource_group, self.webapp_name, plan, self.location))
|
||||
self.cmd('webapp config ssl upload -g {} -n {} --certificate-file "{}" --certificate-password {}'.format(self.resource_group, self.webapp_name, pfx_file, cert_password), checks=[
|
||||
JMESPathCheck('thumbprint', cert_thumbprint)
|
||||
self.cmd('appservice plan create -g {} -n {} --sku B1'.format(resource_group, plan))
|
||||
self.cmd('webapp create -g {} -n {} --plan {}'.format(resource_group, webapp_name, plan))
|
||||
self.cmd('webapp config ssl upload -g {} -n {} --certificate-file "{}" --certificate-password {}'.format(resource_group, webapp_name, pfx_file, cert_password), checks=[
|
||||
JMESPathCheckV2('thumbprint', cert_thumbprint)
|
||||
])
|
||||
self.cmd('webapp config ssl bind -g {} -n {} --certificate-thumbprint {} --ssl-type {}'.format(self.resource_group, self.webapp_name, cert_thumbprint, 'SNI'), checks=[
|
||||
JMESPathCheck("hostNameSslStates|[?name=='{}.azurewebsites.net']|[0].sslState".format(self.webapp_name), 'SniEnabled'),
|
||||
JMESPathCheck("hostNameSslStates|[?name=='{}.azurewebsites.net']|[0].thumbprint".format(self.webapp_name), cert_thumbprint)
|
||||
self.cmd('webapp config ssl bind -g {} -n {} --certificate-thumbprint {} --ssl-type {}'.format(resource_group, webapp_name, cert_thumbprint, 'SNI'), checks=[
|
||||
JMESPathCheckV2("hostNameSslStates|[?name=='{}.azurewebsites.net']|[0].sslState".format(webapp_name), 'SniEnabled'),
|
||||
JMESPathCheckV2("hostNameSslStates|[?name=='{}.azurewebsites.net']|[0].thumbprint".format(webapp_name), cert_thumbprint)
|
||||
])
|
||||
self.cmd('webapp config ssl unbind -g {} -n {} --certificate-thumbprint {}'.format(self.resource_group, self.webapp_name, cert_thumbprint), checks=[
|
||||
JMESPathCheck("hostNameSslStates|[?name=='{}.azurewebsites.net']|[0].sslState".format(self.webapp_name), 'Disabled'),
|
||||
self.cmd('webapp config ssl unbind -g {} -n {} --certificate-thumbprint {}'.format(resource_group, webapp_name, cert_thumbprint), checks=[
|
||||
JMESPathCheckV2("hostNameSslStates|[?name=='{}.azurewebsites.net']|[0].sslState".format(webapp_name), 'Disabled'),
|
||||
])
|
||||
self.cmd('webapp config ssl delete -g {} --certificate-thumbprint {}'.format(self.resource_group, cert_thumbprint))
|
||||
self.cmd('webapp delete -g {} -n {}'.format(self.resource_group, self.webapp_name))
|
||||
self.cmd('webapp config ssl delete -g {} --certificate-thumbprint {}'.format(resource_group, cert_thumbprint))
|
||||
|
||||
|
||||
class WebappBackupConfigScenarioTest(ResourceGroupVCRTestBase):
|
||||
|
@ -761,6 +772,14 @@ class FunctionAppWithConsumptionPlanE2ETest(ScenarioTest):
|
|||
JMESPathCheckV2('name', functionapp_name),
|
||||
JMESPathCheckV2('hostNames[0]', functionapp_name + '.azurewebsites.net')])
|
||||
|
||||
self.cmd('functionapp list -g {}'.format(resource_group), checks=[
|
||||
JMESPathCheckV2('[0].kind', 'functionapp'),
|
||||
JMESPathCheckV2('[0].name', functionapp_name)
|
||||
])
|
||||
self.cmd('functionapp show -g {} -n {}'.format(resource_group, functionapp_name), checks=[
|
||||
JMESPathCheckV2('kind', 'functionapp'),
|
||||
JMESPathCheckV2('name', functionapp_name)
|
||||
])
|
||||
self.cmd('functionapp delete -g {} -n {}'.format(resource_group, functionapp_name))
|
||||
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ except ImportError:
|
|||
logger.warn("Wheel is not available, disabling bdist_wheel hook")
|
||||
cmdclass = {}
|
||||
|
||||
VERSION = "0.1.20"
|
||||
VERSION = "0.1.21"
|
||||
CLASSIFIERS = [
|
||||
'Development Status :: 4 - Beta',
|
||||
'Intended Audience :: Developers',
|
||||
|
|
|
@ -3,6 +3,10 @@
|
|||
Release History
|
||||
===============
|
||||
|
||||
0.2.0
|
||||
+++++
|
||||
* Release of new GA api version 2017-11-30.
|
||||
|
||||
0.1.6
|
||||
+++++
|
||||
* minor fixes
|
||||
|
|
|
@ -5,12 +5,11 @@
|
|||
|
||||
# pylint: disable=line-too-long
|
||||
from azure.cli.core.commands import register_cli_argument
|
||||
from ._validators import get_datetime_type
|
||||
from ._validators import get_datetime_type, validate_both_start_end_dates
|
||||
|
||||
register_cli_argument('consumption usage list', 'top', options_list=('--top', '-t'), type=int, help='maximum number of items to return. Accepted range for this value is 1 - 1000')
|
||||
register_cli_argument('consumption usage list', 'include_additional_properties', options_list=('--include-additional-properties', '-a'), action='store_true', help='include additional properties in the usages')
|
||||
register_cli_argument('consumption usage list', 'include_meter_details', options_list=('--include-meter-details', '-m'), action='store_true', help='include meter details in the usages')
|
||||
register_cli_argument('consumption usage list', 'start_date', options_list=('--start-date', '-s'), type=get_datetime_type(), help='start date (in UTC Y-m-d) of the usages')
|
||||
register_cli_argument('consumption usage list', 'end_date', options_list=('--end-date', '-e'), type=get_datetime_type(), help='end date (in UTC Y-m-d) of the usages')
|
||||
register_cli_argument('consumption usage list', 'invoice_name', options_list=('--invoice-name', '-i'), help='name of a specific invoice to get the usage details that associate with')
|
||||
register_cli_argument('consumption usage list', 'start_date', options_list=('--start-date', '-s'), type=get_datetime_type(), validator=validate_both_start_end_dates, help='start date (in UTC Y-m-d) of the usages. Both start date and end date need to be supplied or neither')
|
||||
register_cli_argument('consumption usage list', 'end_date', options_list=('--end-date', '-e'), type=get_datetime_type(), validator=validate_both_start_end_dates, help='end date (in UTC Y-m-d) of the usages. Both start date and end date need to be supplied or neither')
|
||||
register_cli_argument('consumption usage list', 'billing_period_name', options_list=('--billing-period-name', '-p'), help='name of a specific billing period to get the usage details that associate with')
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
from datetime import datetime
|
||||
from azure.cli.core.util import CLIError
|
||||
|
||||
|
||||
def get_datetime_type():
|
||||
|
@ -21,3 +22,9 @@ def get_datetime_type():
|
|||
continue
|
||||
raise ValueError("Input '{}' not valid. Valid example: 2017-02-11T23:59:59Z".format(string))
|
||||
return datetime_type
|
||||
|
||||
|
||||
def validate_both_start_end_dates(namespace):
|
||||
"""Validates the existence of both start and end dates in the parameter or neither"""
|
||||
if (namespace.start_date and not namespace.end_date) or (namespace.end_date and not namespace.start_date):
|
||||
raise CLIError("usage error: Both --start-date and --end-date need to be supplied or neither.")
|
||||
|
|
|
@ -5,42 +5,33 @@
|
|||
|
||||
# pylint: disable=line-too-long
|
||||
|
||||
from datetime import timedelta
|
||||
from azure.cli.command_modules.consumption._client_factory import cf_consumption
|
||||
|
||||
|
||||
def cli_consumption_list_usage(client, invoice_name=None, billing_period_name=None, top=None, include_additional_properties=False, include_meter_details=False, start_date=None, end_date=None):
|
||||
def cli_consumption_list_usage(client, billing_period_name=None, top=None, include_additional_properties=False, include_meter_details=False, start_date=None, end_date=None):
|
||||
"""List all usage details of the subscription"""
|
||||
if include_additional_properties and include_meter_details:
|
||||
expand = 'additionalProperties,meterDetails'
|
||||
expand = 'properties/additionalProperties,properties/meterDetails'
|
||||
elif include_additional_properties:
|
||||
expand = 'additionalProperties'
|
||||
expand = 'properties/additionalProperties'
|
||||
elif include_meter_details:
|
||||
expand = 'meterDetails'
|
||||
expand = 'properties/meterDetails'
|
||||
else:
|
||||
expand = None
|
||||
|
||||
if billing_period_name:
|
||||
scope = "/subscriptions/{}/providers/Microsoft.Billing/billingPeriods/{}".format(cf_consumption().config.subscription_id, billing_period_name)
|
||||
elif invoice_name:
|
||||
scope = "/subscriptions/{}/providers/Microsoft.Billing/invoices/{}".format(cf_consumption().config.subscription_id, invoice_name)
|
||||
else:
|
||||
scope = "/subscriptions/{}".format(cf_consumption().config.subscription_id)
|
||||
|
||||
filter_from = None
|
||||
filter_to = None
|
||||
filter_expression = None
|
||||
if start_date:
|
||||
# pylint: disable=no-member
|
||||
from_time = start_date + timedelta(days=1) - timedelta(seconds=1)
|
||||
filter_from = "usageEnd ge {}".format(from_time.strftime("%Y-%m-%dT%H:%M:%SZ"))
|
||||
filter_expression = filter_from
|
||||
if end_date:
|
||||
# pylint: disable=no-member
|
||||
to_time = end_date + timedelta(days=1) - timedelta(seconds=1)
|
||||
filter_to = "usageEnd le {}".format(to_time.strftime("%Y-%m-%dT%H:%M:%SZ"))
|
||||
filter_expression = filter_to
|
||||
if filter_from and filter_to:
|
||||
if start_date and end_date:
|
||||
filter_from = "properties/usageEnd ge \'{}\'".format(start_date.strftime("%Y-%m-%dT%H:%M:%SZ"))
|
||||
filter_to = "properties/usageEnd le \'{}\'".format(end_date.strftime("%Y-%m-%dT%H:%M:%SZ"))
|
||||
filter_expression = "{} and {}".format(filter_from, filter_to)
|
||||
|
||||
return list(client.list(scope, expand=expand, filter=filter_expression, top=top))
|
||||
if top:
|
||||
pages = client.list(scope, expand=expand, filter=filter_expression, top=top)
|
||||
return list(pages.advance_page())
|
||||
return list(client.list(scope, expand=expand, filter=filter_expression))
|
||||
|
|
|
@ -7,26 +7,37 @@ interactions:
|
|||
CommandName: [consumption usage list]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.1 (Windows-10-10.0.15063-SP0) requests/2.9.1 msrest/0.4.7
|
||||
msrest_azure/0.4.7 consumptionmanagementclient/0.1.0 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.6+dev]
|
||||
User-Agent: [python/3.6.0 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 azure-mgmt-consumption/1.0.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201705-1/providers/Microsoft.Consumption/usageDetails?$filter=usageEnd%20ge%202017-04-02T23%3A59%3A59Z&$top=5&api-version=2017-04-24-preview
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201710/providers/Microsoft.Consumption/usageDetails?$top=5&api-version=2017-11-30
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/usageDetails/4d8c2ef3374a337ce1fd755fb8b69840","type":"Microsoft.Consumption/usageDetails","name":"4d8c2ef3374a337ce1fd755fb8b69840","tags":{"AccountName":"abcd","PoolName":"hjkl","MeteredService":"Compute","MeteredServiceType":"External","CloudServiceName":"304F6604-3F74-4D34-88CB-9CE0AFE7FAE2-CloudService","PoolSubscriptionId":"7122b0e6-cf8f-4ce6-9bd3-d700ed2bcc03"},"properties":{"billingPeriodId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201705-1","invoiceId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/invoices/201705-217089190378988","usageStart":"2017-04-04T00:00:00Z","usageEnd":"2017-04-04T23:59:59Z","instanceName":"abcd","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/abcdef/providers/Microsoft.Batch/batchAccounts/abcd","instanceLocation":"krsouth","currency":"USD","usageQuantity":0.000273,"billableQuantity":0.0,"pretaxCost":0.0,"isEstimated":false,"meterId":"fe167397-a38d-43c3-9bb3-8e2907e56a41"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/usageDetails/96a719e9972f564e3904d122c43cfc0d","type":"Microsoft.Consumption/usageDetails","name":"96a719e9972f564e3904d122c43cfc0d","properties":{"billingPeriodId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201705-1","invoiceId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/invoices/201705-217089190378988","usageStart":"2017-04-04T00:00:00Z","usageEnd":"2017-04-04T23:59:59Z","instanceName":"SSSSS","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/NewSearchGroup/providers/Microsoft.HDInsight/clusters/SSSSS","instanceLocation":"westus","currency":"USD","usageQuantity":30.0,"billableQuantity":30.0,"pretaxCost":9.600027807428065950698902935,"isEstimated":false,"meterId":"fa9dc70f-f562-44af-b965-b4576aefed95"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/usageDetails/f07199feb5a5dabb6795a1fa1276b46a","type":"Microsoft.Consumption/usageDetails","name":"f07199feb5a5dabb6795a1fa1276b46a","properties":{"billingPeriodId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201705-1","invoiceId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/invoices/201705-217089190378988","usageStart":"2017-04-04T00:00:00Z","usageEnd":"2017-04-04T23:59:59Z","instanceName":"bextsa001","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/bextresourcegroup1/providers/Microsoft.Storage/storageAccounts/bextsa001","instanceLocation":"uswest","currency":"USD","usageQuantity":1.8655,"billableQuantity":1.8655,"pretaxCost":0.0006352779319668586178831334,"isEstimated":false,"meterId":"f8c187bb-5a47-46ae-b874-f186d207fff4"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/usageDetails/c152aabecc33190b8c02e1b360ade6ab","type":"Microsoft.Consumption/usageDetails","name":"c152aabecc33190b8c02e1b360ade6ab","properties":{"billingPeriodId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201705-1","invoiceId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/invoices/201705-217089190378988","usageStart":"2017-04-04T00:00:00Z","usageEnd":"2017-04-04T23:59:59Z","instanceName":"bextsa001","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/bextresourcegroup1/providers/Microsoft.Storage/storageAccounts/bextsa001","instanceLocation":"uswest","currency":"USD","usageQuantity":0.3392,"billableQuantity":0.3392,"pretaxCost":0.0001231422268144879778826552,"isEstimated":false,"meterId":"d3824379-dc7e-472b-9e67-3f4a7eadc05b"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/usageDetails/48e8a3ffc3a426923ad278f8f6d77057","type":"Microsoft.Consumption/usageDetails","name":"48e8a3ffc3a426923ad278f8f6d77057","properties":{"billingPeriodId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201705-1","invoiceId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/invoices/201705-217089190378988","usageStart":"2017-04-04T00:00:00Z","usageEnd":"2017-04-04T23:59:59Z","instanceName":"bextsa001","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/bextresourcegroup1/providers/Microsoft.Storage/storageAccounts/bextsa001","instanceLocation":"uswest","currency":"USD","usageQuantity":0.083204,"billableQuantity":0.083204,"pretaxCost":0.0020754716981132075471698113,"isEstimated":false,"meterId":"c1635534-1c1d-4fc4-b090-88fc2672ef87"}}]}'}
|
||||
body: {string: '{"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201710/providers/Microsoft.Consumption/usageDetails?$top=5&api-version=2017-11-30&sessiontoken=21:634584&$skiptoken=317C357C357C46616C73657C547275657C30&skiptokenver=v1&id=8d8b5d35-fa12-4092-b334-9227b9042be8","value":[{"id":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001/providers/Microsoft.Consumption/usageDetails/4b2ff4df-a461-52f2-be86-5f2cb99b8c3e","name":"4b2ff4df-a461-52f2-be86-5f2cb99b8c3e","type":"Microsoft.Consumption/usageDetails","tags":[],"properties":{"billingPeriodId":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001","usageStart":"2017-10-01T00:00:00.0000000Z","usageEnd":"2017-10-01T23:59:59.0000000Z","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test1234/providers/Microsoft.AnalysisServices/servers/test1234","instanceName":"test1234","instanceLocation":"WestUS","meterId":"57b80ac8-0266-432c-ac59-32940e07e318","usageQuantity":24,"pretaxCost":10.32,"currency":"USD","isEstimated":false,"subscriptionGuid":"00043d42-773d-435b-b501-6d58f491875d","subscriptionName":"Enterprise
|
||||
Dev/Test","accountName":"AAAA","departmentName":"Ama","product":"Analysis
|
||||
Services Tabular Basic B1","consumedService":"Microsoft.AnalysisServices","costCenter":"XYZ987","meterDetails":null}},{"id":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001/providers/Microsoft.Consumption/usageDetails/26021ef1-76fc-95c2-c596-234f9eee4043","name":"26021ef1-76fc-95c2-c596-234f9eee4043","type":"Microsoft.Consumption/usageDetails","tags":[],"properties":{"billingPeriodId":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001","usageStart":"2017-10-01T00:00:00.0000000Z","usageEnd":"2017-10-01T23:59:59.0000000Z","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test1234/providers/Microsoft.Sql/servers/testazure123222/databases/TestSQLPricing","instanceName":"TestSQLPricing","instanceLocation":"westeurope","meterId":"6bafdc11-b964-4895-9d4e-a0e548db1b2b","usageQuantity":1,"pretaxCost":4.25996194214496,"currency":"USD","isEstimated":false,"subscriptionGuid":"00043d42-773d-435b-b501-6d58f491875d","subscriptionName":"Enterprise
|
||||
Dev/Test","accountName":"AAAA","departmentName":"Ama","product":"Standard
|
||||
S3 Database Days","consumedService":"Microsoft.Sql","costCenter":"XYZ987","meterDetails":null}},{"id":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001/providers/Microsoft.Consumption/usageDetails/4be70066-dce7-9ea5-8fbd-5a9a825e6cc5","name":"4be70066-dce7-9ea5-8fbd-5a9a825e6cc5","type":"Microsoft.Consumption/usageDetails","tags":[],"properties":{"billingPeriodId":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001","usageStart":"2017-10-02T00:00:00.0000000Z","usageEnd":"2017-10-02T23:59:59.0000000Z","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test1234/providers/Microsoft.AnalysisServices/servers/test1234","instanceName":"test1234","instanceLocation":"WestUS","meterId":"57b80ac8-0266-432c-ac59-32940e07e318","usageQuantity":24,"pretaxCost":10.32,"currency":"USD","isEstimated":false,"subscriptionGuid":"00043d42-773d-435b-b501-6d58f491875d","subscriptionName":"Enterprise
|
||||
Dev/Test","accountName":"AAAA","departmentName":"Ama","product":"Analysis
|
||||
Services Tabular Basic B1","consumedService":"Microsoft.AnalysisServices","costCenter":"XYZ987","meterDetails":null}},{"id":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001/providers/Microsoft.Consumption/usageDetails/0dbd1d0a-c070-1c76-f228-d323ecac5b78","name":"0dbd1d0a-c070-1c76-f228-d323ecac5b78","type":"Microsoft.Consumption/usageDetails","tags":[],"properties":{"billingPeriodId":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001","usageStart":"2017-10-02T00:00:00.0000000Z","usageEnd":"2017-10-02T23:59:59.0000000Z","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test1234/providers/Microsoft.Sql/servers/testazure123222/databases/TestSQLPricing","instanceName":"TestSQLPricing","instanceLocation":"westeurope","meterId":"6bafdc11-b964-4895-9d4e-a0e548db1b2b","usageQuantity":1,"pretaxCost":4.25996194214496,"currency":"USD","isEstimated":false,"subscriptionGuid":"00043d42-773d-435b-b501-6d58f491875d","subscriptionName":"Enterprise
|
||||
Dev/Test","accountName":"AAAA","departmentName":"Ama","product":"Standard
|
||||
S3 Database Days","consumedService":"Microsoft.Sql","costCenter":"XYZ987","meterDetails":null}},{"id":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001/providers/Microsoft.Consumption/usageDetails/466efff4-97d4-10a9-b6c9-1901ba7a5a5b","name":"466efff4-97d4-10a9-b6c9-1901ba7a5a5b","type":"Microsoft.Consumption/usageDetails","tags":[],"properties":{"billingPeriodId":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001","usageStart":"2017-10-03T00:00:00.0000000Z","usageEnd":"2017-10-03T23:59:59.0000000Z","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test1234/providers/Microsoft.AnalysisServices/servers/test1234","instanceName":"test1234","instanceLocation":"WestUS","meterId":"57b80ac8-0266-432c-ac59-32940e07e318","usageQuantity":24,"pretaxCost":10.32,"currency":"USD","isEstimated":false,"subscriptionGuid":"00043d42-773d-435b-b501-6d58f491875d","subscriptionName":"Enterprise
|
||||
Dev/Test","accountName":"AAAA","departmentName":"Ama","product":"Analysis
|
||||
Services Tabular Basic B1","consumedService":"Microsoft.AnalysisServices","costCenter":"XYZ987","meterDetails":null}}]}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['4923']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Wed, 17 May 2017 01:56:38 GMT']
|
||||
content-length: ['5990']
|
||||
content-type: [application/json; odata.metadata=none]
|
||||
date: ['Thu, 16 Nov 2017 22:34:16 GMT']
|
||||
expires: ['-1']
|
||||
odata-version: ['4.0']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/8.5]
|
||||
session-id: [382de809-13a1-46dc-9e0b-80a46bfc96b4]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-content-type-options: [nosniff]
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
|
|
|
@ -7,34 +7,44 @@ interactions:
|
|||
CommandName: [consumption usage list]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.1 (Windows-10-10.0.15063-SP0) requests/2.9.1 msrest/0.4.7
|
||||
msrest_azure/0.4.7 consumptionmanagementclient/0.1.0 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.6+dev]
|
||||
User-Agent: [python/3.6.0 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 azure-mgmt-consumption/1.0.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201705-1/providers/Microsoft.Consumption/usageDetails?$expand=additionalProperties%2CmeterDetails&$top=5&api-version=2017-04-24-preview
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201710/providers/Microsoft.Consumption/usageDetails?$expand=properties%2FadditionalProperties%2Cproperties%2FmeterDetails&$top=5&api-version=2017-11-30
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/usageDetails/4d8c2ef3374a337ce1fd755fb8b69840","type":"Microsoft.Consumption/usageDetails","name":"4d8c2ef3374a337ce1fd755fb8b69840","tags":{"AccountName":"abcd","PoolName":"hjkl","MeteredService":"Compute","MeteredServiceType":"External","CloudServiceName":"304F6604-3F74-4D34-88CB-9CE0AFE7FAE2-CloudService","PoolSubscriptionId":"7122b0e6-cf8f-4ce6-9bd3-d700ed2bcc03"},"properties":{"billingPeriodId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201705-1","invoiceId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/invoices/201705-217089190378988","usageStart":"2017-04-04T00:00:00Z","usageEnd":"2017-04-04T23:59:59Z","instanceName":"abcd","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/abcdef/providers/Microsoft.Batch/batchAccounts/abcd","instanceLocation":"krsouth","currency":"USD","usageQuantity":0.000273,"billableQuantity":0.0,"pretaxCost":0.0,"isEstimated":false,"meterId":"fe167397-a38d-43c3-9bb3-8e2907e56a41","meterDetails":{"meterName":"Data
|
||||
Transfer Out (GB)","meterCategory":"Networking","unit":"GB","meterLocation":"Zone
|
||||
2","totalIncludedQuantity":5.00000000}}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/usageDetails/96a719e9972f564e3904d122c43cfc0d","type":"Microsoft.Consumption/usageDetails","name":"96a719e9972f564e3904d122c43cfc0d","properties":{"billingPeriodId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201705-1","invoiceId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/invoices/201705-217089190378988","usageStart":"2017-04-04T00:00:00Z","usageEnd":"2017-04-04T23:59:59Z","instanceName":"SSSSS","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/NewSearchGroup/providers/Microsoft.HDInsight/clusters/SSSSS","instanceLocation":"westus","currency":"USD","usageQuantity":30.0,"billableQuantity":30.0,"pretaxCost":9.600027807428065950698902935,"isEstimated":false,"meterId":"fa9dc70f-f562-44af-b965-b4576aefed95","meterDetails":{"meterName":"Compute
|
||||
Hours","meterCategory":"Business Analytics","meterSubCategory":"A3 HDInsight
|
||||
(Non-Windows)","unit":"Hours","totalIncludedQuantity":0.00000000,"pretaxStandardRate":0.3200},"additionalProperties":{"ClusterName":"SSSSS","HdInsightVersion":"3.5.1000.0.9492416","Tier":"standard","SurCharge":"None"}}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/usageDetails/f07199feb5a5dabb6795a1fa1276b46a","type":"Microsoft.Consumption/usageDetails","name":"f07199feb5a5dabb6795a1fa1276b46a","properties":{"billingPeriodId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201705-1","invoiceId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/invoices/201705-217089190378988","usageStart":"2017-04-04T00:00:00Z","usageEnd":"2017-04-04T23:59:59Z","instanceName":"bextsa001","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/bextresourcegroup1/providers/Microsoft.Storage/storageAccounts/bextsa001","instanceLocation":"uswest","currency":"USD","usageQuantity":1.8655,"billableQuantity":1.8655,"pretaxCost":0.0006352779319668586178831334,"isEstimated":false,"meterId":"f8c187bb-5a47-46ae-b874-f186d207fff4","meterDetails":{"meterName":"Standard
|
||||
IO - Block Blob List Operation Units (in 10,000s)","meterCategory":"Data Management","unit":"10,000s","totalIncludedQuantity":0.00000000,"pretaxStandardRate":0.0004}}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/usageDetails/c152aabecc33190b8c02e1b360ade6ab","type":"Microsoft.Consumption/usageDetails","name":"c152aabecc33190b8c02e1b360ade6ab","properties":{"billingPeriodId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201705-1","invoiceId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/invoices/201705-217089190378988","usageStart":"2017-04-04T00:00:00Z","usageEnd":"2017-04-04T23:59:59Z","instanceName":"bextsa001","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/bextresourcegroup1/providers/Microsoft.Storage/storageAccounts/bextsa001","instanceLocation":"uswest","currency":"USD","usageQuantity":0.3392,"billableQuantity":0.3392,"pretaxCost":0.0001231422268144879778826552,"isEstimated":false,"meterId":"d3824379-dc7e-472b-9e67-3f4a7eadc05b","meterDetails":{"meterName":"Standard
|
||||
IO - Page Blob Read Operation Units (in 10,000s)","meterCategory":"Data Management","unit":"10,000s","totalIncludedQuantity":0.00000000,"pretaxStandardRate":0.0004}}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/usageDetails/48e8a3ffc3a426923ad278f8f6d77057","type":"Microsoft.Consumption/usageDetails","name":"48e8a3ffc3a426923ad278f8f6d77057","properties":{"billingPeriodId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201705-1","invoiceId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/invoices/201705-217089190378988","usageStart":"2017-04-04T00:00:00Z","usageEnd":"2017-04-04T23:59:59Z","instanceName":"bextsa001","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/bextresourcegroup1/providers/Microsoft.Storage/storageAccounts/bextsa001","instanceLocation":"uswest","currency":"USD","usageQuantity":0.083204,"billableQuantity":0.083204,"pretaxCost":0.0020754716981132075471698113,"isEstimated":false,"meterId":"c1635534-1c1d-4fc4-b090-88fc2672ef87","meterDetails":{"meterName":"Standard
|
||||
IO - Block Blob (GB)","meterCategory":"Storage","meterSubCategory":"Locally
|
||||
Redundant","unit":"GB","totalIncludedQuantity":0.00000000,"pretaxStandardRate":0.0240}}}]}'}
|
||||
body: {string: '{"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201710/providers/Microsoft.Consumption/usageDetails?$expand=properties/additionalProperties,properties/meterDetails&$top=5&api-version=2017-11-30&sessiontoken=4:639307&$skiptoken=317C357C357C46616C73657C547275657C30&skiptokenver=v1&id=05471815-31c9-4e5d-9934-2625dc226629","value":[{"id":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001/providers/Microsoft.Consumption/usageDetails/4b2ff4df-a461-52f2-be86-5f2cb99b8c3e","name":"4b2ff4df-a461-52f2-be86-5f2cb99b8c3e","type":"Microsoft.Consumption/usageDetails","tags":[],"properties":{"billingPeriodId":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001","usageStart":"2017-10-01T00:00:00.0000000Z","usageEnd":"2017-10-01T23:59:59.0000000Z","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test1234/providers/Microsoft.AnalysisServices/servers/test1234","instanceName":"test1234","instanceLocation":"WestUS","meterId":"57b80ac8-0266-432c-ac59-32940e07e318","usageQuantity":24,"pretaxCost":10.32,"currency":"USD","isEstimated":false,"subscriptionGuid":"00043d42-773d-435b-b501-6d58f491875d","subscriptionName":"Enterprise
|
||||
Dev/Test","accountName":"AAAA","departmentName":"Ama","product":"Analysis
|
||||
Services Tabular Basic B1","consumedService":"Microsoft.AnalysisServices","costCenter":"XYZ987","meterDetails":{"meterName":"Basic
|
||||
B1","meterCategory":"Analysis Services","unit":"Hour","meterLocation":"WestUS","meterSubCategory":"Tabular"}}},{"id":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001/providers/Microsoft.Consumption/usageDetails/26021ef1-76fc-95c2-c596-234f9eee4043","name":"26021ef1-76fc-95c2-c596-234f9eee4043","type":"Microsoft.Consumption/usageDetails","tags":[],"properties":{"billingPeriodId":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001","usageStart":"2017-10-01T00:00:00.0000000Z","usageEnd":"2017-10-01T23:59:59.0000000Z","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test1234/providers/Microsoft.Sql/servers/testazure123222/databases/TestSQLPricing","instanceName":"TestSQLPricing","instanceLocation":"westeurope","meterId":"6bafdc11-b964-4895-9d4e-a0e548db1b2b","usageQuantity":1,"pretaxCost":4.25996194214496,"currency":"USD","isEstimated":false,"subscriptionGuid":"00043d42-773d-435b-b501-6d58f491875d","subscriptionName":"Enterprise
|
||||
Dev/Test","accountName":"AAAA","departmentName":"Ama","product":"Standard
|
||||
S3 Database Days","consumedService":"Microsoft.Sql","costCenter":"XYZ987","meterDetails":{"meterName":"Standard
|
||||
S3 Database Days","meterCategory":"Data Services","unit":"Days","meterLocation":"westeurope","meterSubCategory":"SQL
|
||||
Database"}}},{"id":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001/providers/Microsoft.Consumption/usageDetails/4be70066-dce7-9ea5-8fbd-5a9a825e6cc5","name":"4be70066-dce7-9ea5-8fbd-5a9a825e6cc5","type":"Microsoft.Consumption/usageDetails","tags":[],"properties":{"billingPeriodId":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001","usageStart":"2017-10-02T00:00:00.0000000Z","usageEnd":"2017-10-02T23:59:59.0000000Z","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test1234/providers/Microsoft.AnalysisServices/servers/test1234","instanceName":"test1234","instanceLocation":"WestUS","meterId":"57b80ac8-0266-432c-ac59-32940e07e318","usageQuantity":24,"pretaxCost":10.32,"currency":"USD","isEstimated":false,"subscriptionGuid":"00043d42-773d-435b-b501-6d58f491875d","subscriptionName":"Enterprise
|
||||
Dev/Test","accountName":"AAAA","departmentName":"Ama","product":"Analysis
|
||||
Services Tabular Basic B1","consumedService":"Microsoft.AnalysisServices","costCenter":"XYZ987","meterDetails":{"meterName":"Basic
|
||||
B1","meterCategory":"Analysis Services","unit":"Hour","meterLocation":"WestUS","meterSubCategory":"Tabular"}}},{"id":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001/providers/Microsoft.Consumption/usageDetails/0dbd1d0a-c070-1c76-f228-d323ecac5b78","name":"0dbd1d0a-c070-1c76-f228-d323ecac5b78","type":"Microsoft.Consumption/usageDetails","tags":[],"properties":{"billingPeriodId":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001","usageStart":"2017-10-02T00:00:00.0000000Z","usageEnd":"2017-10-02T23:59:59.0000000Z","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test1234/providers/Microsoft.Sql/servers/testazure123222/databases/TestSQLPricing","instanceName":"TestSQLPricing","instanceLocation":"westeurope","meterId":"6bafdc11-b964-4895-9d4e-a0e548db1b2b","usageQuantity":1,"pretaxCost":4.25996194214496,"currency":"USD","isEstimated":false,"subscriptionGuid":"00043d42-773d-435b-b501-6d58f491875d","subscriptionName":"Enterprise
|
||||
Dev/Test","accountName":"AAAA","departmentName":"Ama","product":"Standard
|
||||
S3 Database Days","consumedService":"Microsoft.Sql","costCenter":"XYZ987","meterDetails":{"meterName":"Standard
|
||||
S3 Database Days","meterCategory":"Data Services","unit":"Days","meterLocation":"westeurope","meterSubCategory":"SQL
|
||||
Database"}}},{"id":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001/providers/Microsoft.Consumption/usageDetails/466efff4-97d4-10a9-b6c9-1901ba7a5a5b","name":"466efff4-97d4-10a9-b6c9-1901ba7a5a5b","type":"Microsoft.Consumption/usageDetails","tags":[],"properties":{"billingPeriodId":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171001","usageStart":"2017-10-03T00:00:00.0000000Z","usageEnd":"2017-10-03T23:59:59.0000000Z","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test1234/providers/Microsoft.AnalysisServices/servers/test1234","instanceName":"test1234","instanceLocation":"WestUS","meterId":"57b80ac8-0266-432c-ac59-32940e07e318","usageQuantity":24,"pretaxCost":10.32,"currency":"USD","isEstimated":false,"subscriptionGuid":"00043d42-773d-435b-b501-6d58f491875d","subscriptionName":"Enterprise
|
||||
Dev/Test","accountName":"AAAA","departmentName":"Ama","product":"Analysis
|
||||
Services Tabular Basic B1","consumedService":"Microsoft.AnalysisServices","costCenter":"XYZ987","meterDetails":{"meterName":"Basic
|
||||
B1","meterCategory":"Analysis Services","unit":"Hour","meterLocation":"WestUS","meterSubCategory":"Tabular"}}}]}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['6018']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Wed, 17 May 2017 01:56:44 GMT']
|
||||
content-length: ['6717']
|
||||
content-type: [application/json; odata.metadata=none]
|
||||
date: ['Thu, 16 Nov 2017 22:34:21 GMT']
|
||||
expires: ['-1']
|
||||
odata-version: ['4.0']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/8.5]
|
||||
session-id: [30661710-24fb-41e4-873e-c9ff4ef9e20f]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-content-type-options: [nosniff]
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
|
|
|
@ -1,40 +0,0 @@
|
|||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [consumption usage list]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.1 (Windows-10-10.0.15063-SP0) requests/2.9.1 msrest/0.4.7
|
||||
msrest_azure/0.4.7 consumptionmanagementclient/0.1.0 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.6+dev]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/invoices/201705-217089190378988/providers/Microsoft.Consumption/usageDetails?$expand=meterDetails&$filter=usageEnd%20ge%202017-03-03T23%3A59%3A59Z%20and%20usageEnd%20le%202017-04-04T23%3A59%3A59Z&$top=5&api-version=2017-04-24-preview
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/usageDetails/4d8c2ef3374a337ce1fd755fb8b69840","type":"Microsoft.Consumption/usageDetails","name":"4d8c2ef3374a337ce1fd755fb8b69840","tags":{"AccountName":"abcd","PoolName":"hjkl","MeteredService":"Compute","MeteredServiceType":"External","CloudServiceName":"304F6604-3F74-4D34-88CB-9CE0AFE7FAE2-CloudService","PoolSubscriptionId":"7122b0e6-cf8f-4ce6-9bd3-d700ed2bcc03"},"properties":{"billingPeriodId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201705-1","invoiceId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/invoices/201705-217089190378988","usageStart":"2017-04-04T00:00:00Z","usageEnd":"2017-04-04T23:59:59Z","instanceName":"abcd","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/abcdef/providers/Microsoft.Batch/batchAccounts/abcd","instanceLocation":"krsouth","currency":"USD","usageQuantity":0.000273,"billableQuantity":0.0,"pretaxCost":0.0,"isEstimated":false,"meterId":"fe167397-a38d-43c3-9bb3-8e2907e56a41","meterDetails":{"meterName":"Data
|
||||
Transfer Out (GB)","meterCategory":"Networking","unit":"GB","meterLocation":"Zone
|
||||
2","totalIncludedQuantity":5.00000000}}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/usageDetails/96a719e9972f564e3904d122c43cfc0d","type":"Microsoft.Consumption/usageDetails","name":"96a719e9972f564e3904d122c43cfc0d","properties":{"billingPeriodId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201705-1","invoiceId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/invoices/201705-217089190378988","usageStart":"2017-04-04T00:00:00Z","usageEnd":"2017-04-04T23:59:59Z","instanceName":"SSSSS","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/NewSearchGroup/providers/Microsoft.HDInsight/clusters/SSSSS","instanceLocation":"westus","currency":"USD","usageQuantity":30.0,"billableQuantity":30.0,"pretaxCost":9.600027807428065950698902935,"isEstimated":false,"meterId":"fa9dc70f-f562-44af-b965-b4576aefed95","meterDetails":{"meterName":"Compute
|
||||
Hours","meterCategory":"Business Analytics","meterSubCategory":"A3 HDInsight
|
||||
(Non-Windows)","unit":"Hours","totalIncludedQuantity":0.00000000,"pretaxStandardRate":0.3200}}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/usageDetails/f07199feb5a5dabb6795a1fa1276b46a","type":"Microsoft.Consumption/usageDetails","name":"f07199feb5a5dabb6795a1fa1276b46a","properties":{"billingPeriodId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201705-1","invoiceId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/invoices/201705-217089190378988","usageStart":"2017-04-04T00:00:00Z","usageEnd":"2017-04-04T23:59:59Z","instanceName":"bextsa001","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/bextresourcegroup1/providers/Microsoft.Storage/storageAccounts/bextsa001","instanceLocation":"uswest","currency":"USD","usageQuantity":1.8655,"billableQuantity":1.8655,"pretaxCost":0.0006352779319668586178831334,"isEstimated":false,"meterId":"f8c187bb-5a47-46ae-b874-f186d207fff4","meterDetails":{"meterName":"Standard
|
||||
IO - Block Blob List Operation Units (in 10,000s)","meterCategory":"Data Management","unit":"10,000s","totalIncludedQuantity":0.00000000,"pretaxStandardRate":0.0004}}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/usageDetails/c152aabecc33190b8c02e1b360ade6ab","type":"Microsoft.Consumption/usageDetails","name":"c152aabecc33190b8c02e1b360ade6ab","properties":{"billingPeriodId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201705-1","invoiceId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/invoices/201705-217089190378988","usageStart":"2017-04-04T00:00:00Z","usageEnd":"2017-04-04T23:59:59Z","instanceName":"bextsa001","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/bextresourcegroup1/providers/Microsoft.Storage/storageAccounts/bextsa001","instanceLocation":"uswest","currency":"USD","usageQuantity":0.3392,"billableQuantity":0.3392,"pretaxCost":0.0001231422268144879778826552,"isEstimated":false,"meterId":"d3824379-dc7e-472b-9e67-3f4a7eadc05b","meterDetails":{"meterName":"Standard
|
||||
IO - Page Blob Read Operation Units (in 10,000s)","meterCategory":"Data Management","unit":"10,000s","totalIncludedQuantity":0.00000000,"pretaxStandardRate":0.0004}}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/usageDetails/48e8a3ffc3a426923ad278f8f6d77057","type":"Microsoft.Consumption/usageDetails","name":"48e8a3ffc3a426923ad278f8f6d77057","properties":{"billingPeriodId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/billingPeriods/201705-1","invoiceId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Billing/invoices/201705-217089190378988","usageStart":"2017-04-04T00:00:00Z","usageEnd":"2017-04-04T23:59:59Z","instanceName":"bextsa001","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/bextresourcegroup1/providers/Microsoft.Storage/storageAccounts/bextsa001","instanceLocation":"uswest","currency":"USD","usageQuantity":0.083204,"billableQuantity":0.083204,"pretaxCost":0.0020754716981132075471698113,"isEstimated":false,"meterId":"c1635534-1c1d-4fc4-b090-88fc2672ef87","meterDetails":{"meterName":"Standard
|
||||
IO - Block Blob (GB)","meterCategory":"Storage","meterSubCategory":"Locally
|
||||
Redundant","unit":"GB","totalIncludedQuantity":0.00000000,"pretaxStandardRate":0.0240}}}]}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['5894']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Wed, 17 May 2017 01:56:46 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/8.5]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-aspnet-version: [4.0.30319]
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -0,0 +1,41 @@
|
|||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [consumption usage list]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.6.0 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 azure-mgmt-consumption/1.0.0 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/usageDetails?$filter=properties%2FusageEnd%20ge%20%272017-10-11T23%3A59%3A59Z%27%20and%20properties%2FusageEnd%20le%20%272017-10-12T03%3A59%3A59Z%27&api-version=2017-11-30
|
||||
response:
|
||||
body: {string: '{"value":[{"id":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171101/providers/Microsoft.Consumption/usageDetails/c67802b5-d47c-3019-27d6-a021dc795265","name":"c67802b5-d47c-3019-27d6-a021dc795265","type":"Microsoft.Consumption/usageDetails","tags":[],"properties":{"billingPeriodId":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171101","usageStart":"2017-10-11T00:00:00.0000000Z","usageEnd":"2017-10-11T23:59:59.0000000Z","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test1234/providers/Microsoft.AnalysisServices/servers/test1234","instanceName":"test1234","instanceLocation":"WestUS","meterId":"57b80ac8-0266-432c-ac59-32940e07e318","usageQuantity":24,"pretaxCost":10.32,"currency":"USD","isEstimated":true,"subscriptionGuid":"00043d42-773d-435b-b501-6d58f491875d","subscriptionName":"Enterprise
|
||||
Dev/Test","accountName":"AAAA","departmentName":"Ama","product":"Analysis
|
||||
Services Tabular Basic B1","consumedService":"Microsoft.AnalysisServices","costCenter":"XYZ987","meterDetails":null}},{"id":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171101/providers/Microsoft.Consumption/usageDetails/8187993e-7656-6270-a7a3-61d954a48069","name":"8187993e-7656-6270-a7a3-61d954a48069","type":"Microsoft.Consumption/usageDetails","tags":[],"properties":{"billingPeriodId":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171101","usageStart":"2017-10-11T00:00:00.0000000Z","usageEnd":"2017-10-11T23:59:59.0000000Z","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test1234/providers/Microsoft.Sql/servers/testazure123222/databases/TestSQLPricing","instanceName":"TestSQLPricing","instanceLocation":"westeurope","meterId":"6bafdc11-b964-4895-9d4e-a0e548db1b2b","usageQuantity":1,"pretaxCost":4.25996194214496,"currency":"USD","isEstimated":true,"subscriptionGuid":"00043d42-773d-435b-b501-6d58f491875d","subscriptionName":"Enterprise
|
||||
Dev/Test","accountName":"AAAA","departmentName":"Ama","product":"Standard
|
||||
S3 Database Days","consumedService":"Microsoft.Sql","costCenter":"XYZ987","meterDetails":null}},{"id":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171101/providers/Microsoft.Consumption/usageDetails/ede7b5dd-ea5d-a29b-9a01-57d0d97e77a9","name":"ede7b5dd-ea5d-a29b-9a01-57d0d97e77a9","type":"Microsoft.Consumption/usageDetails","tags":[],"properties":{"billingPeriodId":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171101","usageStart":"2017-10-12T00:00:00.0000000Z","usageEnd":"2017-10-12T23:59:59.0000000Z","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test1234/providers/Microsoft.AnalysisServices/servers/test1234","instanceName":"test1234","instanceLocation":"WestUS","meterId":"57b80ac8-0266-432c-ac59-32940e07e318","usageQuantity":24,"pretaxCost":10.32,"currency":"USD","isEstimated":true,"subscriptionGuid":"00043d42-773d-435b-b501-6d58f491875d","subscriptionName":"Enterprise
|
||||
Dev/Test","accountName":"AAAA","departmentName":"Ama","product":"Analysis
|
||||
Services Tabular Basic B1","consumedService":"Microsoft.AnalysisServices","costCenter":"XYZ987","meterDetails":null}},{"id":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171101/providers/Microsoft.Consumption/usageDetails/3e1978a9-f416-c85b-1725-e448e58910bc","name":"3e1978a9-f416-c85b-1725-e448e58910bc","type":"Microsoft.Consumption/usageDetails","tags":[],"properties":{"billingPeriodId":"subscriptions/00043d42-773d-435b-b501-6d58f491875d/providers/Microsoft.Billing/billingPeriods/20171101","usageStart":"2017-10-12T00:00:00.0000000Z","usageEnd":"2017-10-12T23:59:59.0000000Z","instanceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test1234/providers/Microsoft.Sql/servers/testazure123222/databases/TestSQLPricing","instanceName":"TestSQLPricing","instanceLocation":"westeurope","meterId":"6bafdc11-b964-4895-9d4e-a0e548db1b2b","usageQuantity":1,"pretaxCost":4.25996194214496,"currency":"USD","isEstimated":true,"subscriptionGuid":"00043d42-773d-435b-b501-6d58f491875d","subscriptionName":"Enterprise
|
||||
Dev/Test","accountName":"AAAA","departmentName":"Ama","product":"Standard
|
||||
S3 Database Days","consumedService":"Microsoft.Sql","costCenter":"XYZ987","meterDetails":null}}]}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['4521']
|
||||
content-type: [application/json; odata.metadata=none]
|
||||
date: ['Thu, 16 Nov 2017 22:34:32 GMT']
|
||||
expires: ['-1']
|
||||
odata-version: ['4.0']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-IIS/8.5]
|
||||
session-id: [d953198f-9f7c-4dc4-bdce-fbc7ff35b8a3]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
x-powered-by: [ASP.NET]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
|
@ -2,8 +2,8 @@
|
|||
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
# Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
# --------------------------------------------------------------------------------------------
|
||||
|
||||
from azure.cli.testsdk import ScenarioTest, JMESPathCheck
|
||||
from datetime import datetime
|
||||
from azure.cli.testsdk import ScenarioTest
|
||||
|
||||
|
||||
class AzureConsumptionServiceScenarioTest(ScenarioTest):
|
||||
|
@ -25,31 +25,26 @@ class AzureConsumptionServiceScenarioTest(ScenarioTest):
|
|||
self.assertIsNone(usage['meterDetails'])
|
||||
|
||||
def test_list_usages_billing_period(self):
|
||||
billing_period = '201705-1'
|
||||
usages_list = self.cmd('consumption usage list -p {} -s 2017-04-02 -t 5'.format(billing_period)).get_output_in_json()
|
||||
billing_period = '201710'
|
||||
usages_list = self.cmd('consumption usage list -p {} -t 5'.format(billing_period)).get_output_in_json()
|
||||
self.assertTrue(usages_list)
|
||||
self.assertTrue(len(usages_list) <= 5)
|
||||
self._validate_usage(usages_list[0], False)
|
||||
self.assertTrue(usages_list[0]['billingPeriodId'].endswith(billing_period))
|
||||
|
||||
def test_list_usages_billing_period_expand(self):
|
||||
billing_period = '201705-1'
|
||||
billing_period = '201710'
|
||||
usages_list = self.cmd('consumption usage list -p {} -a -m -t 5'.format(billing_period)).get_output_in_json()
|
||||
self.assertTrue(usages_list)
|
||||
self.assertTrue(len(usages_list) <= 5)
|
||||
self._validate_usage(usages_list[0], True)
|
||||
self.assertTrue(usages_list[0]['billingPeriodId'].endswith(billing_period))
|
||||
|
||||
def test_list_usages_invoice(self):
|
||||
invoice_name = '201705-217089190378988'
|
||||
usages_list = self.cmd('consumption usage list -i {} -s 2017-03-03 -e 2017-04-04 -m -t 5'.format(invoice_name)).get_output_in_json()
|
||||
self.assertTrue(usages_list)
|
||||
self.assertTrue(len(usages_list) <= 5)
|
||||
self._validate_usage(usages_list[0], True)
|
||||
self.assertTrue(usages_list[0]['invoiceId'].endswith(invoice_name))
|
||||
|
||||
def test_list_usages_subscription(self):
|
||||
usages_list = self.cmd('consumption usage list -e 2017-04-01 -t 5 -a').get_output_in_json()
|
||||
usages_list = self.cmd('consumption usage list -t 5 -a').get_output_in_json()
|
||||
self.assertTrue(usages_list)
|
||||
self.assertTrue(len(usages_list) <= 5)
|
||||
self._validate_usage(usages_list[0], False)
|
||||
|
||||
def test_list_usages_subscription_custom_date_range(self):
|
||||
usages_list = self.cmd('consumption usage list -s 2017-10-11T23:59:59Z -e 2017-10-12T03:59:59Z').get_output_in_json()
|
||||
self.assertTrue(usages_list)
|
||||
self.assertTrue(all((datetime.strptime(usage_date['usageEnd'], "%Y-%m-%dT%H:%M:%SZ") >= datetime.strptime('2017-10-11T23:59:59Z', "%Y-%m-%dT%H:%M:%SZ") and datetime.strptime(usage_date['usageEnd'], "%Y-%m-%dT%H:%M:%SZ") <= datetime.strptime('2017-10-12T23:59:59Z', "%Y-%m-%dT%H:%M:%SZ")) for usage_date in usages_list))
|
||||
|
|
|
@ -16,7 +16,7 @@ except ImportError:
|
|||
cmdclass = {}
|
||||
|
||||
|
||||
VERSION = "0.1.6"
|
||||
VERSION = "0.2.0"
|
||||
# The full list of classifiers is available at
|
||||
# https://pypi.python.org/pypi?%3Aaction=list_classifiers
|
||||
CLASSIFIERS = [
|
||||
|
@ -33,7 +33,7 @@ CLASSIFIERS = [
|
|||
]
|
||||
|
||||
DEPENDENCIES = [
|
||||
'azure-mgmt-consumption==0.1.0',
|
||||
'azure-mgmt-consumption==1.0.0',
|
||||
'azure-cli-core'
|
||||
]
|
||||
|
||||
|
|
|
@ -3,6 +3,10 @@
|
|||
Release History
|
||||
===============
|
||||
|
||||
0.1.14
|
||||
++++++
|
||||
* Fixed default ports regression
|
||||
|
||||
0.1.13
|
||||
++++++
|
||||
* minor fixes
|
||||
|
|
|
@ -43,7 +43,7 @@ register_cli_argument('container create', 'cpu', type=int, help='The required nu
|
|||
register_cli_argument('container create', 'memory', type=float, help='The required memory of the containers in GB')
|
||||
register_cli_argument('container create', 'os_type', help='The OS type of the containers', **enum_choice_list(OperatingSystemTypes))
|
||||
register_cli_argument('container create', 'ip_address', help='The IP address type of the container group', **enum_choice_list(IP_ADDRESS_TYPES))
|
||||
register_cli_argument('container create', 'ports', type=int, nargs='+', help='The ports to open')
|
||||
register_cli_argument('container create', 'ports', type=int, nargs='+', default=[80], help='The ports to open')
|
||||
register_cli_argument('container create', 'restart_policy', help='Restart policy for all containers within the container group', **enum_choice_list(ContainerGroupRestartPolicy))
|
||||
register_cli_argument('container create', 'command_line', help='The command line to run when the container is started, e.g. \'/bin/bash -c myscript.sh\'')
|
||||
register_cli_argument('container create', 'environment_variables', nargs='+', options_list=('--environment-variables', '-e'), type=environment_variables_format, help='A list of environment variable for the container. Space separated values in \'key=value\' format.')
|
||||
|
|
|
@ -56,7 +56,7 @@ def create_container(client,
|
|||
azure_file_volume_mount_path=None):
|
||||
"""Create a container group. """
|
||||
|
||||
ports = ports or []
|
||||
ports = ports or [80]
|
||||
|
||||
container_resource_requirements = create_resource_requirements(cpu=cpu, memory=memory)
|
||||
|
||||
|
@ -74,16 +74,16 @@ def create_container(client,
|
|||
azure_file_volume_mount = create_azure_file_volume_mount(azure_file_volume=azure_file_volume,
|
||||
azure_file_volume_mount_path=azure_file_volume_mount_path)
|
||||
|
||||
cgroup_ip_address = create_ip_address(ip_address, ports)
|
||||
|
||||
container = Container(name=name,
|
||||
image=image,
|
||||
resources=container_resource_requirements,
|
||||
command=command,
|
||||
ports=[ContainerPort(port=p) for p in ports],
|
||||
ports=[ContainerPort(port=p) for p in ports] if cgroup_ip_address else None,
|
||||
environment_variables=environment_variables,
|
||||
volume_mounts=azure_file_volume_mount)
|
||||
|
||||
cgroup_ip_address = create_ip_address(ip_address, ports)
|
||||
|
||||
cgroup = ContainerGroup(location=location,
|
||||
containers=[container],
|
||||
os_type=os_type,
|
||||
|
|
|
@ -14,7 +14,7 @@ except ImportError:
|
|||
logger.warn("Wheel is not available, disabling bdist_wheel hook")
|
||||
cmdclass = {}
|
||||
|
||||
VERSION = "0.1.13"
|
||||
VERSION = "0.1.14"
|
||||
|
||||
CLASSIFIERS = [
|
||||
'Development Status :: 4 - Beta',
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
|
||||
Release History
|
||||
===============
|
||||
2.0.19
|
||||
++++++
|
||||
* `resource show`: expose `--include-response-body` to show the response body in the output
|
||||
|
||||
2.0.18
|
||||
++++++
|
||||
|
|
|
@ -14,7 +14,7 @@ def load_arguments(self, _):
|
|||
|
||||
from azure.cli.core.commands.parameters import (
|
||||
resource_group_name_type, tag_type, tags_type, get_resource_group_completion_list, no_wait_type, file_type,
|
||||
get_enum_type)
|
||||
get_enum_type, get_three_state_flag)
|
||||
from azure.cli.core.profiles import ResourceType
|
||||
|
||||
from knack.arguments import ignore_type, CLIArgumentType
|
||||
|
@ -47,6 +47,7 @@ def load_arguments(self, _):
|
|||
c.argument('tag', tag_type)
|
||||
c.argument('tags', tags_type)
|
||||
c.argument('resource_ids', nargs='+', options_list=['--ids'], help='One or more resource IDs (space delimited). If provided, no other "Resource Id" arguments should be specified.', arg_group='Resource Id')
|
||||
c.argument('include_response_body', arg_type=get_three_state_flag(), help='Use if the default command output doesn\'t capture all of the property data.')
|
||||
|
||||
with self.argument_context('resource list') as c:
|
||||
c.argument('name', resource_name_type)
|
||||
|
|
|
@ -726,7 +726,7 @@ def _single_or_collection(obj, default=None):
|
|||
# pylint: unused-argument
|
||||
def show_resource(cmd, resource_ids=None, resource_group_name=None,
|
||||
resource_provider_namespace=None, parent_resource_path=None, resource_type=None,
|
||||
resource_name=None, api_version=None):
|
||||
resource_name=None, api_version=None, include_response_body=False):
|
||||
parsed_ids = _get_parsed_resource_ids(resource_ids) or [_create_parsed_id(resource_group_name,
|
||||
resource_provider_namespace,
|
||||
parent_resource_path,
|
||||
|
@ -734,7 +734,8 @@ def show_resource(cmd, resource_ids=None, resource_group_name=None,
|
|||
resource_name)]
|
||||
|
||||
return _single_or_collection(
|
||||
[_get_rsrc_util_from_parsed_id(cmd.cli_ctx, id_dict, api_version).get_resource() for id_dict in parsed_ids])
|
||||
[_get_rsrc_util_from_parsed_id(cmd.cli_ctx, id_dict, api_version).get_resource(
|
||||
include_response_body) for id_dict in parsed_ids])
|
||||
|
||||
|
||||
# pylint: disable=unused-argument
|
||||
|
@ -1485,16 +1486,21 @@ class _ResourceUtils(object): # pylint: disable=too-many-instance-attributes
|
|||
res)
|
||||
return resource
|
||||
|
||||
def get_resource(self):
|
||||
def get_resource(self, include_response_body=False):
|
||||
if self.resource_id:
|
||||
resource = self.rcf.resources.get_by_id(self.resource_id, self.api_version)
|
||||
resource = self.rcf.resources.get_by_id(self.resource_id, self.api_version, raw=include_response_body)
|
||||
else:
|
||||
resource = self.rcf.resources.get(self.resource_group_name,
|
||||
self.resource_provider_namespace,
|
||||
self.parent_resource_path,
|
||||
self.resource_type,
|
||||
self.resource_name,
|
||||
self.api_version)
|
||||
self.api_version,
|
||||
raw=include_response_body)
|
||||
if include_response_body:
|
||||
temp = resource.output
|
||||
setattr(temp, 'response_body', json.loads(resource.response.content.decode()))
|
||||
resource = temp
|
||||
return resource
|
||||
|
||||
def delete(self):
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -145,10 +145,10 @@ class ResourceIDScenarioTest(ScenarioTest):
|
|||
self.cmd('resource delete --id {vnet_id}', checks=self.is_empty())
|
||||
|
||||
|
||||
class ResourceCreateScenarioTest(ScenarioTest):
|
||||
class ResourceCreateAndShowScenarioTest(ScenarioTest):
|
||||
|
||||
@ResourceGroupPreparer(name_prefix='cli_test_resource_create')
|
||||
def test_resource_create(self, resource_group, resource_group_location):
|
||||
def test_resource_create_and_show(self, resource_group, resource_group_location):
|
||||
|
||||
self.kwargs.update({
|
||||
'plan': 'cli_res_create_plan',
|
||||
|
@ -163,9 +163,15 @@ class ResourceCreateScenarioTest(ScenarioTest):
|
|||
checks=self.check('name', '{app}')).get_output_in_json()
|
||||
|
||||
self.kwargs['app_settings_id'] = result['id'] + '/config/appsettings'
|
||||
self.cmd('resource create --id {app_settings_id} --properties "{{\\"key1\\":\\"value12\\"}}"',
|
||||
self.kwargs['app_config_id'] = result['id'] + '/config/web'
|
||||
self.cmd('resource create --id {app_settings_id} --properties "{{\\"key2\\":\\"value12\\"}}"',
|
||||
checks=[self.check('properties.key2', 'value12')])
|
||||
|
||||
self.cmd('resource show --id {app_config_id}',
|
||||
checks=self.check('properties.publishingUsername', '${app}'))
|
||||
self.cmd('resource show --id {app_config_id} --include-response-body',
|
||||
checks=self.check('responseBody.properties.publishingUsername', '${app}'))
|
||||
|
||||
|
||||
class TagScenarioTest(ScenarioTest):
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ except ImportError:
|
|||
logger.warn("Wheel is not available, disabling bdist_wheel hook")
|
||||
cmdclass = {}
|
||||
|
||||
VERSION = "2.0.18"
|
||||
VERSION = "2.0.19"
|
||||
CLASSIFIERS = [
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Intended Audience :: Developers',
|
||||
|
|
|
@ -2,6 +2,11 @@
|
|||
|
||||
Release History
|
||||
===============
|
||||
2.0.15
|
||||
++++++
|
||||
* `role assignment list`: show default assignments for classic administrators
|
||||
* `ad sp reset-credentials`: support to add credentials instead of overwriting
|
||||
* `create-for-rbac`: emit out an actionable error if provisioning application failed for lack of permissions
|
||||
|
||||
2.0.14
|
||||
++++++
|
||||
|
|
|
@ -53,6 +53,7 @@ def load_arguments(self, _):
|
|||
c.argument('years', type=int, default=None, arg_group='Credential')
|
||||
c.argument('create_cert', action='store_true', arg_group='Credential')
|
||||
c.argument('keyvault', arg_group='Credential')
|
||||
c.argument('append', action='store_true', help='Append the new credential instead of overwriting.')
|
||||
|
||||
with self.argument_context('ad') as c:
|
||||
c.argument('display_name', help='object\'s display name or its prefix')
|
||||
|
@ -99,6 +100,7 @@ def load_arguments(self, _):
|
|||
c.argument('include_inherited', action='store_true', help='include assignments applied on parent scopes')
|
||||
c.argument('assignee', help='represent a user, group, or service principal. supported format: object id, user sign-in name, or service principal name')
|
||||
c.argument('ids', nargs='+', help='space separated role assignment ids')
|
||||
c.argument('include_classic_administrators', arg_type=get_three_state_flag(), help='list default role assignments for subscription classic administrators, aka co-admins')
|
||||
|
||||
with self.argument_context('role definition') as c:
|
||||
c.argument('role_definition_id', options_list=['--name', '-n'], help='the role definition name')
|
||||
|
|
|
@ -147,7 +147,7 @@ def _create_role_assignment(cli_ctx, role, assignee, resource_group_name=None, s
|
|||
|
||||
def list_role_assignments(cmd, assignee=None, role=None, resource_group_name=None,
|
||||
scope=None, include_inherited=False,
|
||||
show_all=False, include_groups=False):
|
||||
show_all=False, include_groups=False, include_classic_administrators=False):
|
||||
'''
|
||||
:param include_groups: include extra assignments to the groups of which the user is a
|
||||
member(transitively). Supported only for a user principal.
|
||||
|
@ -169,34 +169,78 @@ def list_role_assignments(cmd, assignee=None, role=None, resource_group_name=Non
|
|||
scope, assignee, role,
|
||||
include_inherited, include_groups)
|
||||
|
||||
if not assignments:
|
||||
results = todict(assignments) if assignments else []
|
||||
if include_classic_administrators:
|
||||
results += _backfill_assignments_for_co_admins(cmd.cli_ctx, factory, assignee)
|
||||
|
||||
if not results:
|
||||
return []
|
||||
|
||||
# fill in logic names to get things understandable.
|
||||
# it's possible that associated roles and principals were deleted, and we just do nothing.
|
||||
|
||||
results = todict(assignments)
|
||||
|
||||
# fill in role names
|
||||
# 1. fill in logic names to get things understandable.
|
||||
# (it's possible that associated roles and principals were deleted, and we just do nothing.)
|
||||
# 2. fill in role names
|
||||
role_defs = list(definitions_client.list(
|
||||
scope=scope or ('/subscriptions/' + definitions_client.config.subscription_id)))
|
||||
role_dics = {i.id: i.properties.role_name for i in role_defs}
|
||||
for i in results:
|
||||
i['properties']['roleDefinitionName'] = role_dics.get(i['properties']['roleDefinitionId'],
|
||||
None)
|
||||
if role_dics.get(i['properties']['roleDefinitionId']):
|
||||
i['properties']['roleDefinitionName'] = role_dics[i['properties']['roleDefinitionId']]
|
||||
|
||||
# fill in principal names
|
||||
principal_ids = set(i['properties']['principalId'] for i in results)
|
||||
principal_ids = set(i['properties']['principalId'] for i in results if i['properties']['principalId'])
|
||||
if principal_ids:
|
||||
principals = _get_object_stubs(graph_client, principal_ids)
|
||||
principal_dics = {i.object_id: _get_displayable_name(i) for i in principals}
|
||||
for i in results:
|
||||
i['properties']['principalName'] = principal_dics.get(i['properties']['principalId'],
|
||||
None)
|
||||
|
||||
for i in [r for r in results if not r['properties'].get('principalName')]:
|
||||
i['properties']['principalName'] = ''
|
||||
if principal_dics.get(i['properties']['principalId']):
|
||||
i['properties']['principalName'] = principal_dics[i['properties']['principalId']]
|
||||
|
||||
return results
|
||||
|
||||
|
||||
def _backfill_assignments_for_co_admins(cli_ctx, auth_client, assignee=None):
|
||||
co_admins = auth_client.classic_administrators.list('2015-06-01') # known swagger bug on api-version handling
|
||||
co_admins = [x for x in co_admins if x.properties.email_address]
|
||||
graph_client = _graph_client_factory(cli_ctx)
|
||||
if assignee: # apply assignee filter if applicable
|
||||
try:
|
||||
uuid.UUID(assignee)
|
||||
result = _get_object_stubs(graph_client, [assignee])
|
||||
if not result:
|
||||
return []
|
||||
assignee = _get_displayable_name(result[0]).lower()
|
||||
except ValueError:
|
||||
pass
|
||||
co_admins = [x for x in co_admins if assignee == x.properties.email_address.lower()]
|
||||
|
||||
if not co_admins:
|
||||
return []
|
||||
|
||||
result, users = [], []
|
||||
for i in range(0, len(co_admins), 10): # graph allows up to 10 query filters, so split into chunks here
|
||||
upn_queries = ["userPrincipalName eq '{}'".format(x.properties.email_address) for x in co_admins[i:i + 10]]
|
||||
temp = list(list_users(graph_client.users, query_filter=' or '.join(upn_queries)))
|
||||
users += temp
|
||||
upns = {u.user_principal_name: u.object_id for u in users}
|
||||
for admin in co_admins:
|
||||
na_text = 'NA(classic admins)'
|
||||
email = admin.properties.email_address
|
||||
result.append({
|
||||
'id': na_text,
|
||||
'name': na_text,
|
||||
'properties': {
|
||||
'principalId': upns.get(email),
|
||||
'principalName': email,
|
||||
'roleDefinitionName': admin.properties.role,
|
||||
'roleDefinitionId': 'NA(classic admin role)',
|
||||
'scope': '/subscriptions/' + auth_client.config.subscription_id
|
||||
}
|
||||
})
|
||||
return result
|
||||
|
||||
|
||||
def _get_displayable_name(graph_object):
|
||||
if graph_object.user_principal_name:
|
||||
return graph_object.user_principal_name
|
||||
|
@ -368,6 +412,7 @@ def create_application(client, display_name, homepage, identifier_uris,
|
|||
available_to_other_tenants=False, password=None, reply_urls=None,
|
||||
key_value=None, key_type=None, key_usage=None, start_date=None,
|
||||
end_date=None):
|
||||
from azure.graphrbac.models import GraphErrorException
|
||||
password_creds, key_creds = _build_application_creds(password, key_value, key_type,
|
||||
key_usage, start_date, end_date)
|
||||
|
||||
|
@ -378,7 +423,15 @@ def create_application(client, display_name, homepage, identifier_uris,
|
|||
reply_urls=reply_urls,
|
||||
key_credentials=key_creds,
|
||||
password_credentials=password_creds)
|
||||
return client.create(app_create_param)
|
||||
|
||||
try:
|
||||
return client.create(app_create_param)
|
||||
except GraphErrorException as ex:
|
||||
if 'insufficient privileges' in str(ex).lower():
|
||||
link = 'https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal' # pylint: disable=line-too-long
|
||||
raise CLIError("Directory permission is needed for the current user to register the application. "
|
||||
"For how to configure, please refer '{}'. Original error: {}".format(link, ex))
|
||||
raise
|
||||
|
||||
|
||||
def update_application(client, identifier, display_name=None, homepage=None,
|
||||
|
@ -842,7 +895,7 @@ def _get_public(x509):
|
|||
|
||||
|
||||
def reset_service_principal_credential(cmd, name, password=None, create_cert=False,
|
||||
cert=None, years=None, keyvault=None):
|
||||
cert=None, years=None, keyvault=None, append=False):
|
||||
import pytz
|
||||
client = _graph_client_factory(cmd.cli_ctx)
|
||||
|
||||
|
@ -879,26 +932,28 @@ def reset_service_principal_credential(cmd, name, password=None, create_cert=Fal
|
|||
cert_creds = None
|
||||
|
||||
if password:
|
||||
app_creds = [
|
||||
PasswordCredential(
|
||||
start_date=app_start_date,
|
||||
end_date=app_end_date,
|
||||
key_id=str(uuid.uuid4()),
|
||||
value=password
|
||||
)
|
||||
]
|
||||
app_creds = []
|
||||
if append:
|
||||
app_creds = list(client.applications.list_password_credentials(app.object_id))
|
||||
app_creds.append(PasswordCredential(
|
||||
start_date=app_start_date,
|
||||
end_date=app_end_date,
|
||||
key_id=str(uuid.uuid4()),
|
||||
value=password
|
||||
))
|
||||
|
||||
if public_cert_string:
|
||||
cert_creds = [
|
||||
KeyCredential(
|
||||
start_date=app_start_date,
|
||||
end_date=app_end_date,
|
||||
value=public_cert_string,
|
||||
key_id=str(uuid.uuid4()),
|
||||
usage='Verify',
|
||||
type='AsymmetricX509Cert'
|
||||
)
|
||||
]
|
||||
cert_creds = []
|
||||
if append:
|
||||
cert_creds = list(client.applications.list_key_credentials(app.object_id))
|
||||
cert_creds.append(KeyCredential(
|
||||
start_date=app_start_date,
|
||||
end_date=app_end_date,
|
||||
value=public_cert_string,
|
||||
key_id=str(uuid.uuid4()),
|
||||
usage='Verify',
|
||||
type='AsymmetricX509Cert'
|
||||
))
|
||||
|
||||
app_create_param = ApplicationUpdateParameters(password_credentials=app_creds, key_credentials=cert_creds)
|
||||
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -10,7 +10,7 @@ import tempfile
|
|||
import time
|
||||
import unittest
|
||||
|
||||
from azure.cli.testsdk import LiveScenarioTest, ResourceGroupPreparer, KeyVaultPreparer
|
||||
from azure.cli.testsdk import ScenarioTest, LiveScenarioTest, ResourceGroupPreparer, KeyVaultPreparer
|
||||
|
||||
|
||||
class RbacSPSecretScenarioTest(LiveScenarioTest):
|
||||
|
@ -231,5 +231,22 @@ class RoleAssignmentScenarioTest(LiveScenarioTest):
|
|||
self.cmd('ad user delete --upn-or-object-id {upn}')
|
||||
|
||||
|
||||
class RoleAssignmentListScenarioTest(ScenarioTest):
|
||||
|
||||
@ResourceGroupPreparer(name_prefix='cli_test_assignments_for_coadmins')
|
||||
def test_assignments_for_co_admins(self, resource_group):
|
||||
from azure_devtools.scenario_tests import LargeResponseBodyProcessor
|
||||
large_resp_body = next((r for r in self.recording_processors if isinstance(r, LargeResponseBodyProcessor)), None)
|
||||
if large_resp_body:
|
||||
large_resp_body._max_response_body = 1024
|
||||
result = self.cmd('role assignment list --include-classic-administrator').get_output_in_json()
|
||||
self.assertTrue([x for x in result if x['properties']['roleDefinitionName'] in ['CoAdministrator', 'AccountAdministrator']])
|
||||
self.cmd('role assignment list -g {}'.format(resource_group), checks=[
|
||||
self.check("length([])", 0)
|
||||
])
|
||||
result = self.cmd('role assignment list -g {} --include-classic-administrator'.format(resource_group)).get_output_in_json()
|
||||
self.assertTrue([x for x in result if x['properties']['roleDefinitionName'] in ['CoAdministrator', 'AccountAdministrator']])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
|
@ -12,10 +12,14 @@ import mock
|
|||
from azure.cli.testsdk import TestCli
|
||||
|
||||
from azure.mgmt.authorization.models import RoleDefinition, RoleDefinitionProperties
|
||||
from azure.graphrbac.models import Application, ServicePrincipal
|
||||
from azure.graphrbac.models import Application, ServicePrincipal, GraphErrorException
|
||||
from azure.cli.command_modules.role.custom import (create_role_definition,
|
||||
update_role_definition,
|
||||
create_service_principal_for_rbac)
|
||||
create_service_principal_for_rbac,
|
||||
reset_service_principal_credential,
|
||||
_try_x509_pem)
|
||||
|
||||
from knack.util import CLIError
|
||||
|
||||
# pylint: disable=line-too-long
|
||||
|
||||
|
@ -167,10 +171,142 @@ class TestRoleMocked(unittest.TestCase):
|
|||
self.assertTrue(logger_mock.warning.called) # we should warn 'years' will be dropped
|
||||
self.assertTrue(faked_graph_client.applications.create.called)
|
||||
|
||||
@mock.patch('azure.cli.command_modules.role.custom._graph_client_factory', autospec=True)
|
||||
def test_reset_credentials_password(self, graph_client_mock):
|
||||
patch_invoked = [False] # to be used in a nested function below, array type is needed to get scoping work
|
||||
test_object_id = 'app_object_id'
|
||||
test_pwd = 'verySecret'
|
||||
name = 'http://mysp'
|
||||
|
||||
class FakedResponse(object): # pylint: disable=too-few-public-methods
|
||||
def __init__(self, status_code):
|
||||
self.status_code = status_code
|
||||
def test_patch(id, param):
|
||||
patch_invoked[0] = True
|
||||
self.assertEqual(id, test_object_id)
|
||||
self.assertEqual(1, len(param.password_credentials))
|
||||
self.assertEqual(param.password_credentials[0].value, test_pwd)
|
||||
|
||||
faked_graph_client = mock.MagicMock()
|
||||
sp_object = mock.MagicMock()
|
||||
sp_object.app_id = 'app_id'
|
||||
app_object = mock.MagicMock()
|
||||
cmd = mock.MagicMock()
|
||||
cmd.cli_ctx = TestCli()
|
||||
app_object.object_id = test_object_id
|
||||
|
||||
graph_client_mock.return_value = faked_graph_client
|
||||
faked_graph_client.service_principals.list.return_value = [sp_object]
|
||||
faked_graph_client.applications.list.return_value = [app_object]
|
||||
faked_graph_client.applications.get.side_effect = [app_object]
|
||||
faked_graph_client.applications.patch = test_patch
|
||||
faked_graph_client.applications.list_password_credentials.side_effect = [ValueError('should not invoke')]
|
||||
|
||||
# action
|
||||
reset_service_principal_credential(cmd, name, test_pwd, append=False)
|
||||
|
||||
# assert
|
||||
self.assertTrue(patch_invoked[0])
|
||||
|
||||
@mock.patch('azure.cli.command_modules.role.custom._graph_client_factory', autospec=True)
|
||||
def test_reset_credentials_certificate_append_option(self, graph_client_mock):
|
||||
patch_invoked = [False] # to be used in a nested function below, array type is needed to get scoping work
|
||||
test_object_id = 'app_object_id'
|
||||
test_cert = _try_x509_pem('\n'.join(['-----BEGIN CERTIFICATE-----',
|
||||
'MIICoTCCAYkCAgPoMA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNVBAMMCUNMSS1Mb2dp',
|
||||
'bjAiGA8yMDE3MTExMzIxMjQyMloYDzIwMTgxMTEzMjEyNDI0WjAUMRIwEAYDVQQD',
|
||||
'DAlDTEktTG9naW4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtyRA6',
|
||||
'mbUtByQBODMlp3r5fGpnYCfRhAzp2U29KRVTOQK1ntMIo3FWR19ceqK6T0UM+BFb',
|
||||
'XGn28hGhgz5Y1lrbqyKrAcF10/3y42wmiMyPWjmXJ+WOEKjckKKzPMm2KBsn/ePV',
|
||||
'qsr5UwlnHh2rGFR0PF1qjC0IU/SI0UQN0KJKpVp0OB8+lRlIAcsLUTveTXbdFDlp',
|
||||
'k5AA8w3TTo7pT5sKNZr3+qv1o4ogDfDEx0bCYtlm4L1HvGer4pbX7q35ucZY9BWq',
|
||||
'VjHQ/MjiuAyxZoyY5xVoULMWJupRyMT3wP1Hb+oJ9/tTBZbpNTv1ed9OswCc2W1l',
|
||||
'MQzLwE10Ev0LJkhlAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAF+RP+7uzmf4u4+l',
|
||||
'xjS+lXd3O0tqTNOVe8RR+GXl1s2Un6UhwmP3SKs2RNcXkb9+6Q4Zvg7GODK7Z8th',
|
||||
't/enpTcvLmPmq2ow1hFGWJk/lONZtVKU2mikTY/ICnQrbhf3WYr1cuf98CRqoG71',
|
||||
'ldrjgSsM1Ut7Gee1Tpc2eamRtHTm07AUQhqGnS5wVp6s1HUd43nvu/lVx+j2hjEB',
|
||||
'y63BSuD3aSUweVne4roBNcBJjLU1wvYl+3cLgnZ9///3y/C4pKebsKHljkejRaer',
|
||||
'nvbPfW9hy7BqMem7t0Qk2D84VzaK+6x9EnnsXy+90nfvTLUSqpU1MjpdWhuWyxDL',
|
||||
'p4oYS5Q=',
|
||||
'-----END CERTIFICATE-----']))
|
||||
key_id_of_existing_cert = 'existing cert'
|
||||
name = 'http://mysp'
|
||||
|
||||
def test_patch(id, param):
|
||||
patch_invoked[0] = True
|
||||
self.assertEqual(id, test_object_id)
|
||||
self.assertEqual(2, len(param.key_credentials))
|
||||
self.assertTrue(len(param.key_credentials[1].value) > 0)
|
||||
self.assertEqual(param.key_credentials[1].type, 'AsymmetricX509Cert')
|
||||
self.assertEqual(param.key_credentials[1].usage, 'Verify')
|
||||
self.assertEqual(param.key_credentials[0].key_id, key_id_of_existing_cert)
|
||||
|
||||
faked_graph_client = mock.MagicMock()
|
||||
sp_object = mock.MagicMock()
|
||||
sp_object.app_id = 'app_id'
|
||||
app_object = mock.MagicMock()
|
||||
app_object.object_id = test_object_id
|
||||
key_cred = mock.MagicMock()
|
||||
key_cred.key_id = key_id_of_existing_cert
|
||||
cmd = mock.MagicMock()
|
||||
cmd.cli_ctx = TestCli()
|
||||
|
||||
graph_client_mock.return_value = faked_graph_client
|
||||
faked_graph_client.service_principals.list.return_value = [sp_object]
|
||||
faked_graph_client.applications.list.return_value = [app_object]
|
||||
faked_graph_client.applications.get.side_effect = [app_object]
|
||||
faked_graph_client.applications.patch = test_patch
|
||||
faked_graph_client.applications.list_key_credentials.return_value = [key_cred]
|
||||
|
||||
# action
|
||||
reset_service_principal_credential(cmd, name, cert=test_cert, append=True)
|
||||
|
||||
# assert
|
||||
self.assertTrue(patch_invoked[0])
|
||||
|
||||
@mock.patch('azure.cli.command_modules.role.custom._auth_client_factory', autospec=True)
|
||||
@mock.patch('azure.cli.command_modules.role.custom._graph_client_factory', autospec=True)
|
||||
def test_create_for_rbac_failed_with_polished_error_if_due_to_permission(self, graph_client_mock, auth_client_mock):
|
||||
cmd = mock.MagicMock()
|
||||
cmd.cli_ctx = TestCli()
|
||||
TestRoleMocked._common_rbac_err_polish_test_mock_setup(graph_client_mock, auth_client_mock,
|
||||
'Insufficient privileges to complete the operation',
|
||||
self.subscription_id)
|
||||
|
||||
# action
|
||||
with self.assertRaises(CLIError) as context:
|
||||
create_service_principal_for_rbac(cmd, 'will-fail', skip_assignment=True)
|
||||
|
||||
# assert we handled such error
|
||||
self.assertTrue('https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal' in str(context.exception))
|
||||
|
||||
@mock.patch('azure.cli.command_modules.role.custom._auth_client_factory', autospec=True)
|
||||
@mock.patch('azure.cli.command_modules.role.custom._graph_client_factory', autospec=True)
|
||||
def test_create_for_rbac_failed_with_regular_error(self, graph_client_mock, auth_client_mock):
|
||||
cmd = mock.MagicMock()
|
||||
cmd.cli_ctx = TestCli()
|
||||
TestRoleMocked._common_rbac_err_polish_test_mock_setup(graph_client_mock, auth_client_mock,
|
||||
'something bad for you',
|
||||
self.subscription_id)
|
||||
# action
|
||||
with self.assertRaises(GraphErrorException) as context:
|
||||
create_service_principal_for_rbac(cmd, 'will-fail')
|
||||
|
||||
@staticmethod
|
||||
def _common_rbac_err_polish_test_mock_setup(graph_client_mock, auth_client_mock, error_msg, subscription_id):
|
||||
def _test_deserializer(resp_type, response):
|
||||
err = FakedError(error_msg)
|
||||
return err
|
||||
|
||||
faked_role_client = mock.MagicMock()
|
||||
faked_role_client.config.subscription_id = subscription_id
|
||||
auth_client_mock.return_value = faked_role_client
|
||||
faked_graph_client = mock.MagicMock()
|
||||
graph_client_mock.return_value = faked_graph_client
|
||||
|
||||
faked_graph_client.applications.create.side_effect = GraphErrorException(_test_deserializer, None)
|
||||
|
||||
|
||||
class FakedError(object): # pylint: disable=too-few-public-methods
|
||||
def __init__(self, message):
|
||||
self.message = message
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
@ -14,7 +14,7 @@ except ImportError:
|
|||
logger.warn("Wheel is not available, disabling bdist_wheel hook")
|
||||
cmdclass = {}
|
||||
|
||||
VERSION = "2.0.14"
|
||||
VERSION = "2.0.15"
|
||||
CLASSIFIERS = [
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Intended Audience :: Developers',
|
||||
|
|
|
@ -3,6 +3,11 @@
|
|||
Release History
|
||||
===============
|
||||
|
||||
2.0.16
|
||||
++++++
|
||||
* Added az sql db list-usages and az sql db show-usage commands.
|
||||
* Added sql server conn-policy show/update commands.
|
||||
|
||||
2.0.15
|
||||
++++++
|
||||
* Added --ignore-missing-vnet-service-endpoint param to az sql server vnet-rule create and update commands
|
||||
|
|
|
@ -284,6 +284,18 @@ helps['sql server update'] = """
|
|||
type: command
|
||||
short-summary: Update a server.
|
||||
"""
|
||||
helps['sql server conn-policy'] = """
|
||||
type: group
|
||||
short-summary: Manage a server's connection policy.
|
||||
"""
|
||||
helps['sql server conn-policy show'] = """
|
||||
type: command
|
||||
short-summary: Gets a server's secure connection policy.
|
||||
"""
|
||||
helps['sql server conn-policy update'] = """
|
||||
type: command
|
||||
short-summary: Updates a server's secure connection policy.
|
||||
"""
|
||||
helps['sql server firewall-rule'] = """
|
||||
type: group
|
||||
short-summary: Manage a server's firewall rules.
|
||||
|
|
|
@ -20,6 +20,7 @@ from azure.mgmt.sql.models.sql_management_client_enums import (
|
|||
CreateMode,
|
||||
SecurityAlertPolicyState,
|
||||
SecurityAlertPolicyEmailAccountAdmins,
|
||||
ServerConnectionType,
|
||||
ServerKeyType,
|
||||
StorageKeyType,
|
||||
TransparentDataEncryptionStatus)
|
||||
|
@ -677,6 +678,16 @@ with ParametersContext(command='sql server ad-admin create') as c:
|
|||
'tenant_id': patch_arg_make_optional})
|
||||
|
||||
|
||||
#####
|
||||
# sql server conn-policy
|
||||
#####
|
||||
|
||||
|
||||
with ParametersContext(command='sql server conn-policy') as c:
|
||||
c.argument('server_name', arg_type=server_param_type)
|
||||
c.argument('connection_type', options_list=('--connection-type', '-t'), **enum_choice_list(ServerConnectionType))
|
||||
|
||||
|
||||
#####
|
||||
# sql server firewall-rule
|
||||
#####
|
||||
|
|
|
@ -84,6 +84,10 @@ def get_sql_server_azure_ad_administrators_operations(kwargs):
|
|||
return get_sql_management_client(kwargs).server_azure_ad_administrators
|
||||
|
||||
|
||||
def get_sql_server_connection_policies_operations(kwargs):
|
||||
return get_sql_management_client(kwargs).server_connection_policies
|
||||
|
||||
|
||||
def get_sql_server_keys_operations(kwargs):
|
||||
return get_sql_management_client(kwargs).server_keys
|
||||
|
||||
|
@ -96,5 +100,9 @@ def get_sql_server_usages_operations(kwargs):
|
|||
return get_sql_management_client(kwargs).server_usages
|
||||
|
||||
|
||||
def get_sql_subscription_usages_operations(kwargs):
|
||||
return get_sql_management_client(kwargs).subscription_usages
|
||||
|
||||
|
||||
def get_sql_virtual_network_rules_operations(kwargs):
|
||||
return get_sql_management_client(kwargs).virtual_network_rules
|
||||
|
|
|
@ -23,9 +23,11 @@ from ._util import (
|
|||
get_sql_firewall_rules_operations,
|
||||
get_sql_replication_links_operations,
|
||||
get_sql_restorable_dropped_databases_operations,
|
||||
get_sql_server_connection_policies_operations,
|
||||
get_sql_server_keys_operations,
|
||||
get_sql_servers_operations,
|
||||
get_sql_server_usages_operations,
|
||||
get_sql_subscription_usages_operations,
|
||||
get_sql_virtual_network_rules_operations
|
||||
)
|
||||
|
||||
|
@ -47,6 +49,20 @@ if not supported_api_version(PROFILE_TYPE, max_api='2017-03-09-profile'):
|
|||
with s.group('sql elastic-pool') as c:
|
||||
c.custom_command('list-editions', 'elastic_pool_list_capabilities')
|
||||
|
||||
###############################################
|
||||
# sql list-usages #
|
||||
###############################################
|
||||
|
||||
subscription_usages_operations = create_service_adapter(
|
||||
'azure.mgmt.sql.operations.subscription_usages_operations',
|
||||
'SubscriptionUsagesOperations')
|
||||
|
||||
with ServiceGroup(__name__, get_sql_subscription_usages_operations,
|
||||
subscription_usages_operations, custom_path) as s:
|
||||
with s.group('sql') as c:
|
||||
c.command('list-usages', 'list_by_location')
|
||||
c.command('show-usage', 'get')
|
||||
|
||||
###############################################
|
||||
# sql db #
|
||||
###############################################
|
||||
|
@ -285,3 +301,14 @@ if not supported_api_version(PROFILE_TYPE, max_api='2017-03-09-profile'):
|
|||
c.command('list', 'list_by_server')
|
||||
c.command('delete', 'delete')
|
||||
c.generic_update_command('update', 'get', 'create_or_update')
|
||||
|
||||
server_connection_policies_operations = create_service_adapter(
|
||||
'azure.mgmt.sql.operations.server_connection_policies_operations',
|
||||
'ServerConnectionPoliciesOperations'
|
||||
)
|
||||
|
||||
with ServiceGroup(__name__, get_sql_server_connection_policies_operations, server_connection_policies_operations,
|
||||
custom_path) as s:
|
||||
with s.group('sql server conn-policy') as c:
|
||||
c.command('show', 'get')
|
||||
c.generic_update_command('update', 'get', 'create_or_update')
|
||||
|
|
|
@ -1195,7 +1195,7 @@ def encryption_protector_update(
|
|||
|
||||
|
||||
#####
|
||||
# sql server vnet-rule validate
|
||||
# sql server vnet-rule
|
||||
#####
|
||||
|
||||
# Validates if a subnet id or name have been given by the user. If subnet id is given, vnet-name should not be provided.
|
||||
|
|
|
@ -0,0 +1,450 @@
|
|||
interactions:
|
||||
- request:
|
||||
body: '{"tags": {"use": "az-test"}, "location": "westus"}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [group create]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['50']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2017-05-10
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"westus","tags":{"use":"az-test"},"properties":{"provisioningState":"Succeeded"}}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['328']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Wed, 15 Nov 2017 21:11:41 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 201, message: Created}
|
||||
- request:
|
||||
body: '{"location": "westus", "properties": {"administratorLogin": "admin123",
|
||||
"administratorLoginPassword": "SecretPassword123"}}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [sql server create]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['123']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 sqlmanagementclient/0.8.4 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/servers/clitestserver000002?api-version=2015-05-01-preview
|
||||
response:
|
||||
body: {string: '{"operation":"UpsertLogicalServer","startTime":"2017-11-15T21:11:45.02Z"}'}
|
||||
headers:
|
||||
azure-asyncoperation: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/locations/westus/serverAzureAsyncOperation/5ed7d607-857c-48c7-9ad4-54b296a3ab40?api-version=2015-05-01-preview']
|
||||
cache-control: [no-cache]
|
||||
content-length: ['73']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Wed, 15 Nov 2017 21:11:43 GMT']
|
||||
expires: ['-1']
|
||||
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/locations/westus/serverOperationResults/5ed7d607-857c-48c7-9ad4-54b296a3ab40?api-version=2015-05-01-preview']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 202, message: Accepted}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [sql server create]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 sqlmanagementclient/0.8.4 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/locations/westus/serverAzureAsyncOperation/5ed7d607-857c-48c7-9ad4-54b296a3ab40?api-version=2015-05-01-preview
|
||||
response:
|
||||
body: {string: '{"name":"5ed7d607-857c-48c7-9ad4-54b296a3ab40","status":"InProgress","startTime":"2017-11-15T21:11:45.02Z"}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['107']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Wed, 15 Nov 2017 21:11:45 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [sql server create]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 sqlmanagementclient/0.8.4 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/locations/westus/serverAzureAsyncOperation/5ed7d607-857c-48c7-9ad4-54b296a3ab40?api-version=2015-05-01-preview
|
||||
response:
|
||||
body: {string: '{"name":"5ed7d607-857c-48c7-9ad4-54b296a3ab40","status":"InProgress","startTime":"2017-11-15T21:11:45.02Z"}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['107']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Wed, 15 Nov 2017 21:11:48 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [sql server create]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 sqlmanagementclient/0.8.4 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/locations/westus/serverAzureAsyncOperation/5ed7d607-857c-48c7-9ad4-54b296a3ab40?api-version=2015-05-01-preview
|
||||
response:
|
||||
body: {string: '{"name":"5ed7d607-857c-48c7-9ad4-54b296a3ab40","status":"InProgress","startTime":"2017-11-15T21:11:45.02Z"}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['107']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Wed, 15 Nov 2017 21:11:50 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [sql server create]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 sqlmanagementclient/0.8.4 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/locations/westus/serverAzureAsyncOperation/5ed7d607-857c-48c7-9ad4-54b296a3ab40?api-version=2015-05-01-preview
|
||||
response:
|
||||
body: {string: '{"name":"5ed7d607-857c-48c7-9ad4-54b296a3ab40","status":"InProgress","startTime":"2017-11-15T21:11:45.02Z"}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['107']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Wed, 15 Nov 2017 21:12:10 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [sql server create]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 sqlmanagementclient/0.8.4 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/locations/westus/serverAzureAsyncOperation/5ed7d607-857c-48c7-9ad4-54b296a3ab40?api-version=2015-05-01-preview
|
||||
response:
|
||||
body: {string: '{"name":"5ed7d607-857c-48c7-9ad4-54b296a3ab40","status":"Succeeded","startTime":"2017-11-15T21:11:45.02Z"}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['106']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Wed, 15 Nov 2017 21:12:30 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [sql server create]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 sqlmanagementclient/0.8.4 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/servers/clitestserver000002?api-version=2015-05-01-preview
|
||||
response:
|
||||
body: {string: '{"kind":"v12.0","properties":{"administratorLogin":"admin123","version":"12.0","state":"Ready","fullyQualifiedDomainName":"clitestserver000002.database.windows.net"},"location":"westus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/servers/clitestserver000002","name":"clitestserver000002","type":"Microsoft.Sql/servers"}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['580']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Wed, 15 Nov 2017 21:12:30 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [sql server conn-policy show]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 sqlmanagementclient/0.8.4 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/servers/clitestserver000002/connectionPolicies/default?api-version=2014-04-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/servers/clitestserver000002/connectionPolicies/default","name":"default","type":"Microsoft.Sql/servers/connectionPolicies","location":"West
|
||||
US","kind":null,"properties":{"connectionType":"Default"}}'}
|
||||
headers:
|
||||
cache-control: ['no-store, no-cache']
|
||||
content-length: ['416']
|
||||
content-type: [application/json; odata=minimalmetadata; streaming=true; charset=utf-8]
|
||||
dataserviceversion: [3.0;]
|
||||
date: ['Wed, 15 Nov 2017 21:12:33 GMT']
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [sql server conn-policy update]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 sqlmanagementclient/0.8.4 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/servers/clitestserver000002/connectionPolicies/default?api-version=2014-04-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/servers/clitestserver000002/connectionPolicies/default","name":"default","type":"Microsoft.Sql/servers/connectionPolicies","location":"West
|
||||
US","kind":null,"properties":{"connectionType":"Default"}}'}
|
||||
headers:
|
||||
cache-control: ['no-store, no-cache']
|
||||
content-length: ['416']
|
||||
content-type: [application/json; odata=minimalmetadata; streaming=true; charset=utf-8]
|
||||
dataserviceversion: [3.0;]
|
||||
date: ['Wed, 15 Nov 2017 21:12:35 GMT']
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '{"properties": {"connectionType": "Proxy"}}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [sql server conn-policy update]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['43']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 sqlmanagementclient/0.8.4 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/servers/clitestserver000002/connectionPolicies/default?api-version=2014-04-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/servers/clitestserver000002/connectionPolicies/default","name":"default","type":"Microsoft.Sql/servers/connectionPolicies","location":null,"kind":null,"properties":{"connectionType":"Proxy"}}'}
|
||||
headers:
|
||||
cache-control: ['no-store, no-cache']
|
||||
content-length: ['409']
|
||||
content-type: [application/json; odata=minimalmetadata; streaming=true; charset=utf-8]
|
||||
dataserviceversion: [3.0;]
|
||||
date: ['Wed, 15 Nov 2017 21:12:35 GMT']
|
||||
preference-applied: [return-content]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [sql server conn-policy update]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 sqlmanagementclient/0.8.4 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/servers/clitestserver000002/connectionPolicies/default?api-version=2014-04-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/servers/clitestserver000002/connectionPolicies/default","name":"default","type":"Microsoft.Sql/servers/connectionPolicies","location":"West
|
||||
US","kind":null,"properties":{"connectionType":"Proxy"}}'}
|
||||
headers:
|
||||
cache-control: ['no-store, no-cache']
|
||||
content-length: ['414']
|
||||
content-type: [application/json; odata=minimalmetadata; streaming=true; charset=utf-8]
|
||||
dataserviceversion: [3.0;]
|
||||
date: ['Wed, 15 Nov 2017 21:12:36 GMT']
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '{"properties": {"connectionType": "Default"}}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [sql server conn-policy update]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['45']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 sqlmanagementclient/0.8.4 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/servers/clitestserver000002/connectionPolicies/default?api-version=2014-04-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/servers/clitestserver000002/connectionPolicies/default","name":"default","type":"Microsoft.Sql/servers/connectionPolicies","location":null,"kind":null,"properties":{"connectionType":"Default"}}'}
|
||||
headers:
|
||||
cache-control: ['no-store, no-cache']
|
||||
content-length: ['411']
|
||||
content-type: [application/json; odata=minimalmetadata; streaming=true; charset=utf-8]
|
||||
dataserviceversion: [3.0;]
|
||||
date: ['Wed, 15 Nov 2017 21:12:36 GMT']
|
||||
preference-applied: [return-content]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [sql server conn-policy update]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 sqlmanagementclient/0.8.4 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/servers/clitestserver000002/connectionPolicies/default?api-version=2014-04-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/servers/clitestserver000002/connectionPolicies/default","name":"default","type":"Microsoft.Sql/servers/connectionPolicies","location":"West
|
||||
US","kind":null,"properties":{"connectionType":"Default"}}'}
|
||||
headers:
|
||||
cache-control: ['no-store, no-cache']
|
||||
content-length: ['416']
|
||||
content-type: [application/json; odata=minimalmetadata; streaming=true; charset=utf-8]
|
||||
dataserviceversion: [3.0;]
|
||||
date: ['Wed, 15 Nov 2017 21:12:37 GMT']
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '{"properties": {"connectionType": "Redirect"}}'
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [sql server conn-policy update]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['46']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 sqlmanagementclient/0.8.4 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: PUT
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/servers/clitestserver000002/connectionPolicies/default?api-version=2014-04-01
|
||||
response:
|
||||
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Sql/servers/clitestserver000002/connectionPolicies/default","name":"default","type":"Microsoft.Sql/servers/connectionPolicies","location":null,"kind":null,"properties":{"connectionType":"Redirect"}}'}
|
||||
headers:
|
||||
cache-control: ['no-store, no-cache']
|
||||
content-length: ['412']
|
||||
content-type: [application/json; odata=minimalmetadata; streaming=true; charset=utf-8]
|
||||
dataserviceversion: [3.0;]
|
||||
date: ['Wed, 15 Nov 2017 21:12:39 GMT']
|
||||
preference-applied: [return-content]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
x-content-type-options: [nosniff]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [group delete]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
|
||||
AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: DELETE
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2017-05-10
|
||||
response:
|
||||
body: {string: ''}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['0']
|
||||
date: ['Wed, 15 Nov 2017 21:12:39 GMT']
|
||||
expires: ['-1']
|
||||
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkdRRTdFQ0dGT0xRS1VNSjRRNllWNlFLSUdFMkJHQzM0VkxJTXxGODFCRkU0RTYxOTQ5MjA0LVdFU1RVUyIsImpvYkxvY2F0aW9uIjoid2VzdHVzIn0?api-version=2017-05-10']
|
||||
pragma: [no-cache]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
x-ms-ratelimit-remaining-subscription-writes: ['1199']
|
||||
status: {code: 202, message: Accepted}
|
||||
version: 1
|
|
@ -0,0 +1,60 @@
|
|||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [sql list-usages]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 sqlmanagementclient/0.8.3 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Sql/locations/westus/usages?api-version=2015-05-01-preview
|
||||
response:
|
||||
body: {string: '{"value":[{"properties":{"displayName":"Regional Server Quota
|
||||
for westus","currentValue":2.0,"limit":20.0,"unit":"Count"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Sql/locations/westus/usages/ServerQuota","name":"ServerQuota","type":"Microsoft.Sql/locations/usages"},{"properties":{"displayName":"Free
|
||||
Database Count per Subscription for westus","currentValue":0.0,"limit":1.0,"unit":"Count"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Sql/locations/westus/usages/SubscriptionFreeDatabaseCount","name":"SubscriptionFreeDatabaseCount","type":"Microsoft.Sql/locations/usages"},{"properties":{"displayName":"Free
|
||||
to Basic Database Upgrade count-down in westus","currentValue":136.0,"limit":365.0,"unit":"Count"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Sql/locations/westus/usages/SubscriptionFreeDatabaseDaysLeft","name":"SubscriptionFreeDatabaseDaysLeft","type":"Microsoft.Sql/locations/usages"}]}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['1004']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Tue, 14 Nov 2017 07:56:31 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: [application/json]
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
CommandName: [sql show-usage]
|
||||
Connection: [keep-alive]
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
User-Agent: [python/3.5.3 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.18
|
||||
msrest_azure/0.4.16 sqlmanagementclient/0.8.3 Azure-SDK-For-Python AZURECLI/2.0.21]
|
||||
accept-language: [en-US]
|
||||
method: GET
|
||||
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Sql/locations/westus/usages/SubscriptionFreeDatabaseDaysLeft?api-version=2015-05-01-preview
|
||||
response:
|
||||
body: {string: '{"properties":{"displayName":"Free to Basic Database Upgrade count-down
|
||||
in westus","currentValue":136.0,"limit":365.0,"unit":"Count"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Sql/locations/westus/usages/SubscriptionFreeDatabaseDaysLeft","name":"SubscriptionFreeDatabaseDaysLeft","type":"Microsoft.Sql/locations/usages"}'}
|
||||
headers:
|
||||
cache-control: [no-cache]
|
||||
content-length: ['356']
|
||||
content-type: [application/json; charset=utf-8]
|
||||
date: ['Tue, 14 Nov 2017 07:56:31 GMT']
|
||||
expires: ['-1']
|
||||
pragma: [no-cache]
|
||||
server: [Microsoft-HTTPAPI/2.0]
|
||||
strict-transport-security: [max-age=31536000; includeSubDomains]
|
||||
transfer-encoding: [chunked]
|
||||
vary: [Accept-Encoding]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
|
@ -342,6 +342,22 @@ class SqlServerDbOperationMgmtScenarioTest(ScenarioTest):
|
|||
.format(resource_group, server, database_name, ops[0]['name']))
|
||||
|
||||
|
||||
class SqlServerConnectionPolicyScenarioTest(ScenarioTest):
|
||||
@ResourceGroupPreparer()
|
||||
@SqlServerPreparer()
|
||||
def test_sql_server_connection_policy(self, resource_group, resource_group_location, server):
|
||||
# Show
|
||||
self.cmd('sql server conn-policy show -g {} -s {}'
|
||||
.format(resource_group, server),
|
||||
checks=[JMESPathCheck('connectionType', 'Default')])
|
||||
|
||||
# Update
|
||||
for type in ('Proxy', 'Default', 'Redirect'):
|
||||
self.cmd('sql server conn-policy update -g {} -s {} -t {}'
|
||||
.format(resource_group, server, type),
|
||||
checks=[JMESPathCheck('connectionType', type)])
|
||||
|
||||
|
||||
class AzureActiveDirectoryAdministratorScenarioTest(ScenarioTest):
|
||||
@ResourceGroupPreparer()
|
||||
@SqlServerPreparer()
|
||||
|
@ -1723,3 +1739,14 @@ class SqlServerVnetMgmtScenarioTest(ScenarioTest):
|
|||
# test sql server vnet-rule delete rule 2
|
||||
self.cmd('sql server vnet-rule delete --name {} -g {} --server {}'.format(vnet_rule_2, rg, server),
|
||||
checks=NoneCheck())
|
||||
|
||||
|
||||
class SqlSubscriptionUsagesScenarioTest(ScenarioTest):
|
||||
def test_sql_subscription_usages(self):
|
||||
self.cmd('sql list-usages -l westus',
|
||||
checks=[JMESPathCheckGreaterThan('length(@)', 2)])
|
||||
|
||||
self.cmd('sql show-usage -l westus -u SubscriptionFreeDatabaseDaysLeft',
|
||||
checks=[
|
||||
JMESPathCheck('name', 'SubscriptionFreeDatabaseDaysLeft'),
|
||||
JMESPathCheckGreaterThan('limit', 0)])
|
||||
|
|
|
@ -12,7 +12,7 @@ except ImportError:
|
|||
logger.warn("Wheel is not available, disabling bdist_wheel hook")
|
||||
cmdclass = {}
|
||||
|
||||
VERSION = "2.0.15"
|
||||
VERSION = "2.0.16"
|
||||
CLASSIFIERS = [
|
||||
'Development Status :: 4 - Beta',
|
||||
'Intended Audience :: Developers',
|
||||
|
@ -29,7 +29,7 @@ CLASSIFIERS = [
|
|||
|
||||
DEPENDENCIES = [
|
||||
'azure-cli-core',
|
||||
'azure-mgmt-sql==0.8.3',
|
||||
'azure-mgmt-sql==0.8.4',
|
||||
'azure-mgmt-storage==1.4.0',
|
||||
'six'
|
||||
]
|
||||
|
|
Загрузка…
Ссылка в новой задаче