Add error message when OS_USERNAME or OS_PASSWORD not provided
Closes-Bug: #1607631 Change-Id: I7be9dbc0a5e496d896435b000b5108fd114206ac
This commit is contained in:
@@ -31,6 +31,7 @@ import mistralclient.commands.v2.services
|
|||||||
import mistralclient.commands.v2.tasks
|
import mistralclient.commands.v2.tasks
|
||||||
import mistralclient.commands.v2.workbooks
|
import mistralclient.commands.v2.workbooks
|
||||||
import mistralclient.commands.v2.workflows
|
import mistralclient.commands.v2.workflows
|
||||||
|
from mistralclient import exceptions as exe
|
||||||
from mistralclient.openstack.common import cliutils as c
|
from mistralclient.openstack.common import cliutils as c
|
||||||
|
|
||||||
from cliff import app
|
from cliff import app
|
||||||
@@ -237,7 +238,7 @@ class MistralShell(app.App):
|
|||||||
'--os-username',
|
'--os-username',
|
||||||
action='store',
|
action='store',
|
||||||
dest='username',
|
dest='username',
|
||||||
default=c.env('OS_USERNAME', default='admin'),
|
default=c.env('OS_USERNAME'),
|
||||||
help='Authentication username (Env: OS_USERNAME)'
|
help='Authentication username (Env: OS_USERNAME)'
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -376,6 +377,19 @@ class MistralShell(app.App):
|
|||||||
if do_help or ('bash-completion' in argv):
|
if do_help or ('bash-completion' in argv):
|
||||||
self.options.auth_url = None
|
self.options.auth_url = None
|
||||||
|
|
||||||
|
if self.options.auth_url and not self.options.token:
|
||||||
|
if not self.options.username:
|
||||||
|
raise exe.IllegalArgumentException(
|
||||||
|
("You must provide a username "
|
||||||
|
"via --os-username env[OS_USERNAME]")
|
||||||
|
)
|
||||||
|
|
||||||
|
if not self.options.password:
|
||||||
|
raise exe.IllegalArgumentException(
|
||||||
|
("You must provide a password "
|
||||||
|
"via --os-password env[OS_PASSWORD]")
|
||||||
|
)
|
||||||
|
|
||||||
kwargs = {
|
kwargs = {
|
||||||
'cert': self.options.os_cert,
|
'cert': self.options.os_cert,
|
||||||
'key': self.options.os_key
|
'key': self.options.os_key
|
||||||
|
@@ -84,7 +84,12 @@ class TestShell(base.BaseShellTests):
|
|||||||
|
|
||||||
@mock.patch('mistralclient.api.client.client')
|
@mock.patch('mistralclient.api.client.client')
|
||||||
def test_auth_url(self, mock):
|
def test_auth_url(self, mock):
|
||||||
self.shell('--os-auth-url=https://127.0.0.1:35357/v3 workbook-list')
|
self.shell(
|
||||||
|
'--os-auth-url=https://127.0.0.1:35357/v3 '
|
||||||
|
'--os-username=admin '
|
||||||
|
'--os-password=1234 '
|
||||||
|
'workbook-list'
|
||||||
|
)
|
||||||
self.assertTrue(mock.called)
|
self.assertTrue(mock.called)
|
||||||
params = mock.call_args
|
params = mock.call_args
|
||||||
self.assertEqual('https://127.0.0.1:35357/v3', params[1]['auth_url'])
|
self.assertEqual('https://127.0.0.1:35357/v3', params[1]['auth_url'])
|
||||||
@@ -105,7 +110,10 @@ class TestShell(base.BaseShellTests):
|
|||||||
|
|
||||||
@mock.patch('mistralclient.api.client.client')
|
@mock.patch('mistralclient.api.client.client')
|
||||||
def test_default_auth_url_with_os_auth_token(self, mock):
|
def test_default_auth_url_with_os_auth_token(self, mock):
|
||||||
self.shell('--os-auth-token=abcd1234 workbook-list')
|
self.shell(
|
||||||
|
'--os-auth-token=abcd1234 '
|
||||||
|
'workbook-list'
|
||||||
|
)
|
||||||
self.assertTrue(mock.called)
|
self.assertTrue(mock.called)
|
||||||
params = mock.call_args
|
params = mock.call_args
|
||||||
self.assertEqual('http://localhost:35357/v3', params[1]['auth_url'])
|
self.assertEqual('http://localhost:35357/v3', params[1]['auth_url'])
|
||||||
|
Reference in New Issue
Block a user