Skip to content

Commit 53063f2

Browse files
authored
Merge branch 'master' into MultiICNameFix
2 parents 7a6d1ce + e7ce13c commit 53063f2

File tree

6 files changed

+239
-155
lines changed

6 files changed

+239
-155
lines changed

src/sagemaker/image_uris.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ def retrieve(
101101
https://github.com/aws/deep-learning-containers/blob/master/available_images.md
102102
(default: None).
103103
distribution (dict): A dictionary with information on how to run distributed training
104+
base_framework_version (str): The base version number of PyTorch or Tensorflow.
105+
(default: None).
104106
training_compiler_config (:class:`~sagemaker.training_compiler.TrainingCompilerConfig`):
105107
A configuration class for the SageMaker Training Compiler
106108
(default: None).

src/sagemaker/model_monitor/model_monitoring.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2413,7 +2413,12 @@ def _update_data_quality_monitoring_schedule(
24132413
)
24142414
self.sagemaker_session.sagemaker_client.create_data_quality_job_definition(**request_dict)
24152415
try:
2416-
self._update_monitoring_schedule(new_job_definition_name, schedule_cron_expression)
2416+
self._update_monitoring_schedule(
2417+
job_definition_name=new_job_definition_name,
2418+
schedule_cron_expression=schedule_cron_expression,
2419+
data_analysis_start_time=data_analysis_start_time,
2420+
data_analysis_end_time=data_analysis_end_time,
2421+
)
24172422
self.job_definition_name = new_job_definition_name
24182423
if role is not None:
24192424
self.role = role

src/sagemaker/session.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5286,7 +5286,7 @@ def get_tagging_resources(self, tag_filters, resource_type_filters):
52865286
resource_tag_response = self.resource_group_tagging_client.get_resources(
52875287
TagFilters=tag_filters,
52885288
ResourceTypeFilters=resource_type_filters,
5289-
NextToken=next_token,
5289+
PaginationToken=next_token,
52905290
)
52915291
resource_list = resource_list + resource_tag_response["ResourceTagMappingList"]
52925292
next_token = resource_tag_response.get("PaginationToken")

tests/integ/sagemaker/serve/test_base_model_builder_deploy.py

Lines changed: 50 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,38 +12,72 @@
1212
# language governing permissions and limitations under the License.
1313
from __future__ import absolute_import
1414

15-
import pytest
16-
17-
from sagemaker import get_execution_role
18-
from sklearn.datasets import load_iris
19-
from sklearn.model_selection import train_test_split
20-
2115
import os
16+
import uuid
17+
from typing import Generator
2218

19+
import numpy as np
20+
import pandas as pd
21+
import pytest
22+
from sagemaker_core.main.resources import TrainingJob
2323
from sagemaker_core.main.shapes import (
2424
AlgorithmSpecification,
2525
Channel,
2626
DataSource,
27-
S3DataSource,
2827
OutputDataConfig,
2928
ResourceConfig,
29+
S3DataSource,
3030
StoppingCondition,
3131
)
32-
import uuid
33-
from sagemaker.serve.builder.model_builder import ModelBuilder
34-
import pandas as pd
35-
import numpy as np
36-
from sagemaker.serve import InferenceSpec, SchemaBuilder
37-
from sagemaker_core.main.resources import TrainingJob
32+
from sklearn.datasets import load_iris
33+
from sklearn.model_selection import train_test_split
3834
from xgboost import XGBClassifier
3935

40-
from sagemaker.serverless.serverless_inference_config import ServerlessInferenceConfig
41-
42-
from sagemaker.s3_utils import s3_path_join
36+
from sagemaker import get_execution_role
4337
from sagemaker.async_inference import AsyncInferenceConfig
38+
from sagemaker.s3_utils import s3_path_join
39+
from sagemaker.serve import InferenceSpec, SchemaBuilder
40+
from sagemaker.serve.builder.model_builder import ModelBuilder
41+
from sagemaker.serverless.serverless_inference_config import ServerlessInferenceConfig
4442
from tests.integ.utils import cleanup_model_resources
4543

4644

45+
@pytest.fixture(autouse=True)
46+
def cleanup_endpoints(mb_sagemaker_session) -> Generator[None, None, None]:
47+
"""Clean up any existing endpoints before and after tests."""
48+
sagemaker_client = mb_sagemaker_session.sagemaker_client
49+
50+
# Pre-test cleanup
51+
try:
52+
endpoints = sagemaker_client.list_endpoints()
53+
for endpoint in endpoints["Endpoints"]:
54+
try:
55+
sagemaker_client.delete_endpoint(EndpointName=endpoint["EndpointName"])
56+
sagemaker_client.delete_endpoint_config(
57+
EndpointConfigName=endpoint["EndpointConfigName"]
58+
)
59+
except Exception as e:
60+
print(f"Error cleaning up endpoint {endpoint['EndpointName']}: {e}")
61+
except Exception as e:
62+
print(f"Error listing endpoints: {e}")
63+
64+
yield
65+
66+
# Post-test cleanup
67+
try:
68+
endpoints = sagemaker_client.list_endpoints()
69+
for endpoint in endpoints["Endpoints"]:
70+
try:
71+
sagemaker_client.delete_endpoint(EndpointName=endpoint["EndpointName"])
72+
sagemaker_client.delete_endpoint_config(
73+
EndpointConfigName=endpoint["EndpointConfigName"]
74+
)
75+
except Exception as e:
76+
print(f"Error cleaning up endpoint {endpoint['EndpointName']}: {e}")
77+
except Exception as e:
78+
print(f"Error listing endpoints: {e}")
79+
80+
4781
@pytest.fixture(scope="module")
4882
def xgboost_model_builder(mb_sagemaker_session):
4983
sagemaker_session = mb_sagemaker_session

0 commit comments

Comments
 (0)