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}
def schema(): base = { Required("to"): "docker", Required("image"): Any(docker_image_format, docker("name")), Optional("repeat"): Range(min=1), } return {**deploy.schema(), **base}
def schema(): base = { Required("to"): "u-boot-ums", Required("image"): deploy.url({Optional("root_partition"): Range(min=0)}), } return {**deploy.schema(), **base}
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}
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}
def schema(): base = { Required("to"): "recovery", Required("images"): { Required(str, "'images' is empty"): deploy.url() }, } return {**deploy.schema(), **base}
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(), }, )
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), }, )
def schema(): base = { Required("to"): "musca", Required("images"): { Required("test_binary", "'images' has no 'test_binary' entry"): deploy.url() }, } return {**deploy.schema(), **base}
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}
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}
def schema(): base = { Required("to"): "download", Required("images"): { Required(str, "'images' is empty"): { **deploy.url() } }, } return {**deploy.schema(), **base}
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}
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}
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}
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}
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}
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}
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}
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}
def schema(live=False): base = {Required("to"): "lxc", Optional("packages"): [str]} return {**deploy.schema(live), **base}
def schema(): base = {Required("to"): "vemsd", Required("recovery_image"): deploy.url()} return {**deploy.schema(), **base}
def schema(): base = {Required("to"): "overlay"} return {**deploy.schema(), **base}
def schema(live=False): base = {Required("to"): "flasher", Required("images"): {str: deploy.url()}} return {**deploy.schema(live), **base}