{"created": 1788988139.0725317, "duration": 2923.0966544151306, "exitcode": 1, "root": "/workspace/source/test/e2e", "environment": {}, "summary": {"passed": 56, "failed": 1, "skipped": 13, "total": 70, "collected": 70}, "collectors": [{"nodeid": "explainer/test_art_explainer.py", "outcome": "skipped", "result": [], "longrepr": "('/workspace/source/test/e2e/explainer/test_art_explainer.py', 48, 'Skipped: ODH does not support art explainer at the moment')"}, {"nodeid": "predictor/test_grpc.py", "outcome": "skipped", "result": [], "longrepr": "('/workspace/source/test/e2e/predictor/test_grpc.py', 39, 'Skipped: Not testable in ODH at the moment')"}, {"nodeid": "predictor/test_torchserve.py", "outcome": "skipped", "result": [], "longrepr": "('/workspace/source/test/e2e/predictor/test_torchserve.py', 34, 'Skipped: ODH does not support torchserve at the moment')"}], "tests": [{"nodeid": "batcher/test_batcher.py::test_batcher", "lineno": 40, "outcome": "passed", "keywords": ["test_batcher", "asyncio", "predictor", "pytestmark", "test_batcher.py", "batcher/__init__.py", "e2e"], "setup": {"duration": 0.04349386499961838, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 115.25698384398129, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 0.00023467501159757376, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_pod_watch.py::test_quick_reconciliation_on_init_container_failure", "lineno": 463, "outcome": "passed", "keywords": ["test_quick_reconciliation_on_init_container_failure", "asyncio", "raw", "predictor", "pytestmark", "test_pod_watch.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.04303702400648035, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 5.21891152500757, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.036704606987769, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_predictive.py::test_predictive_sklearn_v1", "lineno": 34, "outcome": "passed", "keywords": ["test_predictive_sklearn_v1", "asyncio", "predictor", "pytestmark", "test_predictive.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03021628499845974, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 120.20531288499478, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.046073626028374, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "batcher/test_batcher_custom_port.py::test_batcher_custom_port", "lineno": 42, "outcome": "failed", "keywords": ["test_batcher_custom_port", "asyncio", "predictor", "pytestmark", "test_batcher_custom_port.py", "batcher/__init__.py", "e2e"], "setup": {"duration": 0.03601553299813531, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 600.3233170269814, "outcome": "failed", "crash": {"path": "/workspace/source/python/kserve/.venv/lib64/python3.11/site-packages/kubernetes/client/rest.py", "lineno": 238, "message": "kubernetes.client.exceptions.ApiException: (404)\nReason: Not Found\nHTTP response headers: HTTPHeaderDict({'Audit-Id': 'f8d0bb66-ee12-4344-b0db-d4f43a4ddf95', 'Cache-Control': 'no-cache, private', 'Content-Type': 'text/plain; charset=utf-8', 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains; preload', 'X-Content-Type-Options': 'nosniff', 'X-Kubernetes-Pf-Flowschema-Uid': '579c8d6a-7a30-4d77-b114-bffb4b116e5e', 'X-Kubernetes-Pf-Prioritylevel-Uid': '3dc12936-a24b-4662-bb0e-1004e15aa598', 'Date': 'Wed, 09 Sep 2026 20:32:13 GMT', 'Content-Length': '19'})\nHTTP response body: 404 page not found"}, "traceback": [{"path": "batcher/test_batcher_custom_port.py", "lineno": 82, "message": ""}, {"path": "../../python/kserve/.venv/lib64/python3.11/site-packages/kubernetes/client/api/custom_objects_api.py", "lineno": 1632, "message": ""}, {"path": "../../python/kserve/.venv/lib64/python3.11/site-packages/kubernetes/client/api/custom_objects_api.py", "lineno": 1739, "message": ""}, {"path": "../../python/kserve/.venv/lib64/python3.11/site-packages/kubernetes/client/api_client.py", "lineno": 348, "message": ""}, {"path": "../../python/kserve/.venv/lib64/python3.11/site-packages/kubernetes/client/api_client.py", "lineno": 180, "message": ""}, {"path": "../../python/kserve/.venv/lib64/python3.11/site-packages/kubernetes/client/api_client.py", "lineno": 373, "message": ""}, {"path": "../../python/kserve/.venv/lib64/python3.11/site-packages/kubernetes/client/rest.py", "lineno": 244, "message": ""}, {"path": "../../python/kserve/.venv/lib64/python3.11/site-packages/kubernetes/client/rest.py", "lineno": 238, "message": "ApiException"}], "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\n\nkserve_client = <kserve.api.kserve_client.KServeClient object at 0x7fea3c350ed0>\nrest_v1_client = <kserve.inference_client.InferenceRESTClient object at 0x7fea3d5a15d0>\nnetwork_layer = 'openshift-route'\n\n    @pytest.mark.predictor\n    @pytest.mark.asyncio(scope=\"session\")\n    async def test_batcher_custom_port(kserve_client, rest_v1_client, network_layer):\n        service_name = \"isvc-sklearn-batcher-custom\"\n    \n        predictor = V1beta1PredictorSpec(\n            batcher=V1beta1Batcher(\n                max_batch_size=32,\n                max_latency=5000,\n            ),\n            min_replicas=1,\n            sklearn=V1beta1SKLearnSpec(\n                args=[\"--http_port=5000\"],\n                storage_uri=\"gs://kfserving-examples/models/sklearn/1.0/model\",\n                resources=V1ResourceRequirements(\n                    requests={\"cpu\": \"50m\", \"memory\": \"128Mi\"},\n                    limits={\"cpu\": \"100m\", \"memory\": \"256Mi\"},\n                ),\n                ports=[V1ContainerPort(container_port=5000, protocol=\"TCP\")],\n            ),\n        )\n    \n        isvc = V1beta1InferenceService(\n            api_version=constants.KSERVE_V1BETA1,\n            kind=constants.KSERVE_KIND_INFERENCESERVICE,\n            metadata=client.V1ObjectMeta(\n                name=service_name,\n                namespace=KSERVE_TEST_NAMESPACE,\n                labels={\n                    constants.KSERVE_LABEL_NETWORKING_VISIBILITY: constants.KSERVE_LABEL_NETWORKING_VISIBILITY_EXPOSED,\n                },\n            ),\n            spec=V1beta1InferenceServiceSpec(predictor=predictor),\n        )\n        kserve_client.create(isvc)\n        try:\n>           kserve_client.wait_isvc_ready(service_name, namespace=KSERVE_TEST_NAMESPACE)\n\nbatcher/test_batcher_custom_port.py:79: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <kserve.api.kserve_client.KServeClient object at 0x7fea3c350ed0>\nname = 'isvc-sklearn-batcher-custom', namespace = 'kserve-ci-e2e-test'\nwatch = False, timeout_seconds = 600, polling_interval = 10, version = 'v1beta1'\nexpected_generation = None\n\n    def wait_isvc_ready(\n        self,\n        name,\n        namespace=None,  # pylint:disable=too-many-arguments\n        watch=False,\n        timeout_seconds=600,\n        polling_interval=10,\n        version=constants.KSERVE_V1BETA1_VERSION,\n        expected_generation=None,\n    ):\n        \"\"\"\n        Waiting for inference service ready, print out the inference service if timeout.\n        :param name: inference service name\n        :param namespace: defaults to current or default namespace\n        :param watch: True to watch the service until timeout elapsed or status is ready\n        :param timeout_seconds: timeout seconds for waiting, default to 600s.\n               Print out the InferenceService if timeout.\n        :param polling_interval: The time interval to poll status\n        :param version: api group version\n        :param expected_generation: optional minimum observed generation to consider ready\n        :return:\n        \"\"\"\n        if watch:\n            isvc_watch(\n                name=name,\n                namespace=namespace,\n                timeout_seconds=timeout_seconds,\n                generation=expected_generation or 0,\n            )\n        else:\n            for _ in range(round(timeout_seconds / polling_interval)):\n                time.sleep(polling_interval)\n                if self.is_isvc_ready(\n                    name,\n                    namespace=namespace,\n                    version=version,\n                    expected_generation=expected_generation,\n                ):\n                    return\n    \n            current_isvc = self.get(name, namespace=namespace, version=version)\n            if expected_generation is None:\n>               raise RuntimeError(\n                    \"Timeout to start the InferenceService {}. \\\n                               The InferenceService is as following: {}\".format(\n                        name, current_isvc\n                    )\n                )\nE               RuntimeError: Timeout to start the InferenceService isvc-sklearn-batcher-custom.                                The InferenceService is as following: {'apiVersion': 'serving.kserve.io/v1beta1', 'kind': 'InferenceService', 'metadata': {'annotations': {'modelFormat': 'sklearn', 'serving.kserve.io/deploymentMode': 'Standard'}, 'creationTimestamp': '2026-09-09T20:22:13Z', 'finalizers': ['inferenceservice.finalizers', 'odh.inferenceservice.finalizers'], 'generation': 1, 'labels': {'networking.kserve.io/visibility': 'exposed'}, 'managedFields': [{'apiVersion': 'serving.kserve.io/v1beta1', 'fieldsType': 'FieldsV1', 'fieldsV1': {'f:metadata': {'f:labels': {'.': {}, 'f:networking.kserve.io/visibility': {}}}, 'f:spec': {'.': {}, 'f:predictor': {'.': {}, 'f:batcher': {'.': {}, 'f:maxBatchSize': {}, 'f:maxLatency': {}}, 'f:minReplicas': {}, 'f:sklearn': {'.': {}, 'f:args': {}, 'f:name': {}, 'f:ports': {'.': {}, 'k:{\"containerPort\":5000,\"protocol\":\"TCP\"}': {'.': {}, 'f:containerPort': {}, 'f:protocol': {}}}, 'f:resources': {'.': {}, 'f:limits': {'.': {}, 'f:cpu': {}, 'f:memory': {}}, 'f:requests': {'.': {}, 'f:cpu': {}, 'f:memory': {}}}, 'f:storageUri': {}}}}}, 'manager': 'OpenAPI-Generator', 'operation': 'Update', 'time': '2026-09-09T20:22:13Z'}, {'apiVersion': 'serving.kserve.io/v1beta1', 'fieldsType': 'FieldsV1', 'fieldsV1': {'f:metadata': {'f:finalizers': {'.': {}, 'v:\"inferenceservice.finalizers\"': {}, 'v:\"odh.inferenceservice.finalizers\"': {}}}}, 'manager': 'manager', 'operation': 'Update', 'time': '2026-09-09T20:22:13Z'}, {'apiVersion': 'serving.kserve.io/v1beta1', 'fieldsType': 'FieldsV1', 'fieldsV1': {'f:status': {'.': {}, 'f:address': {'.': {}, 'f:url': {}}, 'f:components': {'.': {}, 'f:predictor': {}}, 'f:conditions': {}, 'f:deploymentMode': {}, 'f:modelStatus': {'.': {}, 'f:copies': {'.': {}, 'f:failedCopies': {}}, 'f:states': {'.': {}, 'f:activeModelState': {}, 'f:targetModelState': {}}, 'f:transitionStatus': {}}, 'f:observedGeneration': {}, 'f:servingRuntimeName': {}, 'f:url': {}}}, 'manager': 'manager', 'operation': 'Update', 'subresource': 'status', 'time': '2026-09-09T20:22:19Z'}], 'name': 'isvc-sklearn-batcher-custom', 'namespace': 'kserve-ci-e2e-test', 'resourceVersion': '15932', 'uid': '1f761573-8105-4124-ab70-50929283d13f'}, 'spec': {'predictor': {'automountServiceAccountToken': False, 'batcher': {'maxBatchSize': 32, 'maxLatency': 5000}, 'minReplicas': 1, 'model': {'args': ['--http_port=5000'], 'modelFormat': {'name': 'sklearn'}, 'name': '', 'ports': [{'containerPort': 5000, 'protocol': 'TCP'}], 'resources': {'limits': {'cpu': '100m', 'memory': '256Mi'}, 'requests': {'cpu': '50m', 'memory': '128Mi'}}, 'storageUri': 'gs://kfserving-examples/models/sklearn/1.0/model'}}}, 'status': {'address': {'url': 'http://isvc-sklearn-batcher-custom-predictor.kserve-ci-e2e-test.svc.cluster.local'}, 'components': {'predictor': {}}, 'conditions': [{'lastTransitionTime': '2026-09-09T20:22:13Z', 'status': 'True', 'type': 'IngressReady'}, {'lastTransitionTime': '2026-09-09T20:22:13Z', 'message': 'Deployment does not have minimum availability.', 'reason': 'MinimumReplicasUnavailable', 'status': 'False', 'type': 'PredictorReady'}, {'lastTransitionTime': '2026-09-09T20:22:13Z', 'message': 'Deployment does not have minimum availability.', 'reason': 'MinimumReplicasUnavailable', 'status': 'False', 'type': 'Ready'}, {'lastTransitionTime': '2026-09-09T20:22:13Z', 'severity': 'Info', 'status': 'False', 'type': 'Stopped'}], 'deploymentMode': 'Standard', 'modelStatus': {'copies': {'failedCopies': 0}, 'states': {'activeModelState': '', 'targetModelState': 'Pending'}, 'transitionStatus': 'InProgress'}, 'observedGeneration': 1, 'servingRuntimeName': 'kserve-sklearnserver', 'url': 'https://isvc-sklearn-batcher-custom-kserve-ci-e2e-test.apps.53357311-227e-452f-b982-24a032e036be.prod.konfluxeaas.com'}}\n\n../../python/kserve/kserve/api/kserve_client.py:418: RuntimeError\n\nDuring handling of the above exception, another exception occurred:\n\nkserve_client = <kserve.api.kserve_client.KServeClient object at 0x7fea3c350ed0>\nrest_v1_client = <kserve.inference_client.InferenceRESTClient object at 0x7fea3d5a15d0>\nnetwork_layer = 'openshift-route'\n\n    @pytest.mark.predictor\n    @pytest.mark.asyncio(scope=\"session\")\n    async def test_batcher_custom_port(kserve_client, rest_v1_client, network_layer):\n        service_name = \"isvc-sklearn-batcher-custom\"\n    \n        predictor = V1beta1PredictorSpec(\n            batcher=V1beta1Batcher(\n                max_batch_size=32,\n                max_latency=5000,\n            ),\n            min_replicas=1,\n            sklearn=V1beta1SKLearnSpec(\n                args=[\"--http_port=5000\"],\n                storage_uri=\"gs://kfserving-examples/models/sklearn/1.0/model\",\n                resources=V1ResourceRequirements(\n                    requests={\"cpu\": \"50m\", \"memory\": \"128Mi\"},\n                    limits={\"cpu\": \"100m\", \"memory\": \"256Mi\"},\n                ),\n                ports=[V1ContainerPort(container_port=5000, protocol=\"TCP\")],\n            ),\n        )\n    \n        isvc = V1beta1InferenceService(\n            api_version=constants.KSERVE_V1BETA1,\n            kind=constants.KSERVE_KIND_INFERENCESERVICE,\n            metadata=client.V1ObjectMeta(\n                name=service_name,\n                namespace=KSERVE_TEST_NAMESPACE,\n                labels={\n                    constants.KSERVE_LABEL_NETWORKING_VISIBILITY: constants.KSERVE_LABEL_NETWORKING_VISIBILITY_EXPOSED,\n                },\n            ),\n            spec=V1beta1InferenceServiceSpec(predictor=predictor),\n        )\n        kserve_client.create(isvc)\n        try:\n            kserve_client.wait_isvc_ready(service_name, namespace=KSERVE_TEST_NAMESPACE)\n        except RuntimeError as e:\n            print(\n>               kserve_client.api_instance.get_namespaced_custom_object(\n                    \"serving.knative.dev\",\n                    \"v1\",\n                    KSERVE_TEST_NAMESPACE,\n                    \"services\",\n                    service_name + \"-predictor\",\n                )\n            )\n\nbatcher/test_batcher_custom_port.py:82: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <kubernetes.client.api.custom_objects_api.CustomObjectsApi object at 0x7fea3c2d8390>\ngroup = 'serving.knative.dev', version = 'v1', namespace = 'kserve-ci-e2e-test'\nplural = 'services', name = 'isvc-sklearn-batcher-custom-predictor'\nkwargs = {'_return_http_data_only': True}\n\n    def get_namespaced_custom_object(self, group, version, namespace, plural, name, **kwargs):  # noqa: E501\n        \"\"\"get_namespaced_custom_object  # noqa: E501\n    \n        Returns a namespace scoped custom object  # noqa: E501\n        This method makes a synchronous HTTP request by default. To make an\n        asynchronous HTTP request, please pass async_req=True\n        >>> thread = api.get_namespaced_custom_object(group, version, namespace, plural, name, async_req=True)\n        >>> result = thread.get()\n    \n        :param async_req bool: execute request asynchronously\n        :param str group: the custom resource's group (required)\n        :param str version: the custom resource's version (required)\n        :param str namespace: The custom resource's namespace (required)\n        :param str plural: the custom resource's plural name. For TPRs this would be lowercase plural kind. (required)\n        :param str name: the custom object's name (required)\n        :param _preload_content: if False, the urllib3.HTTPResponse object will\n                                 be returned without reading/decoding response\n                                 data. Default is True.\n        :param _request_timeout: timeout setting for this request. If one\n                                 number provided, it will be total request\n                                 timeout. It can also be a pair (tuple) of\n                                 (connection, read) timeouts.\n        :return: object\n                 If the method is called asynchronously,\n                 returns the request thread.\n        \"\"\"\n        kwargs['_return_http_data_only'] = True\n>       return self.get_namespaced_custom_object_with_http_info(group, version, namespace, plural, name, **kwargs)  # noqa: E501\n\n../../python/kserve/.venv/lib64/python3.11/site-packages/kubernetes/client/api/custom_objects_api.py:1632: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <kubernetes.client.api.custom_objects_api.CustomObjectsApi object at 0x7fea3c2d8390>\ngroup = 'serving.knative.dev', version = 'v1', namespace = 'kserve-ci-e2e-test'\nplural = 'services', name = 'isvc-sklearn-batcher-custom-predictor'\nkwargs = {'_return_http_data_only': True}\nlocal_var_params = {'_return_http_data_only': True, 'all_params': ['group', 'version', 'namespace', 'plural', 'name', 'async_req', ...], 'auth_settings': ['BearerToken'], 'body_params': None, ...}\nall_params = ['group', 'version', 'namespace', 'plural', 'name', 'async_req', ...]\nkey = '_return_http_data_only', val = True, collection_formats = {}\npath_params = {'group': 'serving.knative.dev', 'name': 'isvc-sklearn-batcher-custom-predictor', 'namespace': 'kserve-ci-e2e-test', 'plural': 'services', ...}\nquery_params = []\n\n    def get_namespaced_custom_object_with_http_info(self, group, version, namespace, plural, name, **kwargs):  # noqa: E501\n        \"\"\"get_namespaced_custom_object  # noqa: E501\n    \n        Returns a namespace scoped custom object  # noqa: E501\n        This method makes a synchronous HTTP request by default. To make an\n        asynchronous HTTP request, please pass async_req=True\n        >>> thread = api.get_namespaced_custom_object_with_http_info(group, version, namespace, plural, name, async_req=True)\n        >>> result = thread.get()\n    \n        :param async_req bool: execute request asynchronously\n        :param str group: the custom resource's group (required)\n        :param str version: the custom resource's version (required)\n        :param str namespace: The custom resource's namespace (required)\n        :param str plural: the custom resource's plural name. For TPRs this would be lowercase plural kind. (required)\n        :param str name: the custom object's name (required)\n        :param _return_http_data_only: response data without head status code\n                                       and headers\n        :param _preload_content: if False, the urllib3.HTTPResponse object will\n                                 be returned without reading/decoding response\n                                 data. Default is True.\n        :param _request_timeout: timeout setting for this request. If one\n                                 number provided, it will be total request\n                                 timeout. It can also be a pair (tuple) of\n                                 (connection, read) timeouts.\n        :return: tuple(object, status_code(int), headers(HTTPHeaderDict))\n                 If the method is called asynchronously,\n                 returns the request thread.\n        \"\"\"\n    \n        local_var_params = locals()\n    \n        all_params = [\n            'group',\n            'version',\n            'namespace',\n            'plural',\n            'name'\n        ]\n        all_params.extend(\n            [\n                'async_req',\n                '_return_http_data_only',\n                '_preload_content',\n                '_request_timeout'\n            ]\n        )\n    \n        for key, val in six.iteritems(local_var_params['kwargs']):\n            if key not in all_params:\n                raise ApiTypeError(\n                    \"Got an unexpected keyword argument '%s'\"\n                    \" to method get_namespaced_custom_object\" % key\n                )\n            local_var_params[key] = val\n        del local_var_params['kwargs']\n        # verify the required parameter 'group' is set\n        if self.api_client.client_side_validation and ('group' not in local_var_params or  # noqa: E501\n                                                        local_var_params['group'] is None):  # noqa: E501\n            raise ApiValueError(\"Missing the required parameter `group` when calling `get_namespaced_custom_object`\")  # noqa: E501\n        # verify the required parameter 'version' is set\n        if self.api_client.client_side_validation and ('version' not in local_var_params or  # noqa: E501\n                                                        local_var_params['version'] is None):  # noqa: E501\n            raise ApiValueError(\"Missing the required parameter `version` when calling `get_namespaced_custom_object`\")  # noqa: E501\n        # verify the required parameter 'namespace' is set\n        if self.api_client.client_side_validation and ('namespace' not in local_var_params or  # noqa: E501\n                                                        local_var_params['namespace'] is None):  # noqa: E501\n            raise ApiValueError(\"Missing the required parameter `namespace` when calling `get_namespaced_custom_object`\")  # noqa: E501\n        # verify the required parameter 'plural' is set\n        if self.api_client.client_side_validation and ('plural' not in local_var_params or  # noqa: E501\n                                                        local_var_params['plural'] is None):  # noqa: E501\n            raise ApiValueError(\"Missing the required parameter `plural` when calling `get_namespaced_custom_object`\")  # noqa: E501\n        # verify the required parameter 'name' is set\n        if self.api_client.client_side_validation and ('name' not in local_var_params or  # noqa: E501\n                                                        local_var_params['name'] is None):  # noqa: E501\n            raise ApiValueError(\"Missing the required parameter `name` when calling `get_namespaced_custom_object`\")  # noqa: E501\n    \n        collection_formats = {}\n    \n        path_params = {}\n        if 'group' in local_var_params:\n            path_params['group'] = local_var_params['group']  # noqa: E501\n        if 'version' in local_var_params:\n            path_params['version'] = local_var_params['version']  # noqa: E501\n        if 'namespace' in local_var_params:\n            path_params['namespace'] = local_var_params['namespace']  # noqa: E501\n        if 'plural' in local_var_params:\n            path_params['plural'] = local_var_params['plural']  # noqa: E501\n        if 'name' in local_var_params:\n            path_params['name'] = local_var_params['name']  # noqa: E501\n    \n        query_params = []\n    \n        header_params = {}\n    \n        form_params = []\n        local_var_files = {}\n    \n        body_params = None\n        # HTTP header `Accept`\n        header_params['Accept'] = self.api_client.select_header_accept(\n            ['application/json'])  # noqa: E501\n    \n        # Authentication setting\n        auth_settings = ['BearerToken']  # noqa: E501\n    \n>       return self.api_client.call_api(\n            '/apis/{group}/{version}/namespaces/{namespace}/{plural}/{name}', 'GET',\n            path_params,\n            query_params,\n            header_params,\n            body=body_params,\n            post_params=form_params,\n            files=local_var_files,\n            response_type='object',  # noqa: E501\n            auth_settings=auth_settings,\n            async_req=local_var_params.get('async_req'),\n            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501\n            _preload_content=local_var_params.get('_preload_content', True),\n            _request_timeout=local_var_params.get('_request_timeout'),\n            collection_formats=collection_formats)\n\n../../python/kserve/.venv/lib64/python3.11/site-packages/kubernetes/client/api/custom_objects_api.py:1739: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <kubernetes.client.api_client.ApiClient object at 0x7fea3c2da3d0>\nresource_path = '/apis/{group}/{version}/namespaces/{namespace}/{plural}/{name}'\nmethod = 'GET'\npath_params = {'group': 'serving.knative.dev', 'name': 'isvc-sklearn-batcher-custom-predictor', 'namespace': 'kserve-ci-e2e-test', 'plural': 'services', ...}\nquery_params = []\nheader_params = {'Accept': 'application/json', 'User-Agent': 'OpenAPI-Generator/32.0.1/python'}\nbody = None, post_params = [], files = {}, response_type = 'object'\nauth_settings = ['BearerToken'], async_req = None, _return_http_data_only = True\ncollection_formats = {}, _preload_content = True, _request_timeout = None\n_host = None\n\n    def call_api(self, resource_path, method,\n                 path_params=None, query_params=None, header_params=None,\n                 body=None, post_params=None, files=None,\n                 response_type=None, auth_settings=None, async_req=None,\n                 _return_http_data_only=None, collection_formats=None,\n                 _preload_content=True, _request_timeout=None, _host=None):\n        \"\"\"Makes the HTTP request (synchronous) and returns deserialized data.\n    \n        To make an async_req request, set the async_req parameter.\n    \n        :param resource_path: Path to method endpoint.\n        :param method: Method to call.\n        :param path_params: Path parameters in the url.\n        :param query_params: Query parameters in the url.\n        :param header_params: Header parameters to be\n            placed in the request header.\n        :param body: Request body.\n        :param post_params dict: Request post form parameters,\n            for `application/x-www-form-urlencoded`, `multipart/form-data`.\n        :param auth_settings list: Auth Settings names for the request.\n        :param response: Response data type.\n        :param files dict: key -> filename, value -> filepath,\n            for `multipart/form-data`.\n        :param async_req bool: execute request asynchronously\n        :param _return_http_data_only: response data without head status code\n                                       and headers\n        :param collection_formats: dict of collection formats for path, query,\n            header, and post parameters.\n        :param _preload_content: if False, the urllib3.HTTPResponse object will\n                                 be returned without reading/decoding response\n                                 data. Default is True.\n        :param _request_timeout: timeout setting for this request. If one\n                                 number provided, it will be total request\n                                 timeout. It can also be a pair (tuple) of\n                                 (connection, read) timeouts.\n        :return:\n            If async_req parameter is True,\n            the request will be called asynchronously.\n            The method will return the request thread.\n            If parameter async_req is False or missing,\n            then the method will return the response directly.\n        \"\"\"\n        if not async_req:\n>           return self.__call_api(resource_path, method,\n                                   path_params, query_params, header_params,\n                                   body, post_params, files,\n                                   response_type, auth_settings,\n                                   _return_http_data_only, collection_formats,\n                                   _preload_content, _request_timeout, _host)\n\n../../python/kserve/.venv/lib64/python3.11/site-packages/kubernetes/client/api_client.py:348: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <kubernetes.client.api_client.ApiClient object at 0x7fea3c2da3d0>\nresource_path = '/apis/serving.knative.dev/v1/namespaces/kserve-ci-e2e-test/services/isvc-sklearn-batcher-custom-predictor'\nmethod = 'GET'\npath_params = [('group', 'serving.knative.dev'), ('version', 'v1'), ('namespace', 'kserve-ci-e2e-test'), ('plural', 'services'), ('name', 'isvc-sklearn-batcher-custom-predictor')]\nquery_params = []\nheader_params = {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'OpenAPI-Generator/32.0.1/python'}\nbody = None, post_params = [], files = {}, response_type = 'object'\nauth_settings = ['BearerToken'], _return_http_data_only = True\ncollection_formats = {}, _preload_content = True, _request_timeout = None\n_host = None\n\n    def __call_api(\n            self, resource_path, method, path_params=None,\n            query_params=None, header_params=None, body=None, post_params=None,\n            files=None, response_type=None, auth_settings=None,\n            _return_http_data_only=None, collection_formats=None,\n            _preload_content=True, _request_timeout=None, _host=None):\n    \n        config = self.configuration\n    \n        # header parameters\n        header_params = header_params or {}\n        header_params.update(self.default_headers)\n        if self.cookie:\n            header_params['Cookie'] = self.cookie\n        if header_params:\n            header_params = self.sanitize_for_serialization(header_params)\n            header_params = dict(self.parameters_to_tuples(header_params,\n                                                           collection_formats))\n    \n        # path parameters\n        if path_params:\n            path_params = self.sanitize_for_serialization(path_params)\n            path_params = self.parameters_to_tuples(path_params,\n                                                    collection_formats)\n            for k, v in path_params:\n                # specified safe chars, encode everything\n                resource_path = resource_path.replace(\n                    '{%s}' % k,\n                    quote(str(v), safe=config.safe_chars_for_path_param)\n                )\n    \n        # query parameters\n        if query_params:\n            query_params = self.sanitize_for_serialization(query_params)\n            query_params = self.parameters_to_tuples(query_params,\n                                                     collection_formats)\n    \n        # post parameters\n        if post_params or files:\n            post_params = post_params if post_params else []\n            post_params = self.sanitize_for_serialization(post_params)\n            post_params = self.parameters_to_tuples(post_params,\n                                                    collection_formats)\n            post_params.extend(self.files_parameters(files))\n    \n        # auth setting\n        self.update_params_for_auth(header_params, query_params, auth_settings)\n    \n        # body\n        if body:\n            body = self.sanitize_for_serialization(body)\n    \n        # request url\n        if _host is None:\n            url = self.configuration.host + resource_path\n        else:\n            # use server/host defined in path or operation instead\n            url = _host + resource_path\n    \n        # perform request and return response\n>       response_data = self.request(\n            method, url, query_params=query_params, headers=header_params,\n            post_params=post_params, body=body,\n            _preload_content=_preload_content,\n            _request_timeout=_request_timeout)\n\n../../python/kserve/.venv/lib64/python3.11/site-packages/kubernetes/client/api_client.py:180: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <kubernetes.client.api_client.ApiClient object at 0x7fea3c2da3d0>\nmethod = 'GET'\nurl = 'https://ad0cdfe0e326f45b5aa1b566eebc3a10-76fd29d5fe107923.elb.us-east-1.amazonaws.com:6443/apis/serving.knative.dev/v1/namespaces/kserve-ci-e2e-test/services/isvc-sklearn-batcher-custom-predictor'\nquery_params = []\nheaders = {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'OpenAPI-Generator/32.0.1/python'}\npost_params = [], body = None, _preload_content = True, _request_timeout = None\n\n    def request(self, method, url, query_params=None, headers=None,\n                post_params=None, body=None, _preload_content=True,\n                _request_timeout=None):\n        \"\"\"Makes the HTTP request using RESTClient.\"\"\"\n        if method == \"GET\":\n>           return self.rest_client.GET(url,\n                                        query_params=query_params,\n                                        _preload_content=_preload_content,\n                                        _request_timeout=_request_timeout,\n\n../../python/kserve/.venv/lib64/python3.11/site-packages/kubernetes/client/api_client.py:373: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <kubernetes.client.rest.RESTClientObject object at 0x7fea3c2d8d50>\nurl = 'https://ad0cdfe0e326f45b5aa1b566eebc3a10-76fd29d5fe107923.elb.us-east-1.amazonaws.com:6443/apis/serving.knative.dev/v1/namespaces/kserve-ci-e2e-test/services/isvc-sklearn-batcher-custom-predictor'\nheaders = {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'OpenAPI-Generator/32.0.1/python'}\nquery_params = [], _preload_content = True, _request_timeout = None\n\n    def GET(self, url, headers=None, query_params=None, _preload_content=True,\n            _request_timeout=None):\n>       return self.request(\"GET\", url,\n                            headers=headers,\n                            _preload_content=_preload_content,\n                            _request_timeout=_request_timeout,\n                            query_params=query_params)\n\n../../python/kserve/.venv/lib64/python3.11/site-packages/kubernetes/client/rest.py:244: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <kubernetes.client.rest.RESTClientObject object at 0x7fea3c2d8d50>\nmethod = 'GET'\nurl = 'https://ad0cdfe0e326f45b5aa1b566eebc3a10-76fd29d5fe107923.elb.us-east-1.amazonaws.com:6443/apis/serving.knative.dev/v1/namespaces/kserve-ci-e2e-test/services/isvc-sklearn-batcher-custom-predictor'\nquery_params = []\nheaders = {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'OpenAPI-Generator/32.0.1/python'}\nbody = None, post_params = {}, _preload_content = True, _request_timeout = None\n\n    def request(self, method, url, query_params=None, headers=None,\n                body=None, post_params=None, _preload_content=True,\n                _request_timeout=None):\n        \"\"\"Perform requests.\n    \n        :param method: http request method\n        :param url: http request url\n        :param query_params: query parameters in the url\n        :param headers: http request headers\n        :param body: request json body, for `application/json`\n        :param post_params: request post parameters,\n                            `application/x-www-form-urlencoded`\n                            and `multipart/form-data`\n        :param _preload_content: if False, the urllib3.HTTPResponse object will\n                                 be returned without reading/decoding response\n                                 data. Default is True.\n        :param _request_timeout: timeout setting for this request. If one\n                                 number provided, it will be total request\n                                 timeout. It can also be a pair (tuple) of\n                                 (connection, read) timeouts.\n        \"\"\"\n        method = method.upper()\n        assert method in ['GET', 'HEAD', 'DELETE', 'POST', 'PUT',\n                          'PATCH', 'OPTIONS']\n    \n        if post_params and body:\n            raise ApiValueError(\n                \"body parameter cannot be used with post_params parameter.\"\n            )\n    \n        post_params = post_params or {}\n        headers = headers or {}\n    \n        timeout = None\n        if _request_timeout:\n            if isinstance(_request_timeout, (int, ) if six.PY3 else (int, long)):  # noqa: E501,F821\n                timeout = urllib3.Timeout(total=_request_timeout)\n            elif (isinstance(_request_timeout, tuple) and\n                  len(_request_timeout) == 2):\n                timeout = urllib3.Timeout(\n                    connect=_request_timeout[0], read=_request_timeout[1])\n    \n        if 'Content-Type' not in headers:\n            headers['Content-Type'] = 'application/json'\n    \n        try:\n            # For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`\n            if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']:\n                if query_params:\n                    url += '?' + urlencode(query_params)\n                if (re.search('json', headers['Content-Type'], re.IGNORECASE) or\n                        headers['Content-Type'] == 'application/apply-patch+yaml'):\n                    if headers['Content-Type'] == 'application/json-patch+json':\n                        if not isinstance(body, list):\n                            headers['Content-Type'] = \\\n                                'application/strategic-merge-patch+json'\n                    request_body = None\n                    if body is not None:\n                        request_body = json.dumps(body)\n                    r = self.pool_manager.request(\n                        method, url,\n                        body=request_body,\n                        preload_content=_preload_content,\n                        timeout=timeout,\n                        headers=headers)\n                elif headers['Content-Type'] == 'application/x-www-form-urlencoded':  # noqa: E501\n                    r = self.pool_manager.request(\n                        method, url,\n                        fields=post_params,\n                        encode_multipart=False,\n                        preload_content=_preload_content,\n                        timeout=timeout,\n                        headers=headers)\n                elif headers['Content-Type'] == 'multipart/form-data':\n                    # must del headers['Content-Type'], or the correct\n                    # Content-Type which generated by urllib3 will be\n                    # overwritten.\n                    del headers['Content-Type']\n                    r = self.pool_manager.request(\n                        method, url,\n                        fields=post_params,\n                        encode_multipart=True,\n                        preload_content=_preload_content,\n                        timeout=timeout,\n                        headers=headers)\n                # Pass a `string` parameter directly in the body to support\n                # other content types than Json when `body` argument is\n                # provided in serialized form\n                elif isinstance(body, str) or isinstance(body, bytes):\n                    request_body = body\n                    r = self.pool_manager.request(\n                        method, url,\n                        body=request_body,\n                        preload_content=_preload_content,\n                        timeout=timeout,\n                        headers=headers)\n                else:\n                    # Cannot generate the request from given parameters\n                    msg = \"\"\"Cannot prepare a request message for provided\n                             arguments. Please check that your arguments match\n                             declared content type.\"\"\"\n                    raise ApiException(status=0, reason=msg)\n            # For `GET`, `HEAD`\n            else:\n                r = self.pool_manager.request(method, url,\n                                              fields=query_params,\n                                              preload_content=_preload_content,\n                                              timeout=timeout,\n                                              headers=headers)\n        except urllib3.exceptions.SSLError as e:\n            msg = \"{0}\\n{1}\".format(type(e).__name__, str(e))\n            raise ApiException(status=0, reason=msg)\n    \n        if _preload_content:\n            r = RESTResponse(r)\n    \n            # In the python 3, the response.data is bytes.\n            # we need to decode it to string.\n            if six.PY3:\n                r.data = r.data.decode('utf8')\n    \n            # log response body\n            logger.debug(\"response body: %s\", r.data)\n    \n        if not 200 <= r.status <= 299:\n>           raise ApiException(http_resp=r)\nE           kubernetes.client.exceptions.ApiException: (404)\nE           Reason: Not Found\nE           HTTP response headers: HTTPHeaderDict({'Audit-Id': 'f8d0bb66-ee12-4344-b0db-d4f43a4ddf95', 'Cache-Control': 'no-cache, private', 'Content-Type': 'text/plain; charset=utf-8', 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains; preload', 'X-Content-Type-Options': 'nosniff', 'X-Kubernetes-Pf-Flowschema-Uid': '579c8d6a-7a30-4d77-b114-bffb4b116e5e', 'X-Kubernetes-Pf-Prioritylevel-Uid': '3dc12936-a24b-4662-bb0e-1004e15aa598', 'Date': 'Wed, 09 Sep 2026 20:32:13 GMT', 'Content-Length': '19'})\nE           HTTP response body: 404 page not found\n\n../../python/kserve/.venv/lib64/python3.11/site-packages/kubernetes/client/rest.py:238: ApiException"}, "teardown": {"duration": 0.0002664669882506132, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_predictive.py::test_predictive_xgboost_v1", "lineno": 79, "outcome": "passed", "keywords": ["test_predictive_xgboost_v1", "asyncio", "predictor", "pytestmark", "test_predictive.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03773454000474885, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 90.17688086099224, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.050209387991345, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_predictive.py::test_predictive_lightgbm_v1", "lineno": 124, "outcome": "passed", "keywords": ["test_predictive_lightgbm_v1", "asyncio", "predictor", "pytestmark", "test_predictive.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03281842000433244, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 90.16938122099964, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.05458880198421, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_predictive.py::test_predictive_sklearn_v2", "lineno": 170, "outcome": "passed", "keywords": ["test_predictive_sklearn_v2", "asyncio", "predictor", "pytestmark", "test_predictive.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.040952009992906824, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 100.17711796998628, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.048324520001188, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_predictive.py::test_predictive_xgboost_v2", "lineno": 225, "outcome": "passed", "keywords": ["test_predictive_xgboost_v2", "asyncio", "predictor", "pytestmark", "test_predictive.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.031951609009411186, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 90.16936264501419, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.046355650993064, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_predictive.py::test_predictive_lightgbm_v2", "lineno": 280, "outcome": "passed", "keywords": ["test_predictive_lightgbm_v2", "asyncio", "predictor", "pytestmark", "test_predictive.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03299718801281415, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 90.18633280799259, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.043329231993994, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_scheduler_name.py::test_scheduler_name", "lineno": 43, "outcome": "passed", "keywords": ["test_scheduler_name", "asyncio", "kserve_on_openshift", "pytestmark", "test_scheduler_name.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.04165697700227611, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 2.1020043219905347, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.040269641001942, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_secure_metrics.py::TestSecureMetrics::test_kserve_controller_args", "lineno": 186, "outcome": "passed", "keywords": ["test_kserve_controller_args", "TestSecureMetrics", "kserve_on_openshift", "test_secure_metrics.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.029540465999161825, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 0.12649474700447172, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.010377908009104, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_secure_metrics.py::TestSecureMetrics::test_llmisvc_controller_args", "lineno": 191, "outcome": "passed", "keywords": ["test_llmisvc_controller_args", "TestSecureMetrics", "kserve_on_openshift", "test_secure_metrics.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.030967498023528606, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 0.12217027498991229, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.008470027009025, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_secure_metrics.py::TestSecureMetrics::test_rejects_unauthenticated", "lineno": 196, "outcome": "passed", "keywords": ["test_rejects_unauthenticated", "TestSecureMetrics", "kserve_on_openshift", "test_secure_metrics.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.033759772981284186, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 3.2165757149923593, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.010512164008105, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_secure_metrics.py::TestSecureMetrics::test_accepts_authenticated", "lineno": 203, "outcome": "passed", "keywords": ["test_accepts_authenticated", "TestSecureMetrics", "kserve_on_openshift", "test_secure_metrics.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.14842706301715225, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 2.859250139008509, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.134329856024124, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_sklearn.py::test_sklearn_kserve", "lineno": 56, "outcome": "passed", "keywords": ["test_sklearn_kserve", "asyncio", "predictor", "pytestmark", "test_sklearn.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03531781901256181, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 90.15839368500747, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.056877399998484, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "custom/test_custom_model_grpc.py::test_custom_model_grpc", "lineno": 55, "outcome": "skipped", "keywords": ["test_custom_model_grpc", "asyncio", "predictor", "grpc", "skip", "pytestmark", "test_custom_model_grpc.py", "custom/__init__.py", "e2e"], "setup": {"duration": 0.00012809300096705556, "outcome": "skipped", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\n('/workspace/source/test/e2e/custom/test_custom_model_grpc.py', 56, 'Skipped: Not testable in ODH at the moment')"}, "teardown": {"duration": 0.00010817201109603047, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "custom/test_ray.py::test_custom_model_http_ray", "lineno": 43, "outcome": "skipped", "keywords": ["test_custom_model_http_ray", "asyncio", "predictor", "skip", "pytestmark", "test_ray.py", "custom/__init__.py", "e2e"], "setup": {"duration": 0.00011046300642192364, "outcome": "skipped", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\n('/workspace/source/test/e2e/custom/test_ray.py', 44, 'Skipped: Not testable in ODH at the moment')"}, "teardown": {"duration": 0.00010153200128115714, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "logger/test_logger.py::test_kserve_logger", "lineno": 43, "outcome": "passed", "keywords": ["test_kserve_logger", "asyncio", "path_based_routing", "predictor", "pytestmark", "test_logger.py", "logger/__init__.py", "e2e"], "setup": {"duration": 0.03661827300675213, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 135.25881702298648, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 0.0002683060010895133, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_sklearn.py::test_sklearn_v2_mlserver", "lineno": 100, "outcome": "passed", "keywords": ["test_sklearn_v2_mlserver", "asyncio", "predictor", "pytestmark", "test_sklearn.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03376547800144181, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 190.2146127849992, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.0466599549981765, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_autogluon.py::test_autogluon_runtime_kserve_v1", "lineno": 57, "outcome": "passed", "keywords": ["test_autogluon_runtime_kserve_v1", "asyncio", "predictor", "autogluon", "pytestmark", "test_autogluon.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.033304012002190575, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 216.95631319700624, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.041217227990273, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_sklearn.py::test_sklearn_runtime_kserve", "lineno": 153, "outcome": "passed", "keywords": ["test_sklearn_runtime_kserve", "asyncio", "kourier", "predictor", "pytestmark", "test_sklearn.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.041566104016965255, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 42.38288743799785, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.04434358997969, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_sklearn.py::test_sklearn_v2_runtime_mlserver", "lineno": 222, "outcome": "passed", "keywords": ["test_sklearn_v2_runtime_mlserver", "asyncio", "predictor", "pytestmark", "test_sklearn.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.025808512000367045, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 100.17689554402023, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.046980870014522, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_autogluon.py::test_autogluon_runtime_kserve_v2", "lineno": 74, "outcome": "passed", "keywords": ["test_autogluon_runtime_kserve_v2", "asyncio", "predictor", "autogluon", "pytestmark", "test_autogluon.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03651631102547981, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 136.84841095400043, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.049117858026875, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_sklearn.py::test_sklearn_v2", "lineno": 280, "outcome": "passed", "keywords": ["test_sklearn_v2", "asyncio", "predictor", "pytestmark", "test_sklearn.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.033079589979024604, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 90.25795513400226, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.041000642988365, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_sklearn.py::test_sklearn_v2_grpc", "lineno": 346, "outcome": "skipped", "keywords": ["test_sklearn_v2_grpc", "skip", "asyncio", "predictor", "pytestmark", "test_sklearn.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.00018632400315254927, "outcome": "skipped", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\n('/workspace/source/test/e2e/predictor/test_sklearn.py', 347, 'Skipped: GRPC tests are failing in ODH at the moment')"}, "teardown": {"duration": 0.00011160297435708344, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_sklearn.py::test_sklearn_v2_mixed", "lineno": 401, "outcome": "passed", "keywords": ["test_sklearn_v2_mixed", "asyncio", "predictor", "pytestmark", "test_sklearn.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.0425032080092933, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 100.17171146499459, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.049093234993052, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_autogluon.py::test_autogluon_runtime_kserve_v2_input_variants", "lineno": 91, "outcome": "passed", "keywords": ["test_autogluon_runtime_kserve_v2_input_variants", "asyncio", "predictor", "autogluon", "pytestmark", "test_autogluon.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03742110598250292, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 107.21707328400225, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.138863742991816, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_sklearn.py::test_sklearn_v2_mixed_grpc", "lineno": 450, "outcome": "skipped", "keywords": ["test_sklearn_v2_mixed_grpc", "skip", "asyncio", "predictor", "pytestmark", "test_sklearn.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.00014883402036502957, "outcome": "skipped", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\n('/workspace/source/test/e2e/predictor/test_sklearn.py', 451, 'Skipped: GRPC tests are failing in ODH at the moment')"}, "teardown": {"duration": 0.0001136830251198262, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_tensorflow.py::test_tensorflow_kserve", "lineno": 31, "outcome": "passed", "keywords": ["test_tensorflow_kserve", "asyncio", "predictor", "pytestmark", "test_tensorflow.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03783102400484495, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 51.58317472101771, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.055867996008601, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_autogluon.py::test_autogluon_runtime_kserve_v2_storage_uri_without_trailing_slash", "lineno": 112, "outcome": "passed", "keywords": ["test_autogluon_runtime_kserve_v2_storage_uri_without_trailing_slash", "asyncio", "predictor", "autogluon", "pytestmark", "test_autogluon.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.02876240701880306, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 126.6537914450164, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.048590179998428, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_tensorflow.py::test_tensorflow_runtime_kserve", "lineno": 76, "outcome": "passed", "keywords": ["test_tensorflow_runtime_kserve", "asyncio", "predictor", "pytestmark", "test_tensorflow.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03539113199803978, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 41.40591130100074, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.0472538949979935, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_triton.py::test_triton", "lineno": 32, "outcome": "passed", "keywords": ["test_triton", "asyncio", "path_based_routing", "predictor", "pytestmark", "test_triton.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03088405999005772, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 142.71390049898764, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.054632406012388, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_autogluon_timeseries.py::test_autogluon_timeseries_runtime_kserve_v1", "lineno": 78, "outcome": "passed", "keywords": ["test_autogluon_timeseries_runtime_kserve_v1", "asyncio", "predictor", "autogluon", "pytestmark", "test_autogluon_timeseries.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03508378399419598, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 222.87888115100213, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.048468072025571, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_xgboost.py::test_xgboost_kserve", "lineno": 35, "outcome": "passed", "keywords": ["test_xgboost_kserve", "asyncio", "path_based_routing", "predictor", "pytestmark", "test_xgboost.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.0348396519839298, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 120.18087507897872, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.050163007021183, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_xgboost.py::test_xgboost_v2_mlserver", "lineno": 79, "outcome": "passed", "keywords": ["test_xgboost_v2_mlserver", "asyncio", "path_based_routing", "predictor", "pytestmark", "test_xgboost.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.02989902297849767, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 50.144205029006116, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.0523415010247845, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_autogluon_timeseries.py::test_autogluon_timeseries_runtime_kserve_v1_storage_uri_without_trailing_slash", "lineno": 93, "outcome": "passed", "keywords": ["test_autogluon_timeseries_runtime_kserve_v1_storage_uri_without_trailing_slash", "asyncio", "predictor", "autogluon", "pytestmark", "test_autogluon_timeseries.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.036656509997555986, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 35.31721156000276, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.047713334002765, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_autoscaling.py::test_sklearn_kserve_concurrency", "lineno": 52, "outcome": "skipped", "keywords": ["test_sklearn_kserve_concurrency", "skip", "asyncio", "predictor", "pytestmark", "test_autoscaling.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.0002120950084645301, "outcome": "skipped", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\n('/workspace/source/test/e2e/predictor/test_autoscaling.py', 53, 'Skipped: We do not test anymore with Knative')"}, "teardown": {"duration": 0.000124353013234213, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_autoscaling.py::test_sklearn_kserve_rps", "lineno": 102, "outcome": "skipped", "keywords": ["test_sklearn_kserve_rps", "skip", "asyncio", "predictor", "pytestmark", "test_autoscaling.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.00013438300811685622, "outcome": "skipped", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\n('/workspace/source/test/e2e/predictor/test_autoscaling.py', 103, 'Skipped: We do not test anymore with Knative')"}, "teardown": {"duration": 0.00010971201118081808, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_canary.py::test_canary_rollout", "lineno": 28, "outcome": "skipped", "keywords": ["test_canary_rollout", "skip", "path_based_routing", "predictor", "pytestmark", "test_canary.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.00013525300892069936, "outcome": "skipped", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\n('/workspace/source/test/e2e/predictor/test_canary.py', 29, 'Skipped: Canary rollouts require Knative Serving and are not supported in RawDeployment mode')"}, "teardown": {"duration": 0.00010097198537550867, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_canary.py::test_canary_rollout_runtime", "lineno": 101, "outcome": "skipped", "keywords": ["test_canary_rollout_runtime", "skip", "path_based_routing", "predictor", "pytestmark", "test_canary.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.00013193301856517792, "outcome": "skipped", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\n('/workspace/source/test/e2e/predictor/test_canary.py', 102, 'Skipped: Canary rollouts require Knative Serving and are not supported in RawDeployment mode')"}, "teardown": {"duration": 0.00010226198355667293, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_canary_raw_deployment.py::test_canary_create", "lineno": 248, "outcome": "passed", "keywords": ["test_canary_create", "raw", "predictor", "pytestmark", "test_canary_raw_deployment.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.0357594329980202, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 100.16460872002062, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.053999068011763, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_xgboost.py::test_xgboost_single_model_file", "lineno": 135, "outcome": "passed", "keywords": ["test_xgboost_single_model_file", "asyncio", "path_based_routing", "predictor", "pytestmark", "test_xgboost.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03336006699828431, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 50.15802443699795, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.0449600650172215, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_xgboost.py::test_xgboost_runtime_kserve", "lineno": 191, "outcome": "passed", "keywords": ["test_xgboost_runtime_kserve", "asyncio", "path_based_routing", "predictor", "pytestmark", "test_xgboost.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03580584001610987, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 100.17604798299726, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.051347614004044, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_canary_raw_deployment.py::test_canary_promote", "lineno": 320, "outcome": "passed", "keywords": ["test_canary_promote", "raw", "predictor", "pytestmark", "test_canary_raw_deployment.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03281816199887544, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 180.33559762799996, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.042151606990956, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_xgboost.py::test_xgboost_v2_runtime_mlserver", "lineno": 238, "outcome": "passed", "keywords": ["test_xgboost_v2_runtime_mlserver", "asyncio", "path_based_routing", "predictor", "pytestmark", "test_xgboost.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.031774759001564234, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 60.1517114249873, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.053811694000615, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_xgboost.py::test_xgboost_v2", "lineno": 297, "outcome": "passed", "keywords": ["test_xgboost_v2", "asyncio", "path_based_routing", "predictor", "pytestmark", "test_xgboost.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03244541698950343, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 80.17677379099769, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.0544439970108215, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_canary_raw_deployment.py::test_canary_rollback", "lineno": 402, "outcome": "passed", "keywords": ["test_canary_rollback", "raw", "predictor", "pytestmark", "test_canary_raw_deployment.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.035700217995326966, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 180.26306939098868, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.051715703011723, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_xgboost.py::test_xgboost_v2_grpc", "lineno": 347, "outcome": "skipped", "keywords": ["test_xgboost_v2_grpc", "asyncio", "predictor", "grpc", "skip", "pytestmark", "test_xgboost.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.00014644299517385662, "outcome": "skipped", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\n('/workspace/source/test/e2e/predictor/test_xgboost.py', 348, 'Skipped: Not testable in ODH at the moment')"}, "teardown": {"duration": 0.00012255299952812493, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "storage/test_oci_modelcar.py::test_oci_modelcar_uid_isvc", "lineno": 110, "outcome": "skipped", "keywords": ["test_oci_modelcar_uid_isvc", "predictor", "pytestmark", "test_oci_modelcar.py", "storage/__init__.py", "e2e"], "setup": {"duration": 0.035260859003756195, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 0.0002431150060147047, "outcome": "skipped", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\n('/workspace/source/test/e2e/storage/test_oci_modelcar.py', 121, 'Skipped: SKLEARN_MODELCAR_URI not set')"}, "teardown": {"duration": 0.00014260300667956471, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "storagespec/test_s3_storagespec.py::test_sklearn_s3_storagespec_kserve", "lineno": 45, "outcome": "passed", "keywords": ["test_sklearn_s3_storagespec_kserve", "asyncio", "path_based_routing", "predictor", "pytestmark", "test_s3_storagespec.py", "storagespec/__init__.py", "e2e"], "setup": {"duration": 0.033458177000284195, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 90.15323305598577, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 0.00016893399879336357, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "storagespec/test_s3_tls_storagespec.py::test_s3_tls_global_custom_cert_storagespec_kserve", "lineno": 215, "outcome": "passed", "keywords": ["test_s3_tls_global_custom_cert_storagespec_kserve", "kserve_on_openshift", "pytestmark", "test_s3_tls_storagespec.py", "storagespec/__init__.py", "e2e"], "setup": {"duration": 0.06880725198425353, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 102.25169281600392, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 0.0001704540045466274, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_canary_raw_deployment.py::test_canary_force_stop", "lineno": 479, "outcome": "passed", "keywords": ["test_canary_force_stop", "raw", "predictor", "pytestmark", "test_canary_raw_deployment.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.042267633019946516, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 95.2103086670104, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.053637672011973, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "storagespec/test_s3_tls_storagespec.py::test_s3_tls_custom_cert_storagespec_kserve", "lineno": 253, "outcome": "passed", "keywords": ["test_s3_tls_custom_cert_storagespec_kserve", "kserve_on_openshift", "pytestmark", "test_s3_tls_storagespec.py", "storagespec/__init__.py", "e2e"], "setup": {"duration": 0.04014705799636431, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 102.22748923598556, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 0.0001739140134304762, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_lightgbm.py::test_lightgbm_kserve", "lineno": 36, "outcome": "passed", "keywords": ["test_lightgbm_kserve", "asyncio", "path_based_routing", "predictor", "pytestmark", "test_lightgbm.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03639717600890435, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 90.18547819700325, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.053592450014548, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "storagespec/test_s3_tls_storagespec.py::test_s3_tls_serving_cert_storagespec_kserve", "lineno": 291, "outcome": "passed", "keywords": ["test_s3_tls_serving_cert_storagespec_kserve", "kserve_on_openshift", "pytestmark", "test_s3_tls_storagespec.py", "storagespec/__init__.py", "e2e"], "setup": {"duration": 0.03363113201339729, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 102.22045174299274, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 0.0002209559897892177, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_lightgbm.py::test_lightgbm_runtime_kserve", "lineno": 81, "outcome": "passed", "keywords": ["test_lightgbm_runtime_kserve", "asyncio", "path_based_routing", "predictor", "pytestmark", "test_lightgbm.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.0435601270000916, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 90.37799189399811, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.046720042999368, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_paddle.py::test_paddle_runtime", "lineno": 89, "outcome": "passed", "keywords": ["test_paddle_runtime", "asyncio", "predictor", "pytestmark", "test_paddle.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.0362424100167118, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 71.17979655499221, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.053009339986602, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_lightgbm.py::test_lightgbm_v2_runtime_mlserver", "lineno": 145, "outcome": "passed", "keywords": ["test_lightgbm_v2_runtime_mlserver", "asyncio", "path_based_routing", "predictor", "pytestmark", "test_lightgbm.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.0369982170232106, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 50.24373964898405, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.045687242993154, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_paddle.py::test_paddle_v2_kserve", "lineno": 145, "outcome": "passed", "keywords": ["test_paddle_v2_kserve", "asyncio", "predictor", "pytestmark", "test_paddle.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03365694000967778, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 71.57227612799034, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.051301214989508, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_lightgbm.py::test_lightgbm_v2_kserve", "lineno": 211, "outcome": "passed", "keywords": ["test_lightgbm_v2_kserve", "asyncio", "path_based_routing", "predictor", "pytestmark", "test_lightgbm.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.0480835149937775, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 30.14170178899076, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.050855429988587, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_lightgbm.py::test_lightgbm_v2_grpc", "lineno": 269, "outcome": "skipped", "keywords": ["test_lightgbm_v2_grpc", "asyncio", "predictor", "grpc", "skip", "pytestmark", "test_lightgbm.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.00019828500808216631, "outcome": "skipped", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\n('/workspace/source/test/e2e/predictor/test_lightgbm.py', 270, 'Skipped: Not testable in ODH at the moment')"}, "teardown": {"duration": 0.00015620299382135272, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_mlflow.py::test_mlflow_v2_runtime_kserve", "lineno": 32, "outcome": "passed", "keywords": ["test_mlflow_v2_runtime_kserve", "asyncio", "predictor", "pytestmark", "test_mlflow.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.032801927998661995, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 50.18669752398273, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.069959984015441, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_paddle.py::test_paddle_v2_grpc", "lineno": 205, "outcome": "skipped", "keywords": ["test_paddle_v2_grpc", "skip", "asyncio", "predictor", "pytestmark", "test_paddle.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.00019113501184619963, "outcome": "skipped", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\n('/workspace/source/test/e2e/predictor/test_paddle.py', 206, 'Skipped: GRPC tests are failing in ODH at the moment')"}, "teardown": {"duration": 0.00013162399409338832, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_pmml.py::test_pmml_kserve", "lineno": 34, "outcome": "passed", "keywords": ["test_pmml_kserve", "asyncio", "predictor", "pytestmark", "test_pmml.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.031611326994607225, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 101.34753473699675, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.051327383000171, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_multi_container_probing.py::test_multi_container_probing", "lineno": 54, "outcome": "passed", "keywords": ["test_multi_container_probing", "asyncio", "kserve_on_openshift", "pytestmark", "test_multi_container_probing.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.04006264900090173, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 80.2908167730202, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.0700392160215415, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_pmml.py::test_pmml_runtime_kserve", "lineno": 89, "outcome": "passed", "keywords": ["test_pmml_runtime_kserve", "asyncio", "predictor", "pytestmark", "test_pmml.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03892701299628243, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 101.19430042800377, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.0560195239959285, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_paddle.py::test_paddle", "lineno": 36, "outcome": "passed", "keywords": ["test_paddle", "asyncio", "predictor", "pytestmark", "test_paddle.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.04045521901571192, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 61.27943522998248, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.051433173008263, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_pmml.py::test_pmml_v2_grpc", "lineno": 223, "outcome": "skipped", "keywords": ["test_pmml_v2_grpc", "asyncio", "predictor", "grpc", "skip", "pytestmark", "test_pmml.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.00023935598437674344, "outcome": "skipped", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\n('/workspace/source/test/e2e/predictor/test_pmml.py', 224, 'Skipped: Not testable in ODH at the moment')"}, "teardown": {"duration": 0.00018034499953500926, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_pod_watch.py::test_event_storm_prevention_init_container_isolation", "lineno": 329, "outcome": "passed", "keywords": ["test_event_storm_prevention_init_container_isolation", "asyncio", "raw", "predictor", "pytestmark", "test_pod_watch.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03474865999305621, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 123.32810560101643, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.059058484999696, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_pmml.py::test_pmml_v2_kserve", "lineno": 143, "outcome": "passed", "keywords": ["test_pmml_v2_kserve", "asyncio", "predictor", "pytestmark", "test_pmml.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.03502729500178248, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "call": {"duration": 101.2088493029878, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}, "teardown": {"duration": 5.0532098510011565, "outcome": "passed", "longrepr": "[gw1] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}]}