Remove python-tripleoclient dependency on tripleo-common

Bug #1666268 reported by Julie Pichon
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Won't Fix
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.

Revision history for this message
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
Changed in tripleo:
milestone: queens-3 → queens-rc1
Changed in tripleo:
milestone: queens-rc1 → rocky-1
Revision history for this message
Julie Pichon (jpichon) wrote :

The concern in comment #1 was probably addressed with the move to mistral-lib, so tripleo-common no longer depends on mistral server.

When the dependency on tripleo-common was briefly mentioned during the Rocky PTG the topic was insta-shut down with "that ship has sailed already" and I think the dep might be even be necessary for the containerized undercloud and all-in-one installer work. Facing reality and closing the bug ;)

Changed in tripleo:
status: Triaged → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.