Exemplo n.º 1
0
def schema():
    base = {
        Required("to"): Any("sata", "sd", "usb"),
        Exclusive("images", "image"): {
            Required("image"): deploy.url(),
            Optional(str): deploy.url(),
        },
        Exclusive("image", "image"): deploy.url(),
        Required("device"): str,
        Optional("download"): {
            Required("tool"): str,
            Required("options"): str,
            Required("prompt"): str,
        },
        Optional("writer"): {
            Required("tool"): str,
            Required("options"): str,
            Required("prompt"): str,
        },
        Optional("tool"): {
            Required("prompts"): [str],
        },
        Optional("uniquify"): bool,
        **deploy.schema(),
    }
    return {**deploy.schema(), **base}
Exemplo n.º 2
0
def schema():
    base = {
        Required("to"): "docker",
        Required("image"): Any(docker_image_format, docker("name")),
        Optional("repeat"): Range(min=1),
    }
    return {**deploy.schema(), **base}
Exemplo n.º 3
0
def schema():
    base = {
        Required("to"): "u-boot-ums",
        Required("image"):
        deploy.url({Optional("root_partition"): Range(min=0)}),
    }
    return {**deploy.schema(), **base}
Exemplo n.º 4
0
def schema():
    resource = deploy.url()

    base = {
        Required("to"):
        "tftp",
        Required("kernel", msg="needs a kernel to deploy"):
        deploy.url({Optional("type"): Any("image", "uimage", "zimage")}),
        Optional("dtb"):
        resource,
        Optional("modules"):
        resource,
        Optional("preseed"):
        resource,
        Optional("ramdisk"):
        deploy.url({
            Optional("install_modules"): bool,
            Optional("install_overlay"): bool,
            Optional("header"): "u-boot",
        }),
        Exclusive("nfsrootfs", "nfs"):
        deploy.url({
            Optional("install_modules"): bool,
            Optional("install_overlay"): bool,
            Optional("prefix"): str,
        }),
        Exclusive("persistent_nfs", "nfs"): {
            Required("address"): str,
            Optional("install_overlay"): bool,
        },
    }
    return {**deploy.schema(), **base}
Exemplo n.º 5
0
def schema():
    extra = {
        Optional("apply-overlay"):
        bool,
        Optional("sparse"):
        bool,
        Optional("reboot"):
        Any(
            "hard-reset",
            "fastboot-reboot",
            "fastboot-reboot-bootloader",
            "fastboot-reboot-fastboot",
        ),
    }

    base = {
        Required("to"): "fastboot",
        Required("images"): {
            Required(str, "'images' is empty"): deploy.url(extra)
        },
        Optional("docker"): {
            Required("image"): str
        },
        Optional("connection"): "lxc",  # FIXME: other possible values?
    }
    return {**deploy.schema(), **base}
Exemplo n.º 6
0
def schema():
    base = {
        Required("to"): "recovery",
        Required("images"): {
            Required(str, "'images' is empty"): deploy.url()
        },
    }
    return {**deploy.schema(), **base}
Exemplo n.º 7
0
Arquivo: nfs.py Projeto: slawr/lava
def schema():
    return Any(
        {
            Required("to"): "nfs",
            Optional("nfsrootfs"): deploy.url(),
            Optional("modules"): deploy.url(),
            **deploy.schema(),
        },
        {
            Required("to"): "nfs",
            Required("images"): {
                Required(str, "'images' is empty"):
                deploy.url({Optional("image_arg"): str})
            },
            **deploy.schema(),
        },
    )
Exemplo n.º 8
0
def schema(live=False):
    return Any(
        {
            Required("to"): "nfs",
            Optional("nfsrootfs"): deploy.url(),
            Optional("modules"): deploy.url(),
            **deploy.schema(live),
        },
        {
            Required("to"): "nfs",
            Required("images"): {
                Required(str, "'images' is empty"): {
                    **deploy.url(), "image_arg": str
                }
            },
            **deploy.schema(live),
        },
    )
Exemplo n.º 9
0
def schema():
    base = {
        Required("to"): "musca",
        Required("images"): {
            Required("test_binary", "'images' has no 'test_binary' entry"):
            deploy.url()
        },
    }
    return {**deploy.schema(), **base}
Exemplo n.º 10
0
def schema():
    base = {
        Required("to"): "ssh",
        Optional("firmware"): deploy.url(),
        Optional("kernel"): deploy.url(),
        Optional("rootfs"): deploy.url(),
        Optional("modules"): deploy.url(),
    }
    return {**deploy.schema(), **base}
