Add a tripleo-common module util
This change will co-locate all tripleo-common utility code which we use within modules. By creating a module util for tripleo-common we'll save duplication and ensure functionality across all modules that leverage tripleo-common. The ansible-auto-doc plugin has been updated to support a new module-util. Change-Id: Ic85c45a64e160223a012b77f698c2224da5d09d7 Signed-off-by: Kevin Carter <kecarter@redhat.com>
This commit is contained in:
parent
02a9baa9f7
commit
2adb49cf63
|
@ -88,7 +88,8 @@ bug_project = 'tripleo'
|
||||||
bug_tag = 'documentation'
|
bug_tag = 'documentation'
|
||||||
|
|
||||||
needed_module_utils = [
|
needed_module_utils = [
|
||||||
'baremetal_deploy'
|
'baremetal_deploy',
|
||||||
|
'tripleo_common_utils'
|
||||||
]
|
]
|
||||||
# load our custom module_utils so that modules can be imported for
|
# load our custom module_utils so that modules can be imported for
|
||||||
# generating docs
|
# generating docs
|
||||||
|
|
|
@ -0,0 +1,233 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
# Copyright 2020 Red Hat, Inc.
|
||||||
|
# All Rights Reserved.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
# NOTE: This is still using the legacy clients. We've not
|
||||||
|
# changed to using the OpenStackSDK fully because
|
||||||
|
# tripleo-common expects the legacy clients. Once
|
||||||
|
# we've updated tripleo-common to use the SDK we
|
||||||
|
# should revise this.
|
||||||
|
from glanceclient import client as glanceclient
|
||||||
|
from heatclient.v1 import client as heatclient
|
||||||
|
from ironicclient import client as ironicclient
|
||||||
|
from novaclient import client as novaclient
|
||||||
|
from swiftclient import client as swift_client
|
||||||
|
|
||||||
|
from tripleo_common.actions import baremetal
|
||||||
|
from tripleo_common.utils import nodes
|
||||||
|
from tripleo_common.utils import parameters
|
||||||
|
|
||||||
|
import ironic_inspector_client
|
||||||
|
|
||||||
|
|
||||||
|
class TripleOCommon(object):
|
||||||
|
def __init__(self, session):
|
||||||
|
self.sess = session
|
||||||
|
self.client_cache = dict()
|
||||||
|
|
||||||
|
def get_ironic_inspector_client(self):
|
||||||
|
"""Return the ironic inspector client.
|
||||||
|
|
||||||
|
This method will return a client object using the legacy library. Upon
|
||||||
|
the creation of a successful client creation, the client object will
|
||||||
|
be stored in the `self.client_cache object`, should this method be
|
||||||
|
called more than once, the cached object will automatically return,
|
||||||
|
resulting in fewer authentications and faster API interactions.
|
||||||
|
|
||||||
|
:returns: Object
|
||||||
|
"""
|
||||||
|
|
||||||
|
if 'ironic_inspector_client' in self.client_cache:
|
||||||
|
return self.client_cache['ironic_inspector_client']
|
||||||
|
else:
|
||||||
|
self.client_cache['ironic_inspector_client'] = \
|
||||||
|
ironic_inspector_client.ClientV1(session=self.sess)
|
||||||
|
return self.client_cache['ironic_inspector_client']
|
||||||
|
|
||||||
|
def get_orchestration_client(self):
|
||||||
|
"""Return the orchestration (heat) client.
|
||||||
|
|
||||||
|
This method will return a client object using the legacy library. Upon
|
||||||
|
the creation of a successful client creation, the client object will
|
||||||
|
be stored in the `self.client_cache object`, should this method be
|
||||||
|
called more than once, the cached object will automatically return,
|
||||||
|
resulting in fewer authentications and faster API interactions.
|
||||||
|
|
||||||
|
:returns: Object
|
||||||
|
"""
|
||||||
|
|
||||||
|
if 'heatclient' in self.client_cache:
|
||||||
|
return self.client_cache['heatclient']
|
||||||
|
else:
|
||||||
|
self.client_cache['heatclient'] = \
|
||||||
|
heatclient.Client(session=self.sess)
|
||||||
|
return self.client_cache['heatclient']
|
||||||
|
|
||||||
|
def get_compute_client(self):
|
||||||
|
"""Return the compute (nova) client.
|
||||||
|
|
||||||
|
This method will return a client object using the legacy library. Upon
|
||||||
|
the creation of a successful client creation, the client object will
|
||||||
|
be stored in the `self.client_cache object`, should this method be
|
||||||
|
called more than once, the cached object will automatically return,
|
||||||
|
resulting in fewer authentications and faster API interactions.
|
||||||
|
|
||||||
|
:returns: Object
|
||||||
|
"""
|
||||||
|
|
||||||
|
if 'novaclient' in self.client_cache:
|
||||||
|
return self.client_cache['novaclient']
|
||||||
|
else:
|
||||||
|
self.client_cache['novaclient'] = \
|
||||||
|
novaclient.Client(version=2, session=self.sess)
|
||||||
|
return self.client_cache['novaclient']
|
||||||
|
|
||||||
|
def get_baremetal_client(self):
|
||||||
|
"""Return the baremetal (ironic) client.
|
||||||
|
|
||||||
|
This method will return a client object using the legacy library. Upon
|
||||||
|
the creation of a successful client creation, the client object will
|
||||||
|
be stored in the `self.client_cache object`, should this method be
|
||||||
|
called more than once, the cached object will automatically return,
|
||||||
|
resulting in fewer authentications and faster API interactions.
|
||||||
|
|
||||||
|
:returns: Object
|
||||||
|
"""
|
||||||
|
|
||||||
|
if 'ironicclient' in self.client_cache:
|
||||||
|
return self.client_cache['ironicclient']
|
||||||
|
else:
|
||||||
|
self.client_cache['ironicclient'] = \
|
||||||
|
ironicclient.Client(
|
||||||
|
1,
|
||||||
|
session=self.sess,
|
||||||
|
os_ironic_api_version='1.36'
|
||||||
|
)
|
||||||
|
return self.client_cache['ironicclient']
|
||||||
|
|
||||||
|
def get_image_client(self):
|
||||||
|
"""Return the image (glance) client.
|
||||||
|
|
||||||
|
This method will return a client object using the legacy library. Upon
|
||||||
|
the creation of a successful client creation, the client object will
|
||||||
|
be stored in the `self.client_cache object`, should this method be
|
||||||
|
called more than once, the cached object will automatically return,
|
||||||
|
resulting in fewer authentications and faster API interactions.
|
||||||
|
|
||||||
|
:returns: Object
|
||||||
|
"""
|
||||||
|
|
||||||
|
if 'glanceclient' in self.client_cache:
|
||||||
|
return self.client_cache['glanceclient']
|
||||||
|
else:
|
||||||
|
self.client_cache['glanceclient'] = \
|
||||||
|
glanceclient.Client(
|
||||||
|
2,
|
||||||
|
session=self.sess
|
||||||
|
)
|
||||||
|
return self.client_cache['glanceclient']
|
||||||
|
|
||||||
|
def get_object_client(self):
|
||||||
|
"""Return the object (swift) client.
|
||||||
|
|
||||||
|
This method will return a client object using the legacy library. Upon
|
||||||
|
the creation of a successful client creation, the client object will
|
||||||
|
be stored in the `self.client_cache object`, should this method be
|
||||||
|
called more than once, the cached object will automatically return,
|
||||||
|
resulting in fewer authentications and faster API interactions.
|
||||||
|
|
||||||
|
:returns: Object
|
||||||
|
"""
|
||||||
|
|
||||||
|
if 'swift_client' in self.client_cache:
|
||||||
|
return self.client_cache['swift_client']
|
||||||
|
else:
|
||||||
|
self.client_cache['swift_client'] = \
|
||||||
|
swift_client.Connection(
|
||||||
|
session=self.sess,
|
||||||
|
retries=10,
|
||||||
|
starting_backoff=3,
|
||||||
|
max_backoff=120
|
||||||
|
)
|
||||||
|
return self.client_cache['swift_client']
|
||||||
|
|
||||||
|
def baremetal_configure_boot(self, kwargs):
|
||||||
|
"""Run the action configure boot, and return data.
|
||||||
|
|
||||||
|
:param kwargs: options to pass into the ConfigureBootAction
|
||||||
|
:type kwargs: Dictionary
|
||||||
|
|
||||||
|
:returns: Object
|
||||||
|
"""
|
||||||
|
|
||||||
|
action = baremetal.ConfigureBootAction(**kwargs)
|
||||||
|
baremetal_client = ironicclient.Client(
|
||||||
|
1,
|
||||||
|
session=self.sess
|
||||||
|
)
|
||||||
|
image_client = glanceclient.Client(2, session=self.sess)
|
||||||
|
return action.configure_boot(
|
||||||
|
baremetal_client,
|
||||||
|
image_client
|
||||||
|
)
|
||||||
|
|
||||||
|
def baremetal_configure_root_device(self, kwargs):
|
||||||
|
"""Run the action configure root device, and return data.
|
||||||
|
|
||||||
|
:param kwargs: options to pass into the ConfigureRootDeviceAction
|
||||||
|
:type kwargs: Dictionary
|
||||||
|
|
||||||
|
:returns: Object
|
||||||
|
"""
|
||||||
|
|
||||||
|
action = baremetal.ConfigureRootDeviceAction(**kwargs)
|
||||||
|
baremetal_client = ironicclient.Client(
|
||||||
|
1,
|
||||||
|
session=self.sess
|
||||||
|
)
|
||||||
|
inspector_client = self.get_ironic_inspector_client()
|
||||||
|
if not action.root_device:
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
return action.configure_root_device(
|
||||||
|
baremetal_client,
|
||||||
|
inspector_client
|
||||||
|
)
|
||||||
|
|
||||||
|
def return_baremetal_data(self, node_id):
|
||||||
|
"""Return baremetal data from the ironic inspector.
|
||||||
|
|
||||||
|
:param node_id: Node UUID
|
||||||
|
:type node_id: String
|
||||||
|
|
||||||
|
:returns: Object
|
||||||
|
"""
|
||||||
|
|
||||||
|
client = self.get_ironic_inspector_client()
|
||||||
|
return client.get_data(node_id=node_id)
|
||||||
|
|
||||||
|
def return_flavor_profile(self, flavor_name):
|
||||||
|
"""Return flavor profile information.
|
||||||
|
|
||||||
|
:param flavor_name: Flavor name
|
||||||
|
:type flavor_name: String
|
||||||
|
|
||||||
|
:returns: Object
|
||||||
|
"""
|
||||||
|
|
||||||
|
return parameters.get_profile_of_flavor(
|
||||||
|
flavor_name=flavor_name,
|
||||||
|
compute_client=self.get_compute_client()
|
||||||
|
)
|
|
@ -21,18 +21,12 @@ from __future__ import print_function
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
from ansible.module_utils import tripleo_common_utils as tc
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
from ansible.module_utils.openstack import openstack_full_argument_spec
|
from ansible.module_utils.openstack import openstack_full_argument_spec
|
||||||
from ansible.module_utils.openstack import openstack_module_kwargs
|
from ansible.module_utils.openstack import openstack_module_kwargs
|
||||||
from ansible.module_utils.openstack import openstack_cloud_from_module
|
from ansible.module_utils.openstack import openstack_cloud_from_module
|
||||||
|
|
||||||
# NOTE(cloudnull): This is still using the legacy clients. We've not
|
|
||||||
# changed to using the OpenStackSDK fully because
|
|
||||||
# tripleo-common expects the legacy clients. Once
|
|
||||||
# we've updated tripleo-common to use the SDK we
|
|
||||||
# should revise this.
|
|
||||||
from glanceclient import client as glanceclient
|
|
||||||
from ironicclient import client as ironicclient
|
|
||||||
from tripleo_common.utils import nodes
|
from tripleo_common.utils import nodes
|
||||||
|
|
||||||
ANSIBLE_METADATA = {
|
ANSIBLE_METADATA = {
|
||||||
|
@ -73,21 +67,6 @@ author:
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
|
||||||
def _get_baremetal_client(session):
|
|
||||||
return ironicclient.Client(
|
|
||||||
1,
|
|
||||||
session=session,
|
|
||||||
os_ironic_api_version='1.36'
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def _get_image_client(session):
|
|
||||||
return glanceclient.Client(
|
|
||||||
2,
|
|
||||||
session=session
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def run_module():
|
def run_module():
|
||||||
result = dict(
|
result = dict(
|
||||||
success=False,
|
success=False,
|
||||||
|
@ -106,7 +85,7 @@ def run_module():
|
||||||
)
|
)
|
||||||
|
|
||||||
_, conn = openstack_cloud_from_module(module)
|
_, conn = openstack_cloud_from_module(module)
|
||||||
session = conn.session
|
tripleo = tc.TripleOCommon(session=conn.session)
|
||||||
|
|
||||||
# if the user is working with this module in only check mode we do not
|
# if the user is working with this module in only check mode we do not
|
||||||
# want to make any changes to the environment, just return the current
|
# want to make any changes to the environment, just return the current
|
||||||
|
@ -126,8 +105,8 @@ def run_module():
|
||||||
module.params['instance_boot_option'])
|
module.params['instance_boot_option'])
|
||||||
node['capabilities'] = nodes.dict_to_capabilities(caps)
|
node['capabilities'] = nodes.dict_to_capabilities(caps)
|
||||||
|
|
||||||
baremetal_client = _get_baremetal_client(session)
|
baremetal_client = tripleo.get_baremetal_client()
|
||||||
image_client = _get_image_client(session)
|
image_client = tripleo.get_image_client()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
registered_nodes = nodes.register_all_nodes(
|
registered_nodes = nodes.register_all_nodes(
|
||||||
|
|
|
@ -339,7 +339,6 @@ EXAMPLES = '''
|
||||||
|
|
||||||
- os_baremetal_node_info:
|
- os_baremetal_node_info:
|
||||||
cloud: undercloud
|
cloud: undercloud
|
||||||
auth: password
|
|
||||||
filters:
|
filters:
|
||||||
is_maintenance: true
|
is_maintenance: true
|
||||||
'''
|
'''
|
||||||
|
@ -362,22 +361,16 @@ def _choose_id_value(module):
|
||||||
def main():
|
def main():
|
||||||
|
|
||||||
argument_spec = openstack_full_argument_spec(
|
argument_spec = openstack_full_argument_spec(
|
||||||
**yaml.safe_load(DOCUMENTATION)['options'])
|
**yaml.safe_load(DOCUMENTATION)['options']
|
||||||
|
)
|
||||||
module_kwargs = openstack_module_kwargs()
|
module_kwargs = openstack_module_kwargs()
|
||||||
module = AnsibleModule(argument_spec, **module_kwargs)
|
module = AnsibleModule(
|
||||||
|
argument_spec,
|
||||||
if (module.params['auth_type'] in [None, 'None'] and
|
supports_check_mode=False,
|
||||||
module.params['ironic_url'] is None):
|
**module_kwargs
|
||||||
module.fail_json(msg="Authentication appears to be disabled, "
|
)
|
||||||
"Please define an ironic_url parameter")
|
|
||||||
|
|
||||||
if (module.params['ironic_url'] and
|
|
||||||
module.params['auth_type'] in [None, 'None']):
|
|
||||||
module.params['auth'] = dict(
|
|
||||||
endpoint=module.params['ironic_url']
|
|
||||||
)
|
|
||||||
|
|
||||||
sdk, cloud = openstack_cloud_from_module(module)
|
sdk, cloud = openstack_cloud_from_module(module)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if module.params['name'] or module.params['uuid']:
|
if module.params['name'] or module.params['uuid']:
|
||||||
result = cloud.get_machine(_choose_id_value(module))
|
result = cloud.get_machine(_choose_id_value(module))
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
|
|
||||||
|
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
|
from ansible.module_utils import tripleo_common_utils as tc
|
||||||
from ansible.module_utils.openstack import openstack_full_argument_spec
|
from ansible.module_utils.openstack import openstack_full_argument_spec
|
||||||
from ansible.module_utils.openstack import openstack_module_kwargs
|
from ansible.module_utils.openstack import openstack_module_kwargs
|
||||||
from ansible.module_utils.openstack import openstack_cloud_from_module
|
from ansible.module_utils.openstack import openstack_cloud_from_module
|
||||||
|
@ -72,48 +73,6 @@ import os
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
# NOTE(cloudnull): This is still using the legacy clients. We've not
|
|
||||||
# changed to using the OpenStackSDK fully because
|
|
||||||
# tripleo-common expects the legacy clients. Once
|
|
||||||
# we've updated tripleo-common to use the SDK we
|
|
||||||
# should revise this.
|
|
||||||
from tripleo_common.actions import baremetal
|
|
||||||
from glanceclient import client as glanceclient
|
|
||||||
from ironicclient import client as ironicclient
|
|
||||||
import ironic_inspector_client
|
|
||||||
|
|
||||||
|
|
||||||
class TripleOCommon(object):
|
|
||||||
def __init__(self, session):
|
|
||||||
self.sess = session
|
|
||||||
|
|
||||||
def baremetal_configure_boot(self, kwargs):
|
|
||||||
action = baremetal.ConfigureBootAction(**kwargs)
|
|
||||||
baremetal_client = ironicclient.Client(
|
|
||||||
1,
|
|
||||||
session=self.sess
|
|
||||||
)
|
|
||||||
image_client = glanceclient.Client(2, session=self.sess)
|
|
||||||
return action.configure_boot(
|
|
||||||
baremetal_client,
|
|
||||||
image_client
|
|
||||||
)
|
|
||||||
|
|
||||||
def baremetal_configure_root_device(self, kwargs):
|
|
||||||
action = baremetal.ConfigureRootDeviceAction(**kwargs)
|
|
||||||
baremetal_client = ironicclient.Client(
|
|
||||||
1,
|
|
||||||
session=self.sess
|
|
||||||
)
|
|
||||||
inspector_client = ironic_inspector_client.ClientV1(session=self.sess)
|
|
||||||
if not action.root_device:
|
|
||||||
return
|
|
||||||
else:
|
|
||||||
return action.configure_root_device(
|
|
||||||
baremetal_client,
|
|
||||||
inspector_client
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
argument_spec = openstack_full_argument_spec(
|
argument_spec = openstack_full_argument_spec(
|
||||||
|
@ -125,7 +84,7 @@ def main():
|
||||||
)
|
)
|
||||||
|
|
||||||
_, conn = openstack_cloud_from_module(module)
|
_, conn = openstack_cloud_from_module(module)
|
||||||
tripleo = TripleOCommon(session=conn.session)
|
tripleo = tc.TripleOCommon(session=conn.session)
|
||||||
|
|
||||||
if hasattr(tripleo, module.params["action"]):
|
if hasattr(tripleo, module.params["action"]):
|
||||||
action = getattr(tripleo, module.params["action"])
|
action = getattr(tripleo, module.params["action"])
|
||||||
|
|
|
@ -21,17 +21,12 @@ from __future__ import print_function
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
from ansible.module_utils import tripleo_common_utils as tc
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
from ansible.module_utils.openstack import openstack_full_argument_spec
|
from ansible.module_utils.openstack import openstack_full_argument_spec
|
||||||
from ansible.module_utils.openstack import openstack_module_kwargs
|
from ansible.module_utils.openstack import openstack_module_kwargs
|
||||||
from ansible.module_utils.openstack import openstack_cloud_from_module
|
from ansible.module_utils.openstack import openstack_cloud_from_module
|
||||||
|
|
||||||
# NOTE: This is still using the legacy clients. We've not
|
|
||||||
# changed to using the OpenStackSDK fully because
|
|
||||||
# tripleo-common expects the legacy clients. Once
|
|
||||||
# we've updated tripleo-common to use the SDK we
|
|
||||||
# should revise this.
|
|
||||||
import swiftclient
|
|
||||||
from tripleo_common.utils import plan as plan_utils
|
from tripleo_common.utils import plan as plan_utils
|
||||||
|
|
||||||
ANSIBLE_METADATA = {
|
ANSIBLE_METADATA = {
|
||||||
|
@ -109,24 +104,17 @@ def run_module():
|
||||||
**openstack_module_kwargs()
|
**openstack_module_kwargs()
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_object_client(session):
|
|
||||||
return swiftclient.Connection(
|
|
||||||
session=session,
|
|
||||||
retries=10,
|
|
||||||
starting_backoff=3,
|
|
||||||
max_backoff=120)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
container = module.params.get('container')
|
container = module.params.get('container')
|
||||||
_, conn = openstack_cloud_from_module(module)
|
_, conn = openstack_cloud_from_module(module)
|
||||||
session = conn.session
|
tripleo = tc.TripleOCommon(session=conn.session)
|
||||||
|
|
||||||
# if the user is working with this module in only check mode we do not
|
# if the user is working with this module in only check mode we do not
|
||||||
# want to make any changes to the environment, just return the current
|
# want to make any changes to the environment, just return the current
|
||||||
# state with no modifications
|
# state with no modifications
|
||||||
if module.check_mode:
|
if module.check_mode:
|
||||||
module.exit_json(**result)
|
module.exit_json(**result)
|
||||||
swift = get_object_client(session)
|
swift = tripleo.get_object_client()
|
||||||
fernet_keys = plan_utils.update_plan_rotate_fernet_keys(swift, container)
|
fernet_keys = plan_utils.update_plan_rotate_fernet_keys(swift, container)
|
||||||
result['success'] = True
|
result['success'] = True
|
||||||
result['fernet_keys'] = fernet_keys
|
result['fernet_keys'] = fernet_keys
|
||||||
|
|
|
@ -21,18 +21,12 @@ from __future__ import print_function
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
from ansible.module_utils import tripleo_common_utils as tc
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
from ansible.module_utils.openstack import openstack_full_argument_spec
|
from ansible.module_utils.openstack import openstack_full_argument_spec
|
||||||
from ansible.module_utils.openstack import openstack_module_kwargs
|
from ansible.module_utils.openstack import openstack_module_kwargs
|
||||||
from ansible.module_utils.openstack import openstack_cloud_from_module
|
from ansible.module_utils.openstack import openstack_cloud_from_module
|
||||||
|
|
||||||
# NOTE: This is still using the legacy clients. We've not
|
|
||||||
# changed to using the OpenStackSDK fully because
|
|
||||||
# tripleo-common expects the legacy clients. Once
|
|
||||||
# we've updated tripleo-common to use the SDK we
|
|
||||||
# should revise this.
|
|
||||||
from swiftclient import client as swift_client
|
|
||||||
|
|
||||||
from tripleo_common.utils import plan as plan_utils
|
from tripleo_common.utils import plan as plan_utils
|
||||||
|
|
||||||
ANSIBLE_METADATA = {
|
ANSIBLE_METADATA = {
|
||||||
|
@ -92,20 +86,12 @@ def run_module():
|
||||||
**openstack_module_kwargs()
|
**openstack_module_kwargs()
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_object_client(session):
|
|
||||||
return swift_client.Connection(
|
|
||||||
session=session,
|
|
||||||
retries=10,
|
|
||||||
starting_backoff=3,
|
|
||||||
max_backoff=120)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
container = module.params.get('container')
|
container = module.params.get('container')
|
||||||
with_roledata = module.params.get('with_roledata')
|
with_roledata = module.params.get('with_roledata')
|
||||||
_, conn = openstack_cloud_from_module(module)
|
_, conn = openstack_cloud_from_module(module)
|
||||||
session = conn.session
|
tripleo = tc.TripleOCommon(session=conn.session)
|
||||||
|
swift = tripleo.get_object_client()
|
||||||
swift = get_object_client(session)
|
|
||||||
plan_utils.update_plan_environment_with_image_parameters(
|
plan_utils.update_plan_environment_with_image_parameters(
|
||||||
swift, container, with_roledata=with_roledata)
|
swift, container, with_roledata=with_roledata)
|
||||||
result['success'] = True
|
result['success'] = True
|
||||||
|
|
|
@ -21,20 +21,12 @@ from __future__ import print_function
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
from ansible.module_utils import tripleo_common_utils as tc
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
from ansible.module_utils.openstack import openstack_full_argument_spec
|
from ansible.module_utils.openstack import openstack_full_argument_spec
|
||||||
from ansible.module_utils.openstack import openstack_module_kwargs
|
from ansible.module_utils.openstack import openstack_module_kwargs
|
||||||
from ansible.module_utils.openstack import openstack_cloud_from_module
|
from ansible.module_utils.openstack import openstack_cloud_from_module
|
||||||
|
|
||||||
# NOTE: This is still using the legacy clients. We've not
|
|
||||||
# changed to using the OpenStackSDK fully because
|
|
||||||
# tripleo-common expects the legacy clients. Once
|
|
||||||
# we've updated tripleo-common to use the SDK we
|
|
||||||
# should revise this.
|
|
||||||
from heatclient.v1 import client as heatclient
|
|
||||||
from mistralclient.api import client as mistral_client
|
|
||||||
from swiftclient import client as swift_client
|
|
||||||
|
|
||||||
from tripleo_common.utils import plan as plan_utils
|
from tripleo_common.utils import plan as plan_utils
|
||||||
|
|
||||||
ANSIBLE_METADATA = {
|
ANSIBLE_METADATA = {
|
||||||
|
@ -108,26 +100,14 @@ def run_module():
|
||||||
**openstack_module_kwargs()
|
**openstack_module_kwargs()
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_object_client(session):
|
|
||||||
return swift_client.Connection(
|
|
||||||
session=session,
|
|
||||||
retries=10,
|
|
||||||
starting_backoff=3,
|
|
||||||
max_backoff=120)
|
|
||||||
|
|
||||||
def get_orchestration_client(session):
|
|
||||||
return heatclient.Client(
|
|
||||||
session=session)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
container = module.params.get('container')
|
container = module.params.get('container')
|
||||||
rotate_passwords = module.params.get('rotate_passwords')
|
rotate_passwords = module.params.get('rotate_passwords')
|
||||||
password_list = module.params.get('password_list')
|
password_list = module.params.get('password_list')
|
||||||
_, conn = openstack_cloud_from_module(module)
|
_, conn = openstack_cloud_from_module(module)
|
||||||
session = conn.session
|
tripleo = tc.TripleOCommon(session=conn.session)
|
||||||
|
swift = tripleo.get_object_client()
|
||||||
swift = get_object_client(session)
|
heat = tripleo.get_orchestration_client()
|
||||||
heat = get_orchestration_client(session)
|
|
||||||
rotated_passwords = plan_utils.generate_passwords(
|
rotated_passwords = plan_utils.generate_passwords(
|
||||||
swift, heat, container=container,
|
swift, heat, container=container,
|
||||||
rotate_passwords=rotate_passwords,
|
rotate_passwords=rotate_passwords,
|
||||||
|
|
|
@ -21,19 +21,12 @@ from __future__ import print_function
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
from ansible.module_utils import tripleo_common_utils as tc
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
from ansible.module_utils.openstack import openstack_full_argument_spec
|
from ansible.module_utils.openstack import openstack_full_argument_spec
|
||||||
from ansible.module_utils.openstack import openstack_module_kwargs
|
from ansible.module_utils.openstack import openstack_module_kwargs
|
||||||
from ansible.module_utils.openstack import openstack_cloud_from_module
|
from ansible.module_utils.openstack import openstack_cloud_from_module
|
||||||
|
|
||||||
# NOTE: This is still using the legacy clients. We've not
|
|
||||||
# changed to using the OpenStackSDK fully because
|
|
||||||
# tripleo-common expects the legacy clients. Once
|
|
||||||
# we've updated tripleo-common to use the SDK we
|
|
||||||
# should revise this.
|
|
||||||
from heatclient.v1 import client as heatclient
|
|
||||||
from swiftclient import client as swift_client
|
|
||||||
|
|
||||||
from tripleo_common.utils import stack as stack_utils
|
from tripleo_common.utils import stack as stack_utils
|
||||||
|
|
||||||
ANSIBLE_METADATA = {
|
ANSIBLE_METADATA = {
|
||||||
|
@ -100,26 +93,14 @@ def run_module():
|
||||||
**openstack_module_kwargs()
|
**openstack_module_kwargs()
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_object_client(session):
|
|
||||||
return swift_client.Connection(
|
|
||||||
session=session,
|
|
||||||
retries=10,
|
|
||||||
starting_backoff=3,
|
|
||||||
max_backoff=120)
|
|
||||||
|
|
||||||
def get_orchestration_client(session):
|
|
||||||
return heatclient.Client(
|
|
||||||
session=session)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
container = module.params.get('container')
|
container = module.params.get('container')
|
||||||
skip_deploy_identifier = module.params.get('skip_deploy_identifier')
|
skip_deploy_identifier = module.params.get('skip_deploy_identifier')
|
||||||
timeout_mins = module.params.get('timeout_mins')
|
timeout_mins = module.params.get('timeout_mins')
|
||||||
_, conn = openstack_cloud_from_module(module)
|
_, conn = openstack_cloud_from_module(module)
|
||||||
session = conn.session
|
tripleo = tc.TripleOCommon(session=conn.session)
|
||||||
|
swift = tripleo.get_object_client()
|
||||||
swift = get_object_client(session)
|
heat = tripleo.get_orchestration_client()
|
||||||
heat = get_orchestration_client(session)
|
|
||||||
stack_utils.deploy_stack(
|
stack_utils.deploy_stack(
|
||||||
swift, heat,
|
swift, heat,
|
||||||
container=container,
|
container=container,
|
||||||
|
|
|
@ -21,19 +21,12 @@ from __future__ import print_function
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
from ansible.module_utils import tripleo_common_utils as tc
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
from ansible.module_utils.openstack import openstack_full_argument_spec
|
from ansible.module_utils.openstack import openstack_full_argument_spec
|
||||||
from ansible.module_utils.openstack import openstack_module_kwargs
|
from ansible.module_utils.openstack import openstack_module_kwargs
|
||||||
from ansible.module_utils.openstack import openstack_cloud_from_module
|
from ansible.module_utils.openstack import openstack_cloud_from_module
|
||||||
|
|
||||||
# NOTE: This is still using the legacy clients. We've not
|
|
||||||
# changed to using the OpenStackSDK fully because
|
|
||||||
# tripleo-common expects the legacy clients. Once
|
|
||||||
# we've updated tripleo-common to use the SDK we
|
|
||||||
# should revise this.
|
|
||||||
from heatclient.v1 import client as heatclient
|
|
||||||
from swiftclient import client as swift_client
|
|
||||||
|
|
||||||
from tripleo_common.utils import stack_parameters as stack_param_utils
|
from tripleo_common.utils import stack_parameters as stack_param_utils
|
||||||
|
|
||||||
ANSIBLE_METADATA = {
|
ANSIBLE_METADATA = {
|
||||||
|
@ -106,27 +99,15 @@ def run_module():
|
||||||
**openstack_module_kwargs()
|
**openstack_module_kwargs()
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_object_client(session):
|
|
||||||
return swift_client.Connection(
|
|
||||||
session=session,
|
|
||||||
retries=10,
|
|
||||||
starting_backoff=3,
|
|
||||||
max_backoff=120)
|
|
||||||
|
|
||||||
def get_orchestration_client(session):
|
|
||||||
return heatclient.Client(
|
|
||||||
session=session)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
container = module.params.get('container')
|
container = module.params.get('container')
|
||||||
parameters = module.params.get('parameters')
|
parameters = module.params.get('parameters')
|
||||||
parameter_key = module.params.get('parameter_key')
|
parameter_key = module.params.get('parameter_key')
|
||||||
validate = module.params.get('validate')
|
validate = module.params.get('validate')
|
||||||
_, conn = openstack_cloud_from_module(module)
|
_, conn = openstack_cloud_from_module(module)
|
||||||
session = conn.session
|
tripleo = tc.TripleOCommon(session=conn.session)
|
||||||
|
swift = tripleo.get_object_client()
|
||||||
swift = get_object_client(session)
|
heat = tripleo.get_orchestration_client()
|
||||||
heat = get_orchestration_client(session)
|
|
||||||
stack_param_utils.update_parameters(
|
stack_param_utils.update_parameters(
|
||||||
swift, heat, parameters,
|
swift, heat, parameters,
|
||||||
container=container,
|
container=container,
|
||||||
|
|
|
@ -21,17 +21,12 @@ from __future__ import print_function
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
from ansible.module_utils import tripleo_common_utils as tc
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
from ansible.module_utils.openstack import openstack_full_argument_spec
|
from ansible.module_utils.openstack import openstack_full_argument_spec
|
||||||
from ansible.module_utils.openstack import openstack_module_kwargs
|
from ansible.module_utils.openstack import openstack_module_kwargs
|
||||||
from ansible.module_utils.openstack import openstack_cloud_from_module
|
from ansible.module_utils.openstack import openstack_cloud_from_module
|
||||||
|
|
||||||
# NOTE: This is still using the legacy clients. We've not
|
|
||||||
# changed to using the OpenStackSDK fully because
|
|
||||||
# tripleo-common expects the legacy clients. Once
|
|
||||||
# we've updated tripleo-common to use the SDK we
|
|
||||||
# should revise this.
|
|
||||||
import swiftclient
|
|
||||||
from tripleo_common.utils import swift as swift_utils
|
from tripleo_common.utils import swift as swift_utils
|
||||||
|
|
||||||
ANSIBLE_METADATA = {
|
ANSIBLE_METADATA = {
|
||||||
|
@ -108,21 +103,13 @@ def run_module():
|
||||||
**openstack_module_kwargs()
|
**openstack_module_kwargs()
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_object_client(session):
|
|
||||||
return swiftclient.Connection(
|
|
||||||
session=session,
|
|
||||||
retries=10,
|
|
||||||
starting_backoff=3,
|
|
||||||
max_backoff=120)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
container = module.params.get('container')
|
container = module.params.get('container')
|
||||||
obj = module.params.get('object')
|
obj = module.params.get('object')
|
||||||
method = module.params.get('method')
|
method = module.params.get('method')
|
||||||
_, conn = openstack_cloud_from_module(module)
|
_, conn = openstack_cloud_from_module(module)
|
||||||
session = conn.session
|
tripleo = tc.TripleOCommon(session=conn.session)
|
||||||
|
swift = tripleo.get_object_client()
|
||||||
swift = get_object_client(session)
|
|
||||||
tempurl = swift_utils.get_temp_url(swift, container, obj, method)
|
tempurl = swift_utils.get_temp_url(swift, container, obj, method)
|
||||||
result['success'] = True
|
result['success'] = True
|
||||||
result['changed'] = True
|
result['changed'] = True
|
||||||
|
|
|
@ -21,18 +21,12 @@ from __future__ import print_function
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
from ansible.module_utils import tripleo_common_utils as tc
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
from ansible.module_utils.openstack import openstack_full_argument_spec
|
from ansible.module_utils.openstack import openstack_full_argument_spec
|
||||||
from ansible.module_utils.openstack import openstack_module_kwargs
|
from ansible.module_utils.openstack import openstack_module_kwargs
|
||||||
from ansible.module_utils.openstack import openstack_cloud_from_module
|
from ansible.module_utils.openstack import openstack_cloud_from_module
|
||||||
|
|
||||||
# NOTE: This is still using the legacy clients. We've not
|
|
||||||
# changed to using the OpenStackSDK fully because
|
|
||||||
# tripleo-common expects the legacy clients. Once
|
|
||||||
# we've updated tripleo-common to use the SDK we
|
|
||||||
# should revise this.
|
|
||||||
from swiftclient import client as swift_client
|
|
||||||
|
|
||||||
from tripleo_common.utils import template as template_utils
|
from tripleo_common.utils import template as template_utils
|
||||||
|
|
||||||
ANSIBLE_METADATA = {
|
ANSIBLE_METADATA = {
|
||||||
|
@ -92,20 +86,12 @@ def run_module():
|
||||||
**openstack_module_kwargs()
|
**openstack_module_kwargs()
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_object_client(session):
|
|
||||||
return swift_client.Connection(
|
|
||||||
session=session,
|
|
||||||
retries=10,
|
|
||||||
starting_backoff=3,
|
|
||||||
max_backoff=120)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
container = module.params.get('container')
|
container = module.params.get('container')
|
||||||
templates_dir = module.params.get('templates_dir')
|
templates_dir = module.params.get('templates_dir')
|
||||||
_, conn = openstack_cloud_from_module(module)
|
_, conn = openstack_cloud_from_module(module)
|
||||||
session = conn.session
|
tripleo = tc.TripleOCommon(session=conn.session)
|
||||||
|
swift = tripleo.get_object_client()
|
||||||
swift = get_object_client(session)
|
|
||||||
template_utils.upload_templates_as_tarball(
|
template_utils.upload_templates_as_tarball(
|
||||||
swift, container, templates_dir)
|
swift, container, templates_dir)
|
||||||
result['success'] = True
|
result['success'] = True
|
||||||
|
|
Loading…
Reference in New Issue