Beispiel #1
0
 def test_reset_indexer(self, api_key, endpoint, index_name, **kwargs):
     client = SearchIndexerClient(endpoint, AzureKeyCredential(api_key))
     indexer = self._prepare_indexer(endpoint, api_key)
     result = client.create_indexer(indexer)
     assert len(client.get_indexers()) == 1
     result = client.reset_indexer("sample-indexer")
     assert client.get_indexer_status("sample-indexer").last_result.status in ('InProgress', 'reset')
Beispiel #2
0
 def test_create_indexer(self, api_key, endpoint, index_name, **kwargs):
     client = SearchIndexerClient(endpoint, AzureKeyCredential(api_key))
     indexer = self._prepare_indexer(endpoint, api_key)
     result = client.create_indexer(indexer)
     assert result.name == "sample-indexer"
     assert result.target_index_name == "hotels"
     assert result.data_source_name == "sample-datasource"
Beispiel #3
0
 def test_delete_indexer(self, api_key, endpoint, index_name, **kwargs):
     client = SearchIndexerClient(endpoint, AzureKeyCredential(api_key))
     indexer = self._prepare_indexer(endpoint, api_key)
     result = client.create_indexer(indexer)
     assert len(client.get_indexers()) == 1
     client.delete_indexer("sample-indexer")
     assert len(client.get_indexers()) == 0
Beispiel #4
0
 def test_run_indexer(self, api_key, endpoint, index_name, **kwargs):
     client = SearchIndexerClient(endpoint, AzureKeyCredential(api_key))
     indexer = self._prepare_indexer(endpoint, api_key)
     result = client.create_indexer(indexer)
     assert len(client.get_indexers()) == 1
     start = time.time()
     client.run_indexer("sample-indexer")
     assert client.get_indexer_status("sample-indexer").status == 'running'
Beispiel #5
0
 def test_list_indexer(self, api_key, endpoint, index_name, **kwargs):
     client = SearchIndexerClient(endpoint, AzureKeyCredential(api_key))
     indexer1 = self._prepare_indexer(endpoint, api_key)
     indexer2 = self._prepare_indexer(endpoint, api_key, name="another-indexer", ds_name="another-datasource", id_name="another-index")
     created1 = client.create_indexer(indexer1)
     created2 = client.create_indexer(indexer2)
     result = client.get_indexers()
     assert isinstance(result, list)
     assert set(x.name for x in result) == {"sample-indexer", "another-indexer"}
Beispiel #6
0
def sample_indexer_workflow():
    # Now that we have a datasource and an index, we can create an indexer.

    skillset_name = _create_skillset().name
    print("Skillset is created")

    ds_name = _create_datasource().name
    print("Data source is created")

    ind_name = _create_index().name
    print("Index is created")

    # we pass the data source, skillsets and targeted index to build an indexer
    parameters = IndexingParameters(configuration={"parsingMode": "jsonArray"})
    indexer = SearchIndexer(
        name="hotel-data-indexer",
        data_source_name=ds_name,
        target_index_name=ind_name,
        skillset_name=skillset_name,
        parameters=parameters
    )

    indexer_client = SearchIndexerClient(service_endpoint, AzureKeyCredential(key))
    indexer_client.create_indexer(indexer) # create the indexer

    # to get an indexer
    result = indexer_client.get_indexer("hotel-data-indexer")
    print(result)

    # To run an indexer, we can use run_indexer()
    indexer_client.run_indexer(result.name)

    # Using create or update to schedule an indexer

    schedule = IndexingSchedule(interval=datetime.timedelta(hours=24))
    result.schedule = schedule
    updated_indexer = indexer_client.create_or_update_indexer(result)

    print(updated_indexer)

    # get the status of an indexer
    indexer_client.get_indexer_status(updated_indexer.name)
Beispiel #7
0
 def test_create_or_update_indexer(self, api_key, endpoint, index_name, **kwargs):
     client = SearchIndexerClient(endpoint, AzureKeyCredential(api_key))
     indexer = self._prepare_indexer(endpoint, api_key)
     created = client.create_indexer(indexer)
     assert len(client.get_indexers()) == 1
     indexer.description = "updated"
     client.create_or_update_indexer(indexer)
     assert len(client.get_indexers()) == 1
     result = client.get_indexer("sample-indexer")
     assert result.name == "sample-indexer"
     assert result.description == "updated"
Beispiel #8
0
    def test_delete_indexer_if_unchanged(self, api_key, endpoint, index_name, **kwargs):
        client = SearchIndexerClient(endpoint, AzureKeyCredential(api_key))
        indexer = self._prepare_indexer(endpoint, api_key)
        result = client.create_indexer(indexer)
        etag = result.e_tag

        indexer.description = "updated"
        client.create_or_update_indexer(indexer)

        indexer.e_tag = etag
        with pytest.raises(HttpResponseError):
            client.delete_indexer(indexer, match_condition=MatchConditions.IfNotModified)
Beispiel #9
0
 def test_get_indexer_status(self, api_key, endpoint, index_name, **kwargs):
     client = SearchIndexerClient(endpoint, AzureKeyCredential(api_key))
     indexer = self._prepare_indexer(endpoint, api_key)
     result = client.create_indexer(indexer)
     status = client.get_indexer_status("sample-indexer")
     assert status.status is not None
Beispiel #10
0
 def test_get_indexer(self, api_key, endpoint, index_name, **kwargs):
     client = SearchIndexerClient(endpoint, AzureKeyCredential(api_key))
     indexer = self._prepare_indexer(endpoint, api_key)
     created = client.create_indexer(indexer)
     result = client.get_indexer("sample-indexer")
     assert result.name == "sample-indexer"