* 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:
Travis Prescott 2017-11-27 10:38:03 -08:00 коммит произвёл GitHub
Родитель e8e8b25f61
Коммит fe81db993b
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
87 изменённых файлов: 9799 добавлений и 2295 удалений

2
.github/CODEOWNERS поставляемый
Просмотреть файл

@ -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'
]