Currently interacting with functions in zaza.model requires the
model to be passed in. This has resulted in multiple calls to
get_juju_model(). It is cleaner to push these calls down into
the model wrapper and make the model_name an optional
argument. In addition, the current model name is now cached
without having to check the os.env each time.
Unfortunately this has resulted in the signature changing on a
great many function so this diff is bigger than would normally
be desirable.
Without introducing mojoisms into zaza there are some changes that are
required to enable mojo's use of zaza.
The goal is to keep mojo specific utilities in openstack-mojo-specs and
to move any generalized tools here in zaza.
This change updates some generalized zaza tools to enable mojo to use
them.
* Add calls to asyncio.get_event_loop().close() to close loop. libjuju does
not do this for you and needs to be done just before exiting.
* Require model to be explicitly set when running command line tools. This is
part of the drive to ensure that eventually multiple runs can be performed
concurrently.
* Add set_juju_model/get_juju_model functions to manage which model is in
focus