Uploaded image for project: 'Hybrid Cloud Console'
  1. Hybrid Cloud Console
  2. RHCLOUD-34681

In order to reduce bugs & effort, factor out common client code for Python clients to one library that can be reused in both clients

XMLWordPrintable

    • Product / Portfolio Work
    • False
    • Hide

      None

      Show
      None
    • False
    • None
    • Unset
    • None

      We have multiple Python clients now which have some cross cutting concerns copied between both libraries:

      • Client instantiation. This should always be wrapped to allow us to inject / update middleware between library releases without code changes required from services using the libraries.
      • Authentication. Currently this code is copied between libraries.
      • Config. Some config abstractions may be able to be pulled out (especially to support common concerns in a library, like authentication)

      Ideally no code should be copied except in trivial cases. So, a Python library should be factored out which includes common code, which the client libraries then depend on.

      Note: Managing versioning and dependencies for this library may be tedious when maintaining the multiple clients. We should consider bringing all Python clients into a common repo with different modules so they can be changed and versioned together. Otherwise incorporating a change in the common lib to the libraries will require 1 pull request, publishing a new version, then 2 follow up PRs to include the new version, and then publishing the new version of those libraries. With one multi module repo this would be 1 PR followed by 1 bulk publish.

              Unassigned Unassigned
              rhit-ahenning Alec Henninger
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: