summaryrefslogtreecommitdiff
path: root/openstackclient/api
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-01-16 21:14:08 +0000
committerGerrit Code Review <review@openstack.org>2015-01-16 21:14:08 +0000
commitb9e50a716d9ee5fa33e23621ddbe467837d941c7 (patch)
treeab6cebc80d1c06f998c85d43329362ffa1e7f2d1 /openstackclient/api
parentee62718dc8585f3260ca89886d7bf8546931053a (diff)
parentfff4a1cd23057160af13f157a6fde2c172fae7a9 (diff)
downloadpython-openstackclient-b9e50a716d9ee5fa33e23621ddbe467837d941c7.tar.gz
Merge "Add helpful messages when authN'ing with password"
Diffstat (limited to 'openstackclient/api')
-rw-r--r--openstackclient/api/auth.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/openstackclient/api/auth.py b/openstackclient/api/auth.py
index bfb2f83a..fa196fa4 100644
--- a/openstackclient/api/auth.py
+++ b/openstackclient/api/auth.py
@@ -24,6 +24,7 @@ from keystoneclient.auth import base
from openstackclient.common import exceptions as exc
from openstackclient.common import utils
+from openstackclient.i18n import _
LOG = logging.getLogger(__name__)
@@ -122,6 +123,25 @@ def build_auth_params(auth_plugin_name, cmd_options):
return (auth_plugin_class, auth_params)
+def check_valid_auth_options(options, auth_plugin_name):
+ """Perform basic option checking, provide helpful error messages"""
+
+ msg = ''
+ if auth_plugin_name.endswith('password'):
+ if not options.os_username:
+ msg += _('Set a username with --os-username or OS_USERNAME\n')
+ if not options.os_auth_url:
+ msg += _('Set an authentication URL, with --os-auth-url or'
+ ' OS_AUTH_URL\n')
+ if (not options.os_project_id and not options.os_domain_id and not
+ options.os_domain_name and not options.os_project_name):
+ msg += _('Set a scope, such as a project or domain, with '
+ '--os-project-name or OS_PROJECT_NAME')
+
+ if msg:
+ raise exc.CommandError('Missing parameter(s): \n%s' % msg)
+
+
def build_auth_plugins_option_parser(parser):
"""Auth plugins options builder
@@ -140,7 +160,7 @@ def build_auth_plugins_option_parser(parser):
' (Env: OS_AUTH_TYPE)',
choices=available_plugins
)
- # make sur we catch old v2.0 env values
+ # make sure we catch old v2.0 env values
envs = {
'OS_PROJECT_NAME': utils.env(
'OS_PROJECT_NAME',