Skip to content

Commit 757c8ab

Browse files
author
Chuyang Deng
committed
Address comments.
1 parent 977e2e5 commit 757c8ab

File tree

5 files changed

+5
-58
lines changed

5 files changed

+5
-58
lines changed

CHANGELOG.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ CHANGELOG
77

88
* doc-fix: update information about saving models in the MXNet README
99
* doc-fix: change ReadTheDocs links from latest to stable
10-
* feature: Support for predictor to delete endpoint, and delete endpoint configuration with ``delete_endpoint()`` by default
10+
* feature: Make predictor to delete endpoint configuration by default when calling ``delete_endpoint()``
1111
* feature: Support for model class to delete SageMaker model
1212
* feature: Support for transformer to delete Sagemaker model
1313

README.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ Here is an end to end example of how to use a SageMaker Estimator:
196196
The example above will eventually delete both the SageMaker endpoint and endpoint configuration through `delete_endpoint()`. If you want to keep your SageMaker endpoint configuration, use the value False for the `delete_endpoint_config` parameter, as shown below.
197197

198198
.. code:: python
199-
# Only delete the endpoint and keep the endpoint endpoint configuration
199+
# Only delete the SageMaker endpoint, while keeping the corresponding endpoint configuration.
200200
mxnet_predictor.delete_endpoint(delete_endpoint_config=False)
201201
202202
Additionally, it is possible to deploy a different endpoint configuration, which links to your model, to an already existing SageMaker endpoint.

src/sagemaker/predictor.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -108,12 +108,9 @@ def _create_request_args(self, data, initial_args=None):
108108
def _delete_endpoint_config(self):
109109
"""Delete the Amazon SageMaker endpoint configuration
110110
"""
111-
try:
112-
endpoint_description = self.sagemaker_session.sagemaker_client.describe_endpoint(EndpointName=self.endpoint)
113-
endpoint_config_name = endpoint_description['EndpointConfigName']
114-
self.sagemaker_session.delete_endpoint_config(endpoint_config_name)
115-
except Exception:
116-
raise ValueError('The endpoint this config attached to does not exist.')
111+
endpoint_description = self.sagemaker_session.sagemaker_client.describe_endpoint(EndpointName=self.endpoint)
112+
endpoint_config_name = endpoint_description['EndpointConfigName']
113+
self.sagemaker_session.delete_endpoint_config(endpoint_config_name)
117114

118115
def delete_endpoint(self, delete_endpoint_config=True):
119116
"""Delete the Amazon SageMaker endpoint backing this predictor. Also delete the endpoint configuration attached

tests/integ/test_transformer.py

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -106,46 +106,6 @@ def test_attach_transform_kmeans(sagemaker_session):
106106
attached_transformer.wait()
107107

108108

109-
# def test_transformer_delete_model(sagemaker_session):
110-
# data_path = os.path.join(DATA_DIR, 'one_p_mnist')
111-
# pickle_args = {} if sys.version_info.major == 2 else {'encoding': 'latin1'}
112-
#
113-
# train_set_path = os.path.join(data_path, 'mnist.pkl.gz')
114-
# with gzip.open(train_set_path, 'rb') as f:
115-
# train_set, _, _ = pickle.load(f, **pickle_args)
116-
#
117-
# kmeans = KMeans(role='SageMakerRole', train_instance_count=1,
118-
# train_instance_type='ml.c4.xlarge', k=10, sagemaker_session=sagemaker_session,
119-
# output_path='s3://{}/'.format(sagemaker_session.default_bucket()))
120-
#
121-
# kmeans.init_method = 'random'
122-
# kmeans.max_iterations = 1
123-
# kmeans.tol = 1
124-
# kmeans.num_trials = 1
125-
# kmeans.local_init_method = 'kmeans++'
126-
# kmeans.half_life_time_size = 1
127-
# kmeans.epochs = 1
128-
#
129-
# records = kmeans.record_set(train_set[0][:100])
130-
# with timeout(minutes=TRAINING_DEFAULT_TIMEOUT_MINUTES):
131-
# kmeans.fit(records)
132-
#
133-
# transform_input_path = os.path.join(data_path, 'transform_input.csv')
134-
# transform_input_key_prefix = 'integ-test-data/one_p_mnist/transform'
135-
# transform_input = kmeans.sagemaker_session.upload_data(path=transform_input_path,
136-
# key_prefix=transform_input_key_prefix)
137-
#
138-
# transformer = _create_transformer_and_transform_job(kmeans, transform_input)
139-
# with timeout(minutes=TRANSFORM_DEFAULT_TIMEOUT_MINUTES):
140-
# transformer.wait()
141-
#
142-
# transformer.delete_model()
143-
#
144-
# with pytest.raises(Exception) as exception:
145-
# sagemaker_session.sagemaker_client.describe_model(ModelName=transformer.model_name)
146-
# assert 'Could not find model' in exception.value.message
147-
148-
149109
def test_transform_mxnet_vpc(sagemaker_session, mxnet_full_version):
150110
data_path = os.path.join(DATA_DIR, 'mxnet_mnist')
151111
script_path = os.path.join(data_path, 'mnist.py')

tests/unit/test_predictor.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -459,16 +459,6 @@ def test_delete_endpoint_with_config():
459459
sagemaker_session.delete_endpoint_config.assert_called_with('endpoint-config')
460460

461461

462-
def test_delete_non_existing_endpoint():
463-
sagemaker_session = empty_sagemaker_session()
464-
expected_error_message = 'The endpoint this config attached to does not exist.'
465-
sagemaker_session.sagemaker_client.describe_endpoint = Mock(side_effect=ValueError(expected_error_message))
466-
predictor = RealTimePredictor(ENDPOINT, sagemaker_session=sagemaker_session)
467-
468-
with pytest.raises(ValueError, match=expected_error_message):
469-
predictor.delete_endpoint()
470-
471-
472462
def test_delete_endpoint_only():
473463
sagemaker_session = empty_sagemaker_session()
474464
predictor = RealTimePredictor(ENDPOINT, sagemaker_session=sagemaker_session)

0 commit comments

Comments
 (0)