mirror of
https://github.com/ansible/awx.git
synced 2026-01-15 20:00:43 -03:30
Changed library structure Origional TowerModule becomes TowerLegacyModule TowerModule from tower_api becomes TowerAPIModule A real base TowerModule is created in tower_module.py A new TowerAWXKitModule is created in tower_awxkit TowerAWXKitModule and TowerAPIModule are child classes of TowerModule
51 lines
1.6 KiB
Python
51 lines
1.6 KiB
Python
from __future__ import absolute_import, division, print_function
|
|
__metaclass__ = type
|
|
|
|
from . tower_module import TowerModule
|
|
from ansible.module_utils.basic import missing_required_lib
|
|
|
|
try:
|
|
from awxkit.api.client import Connection
|
|
from awxkit.api.pages.api import ApiV2
|
|
from awxkit.api import get_registered_page
|
|
HAS_AWX_KIT = True
|
|
except ImportError:
|
|
HAS_AWX_KIT = False
|
|
|
|
|
|
class TowerAWXKitModule(TowerModule):
|
|
connection = None
|
|
apiV2Ref = None
|
|
|
|
def __init__(self, argument_spec, **kwargs):
|
|
kwargs['supports_check_mode'] = False
|
|
|
|
super(TowerAWXKitModule, self).__init__(argument_spec=argument_spec, **kwargs)
|
|
|
|
# Die if we don't have AWX_KIT installed
|
|
if not HAS_AWX_KIT:
|
|
self.exit_module(msg=missing_required_lib('awxkit'))
|
|
|
|
# Establish our conneciton object
|
|
self.connection = Connection(self.host, verify=self.verify_ssl)
|
|
|
|
def authenticate(self):
|
|
try:
|
|
self.connection.login(username=self.username, password=self.password, token=self.oauth_token)
|
|
# If we have neither of these, then we can try un-authenticated access
|
|
self.authenticated = True
|
|
except Exception:
|
|
self.exit_module("Failed to authenticate")
|
|
|
|
def get_api_v2_object(self):
|
|
if not self.apiV2Ref:
|
|
if not self.authenticated:
|
|
self.authenticate()
|
|
v2_index = get_registered_page('/api/v2/')(self.connection).get()
|
|
self.api_ref = ApiV2(connection=self.connection, **{'json': v2_index})
|
|
return self.api_ref
|
|
|
|
def logout(self):
|
|
if self.authenticated:
|
|
self.connection.logout()
|