From 29d98739471ca90dbecc381bcccc5d4b8e1f165b Mon Sep 17 00:00:00 2001 From: Steven Hardy Date: Fri, 10 Jan 2014 16:00:43 +0000 Subject: [PATCH] Clarify roles validation error messages When doing the xor validation tests, we should differentiate between the case where the user passed both arguments vs passing neither, otherwise the error message is confusing when you don't pass either. Change-Id: I99c307339ccd045a4c5b71824f3b7d91e2908154 --- keystoneclient/v3/roles.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/keystoneclient/v3/roles.py b/keystoneclient/v3/roles.py index 8908e227a..022a4ecf5 100644 --- a/keystoneclient/v3/roles.py +++ b/keystoneclient/v3/roles.py @@ -57,14 +57,20 @@ class RoleManager(base.CrudManager): return base_url % params def _require_domain_xor_project(self, domain, project): - if (domain and project) or (not domain and not project): + if domain and project: msg = 'Specify either a domain or project, not both' raise exceptions.ValidationError(msg) + elif not (domain or project): + msg = 'Must specify either a domain or project' + raise exceptions.ValidationError(msg) def _require_user_xor_group(self, user, group): - if (user and group) or (not user and not group): + if user and group: msg = 'Specify either a user or group, not both' raise exceptions.ValidationError(msg) + elif not (user or group): + msg = 'Must specify either a user or group' + raise exceptions.ValidationError(msg) def create(self, name): return super(RoleManager, self).create(