googleapis / python-aiplatform

A Python SDK for Vertex AI, a fully managed, end-to-end platform for data science and machine learning.
Apache License 2.0
628 stars 340 forks source link

tests.system.aiplatform.test_matching_engine_index.TestMatchingEngine: test_create_get_list_matching_engine_index failed #2576

Open flaky-bot[bot] opened 1 year ago

flaky-bot[bot] commented 1 year ago

Note: #2305 was also for this test, but it was closed more than 10 days ago. So, I didn't mark it flaky.


commit: 0fa47aea08b635159e9c6dc64f7d330f047dfb5d buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.32.0 gl-python/3.11.1 grpc/1.58.0 gax/2.11.1 gapic/1.32.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:72: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:1161: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(
        state: _RPCState,
        call: cygrpc.SegregatedCall,
        with_call: bool,
        deadline: Optional[float],
    ) -> Union[ResponseType, Tuple[ResponseType, grpc.Call]]:
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)  # pytype: disable=not-instantiable
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.197.95:443 {created_time:"2023-09-13T10:40:17.014736581+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:1004: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7ff89492d950> 
resource name: projects/580378083368/locations/us-central1/indexes/4011431834498891776]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:819: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.32.0 gl-python/3.11.1 grpc/1.58.0 gax/2.11.1 gapic/1.32.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:74: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: 0743afbfd0c53f314a43cfa87255dde83bd5f465 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.32.0 gl-python/3.11.1 grpc/1.58.0 gax/2.11.1 gapic/1.32.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:72: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:1161: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(
        state: _RPCState,
        call: cygrpc.SegregatedCall,
        with_call: bool,
        deadline: Optional[float],
    ) -> Union[ResponseType, Tuple[ResponseType, grpc.Call]]:
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)  # pytype: disable=not-instantiable
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:142.250.99.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-09-13T19:48:05.168245842+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:1004: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7fa2a6e00150> 
resource name: projects/580378083368/locations/us-central1/indexes/5842145083024998400]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:819: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.32.0 gl-python/3.11.1 grpc/1.58.0 gax/2.11.1 gapic/1.32.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:74: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: 8b0add169ebd0683b56dbe3b643d533ebbd5e1ca buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.32.0 gl-python/3.11.1 grpc/1.58.0 gax/2.11.1 gapic/1.32.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:72: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:1161: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(
        state: _RPCState,
        call: cygrpc.SegregatedCall,
        with_call: bool,
        deadline: Optional[float],
    ) -> Union[ResponseType, Tuple[ResponseType, grpc.Call]]:
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)  # pytype: disable=not-instantiable
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.20.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-09-14T09:04:05.186008321+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:1004: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f395da94790> 
resource name: projects/580378083368/locations/us-central1/indexes/6648289416324317184]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:819: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.32.0 gl-python/3.11.1 grpc/1.58.0 gax/2.11.1 gapic/1.32.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:74: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: e9eb159756dfe90c9f72818204fa74d05096aec6 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.32.0 gl-python/3.11.1 grpc/1.58.0 gax/2.11.1 gapic/1.32.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:72: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:1161: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(
        state: _RPCState,
        call: cygrpc.SegregatedCall,
        with_call: bool,
        deadline: Optional[float],
    ) -> Union[ResponseType, Tuple[ResponseType, grpc.Call]]:
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)  # pytype: disable=not-instantiable
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:173.194.202.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-09-14T23:05:59.059917813+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:1004: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...Index object at 0x7f0a488cc090> 
resource name: projects/580378083368/locations/us-central1/indexes/38131063251271680]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:819: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.32.0 gl-python/3.11.1 grpc/1.58.0 gax/2.11.1 gapic/1.32.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:74: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: 6fb30bc0c955c624410df8c01947e971409ddce2 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.32.0 gl-python/3.11.1 grpc/1.58.0 gax/2.11.1 gapic/1.32.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:72: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:1161: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(
        state: _RPCState,
        call: cygrpc.SegregatedCall,
        with_call: bool,
        deadline: Optional[float],
    ) -> Union[ResponseType, Tuple[ResponseType, grpc.Call]]:
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)  # pytype: disable=not-instantiable
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.20.95:443 {created_time:"2023-09-16T09:15:09.43186489+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:1004: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7ff994b2fc90> 
resource name: projects/580378083368/locations/us-central1/indexes/6595372120702713856]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:819: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.32.0 gl-python/3.11.1 grpc/1.58.0 gax/2.11.1 gapic/1.32.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:74: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: 3be36e6c17ef5e335d4f12af7a7c64702b76570e buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.32.0 gl-python/3.11.1 grpc/1.51.3 gax/2.11.1 gapic/1.32.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:72: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.199.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-09-17T02:10:03.079856038+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f2779884490> 
resource name: projects/580378083368/locations/us-central1/indexes/6915127694246019072]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:819: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.32.0 gl-python/3.11.1 grpc/1.51.3 gax/2.11.1 gapic/1.32.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:74: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: 7483fb42e9666811035d259d6066f23cfd2c0761 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.32.0 gl-python/3.11.1 grpc/1.51.3 gax/2.11.1 gapic/1.32.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:72: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:172.253.117.95:443 {created_time:"2023-09-18T00:50:36.706506392+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f31f2a6b110> 
resource name: projects/580378083368/locations/us-central1/indexes/8536423560099397632]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:819: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.32.0 gl-python/3.11.1 grpc/1.51.3 gax/2.11.1 gapic/1.32.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:74: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: cb2a56306029f9fcdd176c4e5210688545007c11 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.32.0 gl-python/3.11.1 grpc/1.51.3 gax/2.11.1 gapic/1.32.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:72: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:173.194.203.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-09-18T18:47:06.725088503+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f693462f250> 
resource name: projects/580378083368/locations/us-central1/indexes/5768961589080227840]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:819: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.32.0 gl-python/3.11.1 grpc/1.51.3 gax/2.11.1 gapic/1.32.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:74: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: 910c22aeb78edc88c0829a098540597bed093c45 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.33.0 gl-python/3.11.1 grpc/1.51.3 gax/2.11.1 gapic/1.33.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:72: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.199.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-09-19T03:48:45.242883664+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f29aa185bd0> 
resource name: projects/580378083368/locations/us-central1/indexes/8662524349665771520]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.33.0 gl-python/3.11.1 grpc/1.51.3 gax/2.11.1 gapic/1.33.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:74: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: 05c1912adceb09d63d8b51cc56ff7f52fc679594 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.32.0 gl-python/3.11.1 grpc/1.51.3 gax/2.11.1 gapic/1.32.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:72: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.195.95:443 {created_time:"2023-09-19T17:02:27.447642504+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7fa6d3922a10> 
resource name: projects/580378083368/locations/us-central1/indexes/2792082235388329984]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.32.0 gl-python/3.11.1 grpc/1.51.3 gax/2.11.1 gapic/1.32.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:74: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: 8271301454814b233a630d1c18ebe5e4833fcec2 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.33.0 gl-python/3.11.1 grpc/1.51.3 gax/2.11.1 gapic/1.33.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:72: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:142.250.107.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-09-20T01:44:41.680590303+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f254955bf90> 
resource name: projects/580378083368/locations/us-central1/indexes/6636326729814114304]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.33.0 gl-python/3.11.1 grpc/1.51.3 gax/2.11.1 gapic/1.33.0')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:74: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: afd0461c99fc540f8cbdf4f806f209c5796cfc83 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.33.1 gl-python/3.11.1 grpc/1.51.3 gax/2.11.1 gapic/1.33.1')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:72: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.199.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-09-20T21:15:18.433607476+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f800217a1d0> 
resource name: projects/580378083368/locations/us-central1/indexes/5986682483565920256]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.33.1 gl-python/3.11.1 grpc/1.51.3 gax/2.11.1 gapic/1.33.1')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:74: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: d698602e15fa3f617f1ac31e28951c452399a816 buildURL: Build Status, Sponge status: failed

