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

Return pageable for Search list_indexes #11125

Merged
merged 1 commit into from
Apr 29, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
ResourceModifiedError,
ResourceNotModifiedError,
)
from azure.core.paging import ItemPaged

from ._generated import SearchServiceClient as _SearchServiceClient
from ._generated.models import AccessCondition
Expand Down Expand Up @@ -68,8 +69,8 @@ def close(self):
return self._client.close()

@distributed_trace
def get_indexes(self, **kwargs):
# type: (**Any) -> List[Index]
def list_indexes(self, **kwargs):
# type: (**Any) -> ItemPaged[Index]
"""List the indexes in an Azure Search service.

:return: List of indexes
Expand All @@ -78,9 +79,14 @@ def get_indexes(self, **kwargs):

"""
kwargs["headers"] = self._merge_client_headers(kwargs.get("headers"))
result = self._client.indexes.list(**kwargs)
indexes = [listize_flags_for_index(x) for x in result.indexes]
return indexes

def get_next(_token):
return self._client.indexes.list(**kwargs)

def extract_data(response):
return None, [listize_flags_for_index(x) for x in response.indexes]

return ItemPaged(get_next=get_next, extract_data=extract_data)

@distributed_trace
def get_index(self, index_name, **kwargs):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
ResourceModifiedError,
ResourceNotModifiedError,
)
from azure.core.async_paging import AsyncItemPaged

