You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.5 KiB
45 lines
1.5 KiB
#!/usr/bin/env python
|
|
# Copyright (C) 2015-2019 Splunk Inc. All Rights Reserved.
|
|
import errno
|
|
import cexc
|
|
from models import deletemodels
|
|
from .BaseProcessor import BaseProcessor
|
|
|
|
logger = cexc.get_logger(__name__)
|
|
messages = cexc.get_messages_logger()
|
|
|
|
|
|
class DeleteModelProcessor(BaseProcessor):
|
|
"""The delete processor deletes a saved ML-SPL model."""
|
|
|
|
@staticmethod
|
|
def delete_model(process_options, searchinfo, namespace):
|
|
"""Actually delete the model.
|
|
|
|
Args:
|
|
process_options (dict): process options
|
|
searchinfo (dict): information required for search
|
|
namespace (string): namespace, 'user' or 'app'
|
|
"""
|
|
try:
|
|
deletemodels.delete_model(
|
|
process_options['model_name'], searchinfo, namespace=namespace
|
|
)
|
|
except (OSError, IOError) as e:
|
|
if e.errno == errno.ENOENT:
|
|
raise RuntimeError('model "%s" does not exist.' % process_options['model_name'])
|
|
raise RuntimeError(
|
|
'Failed to delete model "%s": %s.' % (process_options['model_name'], str(e))
|
|
)
|
|
except Exception as e:
|
|
cexc.log_traceback()
|
|
raise RuntimeError(
|
|
'Failed to delete model "%s": %s.' % (process_options['model_name'], str(e))
|
|
)
|
|
|
|
messages.info('Deleted model "%s"' % process_options['model_name'])
|
|
|
|
def process(self):
|
|
"""Delete the model."""
|
|
self.delete_model(self.process_options, self.searchinfo, namespace=self.namespace)
|