Test output
args = (name: "projects/580378083368/locations/us-central1/indexEndpoints/1708262837563949056"
,)
kwargs = {'metadata': [('x-goog-request-params', 'name=projects/580378083368/locations/us-central1/indexEndpoints/1708262837563949056'), ('x-goog-api-client', 'model-builder/1.33.1 gl-python/3.11.1 grpc/1.51.3 gax/2.11.1 gapic/1.33.1')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:72: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.NOT_FOUND
E               details = "IndexEndpoint `projects/580378083368/locations/us-central1/indexEndpoints/1708262837563949056` is not found."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.197.95:443 {created_time:"2023-09-22T21:13:15.745673392+00:00", grpc_status:5, grpc_message:"IndexEndpoint `projects/580378083368/locations/us-central1/indexEndpoints/1708262837563949056` is not found."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f12eb63a690> 
resource name: projects/580378083368/locations/us-central1/indexes/1906421221168250880]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
>       my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:233: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:343: in _create
    index_obj = cls(
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:130: in __init__
    self._gca_resource = self._get_gca_resource(resource_name=index_endpoint_name)
google/cloud/aiplatform/base.py:645: in _get_gca_resource
    return getattr(self.api_client, self._getter_method)(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:708: in get_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/retry.py:349: in retry_wrapped_func
    return retry_target(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/retry.py:191: in retry_target
    return target()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (name: "projects/580378083368/locations/us-central1/indexEndpoints/1708262837563949056"
,)
kwargs = {'metadata': [('x-goog-request-params', 'name=projects/580378083368/locations/us-central1/indexEndpoints/1708262837563949056'), ('x-goog-api-client', 'model-builder/1.33.1 gl-python/3.11.1 grpc/1.51.3 gax/2.11.1 gapic/1.33.1')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.NotFound: 404 IndexEndpoint `projects/580378083368/locations/us-central1/indexEndpoints/1708262837563949056` is not found.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:74: NotFound
flaky-bot[bot] commented 1 year ago

commit: bd4628658720654eb95c117be6a8476ba964c7b4 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.33.1 gl-python/3.11.1 grpc/1.51.3 gax/2.11.1 gapic/1.33.1')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:72: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:142.250.107.95:443 {created_time:"2023-09-23T08:58:36.123618629+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7fc961fe3fd0> 
resource name: projects/580378083368/locations/us-central1/indexes/2733957652697579520]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.33.1 gl-python/3.11.1 grpc/1.51.3 gax/2.11.1 gapic/1.33.1')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:74: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: 946b1ab382f9ebb17be2a9aa4845addb7b2e3064 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.33.1 gl-python/3.11.1 grpc/1.51.3 gax/2.12.0 gapic/1.33.1')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:173.194.203.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-09-25T19:24:57.662942131+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f108de5bf90> 
resource name: projects/580378083368/locations/us-central1/indexes/6655467028230438912]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.33.1 gl-python/3.11.1 grpc/1.51.3 gax/2.12.0 gapic/1.33.1')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: 23dae360031967adcd4261579c3fe860b2771958 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.33.1 gl-python/3.11.1 grpc/1.51.3 gax/2.12.0 gapic/1.33.1')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:108.177.98.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-09-26T19:19:08.071247109+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f6a026fa2d0> 
resource name: projects/580378083368/locations/us-central1/indexes/4243789427773538304]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.33.1 gl-python/3.11.1 grpc/1.51.3 gax/2.12.0 gapic/1.33.1')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: c22220ef5db440020331634f5e25199c575cc886 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.33.1 gl-python/3.11.1 grpc/1.51.3 gax/2.12.0 gapic/1.33.1')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.142.95:443 {created_time:"2023-09-27T08:47:31.441381753+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f91872fc290> 
resource name: projects/580378083368/locations/us-central1/indexes/3942611202693136384]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.33.1 gl-python/3.11.1 grpc/1.51.3 gax/2.12.0 gapic/1.33.1')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: 7d667f9f8be264bb36e3d720caa0d8210aec5d6b buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.33.1 gl-python/3.11.1 grpc/1.51.3 gax/2.12.0 gapic/1.33.1')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.20.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-09-28T08:38:22.161707871+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f86c46d29d0> 
resource name: projects/580378083368/locations/us-central1/indexes/8911207491589636096]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.33.1 gl-python/3.11.1 grpc/1.51.3 gax/2.12.0 gapic/1.33.1')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: e1cedbacf9bc8eff6828684e66a2180f835ece8d buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.33.1 gl-python/3.11.1 grpc/1.51.3 gax/2.12.0 gapic/1.33.1')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:142.250.99.95:443 {created_time:"2023-09-28T21:56:22.303344485+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7fc57aa817d0> 
resource name: projects/580378083368/locations/us-central1/indexes/4095733590023733248]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-client', 'model-builder/1.33.1 gl-python/3.11.1 grpc/1.51.3 gax/2.12.0 gapic/1.33.1')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: c648620625034b130762bbb2cd9743c57de197f4 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:142.250.99.95:443 {created_time:"2023-09-29T06:50:42.612319479+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f1bed14ff90> 
resource name: projects/580378083368/locations/us-central1/indexes/7682850693224333312]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: b9c90489d8e6dda8804f872d9236551e8fafec36 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:173.194.202.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-09-29T17:27:27.413784585+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7fc991df7f90> 
resource name: projects/580378083368/locations/us-central1/indexes/1634516393665757184]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: f9782007c58ee11fe276c373d8d7ac6c2b0cb249 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:172.253.117.95:443 {created_time:"2023-09-30T08:57:38.212295635+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f894a6d2cd0> 
resource name: projects/580378083368/locations/us-central1/indexes/2836977494173679616]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: 69a67f203627e4ee7d5980ce874d4db1e6af5dd8 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.197.95:443 {created_time:"2023-10-02T18:45:30.431135699+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7fc6d5728ad0> 
resource name: projects/580378083368/locations/us-central1/indexes/8458314254062190592]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: 603cdbe389ec551e47ef8a331c9a0f944095c97c buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:142.250.107.95:443 {created_time:"2023-10-03T03:30:21.017631174+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f3326b43fd0> 
resource name: projects/580378083368/locations/us-central1/indexes/7053191170322595840]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: 06bf487e51e26dfa1cab3f6d87c9f3afd45e0e2c buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:108.177.98.95:443 {created_time:"2023-10-03T16:39:14.533879103+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f7548154250> 
resource name: projects/580378083368/locations/us-central1/indexes/3295218756258627584]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: f04ca35894e09bbe75d47a65bf540e95df6fe610 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.197.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-10-04T08:59:05.819667701+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7fd4035b3fd0> 
resource name: projects/580378083368/locations/us-central1/indexes/2257983467079860224]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: 8db915636bb7c7cb6a258a60c07b1b68275f3094 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.20.95:443 {created_time:"2023-10-04T17:23:21.68845544+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7fce08bc3250> 
resource name: projects/580378083368/locations/us-central1/indexes/4230560103868137472]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: 9fedd34d004a60c7105c066085a296bc12b28138 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.199.95:443 {created_time:"2023-10-05T20:36:52.526311047+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f970c56c250> 
resource name: projects/580378083368/locations/us-central1/indexes/3194732189572923392]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:816: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 1 year ago

