Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AutoPR track2_azure-mgmt-iothub] iothub readme.python package version change #5260

Closed
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
2337 commits
Select commit Hold shift + click to select a range
10bc4e8
Fixed github issue for phone numbers and sms readme files (#17681)
lsundaralingam Mar 30, 2021
0aa924a
[DataLake][Fix]only set recursive=True for delete directory (#17671)
xiafu-msft Mar 31, 2021
dee491e
[Storage]Make key in conn_str case insensitive (#17670)
xiafu-msft Mar 31, 2021
aaa41cd
Search adls gen2 (#17684)
xiangyan99 Mar 31, 2021
c9db468
adding line items to invoice samples (#17682)
catalinaperalta Mar 31, 2021
abba261
[core] connection string parser only (#17640)
swathipil Mar 31, 2021
a70c40c
[EH&SB] update doc for transport type (#17698)
yunhaoling Mar 31, 2021
93f9f0b
Removing administration package (#17668)
jbeauregardb Mar 31, 2021
b285461
[doc translator] adding tests (#17511)
Mar 31, 2021
45dcdfc
[formrecognizer] Adding tests for the reading order kwarg (#17686)
catalinaperalta Mar 31, 2021
5bb85ae
[Tables] Added query injection test (#17547)
annatisch Mar 31, 2021
473a64e
adding id doc samples to samples readme (#17706)
catalinaperalta Mar 31, 2021
1839ca8
move API Review after artifact publish (#17691)
scbedd Mar 31, 2021
7ace5b1
undo remove requests (#17702)
swathipil Mar 31, 2021
fe3508a
Fix RetryPolicy setting extremely long connection timeout (#17610)
chlowell Mar 31, 2021
cf1a078
Sync eng/common directory with azure-sdk-tools repository (#17710)
azure-sdk Mar 31, 2021
83eb6e3
[formrecognizer] update test-resources.json (#17709)
kristapratico Mar 31, 2021
d5c04f0
[formrecognizer] Release script changelog update (#17712)
catalinaperalta Mar 31, 2021
49e545d
Updated deletion tag for identity tests (#17665)
lsundaralingam Mar 31, 2021
eaa4acf
Update OT to 1.0.0 (#16982)
Mar 31, 2021
f777abe
updated model attributes (#17719)
Apr 1, 2021
43ab3a4
Update changelog date on OT, OC (#17725)
Apr 1, 2021
8c28b75
[AutoRelease] t2-labservices-2021-03-31-84474(Do not merge) (#17694)
msyyc Apr 1, 2021
279e2a3
[Auto-Release-Pipeline] Python Auto Release Pipeline (#17730)
msyyc Apr 1, 2021
1bf8589
[AutoRelease] t2-compute-2021-03-26-71715(Do not merge) (#17587)
msyyc Apr 1, 2021
625e10e
adding passport tests for id docs model (#17721)
catalinaperalta Apr 1, 2021
fac3304
Update README.md (#17729)
Rodrigossz Apr 1, 2021
2acd938
Sync eng/common directory with azure-sdk-tools for PR 1525 (#17717)
azure-sdk Apr 1, 2021
b591ce7
default version of python no longer ships with setuptools. make certa…
scbedd Apr 1, 2021
01f32e9
Acr auth flow (#17540)
seankane-msft Apr 1, 2021
c4acce9
[KeyVault] tests-mgmt.yml (#17707)
swathipil Apr 1, 2021
6a3665d
add __repr__ to models (#17726)
Apr 1, 2021
a1918ff
applied changes suggested by @kristapratico (#17738)
Apr 1, 2021
f722d4c
setuptools is no longer present in the default python install. (#17737)
scbedd Apr 1, 2021
a12fdd3
[translation] add error state tests (#17716)
kristapratico Apr 1, 2021
8cdc660
SHA e6fa7db931a3e5182e5685630971b64987719938 (#17756)
xiangyan99 Apr 1, 2021
acd8518
add adf support (SHA f953424dd168e71373bc52edb9713d2d86a14ada) (#17635)
xiangyan99 Apr 1, 2021
4fbf75b
expose new skills (#17759)
xiangyan99 Apr 2, 2021
51011c3
[ContainerRegistry] Pre-release script (#17676)
seankane-msft Apr 2, 2021
da03e16
[SB] tests-mgmt.yml (#17699)
swathipil Apr 2, 2021
808f66e
[Container Registry] Acr delete tag (#17608)
seankane-msft Apr 2, 2021
9315f34
[EG] tests-mgmt.yml (#17704)
swathipil Apr 2, 2021
e7cefc0
[Container Registry] Acr delete repo (#17660)
seankane-msft Apr 2, 2021
5c4d08b
[Container Registry] Acr delete artifact (#17645)
seankane-msft Apr 2, 2021
a27bae5
[SB] update template path (#17772)
swathipil Apr 2, 2021
3670a16
[EG] update template path (#17771)
swathipil Apr 2, 2021
a1f6028
[EH] tests-mgmt.yml (#17652)
swathipil Apr 2, 2021
72ea38b
[ContainerRegistry] Acr set operations (#17701)
seankane-msft Apr 2, 2021
6eb912d
update reading order kwarg docs (#17768)
catalinaperalta Apr 2, 2021
607d305
Changed threshold value to fix Datalake upload performance (#17773)
tasherif-msft Apr 2, 2021
acf303a
[EH] drop 3.5 (#17753)
swathipil Apr 2, 2021
c850b89
[AppConfig] pre-release script (#17675)
seankane-msft Apr 2, 2021
8554251
Consolidate proactive token refreshing code (#17722)
chlowell Apr 2, 2021
7c4cfe2
[EventHub] update checkpointstore service operations to take kwargs (…
swathipil Apr 2, 2021
de272ae
Update azure-identity readme (#17777)
chlowell Apr 3, 2021
7915990
Add azure Sas credential support (#17733)
Apr 3, 2021
294668b
Adapt SB to latest OT changes (#17761)
Apr 5, 2021
8fee2b6
[Container Registry] Transport wrapper (#17633)
seankane-msft Apr 5, 2021
8972875
Increment package version after release of azure-core (#17770)
azure-sdk Apr 5, 2021
8a7c5a4
[ServiceBus] Bump uamqp dependency (#17673)
yunhaoling Apr 5, 2021
18a9442
[SB] update Python 3.5 to 3.6 (#17751)
swathipil Apr 5, 2021
c5c4228
Adapt EH to OT 1.0.0 (#17783)
Apr 5, 2021
9aeeca6
Fixed parse_connection_str function to have better error handling (#1…
jbeauregardb Apr 5, 2021
a51f9d5
Use single quotes for matrix generator command line arguments (#17754)
azure-sdk Apr 5, 2021
908835c
[SB] update release date (#17791)
swathipil Apr 5, 2021
2c5245f
[OT] Warn only on attribute error (#17784)
Apr 5, 2021
9487d10
add samples readme (#17782)
Apr 5, 2021
fed3b36
Add FeatureFlagConfigurationSetting, SecretReferenceConfigurationSett…
seankane-msft Apr 5, 2021
658d94b
Search nomalizer (#17579)
xiangyan99 Apr 5, 2021
2a80053
[EventHubs] Bump uamqp dependency (#17674)
yunhaoling Apr 5, 2021
cff7650
[ContainerRegistry] new swagger (#17790)
seankane-msft Apr 5, 2021
6603722
updated changelog for release (#17700)
seankane-msft Apr 5, 2021
fa00c1d
[Tables] Updated datetime de/serialization (#17776)
annatisch Apr 5, 2021
b0b5a20
update credential type (#17798)
swathipil Apr 5, 2021
5bcfe3f
[Storage] mgmt live tests (#17774)
swathipil Apr 5, 2021
698a7a4
[EH] update credential type to AsyncTokenCredential (#17799)
swathipil Apr 5, 2021
f15f11d
you cannot pass a Null value to a tag. need to set a real value if EN…
scbedd Apr 5, 2021
d4811cf
[SB] update async client to take AsyncTokenCredential (#17802)
swathipil Apr 5, 2021
105a27c
Use base platform matrix for CI tests (#17667)
benbp Apr 5, 2021
0523eab
[translation] rename package/namespace (#17792)
kristapratico Apr 5, 2021
53033f2
[ContainerRegistry] ACR orderby (#17794)
seankane-msft Apr 5, 2021
9c0e712
[Communications-Chat] Refactor identifiers (#17680)
annatisch Apr 5, 2021
a9b77d7
add nspkg as a release artifact (#17809)
kristapratico Apr 5, 2021
4485013
Add Test Environment that runs tests w/out aiohttp (#17718)
scbedd Apr 5, 2021
379803f
Add WSL fallback to InteractiveBrowserCredential (#17752)
chlowell Apr 5, 2021
3086be4
[Container Registry] ACR docs (#17807)
seankane-msft Apr 5, 2021
2264517
[Key Vault] Add local crypto support for AES-CBCPAD (#17762)
mccoyp Apr 5, 2021
472b1d4
Revise AuthenticationRecord to align with other SDKs (#17689)
chlowell Apr 5, 2021
39a0685
[Key Vault] Update changelog for keys 4.4.0b4 (#17813)
mccoyp Apr 6, 2021
e3495f8
Update changelog for azure-identity 1.6.0b3 (#17815)
chlowell Apr 6, 2021
824665d
[Tables] Fix for async retry policy (#17810)
annatisch Apr 6, 2021
160e3ed
[Container Registry] ACR list_repositories pageable (#17714)
seankane-msft Apr 6, 2021
830db5d
update changelog date for release (#17811)
kristapratico Apr 6, 2021
d336589
Increment package version after release of azure-search-documents (#1…
azure-sdk Apr 6, 2021
25a8e4f
[EH] update api ref links to point to latest (#17831)
swathipil Apr 6, 2021
a555acd
Increment version for storage releases (#17012)
azure-sdk Apr 6, 2021
b20bcbf
Update eng_sys_checks to highlight the queue time options for skippin…
scbedd Apr 6, 2021
e95f3a2
[EventHubs] Improvement on doc and sample (#17833)
yunhaoling Apr 6, 2021
ee88e31
[Blob] Fixed the ability to upload from a generator (#17551)
tasherif-msft Apr 6, 2021
5d30958
Upgrade OT monitor exporter to 1.0.0, remove support for Python 3.5 (…
lzchen Apr 6, 2021
8db319c
small fixes to samples and readme (#17842)
seankane-msft Apr 6, 2021
d72b1ce
Increment package version after release of azure-data-tables (#17834)
azure-sdk Apr 6, 2021
c48529b
Increment package version after release of azure-keyvault-keys (#17843)
azure-sdk Apr 6, 2021
b34a952
Date on changelog (#17846)
Apr 6, 2021
f9d5fd3
Increment package version after release of azure-ai-translation-docum…
azure-sdk Apr 6, 2021
ba32ad5
Increment package version after release of azure-ai-formrecognizer (#…
azure-sdk Apr 6, 2021
0761479
Increment package version after release of azure-identity (#17844)
azure-sdk Apr 6, 2021
1e3683d
Update try_import to be aware of what package it's running against (#…
scbedd Apr 6, 2021
14b70f5
Update Date (#17849)
Apr 6, 2021
4d50ff1
Extend whl_no_aio pytest filter glob (#17854)
scbedd Apr 6, 2021
e8f5cca
Avoid running non-2.7 and non-3.6 python versions for windows/macos C…
benbp Apr 7, 2021
1b24873
[AutoRelease] t2-compute-2021-04-06-94854 (#17820)
msyyc Apr 7, 2021
60495f1
[AutoRelease] t2-cosmosdb-2021-04-06-06793(Do not merge) (#17826)
msyyc Apr 7, 2021
3bc2c9c
Increment package version after release of azure-core-tracing-opentel…
azure-sdk Apr 7, 2021
88a578b
[AutoRelease] t2-synapse-2021-04-07-40286 (#17863)
msyyc Apr 7, 2021
f16535e
[AutoRelease] t2-datamigration-2021-04-07-23754(wave4) (#17861)
msyyc Apr 7, 2021
3318cee
[AutoRelease] t2-loganalytics-2021-04-06-87551 (#17824)
msyyc Apr 7, 2021
78cbd62
Changed version to b1 for fixing build pipeline (#17858)
tasherif-msft Apr 7, 2021
0168981
Added missing README line create_file() (#17731)
tasherif-msft Apr 7, 2021
21f1bac
azure-identity performance tests (#17490)
chlowell Apr 7, 2021
11bbd11
adding myself to appconfig and tables (#17877)
seankane-msft Apr 7, 2021
4bb2951
CertificateCredential requires either certificate_path or certificate…
chlowell Apr 7, 2021
47cbcfa
[autorest] updating to point to new readme.md (#17853)
JoshuaLai Apr 7, 2021
d953be7
Prepare for release EG (#17881)
Apr 7, 2021
a1752b3
Rename - remove_participant -> user -> identifier (#17814)
sarkar-rajarshi Apr 7, 2021
54a8553
Increment package version after release of azure-servicebus (#17878)
azure-sdk Apr 7, 2021
3c5a63c
Increment package version after release of azure-eventgrid (#17887)
azure-sdk Apr 7, 2021
3dc25cc
[Key Vault] Update live MHSM pipeline testing setup (#17886)
mccoyp Apr 7, 2021
03ea632
Added managed identity tests to PNM (#17884)
jbeauregardb Apr 7, 2021
4e42772
Temporarily replace macOS CI tests with ubuntu CI tests (#17885)
benbp Apr 7, 2021
379a23f
[Container Registry] Test fixes (#17847)
seankane-msft Apr 7, 2021
8fe589d
[AutoRelease] t2-changeanalysis-2021-04-06-95497 (#17819)
msyyc Apr 8, 2021
58a1c0d
[Key Vault] Target multiple API versions with tests (certificates) (#…
mccoyp Apr 8, 2021
c1af73f
add override resourcegraph (#17866)
zhangyan133 Apr 8, 2021
f1a6b32
[AutoRelease] t2-containerservice-2021-04-07-68775(Do not merge) (#17…
msyyc Apr 8, 2021
8bda918
[AutoRelease] t2-storagesync-2021-04-07-19792 (#17869)
msyyc Apr 8, 2021
d34872c
[AutoRelease] t2-resourcegraph-2021-03-31-51385 (#17692)
msyyc Apr 8, 2021
1c71790
[AutoRelease] t2-azurestack-2021-04-08-81999 (#17892)
msyyc Apr 8, 2021
ea8a73b
scrubbing url (#17872)
seankane-msft Apr 8, 2021
cb464b2
[Tables] Cosmos workaround for Merge/Update (#17888)
seankane-msft Apr 8, 2021
7ed5194
Python SDK: CognitiveServices ComputerVision API 3.2 (v0.8.0) (#17482)
tjprescott Apr 8, 2021
f22f1ab
semantic search (#17690)
xiangyan99 Apr 8, 2021
17bd690
Change date for releases (#17907)
Apr 8, 2021
d695852
catch general exception, remove azure.core import (#17908)
seankane-msft Apr 8, 2021
d16d477
Added typing-extensions dep to identity (#17912)
annatisch Apr 8, 2021
fbfe330
[Tables] fixing test failure b/c of cosmos rate limiting (#17922)
seankane-msft Apr 8, 2021
fa8a0ab
azure core dependency update (#17921)
sarkar-rajarshi Apr 8, 2021
9a6fb0e
updating template to not break on twine checks (#17812)
seankane-msft Apr 8, 2021
99a1c75
skip bad target tests (#17925)
kristapratico Apr 8, 2021
0b9bfd6
[AutoRelease] t2-customproviders-2021-04-08-50278 (#17897)
msyyc Apr 9, 2021
37c925e
[AutoRelease] t2-appplatform-2021-04-08-16036 (#17896)
msyyc Apr 9, 2021
d2e5820
Acr remove delete (#17943)
seankane-msft Apr 9, 2021
92973d2
Update README.md (#17945)
Apr 9, 2021
d2af6af
Fix BaseName initialization (#17948)
azure-sdk Apr 9, 2021
838081a
Add and fix samples for OT (#17876)
Apr 9, 2021
4283862
Added test pass info for python (#16026)
LarryOsterman Apr 9, 2021
c8658b8
move apireview step into the analyze stage (#17924)
scbedd Apr 9, 2021
f3760fc
Sync eng/common directory with azure-sdk-tools for PR 1548 (#17952)
azure-sdk Apr 10, 2021
6f4a33e
Sync eng/common directory with azure-sdk-tools for PR 1515 (#17935)
azure-sdk Apr 12, 2021
20a3df6
[AutoRelease] t2-datashare-2021-04-12-49497 (#17959)
msyyc Apr 12, 2021
9afa924
[AutoRelease] t2-hanaonazure-2021-04-12-42294 (#17966)
msyyc Apr 12, 2021
ff15463
Add ubuntu 18.04 agent VM DNS workaround to CI tests (#17975)
benbp Apr 12, 2021
76f9ca7
Removed the update CI target packages step. (#17984)
azure-sdk Apr 12, 2021
66416e7
Sync eng/common directory with azure-sdk-tools for PR 1551 (#17986)
azure-sdk Apr 12, 2021
75c8874
Update eng/common dev version template. (#17993)
azure-sdk Apr 13, 2021
8f7f585
Enable retain runs. (#17960)
mitchdenny Apr 13, 2021
40e7f7d
Revise integration stage condition. (#17998)
mitchdenny Apr 13, 2021
c57ebb4
upgrade version for autorest and nodejs (#18000)
msyyc Apr 13, 2021
a992c8b
Quick fix for retain runs (#18001)
mitchdenny Apr 13, 2021
e558eaf
Sync eng/common directory with azure-sdk-tools for PR 1553 (#18002)
azure-sdk Apr 13, 2021
e748baa
Revert retain. (#18004)
mitchdenny Apr 13, 2021
b2dff18
[AutoRelease] t2-healthcareapis-2021-04-12-56802 (#17968)
msyyc Apr 13, 2021
5bf3d84
Remove unnecessary attribute access (#18007)
jiasli Apr 13, 2021
03bed39
[Communication] - SDK - Synced SMS and Phone Numbers shared folders (…
jbeauregardb Apr 13, 2021
a14cebf
update release date (#17988)
xiangyan99 Apr 13, 2021
6b640a4
Update document translation sample slug (#17989)
kristapratico Apr 13, 2021
6f01b19
updating generated code (#17874)
seankane-msft Apr 13, 2021
80382ed
[AppConfiguration] fix tests (#17917)
seankane-msft Apr 13, 2021
1f28dd5
Sync eng/common directory with azure-sdk-tools for PR 1552 (#18011)
azure-sdk Apr 13, 2021
f8e1b23
fix search fields (#18014)
xiangyan99 Apr 13, 2021
2701194
Add Conda Publishing (#17889)
scbedd Apr 13, 2021
1019494
[Communication]: Removed error code assertion from unauthorized phone…
lsundaralingam Apr 13, 2021
01c8b28
[Container Registry] fixing up the test-resources-post script (#17883)
seankane-msft Apr 13, 2021
1b33479
[Communication]: Migrated python identity tests to use ARM template (…
lsundaralingam Apr 13, 2021
f44d28b
Increment package version after release of azure-search-documents (#1…
azure-sdk Apr 13, 2021
6cd1f37
add perf tests (#17519)
xiangyan99 Apr 14, 2021
e55a470
Deprecate Azure-Synapse (#18027)
scbedd Apr 14, 2021
e01a658
shared_requirements msrest verison update (#17938)
RAY-316 Apr 14, 2021
7f94101
[Container Registry] adding blurb about env vars to set (#17976)
seankane-msft Apr 14, 2021
f241e37
[Communication]: Added exception to begin_update_phone_number_capabil…
lsundaralingam Apr 14, 2021
9c65b7a
Fixed identity samples (#18046)
lsundaralingam Apr 14, 2021
2be0cad
Call bypass-local-dns.yml from verify-agent-os.yml - Easy way to ensu…
azure-sdk Apr 15, 2021
b1ebc32
Sync eng/common directory with azure-sdk-tools for PR 1555 (#18051)
azure-sdk Apr 15, 2021
6fb418f
Update swagger_to_sdk_config_autorest.json (#18058)
msyyc Apr 15, 2021
f394ae8
Sync eng/common directory with azure-sdk-tools for PR 1559 (#18064)
azure-sdk Apr 15, 2021
f4c8a8c
[AutoRelease] t2-dns-2021-04-14-12237 (#18039)
msyyc Apr 15, 2021
6d6f68b
[AutoRelease] t2-hybridcompute-2021-04-15-18223 (#18062)
msyyc Apr 15, 2021
a527161
Fix Opentelemetry exporter azuremonitor Readme issues (#18069)
v-xuto Apr 15, 2021
7fe58e9
remove multiapi generated code (#18052)
xiangyan99 Apr 15, 2021
0629108
allow filtering live test sets based on package name (#18013)
GoWang Apr 15, 2021
8a143e1
[EventHubs] user agent impl update (#18040)
yunhaoling Apr 15, 2021
61cdfd2
update sample slugs for services (#18081)
kristapratico Apr 15, 2021
4c6112b
Update sample readme slug (#18009)
chlowell Apr 15, 2021
99cf2bd
[ServiceBus] update samples, docs and tests for sql rule filter (#18042)
yunhaoling Apr 15, 2021
77feaf1
recording processor updating for foreign clouds (#18073)
seankane-msft Apr 15, 2021
ebb02e3
dns changelog config (#18070)
RAY-316 Apr 16, 2021
46b402f
Support both master and main in Python (#18074)
sima-zhu Apr 16, 2021
a5607a7
[ServiceBus] validate iso8601 duration format in mgmt module (#18044)
yunhaoling Apr 16, 2021
6be6d47
[Tables] Client and pipeline refactor (#18045)
annatisch Apr 16, 2021
c6fb23f
Update azure-template (#18056)
scbedd Apr 16, 2021
e7682d1
Release CognitiveServices AnomalyDetector 3.0.0b3 (#18080)
tjprescott Apr 16, 2021
b1b18de
fix build (#18108)
Apr 16, 2021
a162bf2
CODEOWNERS tests.yml: @danieljurek -> @benbp (#18111)
danieljurek Apr 16, 2021
a5d0e97
[Key Vault] Add public_exponent option to create_key (#18024)
mccoyp Apr 16, 2021
66f11d7
Correct expiration epoch time (#18026)
Leoaqr Apr 17, 2021
40d4e13
Enabled exists() for CPK encrypted blobs (#18106)
tasherif-msft Apr 19, 2021
28545a0
[AutoRelease] t2-resource-2021-04-16-89132 (#18097)
msyyc Apr 19, 2021
4deec3e
[AutoRelease] t2-storage-2021-04-13-34265 (#18003)
msyyc Apr 19, 2021
dffee64
Fix pypi link (#18136)
lzchen Apr 19, 2021
2a2cf6b
[Tables] Test fixes (#18075)
seankane-msft Apr 19, 2021
bc317cc
Sync eng/common directory with azure-sdk-tools for PR 1560 (#18112)
azure-sdk Apr 19, 2021
4d29aef
[Tables] Adding azurite support (#17944)
seankane-msft Apr 19, 2021
91d2509
[EventHub] improved migration guide (#17953)
swathipil Apr 19, 2021
796be71
[Tables] Removed batching result (#18132)
annatisch Apr 19, 2021
064e436
Use underscore-prefixed variable name when setting sub config values …
azure-sdk Apr 19, 2021
2ada230
unredact headers and query params for logging (#18117)
kristapratico Apr 19, 2021
68095e0
[Blob][Fix]fix downloader.chunks() return chunks in different size (#…
xiafu-msft Apr 20, 2021
390e17c
[Storage]fix retry on large block upload (#17909)
xiafu-msft Apr 20, 2021
9a370b3
[AutoRelease] t2-keyvault-2021-04-19-19915 (#18126)
msyyc Apr 20, 2021
b682f61
[AutoRelease] t2-webpubsub-2021-04-16-57261 (#18092)
msyyc Apr 20, 2021
44b528a
changing table_name to name (#18103)
seankane-msft Apr 20, 2021
0ae834b
Storage devtool migration (#17396)
xiafu-msft Apr 20, 2021
89b54c2
[Service Bus] add rule filters sample (#18128)
swathipil Apr 20, 2021
b5f8bb6
[Service Bus] create dead-letter queue sample (#18123)
swathipil Apr 20, 2021
3496153
Support multiple subscription configuration options (#18144)
benbp Apr 20, 2021
b3f18e7
Fixing list all purchased phone number sample from readme file (#18175)
jbeauregardb Apr 20, 2021
5443085
Add multivariate sample (#18156)
DavidZeLiang1228 Apr 20, 2021
1470bc7
Added phone number exception tests (#18146)
lsundaralingam Apr 20, 2021
3fac772
[Storage]Add Patch Release ChangeLog (#18173)
xiafu-msft Apr 20, 2021
16771a6
[Communication] - SDK - Added contributing file (#18018)
jbeauregardb Apr 20, 2021
839229a
Stop filtering projects by ci.yml files (#18174)
azure-sdk Apr 20, 2021
f746a2a
Sync eng/common directory with azure-sdk-tools for PR 1558 (#18178)
azure-sdk Apr 20, 2021
7e74cb3
[Fix]Add retry for streaming download (#18164)
xiafu-msft Apr 20, 2021
8b34155
Add environment.yml to unify conda versioning (#18141)
scbedd Apr 20, 2021
355c45c
[Tables] on a 413 throw a RequestEntity Too Large Error (#18181)
seankane-msft Apr 20, 2021
6809acd
Clean Up PR Triggers (#18186)
scbedd Apr 21, 2021
e33048c
Sync eng/common directory with azure-sdk-tools for PR 1565 (#18155)
azure-sdk Apr 21, 2021
127516e
Updated identity samples (#18189)
lsundaralingam Apr 21, 2021
81448f0
[AutoRelease] t2-maintenance-2021-04-20-69227 (#18166)
Apr 21, 2021
57fa842
CodeGen from PR 14043 in Azure/azure-rest-api-specs
Apr 21, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Consolidate proactive token refreshing code (Azure#17722)
  • Loading branch information
chlowell authored Apr 2, 2021
commit 8554251aee47b2f5fb7da22cf21bf3004052b399
12 changes: 0 additions & 12 deletions sdk/identity/azure-identity/azure/identity/_authn_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,18 +75,6 @@ def __init__(self, endpoint=None, authority=None, tenant=None, **kwargs): # pyl
def auth_url(self):
return self._auth_url

def should_refresh(self, token):
# type: (AccessToken) -> bool
""" check if the token needs refresh or not
"""
expires_on = int(token.expires_on)
now = int(time.time())
if expires_on - now > self._token_refresh_offset:
return False
if now - self._last_refresh_time < self._token_refresh_retry_delay:
return False
return True

def get_cached_token(self, scopes):
# type: (Iterable[str]) -> Optional[AccessToken]
tokens = self._cache.find(TokenCache.CredentialType.ACCESS_TOKEN, target=list(scopes))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@

from azure.core.exceptions import ClientAuthenticationError
from .._internal.aad_client import AadClient
from .._internal.decorators import log_get_token
from .._internal.get_token_mixin import GetTokenMixin

if TYPE_CHECKING:
# pylint:disable=unused-import,ungrouped-imports
from typing import Any, Iterable, Optional
from azure.core.credentials import AccessToken


class AuthorizationCodeCredential(object):
class AuthorizationCodeCredential(GetTokenMixin):
"""Authenticates by redeeming an authorization code previously obtained from Azure Active Directory.

See https://docs.microsoft.com/azure/active-directory/develop/v2-oauth2-auth-code-flow for more information
Expand All @@ -38,8 +38,8 @@ def __init__(self, tenant_id, client_id, authorization_code, redirect_uri, **kwa
self._client_secret = kwargs.pop("client_secret", None)
self._client = kwargs.pop("client", None) or AadClient(tenant_id, client_id, **kwargs)
self._redirect_uri = redirect_uri
super(AuthorizationCodeCredential, self).__init__()

@log_get_token("AuthorizationCodeCredential")
def get_token(self, *scopes, **kwargs):
# type: (*str, **Any) -> AccessToken
"""Request an access token for `scopes`.
Expand All @@ -56,38 +56,31 @@ def get_token(self, *scopes, **kwargs):
attribute gives a reason. Any error response from Azure Active Directory is available as the error's
``response`` attribute.
"""
if not scopes:
raise ValueError("'get_token' requires at least one scope")
return super(AuthorizationCodeCredential, self).get_token(*scopes)

def _acquire_token_silently(self, *scopes):
# type: (*str) -> Optional[AccessToken]
return self._client.get_cached_access_token(scopes)

def _request_token(self, *scopes, **kwargs):
# type: (*str, **Any) -> AccessToken
if self._authorization_code:
token = self._client.obtain_token_by_authorization_code(
scopes=scopes, code=self._authorization_code, redirect_uri=self._redirect_uri, **kwargs
)
self._authorization_code = None # auth codes are single-use
return token

token = self._client.get_cached_access_token(scopes)
if not token:
token = self._redeem_refresh_token(scopes, **kwargs)
elif self._client.should_refresh(token):
try:
self._redeem_refresh_token(scopes, **kwargs)
except Exception: # pylint: disable=broad-except
pass
token = None
for refresh_token in self._client.get_cached_refresh_tokens(scopes):
if "secret" in refresh_token:
token = self._client.obtain_token_by_refresh_token(scopes, refresh_token["secret"], **kwargs)
if token:
break

if not token:
raise ClientAuthenticationError(
message="No authorization code, cached access token, or refresh token available."
)

return token

def _redeem_refresh_token(self, scopes, **kwargs):
# type: (Iterable[str], **Any) -> Optional[AccessToken]
for refresh_token in self._client.get_cached_refresh_tokens(scopes):
if "secret" not in refresh_token:
continue
token = self._client.obtain_token_by_refresh_token(scopes, refresh_token["secret"], **kwargs)
if token:
return token
return None
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
from .._authn_client import AuthnClient
from .._constants import Endpoints, EnvironmentVariables
from .._internal.decorators import log_get_token
from .._internal.get_token_mixin import GetTokenMixin
from .._internal.user_agent import USER_AGENT

try:
Expand Down Expand Up @@ -156,7 +157,7 @@ def _create_config(**kwargs):
}


class ImdsCredential(_ManagedIdentityBase):
class ImdsCredential(_ManagedIdentityBase, GetTokenMixin):
"""Authenticates with a managed identity via the IMDS endpoint.

:keyword str client_id: ID of a user-assigned identity. Leave unspecified to use a system-assigned identity.
Expand All @@ -167,16 +168,12 @@ def __init__(self, **kwargs):
super(ImdsCredential, self).__init__(endpoint=Endpoints.IMDS, client_cls=AuthnClient, **kwargs)
self._endpoint_available = None # type: Optional[bool]

def get_token(self, *scopes, **kwargs): # pylint:disable=unused-argument
# type: (*str, **Any) -> AccessToken
"""Request an access token for `scopes`.

This method is called automatically by Azure SDK clients.
def _acquire_token_silently(self, *scopes):
# type: (*str) -> Optional[AccessToken]
return self._client.get_cached_token(scopes)

:param str scopes: desired scope for the access token. This credential allows only one scope per request.
:rtype: :class:`azure.core.credentials.AccessToken`
:raises ~azure.identity.CredentialUnavailableError: the IMDS endpoint is unreachable
"""
def _request_token(self, *scopes, **kwargs): # pylint:disable=unused-argument
# type: (*str, **Any) -> AccessToken
if self._endpoint_available is None:
# Lacking another way to determine whether the IMDS endpoint is listening,
# we send a request it would immediately reject (missing a required header),
Expand All @@ -199,18 +196,6 @@ def get_token(self, *scopes, **kwargs): # pylint:disable=unused-argument
if len(scopes) != 1:
raise ValueError("This credential requires exactly one scope per token request.")

token = self._client.get_cached_token(scopes)
if not token:
token = self._refresh_token(*scopes)
elif self._client.should_refresh(token):
try:
token = self._refresh_token(*scopes)
except Exception: # pylint: disable=broad-except
pass

return token

def _refresh_token(self, *scopes):
resource = scopes[0]
if resource.endswith("/.default"):
resource = resource[: -len("/.default")]
Expand Down
32 changes: 11 additions & 21 deletions sdk/identity/azure-identity/azure/identity/_credentials/vscode.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from .._constants import AZURE_VSCODE_CLIENT_ID
from .._internal import validate_tenant_id
from .._internal.aad_client import AadClient
from .._internal.decorators import log_get_token
from .._internal.get_token_mixin import GetTokenMixin

if sys.platform.startswith("win"):
from .._internal.win_vscode_adapter import get_credentials
Expand All @@ -20,11 +20,11 @@

if TYPE_CHECKING:
# pylint:disable=unused-import,ungrouped-imports
from typing import Any, Iterable, Optional
from typing import Any, Optional
from azure.core.credentials import AccessToken


class VisualStudioCodeCredential(object):
class VisualStudioCodeCredential(GetTokenMixin):
"""Authenticates as the Azure user signed in to Visual Studio Code.

:keyword str authority: Authority of an Azure Active Directory endpoint, for example 'login.microsoftonline.com',
Expand All @@ -36,14 +36,14 @@ class VisualStudioCodeCredential(object):

def __init__(self, **kwargs):
# type: (**Any) -> None
super(VisualStudioCodeCredential, self).__init__()
self._refresh_token = None
self._client = kwargs.pop("_client", None)
self._tenant_id = kwargs.pop("tenant_id", None) or "organizations"
validate_tenant_id(self._tenant_id)
if not self._client:
self._client = AadClient(self._tenant_id, AZURE_VSCODE_CLIENT_ID, **kwargs)

@log_get_token("VisualStudioCodeCredential")
def get_token(self, *scopes, **kwargs):
# type: (*str, **Any) -> AccessToken
"""Request an access token for `scopes` as the user currently signed in to Visual Studio Code.
Expand All @@ -55,31 +55,21 @@ def get_token(self, *scopes, **kwargs):
:raises ~azure.identity.CredentialUnavailableError: the credential cannot retrieve user details from Visual
Studio Code
"""
if not scopes:
raise ValueError("'get_token' requires at least one scope")

if self._tenant_id.lower() == "adfs":
raise CredentialUnavailableError(
message="VisualStudioCodeCredential authentication unavailable. ADFS is not supported."
)
return super(VisualStudioCodeCredential, self).get_token(*scopes, **kwargs)

token = self._client.get_cached_access_token(scopes)

if not token:
token = self._redeem_refresh_token(scopes, **kwargs)
elif self._client.should_refresh(token):
try:
self._redeem_refresh_token(scopes, **kwargs)
except Exception: # pylint: disable=broad-except
pass
return token
def _acquire_token_silently(self, *scopes):
# type: (*str) -> Optional[AccessToken]
return self._client.get_cached_access_token(scopes)

def _redeem_refresh_token(self, scopes, **kwargs):
# type: (Iterable[str], **Any) -> Optional[AccessToken]
def _request_token(self, *scopes, **kwargs):
# type: (*str, **Any) -> AccessToken
if not self._refresh_token:
self._refresh_token = get_credentials()
if not self._refresh_token:
raise CredentialUnavailableError(message="Failed to get Azure user details from Visual Studio Code.")

token = self._client.obtain_token_by_refresh_token(scopes, self._refresh_token, **kwargs)
return token
return self._client.obtain_token_by_refresh_token(scopes, self._refresh_token, **kwargs)
Original file line number Diff line number Diff line change
Expand Up @@ -69,19 +69,6 @@ def get_cached_refresh_tokens(self, scopes):
"""Assumes all cached refresh tokens belong to the same user"""
return self._cache.find(TokenCache.CredentialType.REFRESH_TOKEN, target=list(scopes))

def should_refresh(self, token):
# type: (AccessToken) -> bool
""" check if the token needs refresh or not
"""
expires_on = int(token.expires_on)
now = int(time.time())
if expires_on - now > self._token_refresh_offset:
return False
if now - self._last_refresh_time < self._token_refresh_retry_delay:
return False
return True


@abc.abstractmethod
def obtain_token_by_authorization_code(self, scopes, code, redirect_uri, client_secret=None, **kwargs):
pass
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@

from azure.core.exceptions import ClientAuthenticationError
from .._internal import AadClient, AsyncContextManager
from .._internal.decorators import log_get_token_async
from .._internal.get_token_mixin import GetTokenMixin

if TYPE_CHECKING:
# pylint:disable=unused-import,ungrouped-imports
from typing import Any, Iterable, Optional
from azure.core.credentials import AccessToken


class AuthorizationCodeCredential(AsyncContextManager):
class AuthorizationCodeCredential(AsyncContextManager, GetTokenMixin):
"""Authenticates by redeeming an authorization code previously obtained from Azure Active Directory.

See https://docs.microsoft.com/azure/active-directory/develop/v2-oauth2-auth-code-flow for more information
Expand Down Expand Up @@ -50,8 +50,8 @@ def __init__(
self._client_secret = kwargs.pop("client_secret", None)
self._client = kwargs.pop("client", None) or AadClient(tenant_id, client_id, **kwargs)
self._redirect_uri = redirect_uri
super().__init__()

@log_get_token_async
async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken":
"""Request an access token for `scopes`.

Expand All @@ -67,37 +67,29 @@ async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken":
attribute gives a reason. Any error response from Azure Active Directory is available as the error's
``response`` attribute.
"""
if not scopes:
raise ValueError("'get_token' requires at least one scope")
return await super().get_token(*scopes, **kwargs)

async def _acquire_token_silently(self, *scopes: str) -> "Optional[AccessToken]":
return self._client.get_cached_access_token(scopes)

async def _request_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken":
if self._authorization_code:
token = await self._client.obtain_token_by_authorization_code(
scopes=scopes, code=self._authorization_code, redirect_uri=self._redirect_uri, **kwargs
)

self._authorization_code = None # auth codes are single-use
return token

token = self._client.get_cached_access_token(scopes)
if not token:
token = await self._redeem_refresh_token(scopes, **kwargs)
elif self._client.should_refresh(token):
try:
await self._redeem_refresh_token(scopes, **kwargs)
except Exception: # pylint: disable=broad-except
pass
token = None
for refresh_token in self._client.get_cached_refresh_tokens(scopes):
if "secret" in refresh_token:
token = await self._client.obtain_token_by_refresh_token(scopes, refresh_token["secret"], **kwargs)
if token:
break

if not token:
raise ClientAuthenticationError(
message="No authorization code, cached access token, or refresh token available."
)

return token

async def _redeem_refresh_token(self, scopes: "Iterable[str]", **kwargs: "Any") -> "Optional[AccessToken]":
for refresh_token in self._client.get_cached_refresh_tokens(scopes):
if "secret" not in refresh_token:
continue
token = await self._client.obtain_token_by_refresh_token(scopes, refresh_token["secret"], **kwargs)
if token:
return token
return None
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@
import msal

from .._internal import AadClient, AsyncContextManager
from .._internal.decorators import log_get_token_async
from .._internal.get_token_mixin import GetTokenMixin
from ..._credentials.certificate import get_client_credential
from ..._internal import AadClientCertificate, validate_tenant_id
from ..._persistent_cache import _load_persistent_cache, TokenCachePersistenceOptions
from ..._persistent_cache import _load_persistent_cache

if TYPE_CHECKING:
from typing import Any, Optional
from azure.core.credentials import AccessToken


class CertificateCredential(AsyncContextManager):
class CertificateCredential(AsyncContextManager, GetTokenMixin):
"""Authenticates as a service principal using a certificate.

The certificate must have an RSA private key, because this credential signs assertions using RS256.
Expand Down Expand Up @@ -57,6 +57,7 @@ def __init__(self, tenant_id, client_id, certificate_path=None, **kwargs):

self._client = AadClient(tenant_id, client_id, cache=cache, **kwargs)
self._client_id = client_id
super().__init__()

async def __aenter__(self):
await self._client.__aenter__()
Expand All @@ -67,27 +68,8 @@ async def close(self):

await self._client.__aexit__()

@log_get_token_async
async def get_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken": # pylint:disable=unused-argument
"""Asynchronously request an access token for `scopes`.

This method is called automatically by Azure SDK clients.

:param str scopes: desired scopes for the access token. This method requires at least one scope.
:rtype: :class:`azure.core.credentials.AccessToken`
:raises ~azure.core.exceptions.ClientAuthenticationError: authentication failed. The error's ``message``
attribute gives a reason. Any error response from Azure Active Directory is available as the error's
``response`` attribute.
"""
if not scopes:
raise ValueError("'get_token' requires at least one scope")

token = self._client.get_cached_access_token(scopes, query={"client_id": self._client_id})
if not token:
token = await self._client.obtain_token_by_client_certificate(scopes, self._certificate, **kwargs)
elif self._client.should_refresh(token):
try:
await self._client.obtain_token_by_client_certificate(scopes, self._certificate, **kwargs)
except Exception: # pylint: disable=broad-except
pass
return token
async def _acquire_token_silently(self, *scopes: str) -> "Optional[AccessToken]":
return self._client.get_cached_access_token(scopes, query={"client_id": self._client_id})

async def _request_token(self, *scopes: str, **kwargs: "Any") -> "AccessToken":
return await self._client.obtain_token_by_client_certificate(scopes, self._certificate, **kwargs)
Loading