Exemplo n.º 11
0
def schema():
    image_name = Match("^[a-z0-9._:/-]+$", msg="Invalid docker image name")
    base = {
        Required("to"): "docker",
        Required("image"): Any(
            image_name, {Required("name"): image_name, "local": bool}
        ),
        Optional("repeat"): Range(min=1),
    }
    return {**deploy.schema(), **base}
Exemplo n.º 12
0
def schema():
    base = {
        Required("to"): "download",
        Required("images"): {
            Required(str, "'images' is empty"): {
                **deploy.url()
            }
        },
    }
    return {**deploy.schema(), **base}
Exemplo n.º 13
0
def schema():
    base = {
        Required("to"): "fvp",
        Optional("ramdisk"): {
            Optional("install_overlay"): bool,
            Optional("compression"): str,
            Optional("header"): "u-boot",
        },
        Required("images"): {Required(str, "'images' is empty"): deploy.url()},
    }
    return {**deploy.schema(), **base}
Exemplo n.º 14
0
def schema():
    base = {
        Required("to"): "downloads",
        Required("images"): {
            Required(str, "'images' is empty"): deploy.url()
        },
        Optional("postprocess"): {
            Required("docker"): postprocess_with_docker
        },
    }
    return {**deploy.schema(), **base}
Exemplo n.º 15
0
def schema(live=False):
    base = {
        Required("to"): "tmpfs",
        Required("images"): {
            Required(str, "'images' is empty"): {
                **deploy.url(),
                Optional("format"): "qcow2",
                Optional("image_arg"): str,  # TODO: is this optional?
            }
        },
        Optional("type"): "monitor",
        Optional("uefi"): deploy.url(),  # TODO: check the exact syntax
    }
    return {**deploy.schema(live), **base}
Exemplo n.º 16
0
Arquivo: nbd.py Projeto: b59118/lava
def schema(live=False):
    resource = deploy.url()

    base = {
        Required("to"): "nbd",
        Required("kernel", msg="needs a kernel to deploy"): {
            **resource,
            Optional("type"): Any("image", "uimage", "zimage"),
        },
        Required("nbdroot"): resource,
        Required("initrd"): resource,
        Optional("dtb"): resource,
    }
    return {**deploy.schema(live), **base}
Exemplo n.º 17
0
def schema():
    base = {
        Required("to"): "iso-installer",
        Required("images"): {
            Required("iso"): deploy.url(
                {Optional("image_arg"): str}  # TODO: is this optional?
            ),
            Required("preseed"): deploy.url(),
        },
        Required("iso"): {
            Required("installation_size"): str,
            Optional("kernel"): str,
            Optional("initrd"): str,
        },
    }
    return {**deploy.schema(), **base}
Exemplo n.º 18
0
def schema():
    base = {
        Required("to"):
        "mps",
        Required("images"):
        All(
            {
                Optional("recovery_image"): deploy.url(),
                Optional("test_binary"): {
                    **deploy.url(), Optional("rename"): str
                },
            },
            Length(min=1),
        ),
    }
    return {**deploy.schema(), **base}
Exemplo n.º 19
0
def schema():
    base = {
        Required("to"): "uuu",
        Required("images"): All(
            {
                Required("boot"): deploy.url(),
                Any(str): {
                    **deploy.url(),
                    Optional("apply-overlay"): bool,
                    Optional("root_partition"): Range(min=0),
                },
            },
            Length(min=1),
        ),
    }
    return {**deploy.schema(), **base}
Exemplo n.º 20
0
def schema(live=False):
    base = {
        Required("to"): "fastboot",
        Required("images"): {
            Required(str, "'images' is empty"): {
                **deploy.url(),
                Optional("apply-overlay"):
                bool,
                Optional("sparse"):
                bool,
                Optional("reboot"):
                Any("hard-reset", "fastboot-reboot",
                    "fastboot-reboot-bootloader"),
            }
        },
        Optional("connection"): "lxc",  # FIXME: other possible values?
    }
    return {**deploy.schema(live), **base}
Exemplo n.º 21
0
Arquivo: lxc.py Projeto: b59118/lava
def schema(live=False):
    base = {Required("to"): "lxc", Optional("packages"): [str]}
    return {**deploy.schema(live), **base}
Exemplo n.º 22
0
Arquivo: vemsd.py Projeto: slawr/lava
def schema():
    base = {Required("to"): "vemsd", Required("recovery_image"): deploy.url()}
    return {**deploy.schema(), **base}
Exemplo n.º 23
0
def schema():
    base = {Required("to"): "overlay"}
    return {**deploy.schema(), **base}
Exemplo n.º 24
0
def schema(live=False):
    base = {Required("to"): "flasher", Required("images"): {str: deploy.url()}}
    return {**deploy.schema(live), **base}