commit: 9b7525987e05f6b63300440267fcdefea4caf35c buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.135.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-10-06T08:45:06.276994605+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7fd4f2cb4f90> 
resource name: projects/580378083368/locations/us-central1/indexes/6502626115876552704]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 12 months ago

commit: 7aaffe505aa8e7bff86af5a3674085b8ff822107 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.20.95:443 {created_time:"2023-10-07T04:42:43.191419681+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f7facbfff90> 
resource name: projects/580378083368/locations/us-central1/indexes/8491528301314048000]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 12 months ago

commit: e76abd3901644f99ec6850b35e155d8b2c54008a buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:142.250.107.95:443 {created_time:"2023-10-09T21:00:09.511630868+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7fa9b03d7f90> 
resource name: projects/580378083368/locations/us-central1/indexes/3083831048748924928]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 12 months ago

commit: 587df744e2b6c4b3e1a96ff69937697fe80a97be buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.135.95:443 {created_time:"2023-10-10T06:05:20.51774977+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f5ff5f2bf90> 
resource name: projects/580378083368/locations/us-central1/indexes/3803281089221361664]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 12 months ago

commit: bf1be87ef518df93328e50a659dd17b37aa42bf9 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @six.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-10/lib/python3.10/site-packages/google/api_core/grpc_helpers.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-10/lib/python3.10/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "{"created":"@1696980762.710706462","description":"Error received from peer ipv4:142.250.107.95:443","file":"src/core/lib/surface/call.cc","file_line":966,"grpc_message":"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.","grpc_status":9}"
E           >

