Remove python-tripleoclient dependency on tripleo-common

Bug #1666268 reported by Julie Pichon on 2017-02-20
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Medium
Unassigned

Bug Description

Due to a Series Of Unfortunate Dependencies, installing the client currently causes dependencies such as Mistral itself to be installed (the tripleo-common -> Mistral part of the equation may partially be resolved by https://blueprints.launchpad.net/mistral/+spec/mistral-custom-actions-api but it's not clear when that will fully happen).

Even then, with the Mistral actions and workflows it seems like TripleO Common is more focused on server-side concerns, and shouldn't need to be pulled from the client. (This might need a larger discussion on "What is tripleo-common" at some point...)

A quick grep shows up a few places where it shows up:

- tripleoclient/workflows/plan_management.py:15:from tripleo_common.utils import tarball

This only covers a few lines, may be ok to copy-paste over...

- tripleoclient/v1/overcloud_image.py:38:from tripleo_common.image import build

In build overcloud image:

        manager = build.ImageBuildManager(
            parsed_args.config_files,
            output_directory=parsed_args.output_directory,
            skip=parsed_args.skip,
            images=parsed_args.image_names)
        manager.build()

Not clear that this could be migrated to an action in a straightforward way.
1. Implement an action
2. Have the action put it in a temp swifturl
3. Have the client download from there?

We have support for this (https://review.openstack.org/#/c/413229/6) and from on-going reviews we're encouraging their use e.g. for plan export (https://review.openstack.org/#/c/422789/).

- tripleoclient/v1/overcloud_deploy.py:40:from tripleo_common import update

    update.add_breakpoints_cleanup_into_env(env)

I'm not very familiar with what it does, but it looks like 5 lines of code that calls to heatclient, so perhaps not the worst copy-pasted.

- tripleoclient/workflows/package_update.py:17:from tripleo_common import update as update_common

    update_manager = update_common.PackageUpdateManager(
        heatclient=clients.orchestration,
        novaclient=clients.compute,
        stack_id=plan_name,
        stack_fields={})

    update_manager.do_interactive_update()

Not familiar with this either, but a name like "interactive update" makes it sound like it may be awkward to move...

- tripleoclient/v1/undercloud_deploy.py:39:from tripleo_common.utils import passwords as password_utils

    pw = password_utils.generate_passwords(stack_env=stack_env)

This one is complicated, because it's part of a new undercloud deploy mechanism where Mistral doesn't exist yet so we can't just wrap it into an action. It's too big and changeable (new passwords) to sensibly copy-paste.

Julie Pichon (jpichon) wrote :

From the Pike PTG: should we add functional testing, this will also cause issues for supporting Python 3 functional testing (a Pike community goal) for the client, as we would need a Python 3 version of Mistral.

Changed in tripleo:
milestone: pike-2 → pike-3
Changed in tripleo:
milestone: pike-3 → pike-rc1
Changed in tripleo:
milestone: pike-rc1 → queens-1
Changed in tripleo:
milestone: queens-1 → queens-2
Changed in tripleo:
milestone: queens-2 → queens-3
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers