mirror of
https://github.com/ansible/awx.git
synced 2026-06-24 16:17:51 -02:30
Removal of OAuth2 stuff from CLI
also from awxkit generally Remove login command
This commit is contained in:
@@ -82,17 +82,9 @@ class CLI(object):
|
||||
return '--help' in self.argv or '-h' in self.argv
|
||||
|
||||
def authenticate(self):
|
||||
"""Configure the current session (or OAuth2.0 token)"""
|
||||
token = self.get_config('token')
|
||||
if token:
|
||||
self.root.connection.login(
|
||||
None,
|
||||
None,
|
||||
token=token,
|
||||
)
|
||||
else:
|
||||
config.use_sessions = True
|
||||
self.root.load_session().get()
|
||||
"""Configure the current session for basic auth"""
|
||||
config.use_sessions = True
|
||||
self.root.load_session().get()
|
||||
|
||||
def connect(self):
|
||||
"""Fetch top-level resources from /api/v2"""
|
||||
@@ -141,7 +133,7 @@ class CLI(object):
|
||||
"""Attempt to parse the <resource> (e.g., jobs) specified on the CLI
|
||||
|
||||
If a valid resource is discovered, the user will be authenticated
|
||||
(either via an OAuth2.0 token or session-based auth) and the remaining
|
||||
(via session-based auth) and the remaining
|
||||
CLI arguments will be processed (to determine the requested action
|
||||
e.g., list, create, delete)
|
||||
|
||||
|
||||
@@ -88,6 +88,3 @@ A few of the most important ones are:
|
||||
|
||||
``--conf.password, CONTROLLER_PASSWORD``
|
||||
the AWX password to use for authentication
|
||||
|
||||
``--conf.token, CONTROLLER_OAUTH_TOKEN``
|
||||
an OAuth2.0 token to use for authentication
|
||||
|
||||
@@ -30,12 +30,6 @@ def add_authentication_arguments(parser, env):
|
||||
default=env.get('CONTROLLER_HOST', env.get('TOWER_HOST', 'https://127.0.0.1:443')),
|
||||
metavar='https://example.awx.org',
|
||||
)
|
||||
auth.add_argument(
|
||||
'--conf.token',
|
||||
default=env.get('CONTROLLER_OAUTH_TOKEN', env.get('CONTROLLER_TOKEN', env.get('TOWER_OAUTH_TOKEN', env.get('TOWER_TOKEN', '')))),
|
||||
help='an OAuth2.0 token (get one by using `awx login`)',
|
||||
metavar='TEXT',
|
||||
)
|
||||
|
||||
config_username, config_password = get_config_credentials()
|
||||
# options configured via cli args take higher precedence than those from the config
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
import yaml
|
||||
import json
|
||||
import os
|
||||
|
||||
from awxkit import api, config, yaml_file
|
||||
from awxkit import config, yaml_file
|
||||
from awxkit.exceptions import ImportExportError
|
||||
from awxkit.utils import to_str
|
||||
from awxkit.api.pages import Page
|
||||
from awxkit.api.pages.api import EXPORTABLE_RESOURCES
|
||||
from awxkit.cli.format import FORMATTERS, format_response, add_authentication_arguments, add_formatting_import_export
|
||||
from awxkit.cli.utils import CustomRegistryMeta, cprint
|
||||
from awxkit.cli.format import format_response, add_formatting_import_export
|
||||
from awxkit.cli.utils import CustomRegistryMeta
|
||||
|
||||
|
||||
CONTROL_RESOURCES = ['ping', 'config', 'me', 'metrics', 'mesh_visualizer']
|
||||
@@ -66,44 +64,6 @@ class CustomCommand(metaclass=CustomRegistryMeta):
|
||||
raise NotImplementedError()
|
||||
|
||||
|
||||
class Login(CustomCommand):
|
||||
name = 'login'
|
||||
help_text = 'authenticate and retrieve an OAuth2 token'
|
||||
|
||||
def print_help(self, parser):
|
||||
add_authentication_arguments(parser, os.environ)
|
||||
parser.print_help()
|
||||
|
||||
def handle(self, client, parser):
|
||||
auth = parser.add_argument_group('OAuth2.0 Options')
|
||||
auth.add_argument('--description', help='description of the generated OAuth2.0 token', metavar='TEXT')
|
||||
auth.add_argument('--conf.client_id', metavar='TEXT')
|
||||
auth.add_argument('--conf.client_secret', metavar='TEXT')
|
||||
auth.add_argument('--conf.scope', choices=['read', 'write'], default='write')
|
||||
if client.help:
|
||||
self.print_help(parser)
|
||||
raise SystemExit()
|
||||
parsed = parser.parse_known_args()[0]
|
||||
kwargs = {
|
||||
'client_id': getattr(parsed, 'conf.client_id', None),
|
||||
'client_secret': getattr(parsed, 'conf.client_secret', None),
|
||||
'scope': getattr(parsed, 'conf.scope', None),
|
||||
}
|
||||
if getattr(parsed, 'description', None):
|
||||
kwargs['description'] = parsed.description
|
||||
try:
|
||||
token = api.Api().get_oauth2_token(**kwargs)
|
||||
except Exception as e:
|
||||
self.print_help(parser)
|
||||
cprint('Error retrieving an OAuth2.0 token ({}).'.format(e.__class__), 'red')
|
||||
else:
|
||||
fmt = client.get_config('format')
|
||||
if fmt == 'human':
|
||||
print('export CONTROLLER_OAUTH_TOKEN={}'.format(token))
|
||||
else:
|
||||
print(to_str(FORMATTERS[fmt]({'token': token}, '.')).strip())
|
||||
|
||||
|
||||
class Config(CustomCommand):
|
||||
name = 'config'
|
||||
help_text = 'print current configuration values'
|
||||
@@ -114,7 +74,6 @@ class Config(CustomCommand):
|
||||
raise SystemExit()
|
||||
return {
|
||||
'base_url': config.base_url,
|
||||
'token': client.get_config('token'),
|
||||
'use_sessions': config.use_sessions,
|
||||
'credentials': config.credentials,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user