.nox/system-3-10/lib/python3.10/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f446371e290> 
resource name: projects/580378083368/locations/us-central1/indexes/4761421909944434688]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-10/lib/python3.10/site-packages/google/api_core/gapic_v1/method.py:145: in __call__
    return wrapped_func(*args, **kwargs)
.nox/system-3-10/lib/python3.10/site-packages/google/api_core/grpc_helpers.py:69: in error_remapped_callable
    six.raise_from(exceptions.from_grpc_error(exc), exc)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

value = None
from_value = <_InactiveRpcError of RPC that terminated with:
    status = StatusCode.FAILED_PRECONDITION
    details = "Exceeds maximum n...c_message":"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.","grpc_status":9}"
>

>   ???
E   google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

:3: FailedPrecondition
flaky-bot[bot] commented 12 months ago

commit: eaf5d816a7a752373243033ea98146d70987ce18 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:142.250.107.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-10-11T08:19:19.316754262+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7fb1fce9bcd0> 
resource name: projects/580378083368/locations/us-central1/indexes/2134710621420126208]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 11 months ago

commit: 1704db8000bce2732bf0219a2f7da3e2b9379048 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.197.95:443 {created_time:"2023-10-11T21:28:24.977381698+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7ff128bcf7d0> 
resource name: projects/580378083368/locations/us-central1/indexes/6879252828854943744]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 11 months ago

