Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions coriolisclient/cli/shell.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import six

from coriolisclient import client
from coriolisclient import exceptions
from coriolisclient import version


Expand Down Expand Up @@ -100,7 +101,7 @@ def check_auth_arguments(self, args, api_version=None, raise_exc=False):
successful = False

if not successful and raise_exc:
raise Exception(msg)
raise exceptions.CoriolisException(msg)

return successful

Expand Down Expand Up @@ -157,15 +158,15 @@ def create_client(self, args):
api_version = args.os_identity_api_version
verify = args.os_cacert or not args.insecure
if args.no_auth and args.os_auth_url:
raise Exception(
raise exceptions.CoriolisException(
'ERROR: argument --os-auth-url/-A: not allowed '
'with argument --no-auth/-N'
)

if args.no_auth:
if not all([args.endpoint, args.os_tenant_id or
args.os_project_id]):
raise Exception(
raise exceptions.CoriolisException(
'ERROR: please specify --endpoint and '
'--os-project-id (or --os-tenant-id)')
created_client = client.Client(
Expand All @@ -177,7 +178,8 @@ def create_client(self, args):
# Token-based authentication
elif args.os_auth_token:
if not args.os_auth_url:
raise Exception('ERROR: please specify --os-auth-url')
raise exceptions.CoriolisException(
'ERROR: please specify --os-auth-url')
token_kwargs = {
'auth_url': args.os_auth_url,
'token': args.os_auth_token
Expand Down Expand Up @@ -210,7 +212,8 @@ def create_client(self, args):
**endpoint_filter_kwargs
)
else:
raise Exception('ERROR: please specify authentication credentials')
raise exceptions.CoriolisException(
'ERROR: please specify authentication credentials')

return created_client

Expand Down
2 changes: 1 addition & 1 deletion coriolisclient/cli/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ def get_option_value_from_args(args, option_name, error_on_no_value=True):
with file_arg as fin:
raw_value = fin.read()

if not value and raw_value:
if raw_value:
try:
value = json.loads(raw_value)
except ValueError as ex:
Expand Down
129 changes: 129 additions & 0 deletions coriolisclient/tests/cli/data/shell_check_auth_arguments.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@

- config:
args:
os_project_id: "mock_os_project_id"
os_project_name: "mock_os_project_name"
os_project_domain_name: "mock_os_project_domain_name"
os_project_domain_id: "mock_os_project_domain_id"
os_tenant_id: "mock_os_tenant_id"
os_tenant_name: "mock_os_tenant_name"
api_version: '3'
raise_exc: False
expected_result: True

- config:
args:
os_project_id: "mock_os_project_id"
os_project_name: "mock_os_project_name"
os_project_domain_name: "mock_os_project_domain_name"
os_project_domain_id: "mock_os_project_domain_id"
os_tenant_id: "mock_os_tenant_id"
os_tenant_name: "mock_os_tenant_name"
api_version:
raise_exc: False
expected_result: True

- config:
args:
api_version: '3'
raise_exc: False
expected_result: False

- config:
args:
os_project_id: "mock_os_project_id"
api_version: '3'
raise_exc: False
expected_result: True

- config:
args:
os_project_name: "mock_os_project_name"
api_version: '3'
raise_exc: False
expected_result: False

- config:
args:
os_project_name: "mock_os_project_name"
os_project_domain_name: "mock_os_project_domain_name"
api_version: '3'
raise_exc: False
expected_result: True


- config:
args:
os_tenant_id: "mock_os_tenant_id"
api_version: '3'
raise_exc: False
expected_result: False

- config:
args:
os_project_name: "mock_os_project_name"
os_project_domain_name: "mock_os_project_domain_name"
api_version:
raise_exc: False
expected_result: True

- config:
args:
os_tenant_id: "mock_os_tenant_id"
os_tenant_name: "mock_os_tenant_name"
api_version:
raise_exc: False
expected_result: False

- config:
args:
api_version:
raise_exc: False
expected_result: False

- config:
args:
api_version:
raise_exc: True
expected_result:

- config:
args:
os_project_id: "mock_os_project_id"
os_project_name: "mock_os_project_name"
os_project_domain_name: "mock_os_project_domain_name"
os_project_domain_id: "mock_os_project_domain_id"
os_tenant_id: "mock_os_tenant_id"
os_tenant_name: "mock_os_tenant_name"
api_version: '2'
raise_exc: False
expected_result: True

- config:
args:
os_tenant_id: "mock_os_tenant_id"
os_tenant_name: "mock_os_tenant_name"
api_version: '2'
raise_exc: False
expected_result: True

- config:
args:
api_version: '2'
raise_exc: False
expected_result: False

- config:
args:
os_tenant_id: "mock_os_tenant_id"
api_version: '2'
raise_exc: False
expected_result: True

- config:
args:
os_project_name: "mock_os_project_name"
os_project_domain_name: "mock_os_project_domain_name"
api_version: '2'
raise_exc: False
expected_result: False
133 changes: 133 additions & 0 deletions coriolisclient/tests/cli/data/shell_create_keystone_auth.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@

- config:
args:
os_project_id: "mock_os_project_id"
os_project_name: "mock_os_project_name"
os_project_domain_name: "mock_os_project_domain_name"
os_project_domain_id: "mock_os_project_domain_id"
os_tenant_id: "mock_os_tenant_id"
os_tenant_name: "mock_os_tenant_name"
insecure: True
kwargs:
auth_url: "mock_auth_url"
token: "mock_token"
expected_kwargs:
auth_url: "mock_auth_url"
token: "mock_token"
project_id: "mock_os_project_id"
project_name: "mock_os_project_name"
project_domain_name: "mock_os_project_domain_name"
project_domain_id: "mock_os_project_domain_id"
verify: False
api_version: '3'
auth_type: 'token'
auth_fun: 'keystoneauth1.identity.v3.Token'

- config:
args:
os_project_id: "mock_os_project_id"
os_tenant_id: "mock_os_tenant_id"
kwargs:
auth_url: "mock_auth_url"
token: "mock_token"
expected_kwargs:
auth_url: "mock_auth_url"
token: "mock_token"
project_id: "mock_os_project_id"
api_version: '3'
auth_type: 'token'
auth_fun: 'keystoneauth1.identity.v3.Token'

- config:
args:
os_project_id: "mock_os_project_id"
os_tenant_id: "mock_os_tenant_id"
kwargs:
auth_url: "mock_auth_url"
expected_kwargs:
auth_url: "mock_auth_url"
project_id: "mock_os_project_id"
api_version: '3'
auth_type: 'other'
auth_fun: 'keystoneauth1.identity.v3.Password'


- config:
args:
os_project_id: "mock_os_project_id"
os_tenant_id: "mock_os_tenant_id"
kwargs:
auth_url: "mock_auth_url"
expected_kwargs:
auth_url: "mock_auth_url"
project_id: "mock_os_project_id"
api_version: '3'
auth_type:
auth_fun: 'keystoneauth1.identity.v3.Password'

- config:
args:
os_project_id: "mock_os_project_id"
os_project_name: "mock_os_project_name"
os_project_domain_name: "mock_os_project_domain_name"
os_project_domain_id: "mock_os_project_domain_id"
os_tenant_id: "mock_os_tenant_id"
os_tenant_name: "mock_os_tenant_name"
kwargs:
auth_url: "mock_auth_url"
token: "mock_token"
expected_kwargs:
auth_url: "mock_auth_url"
token: "mock_token"
tenant_id: "mock_os_tenant_id"
tenant_name: "mock_os_tenant_name"
api_version: '2'
auth_type: 'token'
auth_fun: 'keystoneauth1.identity.v2.Token'


- config:
args:
os_tenant_id: "mock_os_tenant_id"
os_tenant_name: "mock_os_tenant_name"
kwargs:
auth_url: "mock_auth_url"
token: "mock_token"
expected_kwargs:
auth_url: "mock_auth_url"
token: "mock_token"
tenant_id: "mock_os_tenant_id"
tenant_name: "mock_os_tenant_name"
api_version: '2'
auth_type: 'token'
auth_fun: 'keystoneauth1.identity.v2.Token'


- config:
args:
os_tenant_id: "mock_os_tenant_id"
os_tenant_name: "mock_os_tenant_name"
kwargs:
auth_url: "mock_auth_url"
expected_kwargs:
auth_url: "mock_auth_url"
tenant_id: "mock_os_tenant_id"
tenant_name: "mock_os_tenant_name"
api_version: '2'
auth_type: 'other'
auth_fun: 'keystoneauth1.identity.v2.Password'


- config:
args:
os_tenant_id: "mock_os_tenant_id"
os_tenant_name: "mock_os_tenant_name"
kwargs:
auth_url: "mock_auth_url"
expected_kwargs:
auth_url: "mock_auth_url"
tenant_id: "mock_os_tenant_id"
tenant_name: "mock_os_tenant_name"
api_version: '2'
auth_type:
auth_fun: 'keystoneauth1.identity.v2.Password'
2 changes: 2 additions & 0 deletions coriolisclient/tests/cli/data/user_scripts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
"mock_script1"
"mock_script2"
Loading