from .._generated.aio import SearchServiceClient as _SearchServiceClient
from .._generated.models import AccessCondition
from .._utils import (
Expand Down Expand Up @@ -67,8 +69,8 @@ async def close(self):
return await self._client.close()

@distributed_trace_async
async def get_indexes(self, **kwargs):
# type: (**Any) -> List[Index]
async def list_indexes(self, **kwargs):
# type: (**Any) -> AsyncItemPaged[Index]
"""List the indexes in an Azure Search service.

:return: List of indexes
Expand All @@ -77,9 +79,14 @@ async def get_indexes(self, **kwargs):

"""
kwargs["headers"] = self._merge_client_headers(kwargs.get("headers"))
result = await self._client.indexes.list(**kwargs)
indexes = [listize_flags_for_index(x) for x in result.indexes]
return indexes

async def get_next(_token):
return await self._client.indexes.list(**kwargs)

async def extract_data(response):
return None, [listize_flags_for_index(x) for x in response.indexes]

return AsyncItemPaged(get_next=get_next, extract_data=extract_data)

@distributed_trace_async
async def get_index(self, index_name, **kwargs):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,28 +7,28 @@ interactions:
User-Agent:
- azsdk-python-search-documents/1.0.0b3 Python/3.7.3 (Darwin-19.3.0-x86_64-i386-64bit)
api-key:
- A91A928F6A2FA00CA24FBF09F8E0F248
- A9CBF5767E80C2B514C0B33B2517CE06
method: GET
uri: https://search537b1079.search.windows.net/indexes?api-version=2019-05-06-Preview
uri: https://search651710f5.search.windows.net/indexes?api-version=2019-05-06-Preview
response:
body:
string: '{"@odata.context":"https://search537b1079.search.windows.net/$metadata#indexes","value":[{"@odata.etag":"\"0x8D7E6371F70709D\"","name":"drgqefsg","defaultScoringProfile":null,"fields":[{"name":"hotelId","type":"Edm.String","searchable":false,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":true,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"hotelName","type":"Edm.String","searchable":true,"filterable":true,"retrievable":true,"sortable":true,"facetable":false,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"description","type":"Edm.String","searchable":true,"filterable":false,"retrievable":true,"sortable":false,"facetable":false,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":"en.lucene","synonymMaps":[]},{"name":"descriptionFr","type":"Edm.String","searchable":true,"filterable":false,"retrievable":true,"sortable":false,"facetable":false,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":"fr.lucene","synonymMaps":[]},{"name":"category","type":"Edm.String","searchable":true,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"tags","type":"Collection(Edm.String)","searchable":true,"filterable":true,"retrievable":true,"sortable":false,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"parkingIncluded","type":"Edm.Boolean","searchable":false,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"smokingAllowed","type":"Edm.Boolean","searchable":false,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"lastRenovationDate","type":"Edm.DateTimeOffset","searchable":false,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"rating","type":"Edm.Int32","searchable":false,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"location","type":"Edm.GeographyPoint","searchable":false,"filterable":true,"retrievable":true,"sortable":true,"facetable":false,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"address","type":"Edm.ComplexType","fields":[{"name":"streetAddress","type":"Edm.String","searchable":true,"filterable":false,"retrievable":true,"sortable":false,"facetable":false,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"city","type":"Edm.String","searchable":true,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"stateProvince","type":"Edm.String","searchable":true,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"country","type":"Edm.String","searchable":true,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"postalCode","type":"Edm.String","searchable":true,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]}]},{"name":"rooms","type":"Collection(Edm.ComplexType)","fields":[{"name":"description","type":"Edm.String","searchable":true,"filterable":false,"retrievable":true,"sortable":false,"facetable":false,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":"en.lucene","synonymMaps":[]},{"name":"descriptionFr","type":"Edm.String","searchable":true,"filterable":false,"retrievable":true,"sortable":false,"facetable":false,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":"fr.lucene","synonymMaps":[]},{"name":"type","type":"Edm.String","searchable":true,"filterable":true,"retrievable":true,"sortable":false,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"baseRate","type":"Edm.Double","searchable":false,"filterable":true,"retrievable":true,"sortable":false,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"bedOptions","type":"Edm.String","searchable":true,"filterable":true,"retrievable":true,"sortable":false,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"sleepsCount","type":"Edm.Int32","searchable":false,"filterable":true,"retrievable":true,"sortable":false,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"smokingAllowed","type":"Edm.Boolean","searchable":false,"filterable":true,"retrievable":true,"sortable":false,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"tags","type":"Collection(Edm.String)","searchable":true,"filterable":true,"retrievable":true,"sortable":false,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]}]}],"scoringProfiles":[{"name":"nearest","functionAggregation":"sum","text":null,"functions":[{"fieldName":"location","interpolation":"linear","type":"distance","boost":2.0,"freshness":null,"magnitude":null,"distance":{"referencePointParameter":"myloc","boostingDistance":100.0},"tag":null}]}],"corsOptions":null,"suggesters":[{"name":"sg","searchMode":"analyzingInfixMatching","sourceFields":["description","hotelName"]}],"analyzers":[],"tokenizers":[],"tokenFilters":[],"charFilters":[],"encryptionKey":null,"similarity":null}]}'
string: '{"@odata.context":"https://search651710f5.search.windows.net/$metadata#indexes","value":[{"@odata.etag":"\"0x8D7EC653D0B32E3\"","name":"drgqefsg","defaultScoringProfile":null,"fields":[{"name":"hotelId","type":"Edm.String","searchable":false,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":true,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"hotelName","type":"Edm.String","searchable":true,"filterable":true,"retrievable":true,"sortable":true,"facetable":false,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"description","type":"Edm.String","searchable":true,"filterable":false,"retrievable":true,"sortable":false,"facetable":false,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":"en.lucene","synonymMaps":[]},{"name":"descriptionFr","type":"Edm.String","searchable":true,"filterable":false,"retrievable":true,"sortable":false,"facetable":false,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":"fr.lucene","synonymMaps":[]},{"name":"category","type":"Edm.String","searchable":true,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"tags","type":"Collection(Edm.String)","searchable":true,"filterable":true,"retrievable":true,"sortable":false,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"parkingIncluded","type":"Edm.Boolean","searchable":false,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"smokingAllowed","type":"Edm.Boolean","searchable":false,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"lastRenovationDate","type":"Edm.DateTimeOffset","searchable":false,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"rating","type":"Edm.Int32","searchable":false,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"location","type":"Edm.GeographyPoint","searchable":false,"filterable":true,"retrievable":true,"sortable":true,"facetable":false,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"address","type":"Edm.ComplexType","fields":[{"name":"streetAddress","type":"Edm.String","searchable":true,"filterable":false,"retrievable":true,"sortable":false,"facetable":false,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"city","type":"Edm.String","searchable":true,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"stateProvince","type":"Edm.String","searchable":true,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"country","type":"Edm.String","searchable":true,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"postalCode","type":"Edm.String","searchable":true,"filterable":true,"retrievable":true,"sortable":true,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]}]},{"name":"rooms","type":"Collection(Edm.ComplexType)","fields":[{"name":"description","type":"Edm.String","searchable":true,"filterable":false,"retrievable":true,"sortable":false,"facetable":false,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":"en.lucene","synonymMaps":[]},{"name":"descriptionFr","type":"Edm.String","searchable":true,"filterable":false,"retrievable":true,"sortable":false,"facetable":false,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":"fr.lucene","synonymMaps":[]},{"name":"type","type":"Edm.String","searchable":true,"filterable":true,"retrievable":true,"sortable":false,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"baseRate","type":"Edm.Double","searchable":false,"filterable":true,"retrievable":true,"sortable":false,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"bedOptions","type":"Edm.String","searchable":true,"filterable":true,"retrievable":true,"sortable":false,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"sleepsCount","type":"Edm.Int32","searchable":false,"filterable":true,"retrievable":true,"sortable":false,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"smokingAllowed","type":"Edm.Boolean","searchable":false,"filterable":true,"retrievable":true,"sortable":false,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]},{"name":"tags","type":"Collection(Edm.String)","searchable":true,"filterable":true,"retrievable":true,"sortable":false,"facetable":true,"key":false,"indexAnalyzer":null,"searchAnalyzer":null,"analyzer":null,"synonymMaps":[]}]}],"scoringProfiles":[{"name":"nearest","functionAggregation":"sum","text":null,"functions":[{"fieldName":"location","interpolation":"linear","type":"distance","boost":2.0,"freshness":null,"magnitude":null,"distance":{"referencePointParameter":"myloc","boostingDistance":100.0},"tag":null}]}],"corsOptions":null,"suggesters":[{"name":"sg","searchMode":"analyzingInfixMatching","sourceFields":["description","hotelName"]}],"analyzers":[],"tokenizers":[],"tokenFilters":[],"charFilters":[],"encryptionKey":null,"similarity":null}]}'
headers:
cache-control: no-cache
content-encoding: gzip
content-length: '1115'
content-type: application/json; odata.metadata=minimal
date: Tue, 21 Apr 2020 21:01:15 GMT
elapsed-time: '67'
date: Wed, 29 Apr 2020 17:46:29 GMT
elapsed-time: '107'
expires: '-1'
odata-version: '4.0'
pragma: no-cache
preference-applied: odata.include-annotations="*"
request-id: 3c7c6ba8-8413-11ea-8200-8c8590507855
request-id: 5b1e6226-8a41-11ea-8887-8c8590507855
strict-transport-security: max-age=15724800; includeSubDomains
vary: Accept-Encoding
status:
code: 200
message: OK
url: https://search537b1079.search.windows.net/indexes?api-version=2019-05-06-Preview
url: https://search651710f5.search.windows.net/indexes?api-version=2019-05-06-Preview
version: 1
Original file line number Diff line number Diff line change
Expand Up @@ -7,28 +7,28 @@ interactions:
User-Agent:
- azsdk-python-search-documents/1.0.0b3 Python/3.7.3 (Darwin-19.3.0-x86_64-i386-64bit)
api-key:
- 8EF48D0D22E6D1402067CD5723AF595D
- F316DA23BDD39E0E455EAA819B171956
method: GET
uri: https://searchbee91307.search.windows.net/indexes?api-version=2019-05-06-Preview
uri: https://searchd36d1383.search.windows.net/indexes?api-version=2019-05-06-Preview
response:
body:
string: '{"@odata.context":"https://searchbee91307.search.windows.net/$metadata#indexes","value":[]}'
string: '{"@odata.context":"https://searchd36d1383.search.windows.net/$metadata#indexes","value":[]}'
headers:
cache-control: no-cache
content-encoding: gzip
content-length: '199'
content-length: '200'
content-type: application/json; odata.metadata=minimal
date: Tue, 21 Apr 2020 21:01:23 GMT
elapsed-time: '33'
date: Wed, 29 Apr 2020 17:46:36 GMT
elapsed-time: '41'
expires: '-1'
odata-version: '4.0'
pragma: no-cache
preference-applied: odata.include-annotations="*"
request-id: 411a8118-8413-11ea-8200-8c8590507855
request-id: 5f7b383a-8a41-11ea-8887-8c8590507855
strict-transport-security: max-age=15724800; includeSubDomains
vary: Accept-Encoding
status:
code: 200
message: OK
url: https://searchbee91307.search.windows.net/indexes?api-version=2019-05-06-Preview
url: https://searchd36d1383.search.windows.net/indexes?api-version=2019-05-06-Preview
version: 1
Original file line number Diff line number Diff line change
Expand Up @@ -68,18 +68,24 @@ class SearchIndexesClientTest(AzureMgmtTestCase):

@ResourceGroupPreparer(random_name_enabled=True)
@SearchServicePreparer()
async def test_get_indexes_empty(self, api_key, endpoint, **kwargs):
async def test_list_indexes_empty(self, api_key, endpoint, **kwargs):
client = SearchServiceClient(endpoint, AzureKeyCredential(api_key)).get_indexes_client()
result = await client.get_indexes()
assert len(result) == 0
result = await client.list_indexes()

with pytest.raises(StopAsyncIteration):
await result.__anext__()

@ResourceGroupPreparer(random_name_enabled=True)
@SearchServicePreparer(schema=SCHEMA, index_batch=BATCH)
async def test_get_indexes(self, api_key, endpoint, index_name, **kwargs):
async def test_list_indexes(self, api_key, endpoint, index_name, **kwargs):
client = SearchServiceClient(endpoint, AzureKeyCredential(api_key)).get_indexes_client()
result = await client.get_indexes()
assert len(result) == 1
assert result[0].name == index_name
result = await client.list_indexes()

first = await result.__anext__()
assert first.name == index_name

with pytest.raises(StopAsyncIteration):
await result.__anext__()

@ResourceGroupPreparer(random_name_enabled=True)
@SearchServicePreparer(schema=SCHEMA, index_batch=BATCH)
Expand All @@ -103,8 +109,9 @@ async def test_delete_indexes(self, api_key, endpoint, index_name, **kwargs):
import time
if self.is_live:
time.sleep(TIME_TO_SLEEP)
result = await client.get_indexes()
assert len(result) == 0
result = await client.list_indexes()
with pytest.raises(StopAsyncIteration):
await result.__anext__()

@ResourceGroupPreparer(random_name_enabled=True)
@SearchServicePreparer(schema=SCHEMA, index_batch=BATCH)
Expand Down
Loading