commit: e45cbb17e7940363e74c6b86ca072cd646b737da buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.135.95:443 {created_time:"2023-10-12T17:57:42.591645002+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f290f4d0650> 
resource name: projects/580378083368/locations/us-central1/indexes/1891503047402586112]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 11 months ago

commit: 794434856713b4aab6aa32e8dd37b3d767136c78 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:108.177.98.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-10-13T02:54:25.089884967+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7fdafe0ac210> 
resource name: projects/580378083368/locations/us-central1/indexes/8651419282225233920]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 11 months ago

commit: 0c371a4bd0adca8bec41dca6ef95e8a1011404f4 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.199.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-10-14T02:39:56.64556395+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7fea40df9d90> 
resource name: projects/580378083368/locations/us-central1/indexes/7767024905400352768]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 11 months ago

commit: 598d57d24ea613130a74bf7db86c757a668626b8 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:108.177.98.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-10-14T11:40:08.796370162+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f48050ac0d0> 
resource name: projects/580378083368/locations/us-central1/indexes/9021277401623035904]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 11 months ago

commit: b4cdb05b12b82d3b9f605382828e3f854d985951 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:172.253.117.95:443 {created_time:"2023-10-17T21:02:48.721561411+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7ff26de6fd50> 
resource name: projects/580378083368/locations/us-central1/indexes/3703652141605322752]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 11 months ago

