You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ariatosca.apache.org by ra...@apache.org on 2017/04/04 10:21:58 UTC
[04/24] incubator-ariatosca git commit: Refacor handling storage
exceptions stemming from unique names
Refacor handling storage exceptions stemming from unique names
Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/375228b6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/375228b6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/375228b6
Branch: refs/heads/ARIA-48-aria-cli
Commit: 375228b6a364727591f1319da4d89f6e38543fb9
Parents: 38d58d4
Author: Avia Efrat <av...@gigaspaces.com>
Authored: Mon Apr 3 15:44:00 2017 +0300
Committer: Ran Ziv <ra...@gigaspaces.com>
Committed: Tue Apr 4 13:20:46 2017 +0300
----------------------------------------------------------------------
aria/cli/commands/service_templates.py | 13 ++++---------
aria/cli/commands/services.py | 11 +++--------
aria/cli/constants.py | 4 ----
aria/cli/utils.py | 9 +++++++++
4 files changed, 16 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/375228b6/aria/cli/commands/service_templates.py
----------------------------------------------------------------------
diff --git a/aria/cli/commands/service_templates.py b/aria/cli/commands/service_templates.py
index 79f8012..6c6224b 100644
--- a/aria/cli/commands/service_templates.py
+++ b/aria/cli/commands/service_templates.py
@@ -21,9 +21,9 @@ from .. import utils
from .. import csar
from .. import service_template_utils
from ..cli import aria
-from ..constants import TWO_MODELS_WITH_THE_SAME_NAME_ERROR_TEMPLATE
from ..table import print_data
from ..exceptions import AriaCliError
+from ..utils import handle_storage_exception
from ...core import Core
from ...exceptions import AriaException
from ...storage import exceptions as storage_exceptions
@@ -119,14 +119,9 @@ def store(service_template_path, service_template_name, model_storage, resource_
core.create_service_template(service_template_path,
os.path.dirname(service_template_path),
service_template_name)
- except storage_exceptions.StorageError:
- logger.info(TWO_MODELS_WITH_THE_SAME_NAME_ERROR_TEMPLATE.format(
- model_class='service template',
- name=service_template_name))
- raise
-
- else:
- logger.info('Service template stored')
+ except storage_exceptions.StorageError as e:
+ handle_storage_exception(e, 'service template', service_template_name)
+ logger.info('Service template stored')
@service_templates.command(name='delete',
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/375228b6/aria/cli/commands/services.py
----------------------------------------------------------------------
diff --git a/aria/cli/commands/services.py b/aria/cli/commands/services.py
index 28fb499..e73c43b 100644
--- a/aria/cli/commands/services.py
+++ b/aria/cli/commands/services.py
@@ -19,10 +19,9 @@ from StringIO import StringIO
from . import service_templates
from ..cli import aria, helptexts
-from ..constants import TWO_MODELS_WITH_THE_SAME_NAME_ERROR_TEMPLATE
from ..exceptions import AriaCliError
from ..table import print_data
-from ..utils import storage_sort_param
+from ..utils import storage_sort_param, handle_storage_exception
from ...core import Core
from ...exceptions import AriaException
from ...storage import exceptions as storage_exceptions
@@ -99,16 +98,12 @@ def create(service_template_name,
try:
core = Core(model_storage, resource_storage, plugin_manager)
service = core.create_service(service_template_name, inputs, service_name)
- except storage_exceptions.StorageError:
- logger.info(TWO_MODELS_WITH_THE_SAME_NAME_ERROR_TEMPLATE.format(
- model_class='service',
- name=service_name))
- raise
+ except storage_exceptions.StorageError as e:
+ handle_storage_exception(e, 'service', service_name)
except AriaException as e:
logger.info(str(e))
service_templates.print_service_template_inputs(model_storage, service_template_name)
raise AriaCliError(str(e))
-
logger.info("Service created. The service's name is {0}".format(service.name))
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/375228b6/aria/cli/constants.py
----------------------------------------------------------------------
diff --git a/aria/cli/constants.py b/aria/cli/constants.py
index fdd37fc..67c094d 100644
--- a/aria/cli/constants.py
+++ b/aria/cli/constants.py
@@ -16,7 +16,3 @@
SAMPLE_SERVICE_TEMPLATE_FILENAME = 'service_template.yaml'
HELP_TEXT_COLUMN_BUFFER = 5
-TWO_MODELS_WITH_THE_SAME_NAME_ERROR_TEMPLATE = """
-Could not store {model_class} `{name}`
-There already a exists a {model_class} with the same name
-"""
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/375228b6/aria/cli/utils.py
----------------------------------------------------------------------
diff --git a/aria/cli/utils.py b/aria/cli/utils.py
index 3b68729..fff8e3a 100644
--- a/aria/cli/utils.py
+++ b/aria/cli/utils.py
@@ -150,3 +150,12 @@ def generate_progress_handler(file_path, action='', max_bar_length=80):
sys.stdout.write('\n')
return print_progress
+
+
+def handle_storage_exception(e, model_class, name):
+ if 'UNIQUE constraint failed' in e.msg:
+ msg = 'Could not store {model_class} `{name}`\n' \
+ 'There already a exists a {model_class} with the same name' \
+ .format(model_class=model_class, name=name)
+ raise AriaCliError(msg)
+ raise