timeout: float = 300,
params: dict = None,
db_dict: dict = None,
- kdu_name: str = None
+ kdu_name: str = None,
+ namespace: str = None
) -> bool:
"""Install a bundle
to finish
:param params dict: Key-value pairs of instantiation parameters
:param kdu_name: Name of the KDU instance to be installed
+ :param namespace: K8s namespace to use for the KDU instance
:return: If successful, returns ?
"""
- <URL_where_to_fetch_juju_bundle>
"""
+ previous_workdir = os.getcwd()
+
bundle = kdu_model
if kdu_model.startswith("cs:"):
bundle = kdu_model
# Download the file
pass
else:
- # Local file
+ new_workdir = kdu_model.strip(kdu_model.split("/")[-1])
- # if kdu_model.endswith(".tar.gz") or kdu_model.endswith(".tgz")
- # Uncompress temporarily
- # bundle = <uncompressed file>
- pass
+ os.chdir(new_workdir)
+
+ bundle = "local:{}".format(kdu_model)
if not bundle:
# Raise named exception that the bundle could not be found
)
self.log.debug("All units active.")
- except concurrent.futures._base.TimeoutError:
+ except concurrent.futures._base.TimeoutError: # TODO use asyncio.TimeoutError
+ os.chdir(previous_workdir)
self.log.debug("[install] Timeout exceeded; resetting cluster")
await self.reset(cluster_uuid)
return False
self.log.debug("[install] Disconnecting model")
await model.disconnect()
+ os.chdir(previous_workdir)
+
return kdu_instance
raise Exception("Unable to install")