예제 #1
0
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)))
예제 #2
0
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)))
예제 #3
0
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