commit: c19b6c3e88293f231aae0c9939e41c9e0f064ee7 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.197.95:443 {created_time:"2023-10-18T08:40:01.93929702+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f98a1522cd0> 
resource name: projects/580378083368/locations/us-central1/indexes/4310230716416786432]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 11 months ago

commit: 9a26ce0db5588c9958e26f6bd6256a18536bd449 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @six.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-10/lib/python3.10/site-packages/google/api_core/grpc_helpers.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-10/lib/python3.10/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "{"created":"@1697656900.111578853","description":"Error received from peer ipv4:74.125.195.95:443","file":"src/core/lib/surface/call.cc","file_line":966,"grpc_message":"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.","grpc_status":9}"
E           >

.nox/system-3-10/lib/python3.10/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7fe04eda83a0> 
resource name: projects/580378083368/locations/us-central1/indexes/4143597530204078080]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-10/lib/python3.10/site-packages/google/api_core/gapic_v1/method.py:145: in __call__
    return wrapped_func(*args, **kwargs)
.nox/system-3-10/lib/python3.10/site-packages/google/api_core/grpc_helpers.py:69: in error_remapped_callable
    six.raise_from(exceptions.from_grpc_error(exc), exc)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

value = None
from_value = <_InactiveRpcError of RPC that terminated with:
    status = StatusCode.FAILED_PRECONDITION
    details = "Exceeds maximum n...c_message":"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.","grpc_status":9}"
>

>   ???
E   google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

:3: FailedPrecondition
flaky-bot[bot] commented 11 months ago

commit: cbe3a0de14a2ee189df07f445545f68fa4bdd4ae buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.20.95:443 {created_time:"2023-10-19T04:32:01.897265944+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f5cd37644d0> 
resource name: projects/580378083368/locations/us-central1/indexes/5614022808540545024]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 11 months ago

commit: eb6071fe567ef80ba5490b9eaae0cedd6958aac5 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.195.95:443 {created_time:"2023-10-19T22:07:07.274570178+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...ndex object at 0x7fd8a187ff90> 
resource name: projects/580378083368/locations/us-central1/indexes/313286047125471232]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 11 months ago

commit: d23999b970e4f673095609a1cbac98a30465c887 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-10/lib/python3.10/site-packages/google/api_core/grpc_helpers.py:65: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-10/lib/python3.10/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.197.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-10-20T06:27:45.918767514+00:00"}"
E           >

.nox/system-3-10/lib/python3.10/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7fb8cb3a7d90> 
resource name: projects/580378083368/locations/us-central1/indexes/9129082317703217152]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-10/lib/python3.10/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-10/lib/python3.10/site-packages/google/api_core/grpc_helpers.py:67: FailedPrecondition
flaky-bot[bot] commented 11 months ago

commit: 11e29138a814e84971c5f2545fe42bf769c954dc buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:75: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:108.177.98.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-10-20T21:16:54.696982596+00:00"}"
E           >

.nox/system-3-11/lib/python3.11/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f181f158bd0> 
resource name: projects/580378083368/locations/us-central1/indexes/2587603858947571712]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-11/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py:131: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-11/lib/python3.11/site-packages/google/api_core/grpc_helpers.py:77: FailedPrecondition
flaky-bot[bot] commented 11 months ago

commit: 1ff90ac8c21901b9525926a442b762919d744672 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-10/lib/python3.10/site-packages/google/api_core/grpc_helpers.py:65: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-10/lib/python3.10/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.197.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-10-21T09:07:48.143967114+00:00"}"
E           >

.nox/system-3-10/lib/python3.10/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7fd9fa871bd0> 
resource name: projects/580378083368/locations/us-central1/indexes/7642050015740821504]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-10/lib/python3.10/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-10/lib/python3.10/site-packages/google/api_core/grpc_helpers.py:67: FailedPrecondition
flaky-bot[bot] commented 11 months ago

