in docker/build_artifacts/sagemaker/python_service.py [0:0]
def on_delete(self, req, res, model_name): # pylint: disable=W0613
if model_name not in self._model_tfs_pid:
res.status = falcon.HTTP_404
res.body = json.dumps({
"error": "Model {} is not loaded yet".format(model_name)
})
else:
try:
self._model_tfs_pid[model_name].kill()
os.remove("/sagemaker/tfs-config/{}/model-config.cfg".format(model_name))
os.rmdir("/sagemaker/tfs-config/{}".format(model_name))
release_rest_port = self._model_tfs_rest_port[model_name]
release_grpc_port = self._model_tfs_grpc_port[model_name]
with lock():
bisect.insort(self._tfs_ports["rest_port"], release_rest_port)
bisect.insort(self._tfs_ports["grpc_port"], release_grpc_port)
del self._model_tfs_rest_port[model_name]
del self._model_tfs_grpc_port[model_name]
del self._model_tfs_pid[model_name]
res.status = falcon.HTTP_200
res.body = json.dumps({
"success": "Successfully unloaded model {}.".format(model_name)
})
except OSError as error:
res.status = falcon.HTTP_500
res.body = json.dumps({
"error": str(error)
}).encode("utf-8")