def before_all(context: Context) -> None: """behave will invoke this before anything else happens.""" userdata = context.config.userdata context.series_image_name = {} context.series_reuse_image = "" context.reuse_container = {} context.config = UAClientBehaveConfig.from_environ() if context.config.reuse_image: series = lxc_get_series(context.config.reuse_image, image=True) if series is not None: context.series_reuse_image = series context.series_image_name[series] = context.config.reuse_image else: print(" Could not check image series. It will not be used. ") context.config.reuse_image = None if userdata.get("reuse_container"): series = lxc_get_series(userdata.get("reuse_container")) context.reuse_container = {series: userdata.get("reuse_container")} print( textwrap.dedent(""" You are providing a {series} container. Make sure you are running this series tests. For instance: --tags=series.{series}""".format( series=series)))
def before_all(context: Context) -> None: """behave will invoke this before anything else happens.""" context.config.setup_logging() userdata = context.config.userdata if userdata: logging.debug("Userdata key / value pairs:") print("Userdata key / value pairs:") for key, value in userdata.items(): logging.debug(" - {} = {}".format(key, value)) print(" - {} = {}".format(key, value)) context.series_image_name = {} context.series_reuse_image = "" context.reuse_container = {} context.config = UAClientBehaveConfig.from_environ(context.config) if context.config.cloud_api: context.config.cloud_manager.manage_ssh_key() if context.config.reuse_image: series = lxc_get_property(context.config.reuse_image, property_name="series", image=True) machine_type = lxc_get_property( context.config.reuse_image, property_name="machine_type", image=True, ) if machine_type: print("Found machine_type: {vm_type}".format(vm_type=machine_type)) if series is not None: context.series_reuse_image = series context.series_image_name[series] = context.config.reuse_image else: print(" Could not check image series. It will not be used. ") context.config.reuse_image = None if userdata.get("reuse_container"): if context.config.cloud_api: inst = context.config.cloud_api.get_instance( userdata.get("reuse_container")) codename = inst.execute( ["grep", "UBUNTU_CODENAME", "/etc/os-release"]).strip() [_, series] = codename.split("=") else: # lxd.vm and lxd.container machine_types series = lxc_get_property(userdata.get("reuse_container"), property_name="series") machine_type = lxc_get_property(userdata.get("reuse_container"), property_name="machine_type") if machine_type: print("Found type: {vm_type}".format(vm_type=machine_type)) context.reuse_container = {series: userdata.get("reuse_container")} print( textwrap.dedent(""" You are providing a {series} container. Make sure you are running this series tests. For instance: --tags=series.{series}""".format( series=series)))
def before_all(context: Context) -> None: """behave will invoke this before anything else happens. In this function, we launch a container, install ubuntu-advantage-tools and then capture an image. This image is then reused by each feature, reducing test execution time. """ userdata = context.config.userdata context.reuse_container = userdata.get("reuse_container") context.config = UAClientBehaveConfig.from_environ() if context.config.reuse_image is None: create_trusty_uat_lxd_image(context) else: context.image_name = context.config.reuse_image