commit: ffbd87228ecc8d1f534e66d31301597822625b6a buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-10/lib/python3.10/site-packages/google/api_core/grpc_helpers.py:65: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-10/lib/python3.10/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.197.95:443 {created_time:"2023-10-23T20:41:22.479663107+00:00", grpc_status:9, grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."}"
E           >

.nox/system-3-10/lib/python3.10/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7fdf7f2ba8c0> 
resource name: projects/580378083368/locations/us-central1/indexes/2301625282609545216]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-10/lib/python3.10/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-10/lib/python3.10/site-packages/google/api_core/grpc_helpers.py:67: FailedPrecondition
flaky-bot[bot] commented 11 months ago

commit: 3d434979659f8801921745600b1ee82f725937cc buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-10/lib/python3.10/site-packages/google/api_core/grpc_helpers.py:65: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-10/lib/python3.10/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:74.125.197.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-10-24T23:43:19.409376194+00:00"}"
E           >

.nox/system-3-10/lib/python3.10/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7f45b5b01840> 
resource name: projects/580378083368/locations/us-central1/indexes/5338177331364102144]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-10/lib/python3.10/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-10/lib/python3.10/site-packages/google/api_core/grpc_helpers.py:67: FailedPrecondition
flaky-bot[bot] commented 11 months ago

commit: 8e42bc5e97d7f74a7ccba059be8327c61a342391 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-10/lib/python3.10/site-packages/google/api_core/grpc_helpers.py:65: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-10/lib/python3.10/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:172.253.117.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-10-25T09:23:44.566659857+00:00"}"
E           >

.nox/system-3-10/lib/python3.10/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...ndex object at 0x7f739de2efb0> 
resource name: projects/580378083368/locations/us-central1/indexes/701721514986176512]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-10/lib/python3.10/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-10/lib/python3.10/site-packages/google/api_core/grpc_helpers.py:67: FailedPrecondition
flaky-bot[bot] commented 11 months ago

commit: 62e43d4e3492f970c7282f830af82fae9dfc27b5 buildURL: Build Status, Sponge status: failed

Test output
args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
>           return callable_(*args, **kwargs)

.nox/system-3-10/lib/python3.10/site-packages/google/api_core/grpc_helpers.py:65: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.nox/system-3-10/lib/python3.10/site-packages/grpc/_channel.py:946: in __call__
    return _end_unary_response_blocking(state, call, False, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
call = 
with_call = False, deadline = None

    def _end_unary_response_blocking(state, call, with_call, deadline):
        if state.code is grpc.StatusCode.OK:
            if with_call:
                rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
                return state.response, rendezvous
            else:
                return state.response
        else:
>           raise _InactiveRpcError(state)
E           grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E               status = StatusCode.FAILED_PRECONDITION
E               details = "Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15."
E               debug_error_string = "UNKNOWN:Error received from peer ipv4:108.177.98.95:443 {grpc_message:"Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.", grpc_status:9, created_time:"2023-10-25T19:01:23.797390019+00:00"}"
E           >

.nox/system-3-10/lib/python3.10/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = 
shared_state = {'index': ...dex object at 0x7fa8e36a2950> 
resource name: projects/580378083368/locations/us-central1/indexes/6321650899991134208]}

    def test_create_get_list_matching_engine_index(self, shared_state):
        aiplatform.init(
            project=e2e_base._PROJECT,
            location=e2e_base._LOCATION,
        )

        # Create an index
        index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
            display_name=_TEST_INDEX_DISPLAY_NAME,
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI,
            dimensions=_TEST_INDEX_CONFIG_DIMENSIONS,
            approximate_neighbors_count=_TEST_INDEX_APPROXIMATE_NEIGHBORS_COUNT,
            distance_measure_type=_TEST_INDEX_DISTANCE_MEASURE_TYPE,
            leaf_node_embedding_count=_TEST_LEAF_NODE_EMBEDDING_COUNT,
            leaf_nodes_to_search_percent=_TEST_LEAF_NODES_TO_SEARCH_PERCENT,
            description=_TEST_INDEX_DESCRIPTION,
            labels=_TEST_LABELS,
        )

        shared_state["resources"] = [index]
        shared_state["index"] = index
        shared_state["index_name"] = index.resource_name

        # Verify that the retrieved index is the same
        get_index = aiplatform.MatchingEngineIndex(index_name=index.resource_name)
        assert index.resource_name == get_index.resource_name

        # Create index and check that it is listed
        list_indexes = aiplatform.MatchingEngineIndex.list()
        assert get_index.resource_name in [
            index.resource_name for index in list_indexes
        ]

        # Update the index metadata
        updated_index = get_index.update_metadata(
            display_name=_TEST_DISPLAY_NAME_UPDATE,
            description=_TEST_DESCRIPTION_UPDATE,
            labels=_TEST_LABELS_UPDATE,
        )

        assert updated_index.name == get_index.name
        # TODO: Reinstate assertions once b/220005272 is fixed.
        # assert updated_index.display_name == _TEST_DISPLAY_NAME_UPDATE
        # assert updated_index.description == _TEST_DESCRIPTION_UPDATE
        # assert updated_index.labels == _TEST_LABELS_UPDATE

        # Update the index embeddings
        updated_index = get_index.update_embeddings(
            contents_delta_uri=_TEST_CONTENTS_DELTA_URI_UPDATE,
            is_complete_overwrite=_TEST_IS_COMPLETE_OVERWRITE,
        )

        assert updated_index.name == get_index.name

        # Create endpoint and check that it is listed
        my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_INDEX_ENDPOINT_DESCRIPTION,
            network=e2e_base._VPC_NETWORK_URI,
            labels=_TEST_LABELS,
        )
        assert my_index_endpoint.resource_name in [
            index_endpoint.resource_name
            for index_endpoint in aiplatform.MatchingEngineIndexEndpoint.list()
        ]

        assert my_index_endpoint.labels == _TEST_LABELS
        assert my_index_endpoint.display_name == _TEST_INDEX_ENDPOINT_DISPLAY_NAME
        assert my_index_endpoint.description == _TEST_INDEX_ENDPOINT_DESCRIPTION

        # Create endpoint and check that it is listed
>       public_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
            display_name=_TEST_PUBLIC_INDEX_ENDPOINT_DISPLAY_NAME,
            description=_TEST_PUBLIC_INDEX_ENDPOINT_DESCRIPTION,
            public_endpoint_enabled=True,
            labels=_TEST_LABELS,
        )

tests/system/aiplatform/test_matching_engine_index.py:249: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:227: in create
    return cls._create(
google/cloud/aiplatform/base.py:817: in wrapper
    return method(*args, **kwargs)
google/cloud/aiplatform/matching_engine/matching_engine_index_endpoint.py:329: in _create
    create_lro = api_client.create_index_endpoint(
google/cloud/aiplatform_v1/services/index_endpoint_service/client.py:594: in create_index_endpoint
    response = rpc(
.nox/system-3-10/lib/python3.10/site-packages/google/api_core/gapic_v1/method.py:113: in __call__
    return wrapped_func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (parent: "projects/ucaip-sample-tests/locations/us-central1"
index_endpoint {
  display_name: "public_endpoint_name"
 ...ption: "my public endpoint"
  labels {
    key: "my_key"
    value: "my_value"
  }
  public_endpoint_enabled: true
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/ucaip-sample-tests/locations/us-central1'), ('x-goog-api-clie...or_method+google.cloud.aiplatform.matching_engine.matching_engine_index_endpoint.MatchingEngineIndexEndpoint.create')]}

    @functools.wraps(callable_)
    def error_remapped_callable(*args, **kwargs):
        try:
            return callable_(*args, **kwargs)
        except grpc.RpcError as exc:
>           raise exceptions.from_grpc_error(exc) from exc
E           google.api_core.exceptions.FailedPrecondition: 400 Exceeds maximum number of PublicEndpoint(s) allowed for a single Project, which is 15.

.nox/system-3-10/lib/python3.10/site-packages/google/api_core/grpc_helpers.py:67: FailedPrecondition