{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.uJLguxIt/b1/lava_2023.01-2_arm64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.uJLguxIt/b2/lava_2023.01-2_arm64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,10 +1,10 @@\n \n a35b08608e794a71744f0a759733a0c1 45260 net optional lava-common_2023.01-2_all.deb\n c02d5c5132ff833c8f0b567af29b9996 34596 net optional lava-coordinator_2023.01-2_all.deb\n 56c6da728bea231e3d0b0bad4c605599 31640 devel optional lava-dev_2023.01-2_all.deb\n ae19d876c351c6695be69b4e363f119b 37368 net optional lava-dispatcher-host_2023.01-2_all.deb\n 01df0030203b07030d136adb6f0e3820 190748 net optional lava-dispatcher_2023.01-2_all.deb\n 63969a7f9a735a2816bf3063d49728c8 34388 net optional lava-lxc-mocker_2023.01-2_all.deb\n- b6ade8e824212ce090c5c2052fb1c93c 2489140 doc optional lava-server-doc_2023.01-2_all.deb\n+ a350475d7937d789f7ed677157a51a72 2489140 doc optional lava-server-doc_2023.01-2_all.deb\n d330ebc820ee439588cb0a060f68707a 396268 net optional lava-server_2023.01-2_all.deb\n e7b2a8fe70dee79516fe30331b176b5e 24212 metapackages optional lava_2023.01-2_all.deb\n"}, {"source1": "lava-server-doc_2023.01-2_all.deb", "source2": "lava-server-doc_2023.01-2_all.deb", "unified_diff": null, "details": [{"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "./usr/share/doc/lava-server-doc/html/v2/searchindex.js", "source2": "./usr/share/doc/lava-server-doc/html/v2/searchindex.js", "unified_diff": null, "details": [{"source1": "js-beautify {}", "source2": "js-beautify {}", "unified_diff": "@@ -6085,26 +6085,136 @@\n \"sphinx.domains.std\": 2,\n \"sphinx.ext.intersphinx\": 1,\n \"sphinx.ext.todo\": 2,\n \"sphinx.ext.viewcode\": 1,\n \"sphinx\": 57\n },\n \"alltitles\": {\n- \"Deploying an iPXE (x86) device\": [\n- [59, \"deploying-an-ipxe-x86-device\"]\n+ \"U-Boot\": [\n+ [54, \"u-boot\"]\n ],\n- \"Preparing the target test device\": [\n- [59, \"preparing-the-target-test-device\"]\n+ \"Common U-Boot support\": [\n+ [54, \"common-u-boot-support\"]\n ],\n- \"Dispatch Steps\": [\n- [59, \"dispatch-steps\"],\n- [58, \"dispatch-steps\"]\n+ \"Configuration\": [\n+ [54, \"configuration\"],\n+ [60, \"configuration\"],\n+ [58, \"configuration\"],\n+ [22, \"configuration\"],\n+ [8, \"configuration\"]\n ],\n- \"Kernel, Ramdisk and Rootfs considerations\": [\n- [59, \"kernel-ramdisk-and-rootfs-considerations\"]\n+ \"Prompts\": [\n+ [54, \"prompts\"]\n+ ],\n+ \"Interrupting U-Boot\": [\n+ [54, \"interrupting-u-boot\"]\n+ ],\n+ \"Troubleshooting Interrupting U-Boot\": [\n+ [54, \"troubleshooting-interrupting-u-boot\"]\n+ ],\n+ \"Load addresses\": [\n+ [54, \"load-addresses\"]\n+ ],\n+ \"Required configuration\": [\n+ [54, \"required-configuration\"]\n+ ],\n+ \"Booting the kernel\": [\n+ [54, \"booting-the-kernel\"],\n+ [99, \"booting-the-kernel\"]\n+ ],\n+ \"U-Boot bootargs\": [\n+ [54, \"u-boot-bootargs\"]\n+ ],\n+ \"Using mkimage\": [\n+ [54, \"using-mkimage\"]\n+ ],\n+ \"Vendor builds\": [\n+ [54, \"vendor-builds\"]\n+ ],\n+ \"Network support\": [\n+ [54, \"network-support\"]\n+ ],\n+ \"Additional U-Boot support\": [\n+ [54, \"additional-u-boot-support\"]\n+ ],\n+ \"Filesystem support\": [\n+ [54, \"filesystem-support\"]\n+ ],\n+ \"Interface names\": [\n+ [54, \"interface-names\"]\n+ ],\n+ \"Initializing subsystems\": [\n+ [54, \"initializing-subsystems\"]\n+ ],\n+ \"Appending the DTB\": [\n+ [54, \"appending-the-dtb\"]\n+ ],\n+ \"Hidden device types\": [\n+ [49, \"hidden-device-types\"]\n+ ],\n+ \"Changes needed when managing a hidden device type\": [\n+ [49, \"changes-needed-when-managing-a-hidden-device-type\"]\n+ ],\n+ \"Private test job visibility\": [\n+ [49, \"private-test-job-visibility\"]\n+ ],\n+ \"Health Checks\": [\n+ [49, \"health-checks\"]\n+ ],\n+ \"UEFI\": [\n+ [55, \"uefi\"]\n+ ],\n+ \"Introduction\": [\n+ [55, \"introduction\"],\n+ [24, \"introduction\"],\n+ [12, \"introduction\"],\n+ [79, \"introduction\"]\n+ ],\n+ \"UEFI menus\": [\n+ [55, \"uefi-menus\"]\n+ ],\n+ \"UEFI graphical interfaces\": [\n+ [55, \"uefi-graphical-interfaces\"]\n+ ],\n+ \"D02/D03\": [\n+ [55, \"d02-d03\"]\n+ ],\n+ \"Cons\": [\n+ [55, \"cons\"],\n+ [55, \"id1\"],\n+ [53, \"cons\"],\n+ [53, \"id1\"],\n+ [56, \"cons\"]\n+ ],\n+ \"Mustang UEFI\": [\n+ [55, \"mustang-uefi\"]\n+ ],\n+ \"HiKey 620\": [\n+ [55, \"hikey-620\"]\n+ ],\n+ \"HiKey 960\": [\n+ [55, \"hikey-960\"]\n+ ],\n+ \"Fastboot\": [\n+ [52, \"fastboot\"]\n+ ],\n+ \"External constraints\": [\n+ [52, \"external-constraints\"]\n+ ],\n+ \"Device changes\": [\n+ [52, \"device-changes\"]\n+ ],\n+ \"Images\": [\n+ [52, \"images\"]\n+ ],\n+ \"Android\": [\n+ [52, \"android\"]\n+ ],\n+ \"Specific support for fastboot devices in LAVA\": [\n+ [52, \"specific-support-for-fastboot-devices-in-lava\"]\n ],\n \"Installing on a Debian system\": [\n [51, \"installing-on-a-debian-system\"]\n ],\n \"Recommended Debian architectures\": [\n [51, \"recommended-debian-architectures\"]\n ],\n@@ -6151,152 +6261,156 @@\n ],\n \"Debugging the Installation\": [\n [51, \"debugging-the-installation\"]\n ],\n \"Using localhost or non HTTPS instance URL\": [\n [51, \"using-localhost-or-non-https-instance-url\"]\n ],\n- \"Internet of Things (IoT) Boards\": [\n- [53, \"internet-of-things-iot-boards\"]\n+ \"Detailed device information in LAVA Scheduler\": [\n+ [63, \"detailed-device-information-in-lava-scheduler\"]\n ],\n- \"Arduino101\": [\n- [53, \"arduino101\"]\n+ \"Static device information\": [\n+ [63, \"static-device-information\"]\n ],\n- \"Cons\": [\n- [53, \"cons\"],\n- [53, \"id1\"],\n- [55, \"cons\"],\n- [55, \"id1\"],\n- [56, \"cons\"]\n+ \"Device state\": [\n+ [63, \"device-state\"]\n ],\n- \"FRDM-K64F\": [\n- [53, \"frdm-k64f\"]\n+ \"State\": [\n+ [63, \"state\"]\n ],\n- \"Writing an interactive test action\": [\n- [57, \"writing-an-interactive-test-action\"]\n+ \"Health\": [\n+ [63, \"health\"]\n ],\n- \"Advantages of interactive pattern matching\": [\n- [57, \"advantages-of-interactive-pattern-matching\"]\n+ \"Health State\": [\n+ [63, \"health-state\"]\n ],\n- \"Limits of interactive pattern matching\": [\n- [57, \"limits-of-interactive-pattern-matching\"]\n+ \"Edit device description\": [\n+ [63, \"edit-device-description\"]\n ],\n- \"Example interactive test job\": [\n- [57, \"example-interactive-test-job\"]\n+ \"Restrict submissions\": [\n+ [63, \"restrict-submissions\"]\n ],\n- \"Combining different test actions\": [\n- [57, \"combining-different-test-actions\"]\n+ \"Introduction to LAVA\": [\n+ [50, \"introduction-to-lava\"]\n ],\n- \"Deploying an ipmi/pxe-boot Device\": [\n- [58, \"deploying-an-ipmi-pxe-boot-device\"]\n+ \"Navigation\": [\n+ [50, \"navigation\"]\n ],\n- \"Machines for Dispatching a Job\": [\n- [58, \"machines-for-dispatching-a-job\"]\n+ \"Index\": [\n+ [50, \"id1\"]\n ],\n- \"Configuration\": [\n- [58, \"configuration\"],\n- [60, \"configuration\"],\n- [54, \"configuration\"],\n- [22, \"configuration\"],\n- [8, \"configuration\"]\n+ \"Contents\": [\n+ [50, \"id2\"],\n+ [46, \"contents\"],\n+ [17, \"contents\"],\n+ [3, \"contents\"],\n+ [2, \"contents\"],\n+ [0, \"contents\"],\n+ [5, \"contents\"]\n ],\n- \"Installing ipmitool\": [\n- [58, \"installing-ipmitool\"]\n+ \"Page indices\": [\n+ [50, \"page-indices\"]\n ],\n- \"Address Configuration\": [\n- [58, \"address-configuration\"]\n+ \"About LAVA V2\": [\n+ [50, \"about-lava-v2\"]\n ],\n- \"Addressing Calxeda Highbank Devices\": [\n- [58, \"addressing-calxeda-highbank-devices\"]\n+ \"LAVA Overview\": [\n+ [50, \"lava-overview\"]\n ],\n- \"ipmitool usage\": [\n- [58, \"ipmitool-usage\"]\n+ \"What is LAVA?\": [\n+ [50, \"what-is-lava\"]\n ],\n- \"Serial over LAN input issues\": [\n- [58, \"serial-over-lan-input-issues\"]\n+ \"What is LAVA not?\": [\n+ [50, \"what-is-lava-not\"]\n ],\n- \"busybox httpd + wget\": [\n- [58, \"busybox-httpd-wget\"]\n+ \"Features\": [\n+ [50, \"features\"]\n ],\n- \"PXE Boot\": [\n- [58, \"pxe-boot\"]\n+ \"Architecture\": [\n+ [50, \"architecture\"]\n ],\n- \"Server Configuration\": [\n- [58, \"server-configuration\"]\n+ \"Elements of the Master\": [\n+ [50, \"elements-of-the-master\"],\n+ [39, \"elements-of-the-master\"]\n ],\n- \"tftpboot Directory\": [\n- [58, \"tftpboot-directory\"]\n+ \"Elements of the Worker\": [\n+ [50, \"elements-of-the-worker\"],\n+ [39, \"elements-of-the-worker\"]\n ],\n- \"Creating the kernel and initrd for pxe booting\": [\n- [58, \"creating-the-kernel-and-initrd-for-pxe-booting\"]\n+ \"Preparation\": [\n+ [50, \"preparation\"]\n ],\n- \"Debugging with initrd\": [\n- [58, \"debugging-with-initrd\"]\n+ \"Methods\": [\n+ [50, \"methods\"]\n ],\n- \"LAVA Scheduler summary help\": [\n- [61, \"lava-scheduler-summary-help\"]\n+ \"Deployment methods\": [\n+ [50, \"deployment-methods\"]\n ],\n- \"Device Type Overview\": [\n- [61, \"device-type-overview\"]\n+ \"Boot methods\": [\n+ [50, \"boot-methods\"],\n+ [71, \"boot-methods\"]\n ],\n- \"Overall status\": [\n- [61, \"overall-status\"]\n+ \"Test methods\": [\n+ [50, \"test-methods\"]\n ],\n- \"Online devices\": [\n- [61, \"online-devices\"]\n+ \"Multiple device testing\": [\n+ [50, \"multiple-device-testing\"]\n ],\n- \"Passing health checks\": [\n- [61, \"passing-health-checks\"]\n+ \"Scheduling\": [\n+ [50, \"scheduling\"]\n ],\n- \"Reports\": [\n- [61, \"reports\"]\n+ \"Advanced use cases\": [\n+ [50, \"advanced-use-cases\"],\n+ [16, \"advanced-use-cases\"]\n ],\n- \"All devices\": [\n- [61, \"all-devices\"]\n+ \"Glossary\": [\n+ [50, \"glossary\"]\n ],\n- \"All Active devices\": [\n- [61, \"all-active-devices\"]\n+ \"Support\": [\n+ [50, \"support\"]\n ],\n- \"All Device Health\": [\n- [61, \"all-device-health\"]\n+ \"Full documentation\": [\n+ [50, \"full-documentation\"]\n ],\n- \"Device types\": [\n- [61, \"device-types\"],\n- [31, \"device-types\"]\n+ \"Writing an interactive test action\": [\n+ [57, \"writing-an-interactive-test-action\"]\n ],\n- \"Active Jobs\": [\n- [61, \"active-jobs\"]\n+ \"Advantages of interactive pattern matching\": [\n+ [57, \"advantages-of-interactive-pattern-matching\"]\n ],\n- \"Workers\": [\n- [61, \"workers\"],\n- [95, \"workers\"]\n+ \"Limits of interactive pattern matching\": [\n+ [57, \"limits-of-interactive-pattern-matching\"]\n ],\n- \"Detailed device information in LAVA Scheduler\": [\n- [63, \"detailed-device-information-in-lava-scheduler\"]\n+ \"Example interactive test job\": [\n+ [57, \"example-interactive-test-job\"]\n ],\n- \"Static device information\": [\n- [63, \"static-device-information\"]\n+ \"Combining different test actions\": [\n+ [57, \"combining-different-test-actions\"]\n ],\n- \"Device state\": [\n- [63, \"device-state\"]\n+ \"Internet of Things (IoT) Boards\": [\n+ [53, \"internet-of-things-iot-boards\"]\n ],\n- \"State\": [\n- [63, \"state\"]\n+ \"Arduino101\": [\n+ [53, \"arduino101\"]\n ],\n- \"Health\": [\n- [63, \"health\"]\n+ \"FRDM-K64F\": [\n+ [53, \"frdm-k64f\"]\n ],\n- \"Health State\": [\n- [63, \"health-state\"]\n+ \"Deploying an iPXE (x86) device\": [\n+ [59, \"deploying-an-ipxe-x86-device\"]\n ],\n- \"Edit device description\": [\n- [63, \"edit-device-description\"]\n+ \"Preparing the target test device\": [\n+ [59, \"preparing-the-target-test-device\"]\n ],\n- \"Restrict submissions\": [\n- [63, \"restrict-submissions\"]\n+ \"Dispatch Steps\": [\n+ [59, \"dispatch-steps\"],\n+ [58, \"dispatch-steps\"]\n+ ],\n+ \"Kernel, Ramdisk and Rootfs considerations\": [\n+ [59, \"kernel-ramdisk-and-rootfs-considerations\"]\n ],\n \"Using Test Results\": [\n [60, \"using-test-results\"]\n ],\n \"LAVA result visualization\": [\n [60, \"lava-result-visualization\"]\n ],\n@@ -6368,65 +6482,70 @@\n ],\n \"Omitting Chart Results\": [\n [60, \"omitting-chart-results\"]\n ],\n \"Chart by URL\": [\n [60, \"chart-by-url\"]\n ],\n- \"U-Boot\": [\n- [54, \"u-boot\"]\n+ \"LAVA Scheduler summary help\": [\n+ [61, \"lava-scheduler-summary-help\"]\n ],\n- \"Common U-Boot support\": [\n- [54, \"common-u-boot-support\"]\n+ \"Device Type Overview\": [\n+ [61, \"device-type-overview\"]\n ],\n- \"Prompts\": [\n- [54, \"prompts\"]\n+ \"Overall status\": [\n+ [61, \"overall-status\"]\n ],\n- \"Interrupting U-Boot\": [\n- [54, \"interrupting-u-boot\"]\n+ \"Online devices\": [\n+ [61, \"online-devices\"]\n ],\n- \"Troubleshooting Interrupting U-Boot\": [\n- [54, \"troubleshooting-interrupting-u-boot\"]\n+ \"Passing health checks\": [\n+ [61, \"passing-health-checks\"]\n ],\n- \"Load addresses\": [\n- [54, \"load-addresses\"]\n+ \"Reports\": [\n+ [61, \"reports\"]\n ],\n- \"Required configuration\": [\n- [54, \"required-configuration\"]\n+ \"All devices\": [\n+ [61, \"all-devices\"]\n ],\n- \"Booting the kernel\": [\n- [54, \"booting-the-kernel\"],\n- [99, \"booting-the-kernel\"]\n+ \"All Active devices\": [\n+ [61, \"all-active-devices\"]\n ],\n- \"U-Boot bootargs\": [\n- [54, \"u-boot-bootargs\"]\n+ \"All Device Health\": [\n+ [61, \"all-device-health\"]\n ],\n- \"Using mkimage\": [\n- [54, \"using-mkimage\"]\n+ \"Device types\": [\n+ [61, \"device-types\"],\n+ [31, \"device-types\"]\n ],\n- \"Vendor builds\": [\n- [54, \"vendor-builds\"]\n+ \"Active Jobs\": [\n+ [61, \"active-jobs\"]\n ],\n- \"Network support\": [\n- [54, \"network-support\"]\n+ \"Workers\": [\n+ [61, \"workers\"],\n+ [95, \"workers\"]\n ],\n- \"Additional U-Boot support\": [\n- [54, \"additional-u-boot-support\"]\n+ \"Detailed device dictionary information in LAVA Scheduler\": [\n+ [62, \"detailed-device-dictionary-information-in-lava-scheduler\"]\n ],\n- \"Filesystem support\": [\n- [54, \"filesystem-support\"]\n+ \"Commands\": [\n+ [62, \"commands\"]\n ],\n- \"Interface names\": [\n- [54, \"interface-names\"]\n+ \"Connections\": [\n+ [62, \"connections\"],\n+ [16, \"connections\"]\n ],\n- \"Initializing subsystems\": [\n- [54, \"initializing-subsystems\"]\n+ \"VLANd support\": [\n+ [62, \"vland-support\"]\n ],\n- \"Appending the DTB\": [\n- [54, \"appending-the-dtb\"]\n+ \"Exported parameters\": [\n+ [62, \"exported-parameters\"]\n+ ],\n+ \"Other parameters\": [\n+ [62, \"other-parameters\"]\n ],\n \"Writing Health Checks for devices\": [\n [48, \"writing-health-checks-for-devices\"]\n ],\n \"LAVA YAML health checks\": [\n [48, \"lava-yaml-health-checks\"]\n ],\n@@ -6441,96 +6560,71 @@\n ],\n \"Using lava_test_shell inside health checks\": [\n [48, \"using-lava-test-shell-inside-health-checks\"]\n ],\n \"Infrastructure issues\": [\n [48, \"infrastructure-issues\"]\n ],\n- \"Detailed device dictionary information in LAVA Scheduler\": [\n- [62, \"detailed-device-dictionary-information-in-lava-scheduler\"]\n- ],\n- \"Commands\": [\n- [62, \"commands\"]\n- ],\n- \"Connections\": [\n- [62, \"connections\"],\n- [16, \"connections\"]\n- ],\n- \"VLANd support\": [\n- [62, \"vland-support\"]\n- ],\n- \"Exported parameters\": [\n- [62, \"exported-parameters\"]\n- ],\n- \"Other parameters\": [\n- [62, \"other-parameters\"]\n- ],\n- \"UEFI\": [\n- [55, \"uefi\"]\n- ],\n- \"Introduction\": [\n- [55, \"introduction\"],\n- [24, \"introduction\"],\n- [12, \"introduction\"],\n- [79, \"introduction\"]\n+ \"Deploying an ipmi/pxe-boot Device\": [\n+ [58, \"deploying-an-ipmi-pxe-boot-device\"]\n ],\n- \"UEFI menus\": [\n- [55, \"uefi-menus\"]\n+ \"Machines for Dispatching a Job\": [\n+ [58, \"machines-for-dispatching-a-job\"]\n ],\n- \"UEFI graphical interfaces\": [\n- [55, \"uefi-graphical-interfaces\"]\n+ \"Installing ipmitool\": [\n+ [58, \"installing-ipmitool\"]\n ],\n- \"D02/D03\": [\n- [55, \"d02-d03\"]\n+ \"Address Configuration\": [\n+ [58, \"address-configuration\"]\n ],\n- \"Mustang UEFI\": [\n- [55, \"mustang-uefi\"]\n+ \"Addressing Calxeda Highbank Devices\": [\n+ [58, \"addressing-calxeda-highbank-devices\"]\n ],\n- \"HiKey 620\": [\n- [55, \"hikey-620\"]\n+ \"ipmitool usage\": [\n+ [58, \"ipmitool-usage\"]\n ],\n- \"HiKey 960\": [\n- [55, \"hikey-960\"]\n+ \"Serial over LAN input issues\": [\n+ [58, \"serial-over-lan-input-issues\"]\n ],\n- \"Fastboot\": [\n- [52, \"fastboot\"]\n+ \"busybox httpd + wget\": [\n+ [58, \"busybox-httpd-wget\"]\n ],\n- \"External constraints\": [\n- [52, \"external-constraints\"]\n+ \"PXE Boot\": [\n+ [58, \"pxe-boot\"]\n ],\n- \"Device changes\": [\n- [52, \"device-changes\"]\n+ \"Server Configuration\": [\n+ [58, \"server-configuration\"]\n ],\n- \"Images\": [\n- [52, \"images\"]\n+ \"tftpboot Directory\": [\n+ [58, \"tftpboot-directory\"]\n ],\n- \"Android\": [\n- [52, \"android\"]\n+ \"Creating the kernel and initrd for pxe booting\": [\n+ [58, \"creating-the-kernel-and-initrd-for-pxe-booting\"]\n ],\n- \"Specific support for fastboot devices in LAVA\": [\n- [52, \"specific-support-for-fastboot-devices-in-lava\"]\n+ \"Debugging with initrd\": [\n+ [58, \"debugging-with-initrd\"]\n ],\n \"Integration Stories\": [\n [56, \"integration-stories\"]\n ],\n \"Integration Story One - Nexus\": [\n [56, \"integration-story-one-nexus\"]\n ],\n \"Deploy\": [\n [56, \"deploy\"],\n [56, \"id2\"],\n- [98, \"deploy\"],\n [100, \"deploy\"],\n+ [98, \"deploy\"],\n [70, \"deploy\"]\n ],\n \"Boot\": [\n [56, \"boot\"],\n [56, \"id3\"],\n- [98, \"boot\"],\n [100, \"boot\"],\n+ [98, \"boot\"],\n [70, \"boot\"]\n ],\n \"Issues\": [\n [56, \"issues\"],\n [56, \"id1\"],\n [56, \"id5\"]\n ],\n@@ -6576,221 +6670,101 @@\n ],\n \"Integration Story - Dragonboard 410c\": [\n [56, \"integration-story-dragonboard-410c\"]\n ],\n \"Integration Story Five - HiKey 960\": [\n [56, \"integration-story-five-hikey-960\"]\n ],\n- \"Hidden device types\": [\n- [49, \"hidden-device-types\"]\n- ],\n- \"Changes needed when managing a hidden device type\": [\n- [49, \"changes-needed-when-managing-a-hidden-device-type\"]\n- ],\n- \"Private test job visibility\": [\n- [49, \"private-test-job-visibility\"]\n- ],\n- \"Health Checks\": [\n- [49, \"health-checks\"]\n- ],\n- \"Introduction to LAVA\": [\n- [50, \"introduction-to-lava\"]\n- ],\n- \"Navigation\": [\n- [50, \"navigation\"]\n- ],\n- \"Index\": [\n- [50, \"id1\"]\n- ],\n- \"Contents\": [\n- [50, \"id2\"],\n- [46, \"contents\"],\n- [17, \"contents\"],\n- [5, \"contents\"],\n- [0, \"contents\"],\n- [2, \"contents\"],\n- [3, \"contents\"]\n- ],\n- \"Page indices\": [\n- [50, \"page-indices\"]\n- ],\n- \"About LAVA V2\": [\n- [50, \"about-lava-v2\"]\n- ],\n- \"LAVA Overview\": [\n- [50, \"lava-overview\"]\n- ],\n- \"What is LAVA?\": [\n- [50, \"what-is-lava\"]\n- ],\n- \"What is LAVA not?\": [\n- [50, \"what-is-lava-not\"]\n- ],\n- \"Features\": [\n- [50, \"features\"]\n- ],\n- \"Architecture\": [\n- [50, \"architecture\"]\n- ],\n- \"Elements of the Master\": [\n- [50, \"elements-of-the-master\"],\n- [39, \"elements-of-the-master\"]\n- ],\n- \"Elements of the Worker\": [\n- [50, \"elements-of-the-worker\"],\n- [39, \"elements-of-the-worker\"]\n- ],\n- \"Preparation\": [\n- [50, \"preparation\"]\n- ],\n- \"Methods\": [\n- [50, \"methods\"]\n- ],\n- \"Deployment methods\": [\n- [50, \"deployment-methods\"]\n- ],\n- \"Boot methods\": [\n- [50, \"boot-methods\"],\n- [71, \"boot-methods\"]\n+ \"Explaining the first job in detail\": [\n+ [37, \"explaining-the-first-job-in-detail\"]\n ],\n- \"Test methods\": [\n- [50, \"test-methods\"]\n+ \"Top level elements of a test job\": [\n+ [37, \"top-level-elements-of-a-test-job\"]\n ],\n- \"Multiple device testing\": [\n- [50, \"multiple-device-testing\"]\n+ \"Actions within the test job\": [\n+ [37, \"actions-within-the-test-job\"]\n ],\n- \"Scheduling\": [\n- [50, \"scheduling\"]\n+ \"Deploy action for QEMU\": [\n+ [37, \"deploy-action-for-qemu\"]\n ],\n- \"Advanced use cases\": [\n- [50, \"advanced-use-cases\"],\n- [16, \"advanced-use-cases\"]\n+ \"Example of deploy label substitution\": [\n+ [37, \"example-of-deploy-label-substitution\"]\n ],\n- \"Glossary\": [\n- [50, \"glossary\"]\n+ \"Boot action for QEMU\": [\n+ [37, \"boot-action-for-qemu\"]\n ],\n- \"Support\": [\n- [50, \"support\"]\n+ \"Test action for QEMU\": [\n+ [37, \"test-action-for-qemu\"]\n ],\n- \"Full documentation\": [\n- [50, \"full-documentation\"]\n+ \"Growing your lab\": [\n+ [46, \"growing-your-lab\"]\n ],\n- \"Adding your first devices\": [\n- [38, \"adding-your-first-devices\"]\n+ \"Assumptions\": [\n+ [46, \"assumptions\"],\n+ [47, \"assumptions\"]\n ],\n \"Requirements\": [\n- [38, \"requirements\"],\n [46, \"requirements\"],\n+ [38, \"requirements\"],\n [12, \"requirements\"],\n [97, \"requirements\"]\n ],\n- \"Django administration interface\": [\n- [38, \"django-administration-interface\"]\n- ],\n- \"Administrative interface site links\": [\n- [38, \"administrative-interface-site-links\"]\n- ],\n- \"Start with a known device type\": [\n- [38, \"start-with-a-known-device-type\"]\n- ],\n- \"QEMU\": [\n- [38, \"qemu\"]\n- ],\n- \"Create a Device Type\": [\n- [38, \"create-a-device-type\"]\n- ],\n- \"Create a device in the database\": [\n- [38, \"create-a-device-in-the-database\"]\n- ],\n- \"Adding a dictionary to the first QEMU device\": [\n- [38, \"adding-a-dictionary-to-the-first-qemu-device\"]\n- ],\n- \"Adding other devices of known device-types\": [\n- [38, \"adding-other-devices-of-known-device-types\"]\n- ],\n- \"Check existing instances\": [\n- [38, \"check-existing-instances\"]\n- ],\n- \"Writing YAML job submission files\": [\n- [34, \"writing-yaml-job-submission-files\"]\n- ],\n- \"Basics of the YAML format\": [\n- [34, \"basics-of-the-yaml-format\"]\n- ],\n- \"Basic structure for job submission\": [\n- [34, \"basic-structure-for-job-submission\"]\n- ],\n- \"Sample JOB definition for a KVM\": [\n- [34, \"sample-job-definition-for-a-kvm\"]\n- ],\n- \"Basic structure for device_type configuration\": [\n- [34, \"basic-structure-for-device-type-configuration\"]\n- ],\n- \"Basic structure for device configuration\": [\n- [34, \"basic-structure-for-device-configuration\"]\n- ],\n- \"Overriding values in device type, device dictionary and the job context\": [\n- [34, \"overriding-values-in-device-type-device-dictionary-and-the-job-context\"]\n+ \"Logical layouts\": [\n+ [46, \"logical-layouts\"]\n ],\n- \"Example One\": [\n- [34, \"example-one\"],\n- [30, \"example-one\"]\n+ \"Single master, single worker\": [\n+ [46, \"single-master-single-worker\"]\n ],\n- \"Example Two\": [\n- [34, \"example-two\"],\n- [30, \"example-two\"]\n+ \"Single master, multiple workers\": [\n+ [46, \"single-master-multiple-workers\"]\n ],\n- \"Example Three\": [\n- [34, \"example-three\"]\n+ \"Multiple masters, multiple workers\": [\n+ [46, \"multiple-masters-multiple-workers\"]\n ],\n- \"Provide environment variables for the device in the job description\": [\n- [34, \"provide-environment-variables-for-the-device-in-the-job-description\"]\n+ \"Micro-instances\": [\n+ [46, \"micro-instances\"]\n ],\n- \"Pipeline Device Configuration\": [\n- [34, \"pipeline-device-configuration\"]\n+ \"Which layout is best?\": [\n+ [46, \"which-layout-is-best\"]\n ],\n- \"Viewing the Device Dictionary\": [\n- [34, \"viewing-the-device-dictionary\"]\n+ \"Layout Recommendations\": [\n+ [46, \"layout-recommendations\"]\n ],\n- \"On scheduler device detail page\": [\n- [34, \"on-scheduler-device-detail-page\"]\n+ \"Physical layouts\": [\n+ [46, \"physical-layouts\"]\n ],\n- \"On Job Description Tab\": [\n- [34, \"on-job-description-tab\"]\n+ \"Resources\": [\n+ [46, \"resources\"]\n ],\n- \"As Admin\": [\n- [34, \"as-admin\"]\n+ \"How many devices is too many for one worker?\": [\n+ [46, \"how-many-devices-is-too-many-for-one-worker\"]\n ],\n- \"Dispatcher actions\": [\n- [34, \"dispatcher-actions\"]\n+ \"Workers in different locations\": [\n+ [46, \"workers-in-different-locations\"]\n ],\n- \"Mapping deployment actions to the python code\": [\n- [34, \"mapping-deployment-actions-to-the-python-code\"]\n+ \"Remote Infrastructure\": [\n+ [46, \"remote-infrastructure\"]\n ],\n- \"Deployment actions\": [\n- [34, \"deployment-actions\"]\n+ \"Differences between bootloader types\": [\n+ [46, \"differences-between-bootloader-types\"]\n ],\n- \"Supported methods\": [\n- [34, \"supported-methods\"],\n- [34, \"id1\"]\n+ \"Maintenance windows across remote locations\": [\n+ [46, \"maintenance-windows-across-remote-locations\"]\n ],\n- \"Boot actions\": [\n- [34, \"boot-actions\"]\n+ \"Networking to remote locations\": [\n+ [46, \"networking-to-remote-locations\"]\n ],\n- \"Test actions\": [\n- [34, \"test-actions\"]\n+ \"Encryption and authentication\": [\n+ [46, \"encryption-and-authentication\"]\n ],\n- \"Metadata\": [\n- [34, \"metadata\"],\n- [92, \"metadata\"],\n- [101, \"metadata\"],\n- [111, \"metadata\"]\n+ \"Firewalls\": [\n+ [46, \"firewalls\"]\n ],\n- \"Submit actions\": [\n- [34, \"submit-actions\"]\n+ \"Using a frontend with remote labs\": [\n+ [46, \"using-a-frontend-with-remote-labs\"]\n ],\n \"Administering LAVA using Docker\": [\n [36, \"administering-lava-using-docker\"]\n ],\n \"Prerequisites\": [\n [36, \"prerequisites\"]\n ],\n@@ -6845,175 +6819,116 @@\n ],\n \"Running lava-server & lava-dispatcher together\": [\n [36, \"running-lava-server-lava-dispatcher-together\"]\n ],\n \"Separate services in separate Docker containers\": [\n [36, \"separate-services-in-separate-docker-containers\"]\n ],\n- \"FVP\": [\n- [43, \"fvp\"]\n- ],\n- \"LAVA FVP Dispatcher Setup\": [\n- [43, \"lava-fvp-dispatcher-setup\"]\n- ],\n- \"FVP Binaries\": [\n- [43, \"fvp-binaries\"]\n- ],\n- \"Building FVP Docker Images\": [\n- [43, \"building-fvp-docker-images\"]\n- ],\n- \"Networking inside Models\": [\n- [43, \"networking-inside-models\"]\n- ],\n- \"Reading from all model consoles\": [\n- [43, \"reading-from-all-model-consoles\"]\n- ],\n- \"Functional testing of LAVA source code\": [\n- [42, \"functional-testing-of-lava-source-code\"]\n- ],\n- \"Background\": [\n- [42, \"background\"],\n- [16, \"background\"]\n- ],\n- \"meta-lava\": [\n- [42, \"meta-lava\"]\n- ],\n- \"Future plans\": [\n- [42, \"future-plans\"]\n- ],\n- \"Purpose of functional tests\": [\n- [42, \"purpose-of-functional-tests\"]\n- ],\n- \"Requirements for a functional test job\": [\n- [42, \"requirements-for-a-functional-test-job\"]\n- ],\n- \"Using the functional test frontend\": [\n- [42, \"using-the-functional-test-frontend\"]\n- ],\n- \"Dedicated workers\": [\n- [42, \"dedicated-workers\"]\n- ],\n- \"Glossary of terms\": [\n- [44, \"glossary-of-terms\"]\n- ],\n- \"Explaining the first job in detail\": [\n- [37, \"explaining-the-first-job-in-detail\"]\n- ],\n- \"Top level elements of a test job\": [\n- [37, \"top-level-elements-of-a-test-job\"]\n- ],\n- \"Actions within the test job\": [\n- [37, \"actions-within-the-test-job\"]\n- ],\n- \"Deploy action for QEMU\": [\n- [37, \"deploy-action-for-qemu\"]\n+ \"Lava Dispatcher Design\": [\n+ [33, \"lava-dispatcher-design\"]\n ],\n- \"Example of deploy label substitution\": [\n- [37, \"example-of-deploy-label-substitution\"]\n+ \"Pipeline Architecture\": [\n+ [33, \"pipeline-architecture\"]\n ],\n- \"Boot action for QEMU\": [\n- [37, \"boot-action-for-qemu\"]\n+ \"Principal changes\": [\n+ [33, \"principal-changes\"]\n ],\n- \"Test action for QEMU\": [\n- [37, \"test-action-for-qemu\"]\n+ \"Objectives\": [\n+ [33, \"objectives\"]\n ],\n- \"First steps installing LAVA\": [\n- [39, \"first-steps-installing-lava\"],\n- [17, \"first-steps-installing-lava\"]\n+ \"Design\": [\n+ [33, \"design\"]\n ],\n- \"Initial LAVA Installation\": [\n- [39, \"initial-lava-installation\"]\n+ \"Following the code flow\": [\n+ [33, \"following-the-code-flow\"]\n ],\n- \"Requirements to Consider Before Installing LAVA\": [\n- [39, \"requirements-to-consider-before-installing-lava\"],\n- [10, \"requirements-to-consider-before-installing-lava\"]\n+ \"Pipeline construction and flow\": [\n+ [33, \"pipeline-construction-and-flow\"]\n ],\n- \"Software Requirements\": [\n- [39, \"software-requirements\"],\n- [79, \"software-requirements\"]\n+ \"Using strategy classes\": [\n+ [33, \"using-strategy-classes\"]\n ],\n- \"Hardware Requirements\": [\n- [39, \"hardware-requirements\"],\n- [79, \"hardware-requirements\"]\n+ \"Lava test shell scripts\": [\n+ [33, \"lava-test-shell-scripts\"]\n ],\n- \"Device requirements\": [\n- [39, \"device-requirements\"],\n- [47, \"device-requirements\"]\n+ \"Pipeline error handling\": [\n+ [33, \"pipeline-error-handling\"]\n ],\n- \"MultiNode hardware requirements\": [\n- [39, \"multinode-hardware-requirements\"]\n+ \"RuntimeError Exception\": [\n+ [33, \"runtimeerror-exception\"]\n ],\n- \"Which release to install\": [\n- [39, \"which-release-to-install\"]\n+ \"InfrastructureError Exception\": [\n+ [33, \"infrastructureerror-exception\"]\n ],\n- \"Installation Types\": [\n- [39, \"installation-types\"]\n+ \"JobError Exception\": [\n+ [33, \"joberror-exception\"]\n ],\n- \"Single Master Instance installation\": [\n- [39, \"single-master-instance-installation\"]\n+ \"TestError Exception\": [\n+ [33, \"testerror-exception\"]\n ],\n- \"Master with one or more workers\": [\n- [39, \"master-with-one-or-more-workers\"]\n+ \"Result bundle identifiers\": [\n+ [33, \"result-bundle-identifiers\"]\n ],\n- \"Configuration outline - start simple\\u2026\": [\n- [39, \"configuration-outline-start-simple\"]\n+ \"Secondary media\": [\n+ [33, \"secondary-media\"],\n+ [96, \"secondary-media\"]\n ],\n- \"\\u2026then expand\": [\n- [39, \"then-expand\"]\n+ \"Device configuration design\": [\n+ [33, \"device-configuration-design\"]\n ],\n- \"LAVA Coordinator setup\": [\n- [39, \"lava-coordinator-setup\"]\n+ \"Device Dictionary\": [\n+ [33, \"device-dictionary\"]\n ],\n- \"Setting Up Serial Connections to LAVA Devices\": [\n- [39, \"setting-up-serial-connections-to-lava-devices\"]\n+ \"Exporting an existing device dictionary\": [\n+ [33, \"exporting-an-existing-device-dictionary\"]\n ],\n- \"Ser2net daemon\": [\n- [39, \"ser2net-daemon\"]\n+ \"Reviewing an existing device dictionary\": [\n+ [33, \"reviewing-an-existing-device-dictionary\"]\n ],\n- \"StarTech rackmount usb\": [\n- [39, \"startech-rackmount-usb\"]\n+ \"Example device configuration review\": [\n+ [33, \"example-device-configuration-review\"]\n ],\n- \"Contact and bug reports\": [\n- [39, \"contact-and-bug-reports\"]\n+ \"Importing configuration using a known template\": [\n+ [33, \"importing-configuration-using-a-known-template\"]\n ],\n- \"Dispatcher Action Reference\": [\n- [32, \"dispatcher-action-reference\"]\n+ \"Creating a new template\": [\n+ [33, \"creating-a-new-template\"]\n ],\n- \"Deploy Actions\": [\n- [32, \"deploy-actions\"]\n+ \"Running lava-run directly\": [\n+ [33, \"running-lava-run-directly\"]\n ],\n- \"Boot Actions\": [\n- [32, \"boot-actions\"]\n+ \"Adding your first devices\": [\n+ [38, \"adding-your-first-devices\"]\n ],\n- \"Test Actions\": [\n- [32, \"test-actions\"]\n+ \"Django administration interface\": [\n+ [38, \"django-administration-interface\"]\n ],\n- \"Other test job elements\": [\n- [32, \"other-test-job-elements\"]\n+ \"Administrative interface site links\": [\n+ [38, \"administrative-interface-site-links\"]\n ],\n- \"reboot_to_fastboot\": [\n- [32, \"reboot-to-fastboot\"]\n+ \"Start with a known device type\": [\n+ [38, \"start-with-a-known-device-type\"]\n ],\n- \"Further Examples\": [\n- [32, \"further-examples\"]\n+ \"QEMU\": [\n+ [38, \"qemu\"]\n ],\n- \"First steps as a user\": [\n- [41, \"first-steps-as-a-user\"]\n+ \"Create a Device Type\": [\n+ [38, \"create-a-device-type\"]\n ],\n- \"Logging In\": [\n- [41, \"logging-in\"]\n+ \"Create a device in the database\": [\n+ [38, \"create-a-device-in-the-database\"]\n ],\n- \"Local User Account\": [\n- [41, \"local-user-account\"]\n+ \"Adding a dictionary to the first QEMU device\": [\n+ [38, \"adding-a-dictionary-to-the-first-qemu-device\"]\n ],\n- \"Linaro lab users\": [\n- [41, \"linaro-lab-users\"]\n+ \"Adding other devices of known device-types\": [\n+ [38, \"adding-other-devices-of-known-device-types\"]\n ],\n- \"Authentication Tokens\": [\n- [41, \"authentication-tokens\"]\n+ \"Check existing instances\": [\n+ [38, \"check-existing-instances\"]\n ],\n \"Testing the design\": [\n [35, \"testing-the-design\"]\n ],\n \"Jinja2 templates\": [\n [35, \"jinja2-templates\"]\n ],\n@@ -7088,133 +7003,100 @@\n ],\n \"Use memory analysis tools\": [\n [35, \"use-memory-analysis-tools\"]\n ],\n \"Pre-boot deployment manipulation\": [\n [35, \"pre-boot-deployment-manipulation\"]\n ],\n- \"Submitting your first job\": [\n- [40, \"submitting-your-first-job\"]\n- ],\n- \"Job Definition\": [\n- [40, \"job-definition\"]\n- ],\n- \"Job Submission\": [\n- [40, \"job-submission\"]\n- ],\n- \"Test Definitions\": [\n- [40, \"test-definitions\"]\n- ],\n- \"Viewing test results\": [\n- [40, \"viewing-test-results\"]\n- ],\n- \"Downloading test results\": [\n- [40, \"downloading-test-results\"]\n- ],\n- \"Web Based Job Submission\": [\n- [40, \"web-based-job-submission\"]\n- ],\n- \"XML-RPC Job Submission\": [\n- [40, \"xml-rpc-job-submission\"]\n- ],\n- \"Providing gold standard images\": [\n- [45, \"providing-gold-standard-images\"]\n- ],\n- \"Creating a gold standard image\": [\n- [45, \"creating-a-gold-standard-image\"]\n- ],\n- \"Other gold standard components\": [\n- [45, \"other-gold-standard-components\"]\n- ],\n- \"Lava Dispatcher Design\": [\n- [33, \"lava-dispatcher-design\"]\n+ \"Dispatcher Action Reference\": [\n+ [32, \"dispatcher-action-reference\"]\n ],\n- \"Pipeline Architecture\": [\n- [33, \"pipeline-architecture\"]\n+ \"Deploy Actions\": [\n+ [32, \"deploy-actions\"]\n ],\n- \"Principal changes\": [\n- [33, \"principal-changes\"]\n+ \"Boot Actions\": [\n+ [32, \"boot-actions\"]\n ],\n- \"Objectives\": [\n- [33, \"objectives\"]\n+ \"Test Actions\": [\n+ [32, \"test-actions\"]\n ],\n- \"Design\": [\n- [33, \"design\"]\n+ \"Other test job elements\": [\n+ [32, \"other-test-job-elements\"]\n ],\n- \"Following the code flow\": [\n- [33, \"following-the-code-flow\"]\n+ \"reboot_to_fastboot\": [\n+ [32, \"reboot-to-fastboot\"]\n ],\n- \"Pipeline construction and flow\": [\n- [33, \"pipeline-construction-and-flow\"]\n+ \"Further Examples\": [\n+ [32, \"further-examples\"]\n ],\n- \"Using strategy classes\": [\n- [33, \"using-strategy-classes\"]\n+ \"Functional testing of LAVA source code\": [\n+ [42, \"functional-testing-of-lava-source-code\"]\n ],\n- \"Lava test shell scripts\": [\n- [33, \"lava-test-shell-scripts\"]\n+ \"Background\": [\n+ [42, \"background\"],\n+ [16, \"background\"]\n ],\n- \"Pipeline error handling\": [\n- [33, \"pipeline-error-handling\"]\n+ \"meta-lava\": [\n+ [42, \"meta-lava\"]\n ],\n- \"RuntimeError Exception\": [\n- [33, \"runtimeerror-exception\"]\n+ \"Future plans\": [\n+ [42, \"future-plans\"]\n ],\n- \"InfrastructureError Exception\": [\n- [33, \"infrastructureerror-exception\"]\n+ \"Purpose of functional tests\": [\n+ [42, \"purpose-of-functional-tests\"]\n ],\n- \"JobError Exception\": [\n- [33, \"joberror-exception\"]\n+ \"Requirements for a functional test job\": [\n+ [42, \"requirements-for-a-functional-test-job\"]\n ],\n- \"TestError Exception\": [\n- [33, \"testerror-exception\"]\n+ \"Using the functional test frontend\": [\n+ [42, \"using-the-functional-test-frontend\"]\n ],\n- \"Result bundle identifiers\": [\n- [33, \"result-bundle-identifiers\"]\n+ \"Dedicated workers\": [\n+ [42, \"dedicated-workers\"]\n ],\n- \"Secondary media\": [\n- [33, \"secondary-media\"],\n- [96, \"secondary-media\"]\n+ \"FVP\": [\n+ [43, \"fvp\"]\n ],\n- \"Device configuration design\": [\n- [33, \"device-configuration-design\"]\n+ \"LAVA FVP Dispatcher Setup\": [\n+ [43, \"lava-fvp-dispatcher-setup\"]\n ],\n- \"Device Dictionary\": [\n- [33, \"device-dictionary\"]\n+ \"FVP Binaries\": [\n+ [43, \"fvp-binaries\"]\n ],\n- \"Exporting an existing device dictionary\": [\n- [33, \"exporting-an-existing-device-dictionary\"]\n+ \"Building FVP Docker Images\": [\n+ [43, \"building-fvp-docker-images\"]\n ],\n- \"Reviewing an existing device dictionary\": [\n- [33, \"reviewing-an-existing-device-dictionary\"]\n+ \"Networking inside Models\": [\n+ [43, \"networking-inside-models\"]\n ],\n- \"Example device configuration review\": [\n- [33, \"example-device-configuration-review\"]\n+ \"Reading from all model consoles\": [\n+ [43, \"reading-from-all-model-consoles\"]\n ],\n- \"Importing configuration using a known template\": [\n- [33, \"importing-configuration-using-a-known-template\"]\n+ \"Providing gold standard images\": [\n+ [45, \"providing-gold-standard-images\"]\n ],\n- \"Creating a new template\": [\n- [33, \"creating-a-new-template\"]\n+ \"Creating a gold standard image\": [\n+ [45, \"creating-a-gold-standard-image\"]\n ],\n- \"Running lava-run directly\": [\n- [33, \"running-lava-run-directly\"]\n+ \"Other gold standard components\": [\n+ [45, \"other-gold-standard-components\"]\n ],\n \"LAVA Hacking Sessions\": [\n [47, \"lava-hacking-sessions\"]\n ],\n- \"Assumptions\": [\n- [47, \"assumptions\"],\n- [46, \"assumptions\"]\n- ],\n \"Limitations\": [\n [47, \"limitations\"],\n [105, \"limitations\"],\n [96, \"limitations\"],\n [96, \"id2\"]\n ],\n+ \"Device requirements\": [\n+ [47, \"device-requirements\"],\n+ [39, \"device-requirements\"]\n+ ],\n \"Definitions\": [\n [47, \"definitions\"],\n [5, \"definitions\"],\n [105, \"definitions\"]\n ],\n \"Parameters\": [\n [47, \"parameters\"],\n@@ -7249,436 +7131,421 @@\n ],\n \"Sharing a single device\": [\n [47, \"sharing-a-single-device\"]\n ],\n \"Separating users using virtual machines\": [\n [47, \"separating-users-using-virtual-machines\"]\n ],\n- \"Growing your lab\": [\n- [46, \"growing-your-lab\"]\n- ],\n- \"Logical layouts\": [\n- [46, \"logical-layouts\"]\n- ],\n- \"Single master, single worker\": [\n- [46, \"single-master-single-worker\"]\n- ],\n- \"Single master, multiple workers\": [\n- [46, \"single-master-multiple-workers\"]\n- ],\n- \"Multiple masters, multiple workers\": [\n- [46, \"multiple-masters-multiple-workers\"]\n- ],\n- \"Micro-instances\": [\n- [46, \"micro-instances\"]\n- ],\n- \"Which layout is best?\": [\n- [46, \"which-layout-is-best\"]\n- ],\n- \"Layout Recommendations\": [\n- [46, \"layout-recommendations\"]\n+ \"First steps as a user\": [\n+ [41, \"first-steps-as-a-user\"]\n ],\n- \"Physical layouts\": [\n- [46, \"physical-layouts\"]\n+ \"Logging In\": [\n+ [41, \"logging-in\"]\n ],\n- \"Resources\": [\n- [46, \"resources\"]\n+ \"Local User Account\": [\n+ [41, \"local-user-account\"]\n ],\n- \"How many devices is too many for one worker?\": [\n- [46, \"how-many-devices-is-too-many-for-one-worker\"]\n+ \"Linaro lab users\": [\n+ [41, \"linaro-lab-users\"]\n ],\n- \"Workers in different locations\": [\n- [46, \"workers-in-different-locations\"]\n+ \"Authentication Tokens\": [\n+ [41, \"authentication-tokens\"]\n ],\n- \"Remote Infrastructure\": [\n- [46, \"remote-infrastructure\"]\n+ \"Glossary of terms\": [\n+ [44, \"glossary-of-terms\"]\n ],\n- \"Differences between bootloader types\": [\n- [46, \"differences-between-bootloader-types\"]\n+ \"First steps installing LAVA\": [\n+ [39, \"first-steps-installing-lava\"],\n+ [17, \"first-steps-installing-lava\"]\n ],\n- \"Maintenance windows across remote locations\": [\n- [46, \"maintenance-windows-across-remote-locations\"]\n+ \"Initial LAVA Installation\": [\n+ [39, \"initial-lava-installation\"]\n ],\n- \"Networking to remote locations\": [\n- [46, \"networking-to-remote-locations\"]\n+ \"Requirements to Consider Before Installing LAVA\": [\n+ [39, \"requirements-to-consider-before-installing-lava\"],\n+ [10, \"requirements-to-consider-before-installing-lava\"]\n ],\n- \"Encryption and authentication\": [\n- [46, \"encryption-and-authentication\"]\n+ \"Software Requirements\": [\n+ [39, \"software-requirements\"],\n+ [79, \"software-requirements\"]\n ],\n- \"Firewalls\": [\n- [46, \"firewalls\"]\n+ \"Hardware Requirements\": [\n+ [39, \"hardware-requirements\"],\n+ [79, \"hardware-requirements\"]\n ],\n- \"Using a frontend with remote labs\": [\n- [46, \"using-a-frontend-with-remote-labs\"]\n+ \"MultiNode hardware requirements\": [\n+ [39, \"multinode-hardware-requirements\"]\n ],\n- \"Introduction to Results in LAVA\": [\n- [93, \"introduction-to-results-in-lava\"]\n+ \"Which release to install\": [\n+ [39, \"which-release-to-install\"]\n ],\n- \"Results in LAVA\": [\n- [93, \"results-in-lava\"],\n- [17, \"results-in-lava\"]\n+ \"Installation Types\": [\n+ [39, \"installation-types\"]\n ],\n- \"Accessing results\": [\n- [93, \"accessing-results\"]\n+ \"Single Master Instance installation\": [\n+ [39, \"single-master-instance-installation\"]\n ],\n- \"Accessing specific test results\": [\n- [93, \"accessing-specific-test-results\"]\n+ \"Master with one or more workers\": [\n+ [39, \"master-with-one-or-more-workers\"]\n ],\n- \"Test Suite\": [\n- [93, \"test-suite\"]\n+ \"Configuration outline - start simple\\u2026\": [\n+ [39, \"configuration-outline-start-simple\"]\n ],\n- \"Test Set\": [\n- [93, \"test-set\"]\n+ \"\\u2026then expand\": [\n+ [39, \"then-expand\"]\n ],\n- \"Test Case\": [\n- [93, \"test-case\"]\n+ \"LAVA Coordinator setup\": [\n+ [39, \"lava-coordinator-setup\"]\n ],\n- \"Test Raise\": [\n- [93, \"test-raise\"]\n+ \"Setting Up Serial Connections to LAVA Devices\": [\n+ [39, \"setting-up-serial-connections-to-lava-devices\"]\n ],\n- \"Accessing the test job logs from results\": [\n- [93, \"accessing-the-test-job-logs-from-results\"]\n+ \"Ser2net daemon\": [\n+ [39, \"ser2net-daemon\"]\n ],\n- \"Multiple occurrences\": [\n- [93, \"multiple-occurrences\"]\n+ \"StarTech rackmount usb\": [\n+ [39, \"startech-rackmount-usb\"]\n ],\n- \"Accessing associated sections of test job logs\": [\n- [93, \"accessing-associated-sections-of-test-job-logs\"]\n+ \"Contact and bug reports\": [\n+ [39, \"contact-and-bug-reports\"]\n ],\n- \"Sample output for lava-test-case shell\": [\n- [93, \"sample-output-for-lava-test-case-name-shell\"]\n+ \"Writing YAML job submission files\": [\n+ [34, \"writing-yaml-job-submission-files\"]\n ],\n- \"State machine\": [\n- [95, \"state-machine\"]\n+ \"Basics of the YAML format\": [\n+ [34, \"basics-of-the-yaml-format\"]\n ],\n- \"Devices\": [\n- [95, \"devices\"]\n+ \"Basic structure for job submission\": [\n+ [34, \"basic-structure-for-job-submission\"]\n ],\n- \"TestJobs\": [\n- [95, \"testjobs\"]\n+ \"Sample JOB definition for a KVM\": [\n+ [34, \"sample-job-definition-for-a-kvm\"]\n ],\n- \"Scheduler\": [\n- [95, \"scheduler\"]\n+ \"Basic structure for device_type configuration\": [\n+ [34, \"basic-structure-for-device-type-configuration\"]\n ],\n- \"Health-checks\": [\n- [95, \"health-checks\"]\n+ \"Basic structure for device configuration\": [\n+ [34, \"basic-structure-for-device-configuration\"]\n ],\n- \"Test jobs\": [\n- [95, \"test-jobs\"]\n+ \"Overriding values in device type, device dictionary and the job context\": [\n+ [34, \"overriding-values-in-device-type-device-dictionary-and-the-job-context\"]\n ],\n- \"Setting up a LAVA instance\": [\n- [83, \"setting-up-a-lava-instance\"]\n+ \"Example One\": [\n+ [34, \"example-one\"],\n+ [30, \"example-one\"]\n ],\n- \"Installing just lava-server\": [\n- [83, \"installing-just-lava-server\"]\n+ \"Example Two\": [\n+ [34, \"example-two\"],\n+ [30, \"example-two\"]\n ],\n- \"Installing the full lava set\": [\n- [83, \"installing-the-full-lava-set\"]\n+ \"Example Three\": [\n+ [34, \"example-three\"]\n ],\n- \"Installing master without Recommends\": [\n- [83, \"installing-master-without-recommends\"]\n+ \"Provide environment variables for the device in the job description\": [\n+ [34, \"provide-environment-variables-for-the-device-in-the-job-description\"]\n ],\n- \"Installing lava-dispatcher\": [\n- [83, \"installing-lava-dispatcher\"]\n+ \"Pipeline Device Configuration\": [\n+ [34, \"pipeline-device-configuration\"]\n ],\n- \"Configuring apache2 on a worker\": [\n- [83, \"configuring-apache2-on-a-worker\"]\n+ \"Viewing the Device Dictionary\": [\n+ [34, \"viewing-the-device-dictionary\"]\n ],\n- \"Adding workers to the master\": [\n- [83, \"adding-workers-to-the-master\"]\n+ \"On scheduler device detail page\": [\n+ [34, \"on-scheduler-device-detail-page\"]\n ],\n- \"Adding devices to a worker\": [\n- [83, \"adding-devices-to-a-worker\"]\n+ \"On Job Description Tab\": [\n+ [34, \"on-job-description-tab\"]\n ],\n- \"Pipeline Design\": [\n- [81, \"pipeline-design\"]\n+ \"As Admin\": [\n+ [34, \"as-admin\"]\n ],\n- \"Principles of the LAVA design\": [\n- [81, \"principles-of-the-lava-design\"]\n+ \"Dispatcher actions\": [\n+ [34, \"dispatcher-actions\"]\n ],\n- \"Test Writer aspects\": [\n- [81, \"test-writer-aspects\"]\n+ \"Mapping deployment actions to the python code\": [\n+ [34, \"mapping-deployment-actions-to-the-python-code\"]\n ],\n- \"Administrator aspects\": [\n- [81, \"administrator-aspects\"]\n+ \"Deployment actions\": [\n+ [34, \"deployment-actions\"]\n ],\n- \"Writing jobs using Secondary Connections\": [\n- [86, \"writing-jobs-using-secondary-connections\"]\n+ \"Supported methods\": [\n+ [34, \"supported-methods\"],\n+ [34, \"id1\"]\n ],\n- \"Secure Shell connections (ssh)\": [\n- [86, \"secure-shell-connections-ssh\"]\n+ \"Boot actions\": [\n+ [34, \"boot-actions\"]\n ],\n- \"Delaying the start of a job using Multinode\": [\n- [86, \"delaying-the-start-of-a-job-using-multinode\"]\n+ \"Test actions\": [\n+ [34, \"test-actions\"]\n ],\n- \"Picking up the data in the guest role\": [\n- [86, \"picking-up-the-data-in-the-guest-role\"]\n+ \"Metadata\": [\n+ [34, \"metadata\"],\n+ [92, \"metadata\"],\n+ [101, \"metadata\"],\n+ [111, \"metadata\"]\n ],\n- \"Test definition for the host role\": [\n- [86, \"test-definition-for-the-host-role\"]\n+ \"Submit actions\": [\n+ [34, \"submit-actions\"]\n ],\n- \"Test definition for the guest role\": [\n- [86, \"test-definition-for-the-guest-role\"]\n+ \"Submitting your first job\": [\n+ [40, \"submitting-your-first-job\"]\n ],\n- \"Complete Multinode test definition\": [\n- [86, \"complete-multinode-test-definition\"]\n+ \"Job Definition\": [\n+ [40, \"job-definition\"]\n ],\n- \"Replacing VMGroups using Secondary Connections\": [\n- [87, \"replacing-vmgroups-using-secondary-connections\"]\n+ \"Job Submission\": [\n+ [40, \"job-submission\"]\n ],\n- \"Structure of an example job for a mustang\": [\n- [87, \"structure-of-an-example-job-for-a-mustang\"]\n+ \"Test Definitions\": [\n+ [40, \"test-definitions\"]\n ],\n- \"Notes\": [\n- [87, \"notes\"]\n+ \"Viewing test results\": [\n+ [40, \"viewing-test-results\"]\n ],\n- \"Running operations inside the guest VM\": [\n- [87, \"running-operations-inside-the-guest-vm\"]\n+ \"Downloading test results\": [\n+ [40, \"downloading-test-results\"]\n ],\n- \"Administrator debugging\": [\n- [80, \"administrator-debugging\"]\n+ \"Web Based Job Submission\": [\n+ [40, \"web-based-job-submission\"]\n ],\n- \"Debugging a LAVA instance\": [\n- [80, \"debugging-a-lava-instance\"]\n+ \"XML-RPC Job Submission\": [\n+ [40, \"xml-rpc-job-submission\"]\n ],\n- \"Components\": [\n- [80, \"components\"]\n+ \"Permanency\": [\n+ [31, \"permanency\"]\n ],\n- \"Log files\": [\n- [80, \"log-files\"],\n- [97, \"log-files\"]\n+ \"Device sub-types\": [\n+ [31, \"device-sub-types\"]\n ],\n- \"Command line debugging\": [\n- [80, \"command-line-debugging\"]\n+ \"Choosing a name for a device type\": [\n+ [31, \"choosing-a-name-for-a-device-type\"]\n ],\n- \"Configuration files\": [\n- [80, \"configuration-files\"]\n+ \"Matching the template\": [\n+ [31, \"matching-the-template\"]\n ],\n- \"Check LAVA instance\": [\n- [80, \"check-lava-instance\"]\n+ \"Example device types\": [\n+ [31, \"example-device-types\"]\n ],\n- \"Displaying current settings\": [\n- [80, \"displaying-current-settings\"]\n+ \"Database elements for a device type\": [\n+ [31, \"database-elements-for-a-device-type\"]\n ],\n- \"Django support in 1.11\": [\n- [80, \"django-support-in-1-11\"]\n+ \"Descriptive fields\": [\n+ [31, \"descriptive-fields\"]\n ],\n- \"HTTP proxies\": [\n- [89, \"http-proxies\"]\n+ \"Exporting data out of LAVA\": [\n+ [21, \"exporting-data-out-of-lava\"]\n ],\n- \"Using the HTTP proxy\": [\n- [89, \"using-the-http-proxy\"]\n+ \"REST API\": [\n+ [21, \"rest-api\"]\n ],\n- \"Using the HTTP cache\": [\n- [89, \"using-the-http-cache\"]\n+ \"v0.2\": [\n+ [21, \"v0-2\"]\n ],\n- \"Handling bots\": [\n- [89, \"handling-bots\"]\n+ \"Extra actions\": [\n+ [21, \"extra-actions\"]\n ],\n- \"Development process\": [\n- [88, \"development-process\"]\n+ \"Filtering\": [\n+ [21, \"filtering\"]\n ],\n- \"Design meeting\": [\n- [88, \"design-meeting\"]\n+ \"TestJob object\": [\n+ [21, \"testjob-object\"]\n ],\n- \"Release process\": [\n- [88, \"release-process\"]\n+ \"DeviceType object\": [\n+ [21, \"devicetype-object\"]\n ],\n- \"Reporting Bugs\": [\n- [88, \"reporting-bugs\"]\n+ \"Architecture object\": [\n+ [21, \"architecture-object\"]\n ],\n- \"Advanced Use Cases\": [\n- [84, \"advanced-use-cases\"]\n+ \"ProcessorFamily object\": [\n+ [21, \"processorfamily-object\"]\n ],\n- \"Publishing artifacts\": [\n- [90, \"publishing-artifacts\"]\n+ \"Alias object\": [\n+ [21, \"alias-object\"]\n ],\n- \"Linaro LAVA-lab\": [\n- [90, \"linaro-lava-lab\"]\n+ \"Core object\": [\n+ [21, \"core-object\"]\n ],\n- \"QEMU options\": [\n- [91, \"qemu-options\"]\n+ \"BitWidth object\": [\n+ [21, \"bitwidth-object\"]\n ],\n- \"Virtualization testing\": [\n- [91, \"virtualization-testing\"]\n+ \"Device object\": [\n+ [21, \"device-object\"]\n ],\n- \"Emulation testing\": [\n- [91, \"emulation-testing\"]\n+ \"Worker object\": [\n+ [21, \"worker-object\"]\n ],\n- \"Substitution support\": [\n- [91, \"substitution-support\"]\n+ \"Tag object\": [\n+ [21, \"tag-object\"]\n ],\n- \"Mandatory support\": [\n- [91, \"mandatory-support\"]\n+ \"JobFailureTag object\": [\n+ [21, \"jobfailuretag-object\"]\n ],\n- \"Specific support\": [\n- [91, \"specific-support\"]\n+ \"User object\": [\n+ [21, \"user-object\"]\n ],\n- \"Example command lines\": [\n- [91, \"example-command-lines\"]\n+ \"Group object\": [\n+ [21, \"group-object\"]\n ],\n- \"How to override variables\": [\n- [91, \"how-to-override-variables\"]\n+ \"Nested filtering\": [\n+ [21, \"nested-filtering\"]\n ],\n- \"How to specify QEMU environment options\": [\n- [91, \"how-to-specify-qemu-environment-options\"]\n+ \"Sorting\": [\n+ [21, \"sorting\"]\n ],\n- \"Host architecture support\": [\n- [91, \"host-architecture-support\"]\n+ \"Creating and modifying objects\": [\n+ [21, \"creating-and-modifying-objects\"]\n ],\n- \"LAVA test storage\": [\n- [91, \"lava-test-storage\"]\n+ \"Submitting a test job\": [\n+ [21, \"submitting-a-test-job\"]\n ],\n- \"Correlating a test result with the source code\": [\n- [92, \"correlating-a-test-result-with-the-source-code\"]\n+ \"Deprecated semi-REST API for retrieving results\": [\n+ [21, \"deprecated-semi-rest-api-for-retrieving-results\"]\n ],\n- \"Problems within test suites\": [\n- [92, \"problems-within-test-suites\"]\n+ \"Chunking test suite results\": [\n+ [21, \"chunking-test-suite-results\"]\n ],\n- \"Avoid reliance on the total count\": [\n- [92, \"avoid-reliance-on-the-total-count\"]\n+ \"XML-RPC\": [\n+ [21, \"xml-rpc\"]\n ],\n- \"Control the test operations\": [\n- [92, \"control-the-test-operations\"]\n+ \"User specified notifications\": [\n+ [21, \"user-specified-notifications\"]\n ],\n- \"Control the output\": [\n- [92, \"control-the-output\"]\n+ \"Example test job notification\": [\n+ [21, \"example-test-job-notification\"]\n ],\n- \"Control the base system\": [\n- [92, \"control-the-base-system\"]\n+ \"Event notifications\": [\n+ [21, \"event-notifications\"]\n ],\n- \"Control the build system\": [\n- [92, \"control-the-build-system\"]\n+ \"Example metadata\": [\n+ [21, \"example-metadata\"]\n ],\n- \"Control the list of tests\": [\n- [92, \"control-the-list-of-tests\"]\n+ \"Event notification types\": [\n+ [21, \"event-notification-types\"]\n ],\n- \"Distinguish between CI tests and functional tests\": [\n- [92, \"distinguish-between-ci-tests-and-functional-tests\"]\n+ \"Example device notification\": [\n+ [21, \"example-device-notification\"]\n ],\n- \"Manage testing of complete software stacks\": [\n- [92, \"manage-testing-of-complete-software-stacks\"]\n+ \"Example testjob notification\": [\n+ [21, \"example-testjob-notification\"]\n ],\n- \"Reproducing test jobs\": [\n- [92, \"reproducing-test-jobs\"]\n+ \"Example log event notification\": [\n+ [21, \"example-log-event-notification\"]\n ],\n- \"Test Writer use cases\": [\n- [85, \"test-writer-use-cases\"]\n+ \"Example test event notification\": [\n+ [21, \"example-test-event-notification\"]\n ],\n- \"Writing a LAVA job submission\": [\n- [85, \"writing-a-lava-job-submission\"]\n+ \"Write your own event notification client\": [\n+ [21, \"write-your-own-event-notification-client\"]\n ],\n- \"General principles\": [\n- [85, \"general-principles\"]\n+ \"Submit a job and wait on notifications\": [\n+ [21, \"submit-a-job-and-wait-on-notifications\"]\n ],\n- \"API\": [\n- [85, \"api\"]\n+ \"Writing Tests\": [\n+ [26, \"writing-tests\"]\n ],\n- \"Validity checks\": [\n- [85, \"validity-checks\"]\n+ \"Introduction to the LAVA Test Developer Guide\": [\n+ [26, \"introduction-to-the-lava-test-developer-guide\"]\n ],\n- \"Results\": [\n- [85, \"results\"]\n+ \"Guide Contents\": [\n+ [26, \"guide-contents\"]\n ],\n- \"Job submission data\": [\n- [85, \"job-submission-data\"]\n+ \"Assumptions at the start of this guide\": [\n+ [26, \"assumptions-at-the-start-of-this-guide\"]\n ],\n- \"Writing a new TestJob\": [\n- [85, \"writing-a-new-testjob\"]\n+ \"Checking device availability\": [\n+ [26, \"checking-device-availability\"]\n ],\n- \"YAML syntax\": [\n- [85, \"yaml-syntax\"]\n+ \"Finding an image to run on the device\": [\n+ [26, \"finding-an-image-to-run-on-the-device\"]\n ],\n- \"Common YAML errors\": [\n- [85, \"common-yaml-errors\"]\n+ \"Actions to be run for a LAVA test\": [\n+ [26, \"actions-to-be-run-for-a-lava-test\"]\n ],\n- \"Understanding available support\": [\n- [85, \"understanding-available-support\"]\n+ \"Example of Lava Test\": [\n+ [26, \"example-of-lava-test\"]\n ],\n- \"Understanding a TestJob\": [\n- [85, \"understanding-a-testjob\"]\n+ \"Deploying a pre-built QEMU image\": [\n+ [26, \"deploying-a-pre-built-qemu-image\"]\n ],\n- \"Submissions using advanced features\": [\n- [85, \"submissions-using-advanced-features\"]\n+ \"Using device tags\": [\n+ [26, \"using-device-tags\"]\n ],\n- \"Templating\": [\n- [85, \"templating\"]\n+ \"Using checksums\": [\n+ [26, \"using-checksums\"]\n ],\n- \"Including YAML\": [\n- [85, \"including-yaml\"]\n+ \"Using Lava-Test Test Definition 1.0\": [\n+ [26, \"using-lava-test-test-definition-1-0\"]\n ],\n- \"LAVA review criteria\": [\n- [94, \"lava-review-criteria\"]\n+ \"Custom result handling\": [\n+ [20, \"custom-result-handling\"]\n ],\n- \"Keep the dispatcher dumb\": [\n- [94, \"keep-the-dispatcher-dumb\"]\n+ \"Closing the CI loop\": [\n+ [20, \"closing-the-ci-loop\"]\n ],\n- \"Avoid defaults in dispatcher code\": [\n- [94, \"avoid-defaults-in-dispatcher-code\"]\n+ \"Important features of a CI loop\": [\n+ [20, \"important-features-of-a-ci-loop\"]\n ],\n- \"Let the test fail and diagnose later\": [\n- [94, \"let-the-test-fail-and-diagnose-later\"]\n+ \"Where LAVA fits into the testing\": [\n+ [20, \"where-lava-fits-into-the-testing\"]\n ],\n- \"Treat the deployment as a black box\": [\n- [94, \"treat-the-deployment-as-a-black-box\"]\n+ \"Splitting the testing\": [\n+ [20, \"splitting-the-testing\"]\n ],\n- \"Only protect the essential components\": [\n- [94, \"only-protect-the-essential-components\"]\n+ \"Questions to ask\": [\n+ [20, \"questions-to-ask\"]\n ],\n- \"Give the test writer enough rope\": [\n- [94, \"give-the-test-writer-enough-rope\"]\n+ \"KernelCI.org\": [\n+ [20, \"kernelci-org\"]\n ],\n- \"Guidance\": [\n- [94, \"guidance\"]\n+ \"SQUAD\": [\n+ [20, \"squad\"]\n ],\n- \"LAVA schema\": [\n- [82, \"lava-schema\"]\n+ \"Adding new device types\": [\n+ [30, \"adding-new-device-types\"]\n ],\n- \"Job Submission Schema\": [\n- [82, \"job-submission-schema\"]\n+ \"Device Requirements\": [\n+ [30, \"device-requirements\"]\n ],\n- \"Schema elements\": [\n- [82, \"schema-elements\"]\n+ \"Reproducibility\": [\n+ [30, \"reproducibility\"]\n ],\n- \"Comments\": [\n- [82, \"comments\"]\n+ \"Reliability\": [\n+ [30, \"reliability\"],\n+ [14, \"reliability\"]\n ],\n- \"Job Name\": [\n- [82, \"job-name\"]\n+ \"Scriptability\": [\n+ [30, \"scriptability\"]\n ],\n- \"Device Type\": [\n- [82, \"device-type\"]\n+ \"Scalability\": [\n+ [30, \"scalability\"],\n+ [14, \"scalability\"]\n ],\n- \"Timeouts\": [\n- [82, \"timeouts\"],\n- [106, \"timeouts\"],\n- [70, \"timeouts\"]\n+ \"Power\": [\n+ [30, \"power\"]\n ],\n- \"Priority\": [\n- [82, \"priority\"]\n+ \"Reset\": [\n+ [30, \"reset\"]\n ],\n- \"Context\": [\n- [82, \"context\"],\n- [100, \"context\"]\n+ \"Networking\": [\n+ [30, \"networking\"]\n ],\n- \"Protocols\": [\n- [82, \"protocols\"]\n+ \"Serial console\": [\n+ [30, \"serial-console\"]\n ],\n- \"Actions\": [\n- [82, \"actions\"],\n- [70, \"actions\"]\n+ \"Integration process\": [\n+ [30, \"integration-process\"]\n ],\n- \"Deploy Action\": [\n- [82, \"deploy-action\"]\n+ \"Find a similar existing device type\": [\n+ [30, \"find-a-similar-existing-device-type\"]\n ],\n- \"Boot Action\": [\n- [82, \"boot-action\"]\n+ \"Extend from an existing device type template\": [\n+ [30, \"extend-from-an-existing-device-type-template\"]\n ],\n- \"Test Action\": [\n- [82, \"test-action\"]\n+ \"Extend the template unit tests\": [\n+ [30, \"extend-the-template-unit-tests\"]\n ],\n \"LAVA Software Project Contribution - Introduction\": [\n [19, \"lava-software-project-contribution-introduction\"]\n ],\n \"Before you start\": [\n [19, \"before-you-start\"]\n ],\n@@ -7696,186 +7563,180 @@\n ],\n \"Contributing to the functional testing\": [\n [19, \"contributing-to-the-functional-testing\"]\n ],\n \"Mailing lists and IRC\": [\n [19, \"mailing-lists-and-irc\"]\n ],\n- \"Guide to development within LAVA\": [\n- [28, \"guide-to-development-within-lava\"]\n- ],\n- \"Dependencies required to run unit tests\": [\n- [28, \"dependencies-required-to-run-unit-tests\"]\n- ],\n- \"Developing using device-type templates\": [\n- [28, \"developing-using-device-type-templates\"]\n- ],\n- \"Device type templates as code\": [\n- [28, \"device-type-templates-as-code\"]\n+ \"Device Capabilities Support\": [\n+ [29, \"device-capabilities-support\"]\n ],\n- \"Testing new device-type templates\": [\n- [28, \"testing-new-device-type-templates\"]\n+ \"Device owner abilities\": [\n+ [29, \"device-owner-abilities\"]\n ],\n- \"Use version-control for device-type templates\": [\n- [28, \"use-version-control-for-device-type-templates\"]\n+ \"Deploying test images using LXC\": [\n+ [24, \"deploying-test-images-using-lxc\"]\n ],\n- \"Contribute device-type templates back upstream\": [\n- [28, \"contribute-device-type-templates-back-upstream\"]\n+ \"Using LXC as Device Type\": [\n+ [24, \"using-lxc-as-device-type\"]\n ],\n- \"Developer workflows\": [\n- [28, \"developer-workflows\"]\n+ \"Protocol elements\": [\n+ [24, \"protocol-elements\"],\n+ [24, \"id2\"],\n+ [3, \"protocol-elements\"]\n ],\n- \"Code locations\": [\n- [28, \"code-locations\"]\n+ \"Sample Job Definition\": [\n+ [24, \"sample-job-definition\"],\n+ [24, \"id3\"]\n ],\n- \"Compatibility\": [\n- [28, \"compatibility\"]\n+ \"Namespaces\": [\n+ [24, \"namespaces\"]\n ],\n- \"Jinja2 support\": [\n- [28, \"jinja2-support\"]\n+ \"Using the LXC protocol to support Android\": [\n+ [24, \"using-the-lxc-protocol-to-support-android\"]\n ],\n- \"Device dictionaries\": [\n- [28, \"device-dictionaries\"]\n+ \"LAVA Android Naming Conventions\": [\n+ [24, \"lava-android-naming-conventions\"]\n ],\n- \"Dispatcher device configurations\": [\n- [28, \"dispatcher-device-configurations\"]\n+ \"Requirements and Limitations\": [\n+ [24, \"requirements-and-limitations\"]\n ],\n- \"Contributing Upstream\": [\n- [28, \"contributing-upstream\"]\n+ \"Feedback from the device\": [\n+ [24, \"feedback-from-the-device\"]\n ],\n- \"Planning\": [\n- [28, \"planning\"]\n+ \"Differences between LXC releases\": [\n+ [24, \"differences-between-lxc-releases\"]\n ],\n- \"Report a Bug\": [\n- [28, \"report-a-bug\"]\n+ \"First steps using LAVA\": [\n+ [17, \"first-steps-using-lava\"]\n ],\n- \"Community contributions\": [\n- [28, \"community-contributions\"]\n+ \"CI with LAVA\": [\n+ [17, \"ci-with-lava\"]\n ],\n- \"Contributing via your distribution\": [\n- [28, \"contributing-via-your-distribution\"]\n+ \"Writing tests for LAVA\": [\n+ [17, \"writing-tests-for-lava\"]\n ],\n- \"Contributing via GitHub\": [\n- [28, \"contributing-via-github\"]\n+ \"Results in LAVA\": [\n+ [17, \"results-in-lava\"],\n+ [93, \"results-in-lava\"]\n ],\n- \"Developing LAVA on Debian\": [\n- [22, \"developing-lava-on-debian\"]\n+ \"LAVA administration guide\": [\n+ [17, \"lava-administration-guide\"]\n ],\n- \"Why Debian?\": [\n- [22, \"why-debian\"]\n+ \"LAVA Software Community Project Contribution Guide\": [\n+ [17, \"lava-software-community-project-contribution-guide\"],\n+ [18, \"lava-software-community-project-contribution-guide\"]\n ],\n- \"Options for other distributions\": [\n- [22, \"options-for-other-distributions\"]\n+ \"LAVA device integration guide\": [\n+ [17, \"lava-device-integration-guide\"]\n ],\n- \"Preparing for LAVA development\": [\n- [22, \"preparing-for-lava-development\"]\n+ \"Migrating to V2\": [\n+ [17, \"migrating-to-v2\"]\n ],\n- \"Developer package build\": [\n- [22, \"developer-package-build\"]\n+ \"Context help\": [\n+ [17, \"context-help\"]\n ],\n- \"Changes from 2018.10 onwards\": [\n- [22, \"changes-from-2018-10-onwards\"]\n+ \"Debugging LAVA test failures\": [\n+ [23, \"debugging-lava-test-failures\"]\n ],\n- \"Which branch to use for changes\": [\n- [22, \"which-branch-to-use-for-changes\"]\n+ \"Read the logs\": [\n+ [23, \"index-1\"]\n ],\n- \"Local version strings\": [\n- [22, \"local-version-strings\"]\n+ \"Read the failure comment\": [\n+ [23, \"read-the-failure-comment\"]\n ],\n- \"Distribution differences\": [\n- [22, \"distribution-differences\"]\n+ \"Boot failure\": [\n+ [23, \"index-2\"]\n ],\n- \"Example\": [\n- [22, \"example\"],\n- [0, \"example\"]\n+ \"Failure to find/mount the rootfs\": [\n+ [23, \"failure-to-find-mount-the-rootfs\"]\n ],\n- \"Developer build versions\": [\n- [22, \"developer-build-versions\"]\n+ \"Start simple\": [\n+ [23, \"start-simple\"]\n ],\n- \"Development using Python3\": [\n- [22, \"development-using-python3\"]\n+ \"Change one thing at a time\": [\n+ [23, \"change-one-thing-at-a-time\"]\n ],\n- \"Quick fixes and testing\": [\n- [22, \"quick-fixes-and-testing\"]\n+ \"Make your tests and setup verbose\": [\n+ [23, \"make-your-tests-and-setup-verbose\"]\n ],\n- \"Viewing changes\": [\n- [22, \"viewing-changes\"]\n+ \"Provide debug data in all test jobs\": [\n+ [23, \"provide-debug-data-in-all-test-jobs\"]\n ],\n- \"Migrating postgresql versions\": [\n- [22, \"migrating-postgresql-versions\"]\n+ \"Common pitfalls\": [\n+ [23, \"common-pitfalls\"]\n ],\n- \"Determining the active cluster\": [\n- [22, \"determining-the-active-cluster\"]\n+ \"Handling locally built files\": [\n+ [23, \"handling-locally-built-files\"]\n ],\n- \"Performing the migration\": [\n- [22, \"performing-the-migration\"]\n+ \"Avoid using shell operators in YAML lines\": [\n+ [23, \"avoid-using-shell-operators-in-yaml-lines\"]\n ],\n- \"Dependency Requirements\": [\n- [22, \"dependency-requirements\"]\n+ \"Test your result parsers\": [\n+ [23, \"test-your-result-parsers\"]\n ],\n- \"Outputting the requirements.txt format\": [\n- [22, \"outputting-the-requirements-txt-format\"]\n+ \"Be obsessive about paths and scripts\": [\n+ [23, \"be-obsessive-about-paths-and-scripts\"]\n ],\n- \"Outputting a list of binary package names\": [\n- [22, \"outputting-a-list-of-binary-package-names\"]\n+ \"Debugging automation failures\": [\n+ [23, \"debugging-automation-failures\"]\n ],\n- \"Adding packages needed for the unittests\": [\n- [22, \"adding-packages-needed-for-the-unittests\"]\n+ \"Infrastructure effects\": [\n+ [23, \"infrastructure-effects\"]\n ],\n- \"Javascript handling\": [\n- [22, \"javascript-handling\"]\n+ \"Hidden assumptions in the manual operations\": [\n+ [23, \"hidden-assumptions-in-the-manual-operations\"]\n ],\n- \"Javascript and security\": [\n- [22, \"javascript-and-security\"]\n+ \"Differences in input speeds\": [\n+ [23, \"differences-in-input-speeds\"]\n ],\n- \"Javascript maintenance\": [\n- [22, \"javascript-maintenance\"]\n+ \"Setting boot_character_delay\": [\n+ [23, \"setting-boot-character-delay\"]\n ],\n- \"Packaging changes\": [\n- [22, \"packaging-changes\"]\n+ \"Setting test_character_delay\": [\n+ [23, \"setting-test-character-delay\"]\n ],\n- \"Building for other architectures\": [\n- [22, \"building-for-other-architectures\"]\n+ \"Debugging MultiNode tests\": [\n+ [23, \"debugging-multinode-tests\"]\n ],\n- \"Debugging Django issues\": [\n- [22, \"debugging-django-issues\"]\n+ \"Simplify your MultiNode test\": [\n+ [23, \"simplify-your-multinode-test\"]\n ],\n- \"Installing\": [\n- [22, \"installing\"]\n+ \"Check that your message ID labels are consistent\": [\n+ [23, \"check-that-your-message-id-labels-are-consistent\"]\n ],\n- \"Performance overhead\": [\n- [22, \"performance-overhead\"]\n+ \"A failed test is not necessarily a bug in the test\": [\n+ [23, \"a-failed-test-is-not-necessarily-a-bug-in-the-test\"]\n ],\n- \"Custom result handling\": [\n- [20, \"custom-result-handling\"]\n+ \"Developing new classes for LAVA V2\": [\n+ [25, \"developing-new-classes-for-lava-v2\"]\n ],\n- \"Closing the CI loop\": [\n- [20, \"closing-the-ci-loop\"]\n+ \"Test with simple scripts\": [\n+ [25, \"test-with-simple-scripts\"]\n ],\n- \"Important features of a CI loop\": [\n- [20, \"important-features-of-a-ci-loop\"]\n+ \"Start with new classes\": [\n+ [25, \"start-with-new-classes\"]\n ],\n- \"Where LAVA fits into the testing\": [\n- [20, \"where-lava-fits-into-the-testing\"]\n+ \"Add support files for unit tests\": [\n+ [25, \"add-support-files-for-unit-tests\"]\n ],\n- \"Splitting the testing\": [\n- [20, \"splitting-the-testing\"]\n+ \"Add unit tests\": [\n+ [25, \"add-unit-tests\"]\n ],\n- \"Questions to ask\": [\n- [20, \"questions-to-ask\"]\n+ \"Run all the unit tests\": [\n+ [25, \"run-all-the-unit-tests\"]\n ],\n- \"KernelCI.org\": [\n- [20, \"kernelci-org\"]\n+ \"Incorporate the test script into the classes\": [\n+ [25, \"incorporate-the-test-script-into-the-classes\"]\n ],\n- \"SQUAD\": [\n- [20, \"squad\"]\n+ \"Check the new classes\": [\n+ [25, \"check-the-new-classes\"]\n ],\n- \"LAVA Software Community Project Contribution Guide\": [\n- [18, \"lava-software-community-project-contribution-guide\"],\n- [17, \"lava-software-community-project-contribution-guide\"]\n+ \"Startup achieved\": [\n+ [25, \"startup-achieved\"]\n ],\n \"About the Contribution Guidelines\": [\n [18, \"about-the-contribution-guidelines\"]\n ],\n \"Conflicting priorities\": [\n [18, \"conflicting-priorities\"]\n ],\n@@ -7996,14 +7857,159 @@\n ],\n \"LAVA database model visualization\": [\n [27, \"lava-database-model-visualization\"]\n ],\n \"Developer access to django shell\": [\n [27, \"developer-access-to-django-shell\"]\n ],\n+ \"Developing LAVA on Debian\": [\n+ [22, \"developing-lava-on-debian\"]\n+ ],\n+ \"Why Debian?\": [\n+ [22, \"why-debian\"]\n+ ],\n+ \"Options for other distributions\": [\n+ [22, \"options-for-other-distributions\"]\n+ ],\n+ \"Preparing for LAVA development\": [\n+ [22, \"preparing-for-lava-development\"]\n+ ],\n+ \"Developer package build\": [\n+ [22, \"developer-package-build\"]\n+ ],\n+ \"Changes from 2018.10 onwards\": [\n+ [22, \"changes-from-2018-10-onwards\"]\n+ ],\n+ \"Which branch to use for changes\": [\n+ [22, \"which-branch-to-use-for-changes\"]\n+ ],\n+ \"Local version strings\": [\n+ [22, \"local-version-strings\"]\n+ ],\n+ \"Distribution differences\": [\n+ [22, \"distribution-differences\"]\n+ ],\n+ \"Example\": [\n+ [22, \"example\"],\n+ [0, \"example\"]\n+ ],\n+ \"Developer build versions\": [\n+ [22, \"developer-build-versions\"]\n+ ],\n+ \"Development using Python3\": [\n+ [22, \"development-using-python3\"]\n+ ],\n+ \"Quick fixes and testing\": [\n+ [22, \"quick-fixes-and-testing\"]\n+ ],\n+ \"Viewing changes\": [\n+ [22, \"viewing-changes\"]\n+ ],\n+ \"Migrating postgresql versions\": [\n+ [22, \"migrating-postgresql-versions\"]\n+ ],\n+ \"Determining the active cluster\": [\n+ [22, \"determining-the-active-cluster\"]\n+ ],\n+ \"Performing the migration\": [\n+ [22, \"performing-the-migration\"]\n+ ],\n+ \"Dependency Requirements\": [\n+ [22, \"dependency-requirements\"]\n+ ],\n+ \"Outputting the requirements.txt format\": [\n+ [22, \"outputting-the-requirements-txt-format\"]\n+ ],\n+ \"Outputting a list of binary package names\": [\n+ [22, \"outputting-a-list-of-binary-package-names\"]\n+ ],\n+ \"Adding packages needed for the unittests\": [\n+ [22, \"adding-packages-needed-for-the-unittests\"]\n+ ],\n+ \"Javascript handling\": [\n+ [22, \"javascript-handling\"]\n+ ],\n+ \"Javascript and security\": [\n+ [22, \"javascript-and-security\"]\n+ ],\n+ \"Javascript maintenance\": [\n+ [22, \"javascript-maintenance\"]\n+ ],\n+ \"Packaging changes\": [\n+ [22, \"packaging-changes\"]\n+ ],\n+ \"Building for other architectures\": [\n+ [22, \"building-for-other-architectures\"]\n+ ],\n+ \"Debugging Django issues\": [\n+ [22, \"debugging-django-issues\"]\n+ ],\n+ \"Installing\": [\n+ [22, \"installing\"]\n+ ],\n+ \"Performance overhead\": [\n+ [22, \"performance-overhead\"]\n+ ],\n+ \"Guide to development within LAVA\": [\n+ [28, \"guide-to-development-within-lava\"]\n+ ],\n+ \"Dependencies required to run unit tests\": [\n+ [28, \"dependencies-required-to-run-unit-tests\"]\n+ ],\n+ \"Developing using device-type templates\": [\n+ [28, \"developing-using-device-type-templates\"]\n+ ],\n+ \"Device type templates as code\": [\n+ [28, \"device-type-templates-as-code\"]\n+ ],\n+ \"Testing new device-type templates\": [\n+ [28, \"testing-new-device-type-templates\"]\n+ ],\n+ \"Use version-control for device-type templates\": [\n+ [28, \"use-version-control-for-device-type-templates\"]\n+ ],\n+ \"Contribute device-type templates back upstream\": [\n+ [28, \"contribute-device-type-templates-back-upstream\"]\n+ ],\n+ \"Developer workflows\": [\n+ [28, \"developer-workflows\"]\n+ ],\n+ \"Code locations\": [\n+ [28, \"code-locations\"]\n+ ],\n+ \"Compatibility\": [\n+ [28, \"compatibility\"]\n+ ],\n+ \"Jinja2 support\": [\n+ [28, \"jinja2-support\"]\n+ ],\n+ \"Device dictionaries\": [\n+ [28, \"device-dictionaries\"]\n+ ],\n+ \"Dispatcher device configurations\": [\n+ [28, \"dispatcher-device-configurations\"]\n+ ],\n+ \"Contributing Upstream\": [\n+ [28, \"contributing-upstream\"]\n+ ],\n+ \"Planning\": [\n+ [28, \"planning\"]\n+ ],\n+ \"Report a Bug\": [\n+ [28, \"report-a-bug\"]\n+ ],\n+ \"Community contributions\": [\n+ [28, \"community-contributions\"]\n+ ],\n+ \"Contributing via your distribution\": [\n+ [28, \"contributing-via-your-distribution\"]\n+ ],\n+ \"Contributing via GitHub\": [\n+ [28, \"contributing-via-github\"]\n+ ],\n \"Connections in device configuration\": [\n [16, \"connections-in-device-configuration\"]\n ],\n \"Connections in test jobs\": [\n [16, \"connections-in-test-jobs\"]\n ],\n \"Connections and namespaces\": [\n@@ -8091,381 +8097,411 @@\n ],\n \"Persistence\": [\n [16, \"persistence\"]\n ],\n \"Disposable chroot deployments\": [\n [16, \"disposable-chroot-deployments\"]\n ],\n- \"Deploying test images using LXC\": [\n- [24, \"deploying-test-images-using-lxc\"]\n- ],\n- \"Using LXC as Device Type\": [\n- [24, \"using-lxc-as-device-type\"]\n- ],\n- \"Protocol elements\": [\n- [24, \"protocol-elements\"],\n- [24, \"id2\"],\n- [3, \"protocol-elements\"]\n- ],\n- \"Sample Job Definition\": [\n- [24, \"sample-job-definition\"],\n- [24, \"id3\"]\n- ],\n- \"Namespaces\": [\n- [24, \"namespaces\"]\n- ],\n- \"Using the LXC protocol to support Android\": [\n- [24, \"using-the-lxc-protocol-to-support-android\"]\n- ],\n- \"LAVA Android Naming Conventions\": [\n- [24, \"lava-android-naming-conventions\"]\n- ],\n- \"Requirements and Limitations\": [\n- [24, \"requirements-and-limitations\"]\n- ],\n- \"Feedback from the device\": [\n- [24, \"feedback-from-the-device\"]\n- ],\n- \"Differences between LXC releases\": [\n- [24, \"differences-between-lxc-releases\"]\n- ],\n- \"Adding new device types\": [\n- [30, \"adding-new-device-types\"]\n- ],\n- \"Device Requirements\": [\n- [30, \"device-requirements\"]\n- ],\n- \"Reproducibility\": [\n- [30, \"reproducibility\"]\n- ],\n- \"Reliability\": [\n- [30, \"reliability\"],\n- [14, \"reliability\"]\n- ],\n- \"Scriptability\": [\n- [30, \"scriptability\"]\n- ],\n- \"Scalability\": [\n- [30, \"scalability\"],\n- [14, \"scalability\"]\n- ],\n- \"Power\": [\n- [30, \"power\"]\n- ],\n- \"Reset\": [\n- [30, \"reset\"]\n- ],\n- \"Networking\": [\n- [30, \"networking\"]\n- ],\n- \"Serial console\": [\n- [30, \"serial-console\"]\n- ],\n- \"Integration process\": [\n- [30, \"integration-process\"]\n- ],\n- \"Find a similar existing device type\": [\n- [30, \"find-a-similar-existing-device-type\"]\n- ],\n- \"Extend from an existing device type template\": [\n- [30, \"extend-from-an-existing-device-type-template\"]\n- ],\n- \"Extend the template unit tests\": [\n- [30, \"extend-the-template-unit-tests\"]\n- ],\n- \"Debugging LAVA test failures\": [\n- [23, \"debugging-lava-test-failures\"]\n- ],\n- \"Read the logs\": [\n- [23, \"index-1\"]\n+ \"Protocol Reference\": [\n+ [3, \"protocol-reference\"]\n ],\n- \"Read the failure comment\": [\n- [23, \"read-the-failure-comment\"]\n+ \"Using protocols from actions\": [\n+ [3, \"using-protocols-from-actions\"]\n ],\n- \"Boot failure\": [\n- [23, \"index-2\"]\n+ \"MultiNode Protocol\": [\n+ [3, \"multinode-protocol\"]\n ],\n- \"Failure to find/mount the rootfs\": [\n- [23, \"failure-to-find-mount-the-rootfs\"]\n+ \"lava-start API call\": [\n+ [3, \"lava-start-api-call\"]\n ],\n- \"Start simple\": [\n- [23, \"start-simple\"]\n+ \"Passing data at startup\": [\n+ [3, \"passing-data-at-startup\"]\n ],\n- \"Change one thing at a time\": [\n- [23, \"change-one-thing-at-a-time\"]\n+ \"Managing flow using inline definitions\": [\n+ [3, \"managing-flow-using-inline-definitions\"]\n ],\n- \"Make your tests and setup verbose\": [\n- [23, \"make-your-tests-and-setup-verbose\"]\n+ \"Marking some roles as essential\": [\n+ [3, \"marking-some-roles-as-essential\"]\n ],\n- \"Provide debug data in all test jobs\": [\n- [23, \"provide-debug-data-in-all-test-jobs\"]\n+ \"Protocol requests from actions\": [\n+ [3, \"protocol-requests-from-actions\"],\n+ [3, \"vland-protocol-requests\"],\n+ [3, \"lxc-protocol-requests\"]\n ],\n- \"Common pitfalls\": [\n- [23, \"common-pitfalls\"]\n+ \"VLANd protocol\": [\n+ [3, \"vland-protocol\"]\n ],\n- \"Handling locally built files\": [\n- [23, \"handling-locally-built-files\"]\n+ \"LXC protocol\": [\n+ [3, \"lxc-protocol\"]\n ],\n- \"Avoid using shell operators in YAML lines\": [\n- [23, \"avoid-using-shell-operators-in-yaml-lines\"]\n+ \"User permissions and authorization\": [\n+ [12, \"user-permissions-and-authorization\"]\n ],\n- \"Test your result parsers\": [\n- [23, \"test-your-result-parsers\"]\n+ \"Global authorization\": [\n+ [12, \"global-authorization\"]\n ],\n- \"Be obsessive about paths and scripts\": [\n- [23, \"be-obsessive-about-paths-and-scripts\"]\n+ \"Per-object authorization\": [\n+ [12, \"per-object-authorization\"]\n ],\n- \"Debugging automation failures\": [\n- [23, \"debugging-automation-failures\"]\n+ \"Permission inheritance\": [\n+ [12, \"permission-inheritance\"]\n ],\n- \"Infrastructure effects\": [\n- [23, \"infrastructure-effects\"]\n+ \"Anonymous users vs authenticated users\": [\n+ [12, \"anonymous-users-vs-authenticated-users\"]\n ],\n- \"Hidden assumptions in the manual operations\": [\n- [23, \"hidden-assumptions-in-the-manual-operations\"]\n+ \"Test job specifics on visibility\": [\n+ [12, \"test-job-specifics-on-visibility\"]\n ],\n- \"Differences in input speeds\": [\n- [23, \"differences-in-input-speeds\"]\n+ \"Setup\": [\n+ [12, \"setup\"]\n ],\n- \"Setting boot_character_delay\": [\n- [23, \"setting-boot-character-delay\"]\n+ \"Data migration\": [\n+ [12, \"data-migration\"]\n ],\n- \"Setting test_character_delay\": [\n- [23, \"setting-test-character-delay\"]\n+ \"Visibility decision trees\": [\n+ [12, \"visibility-decision-trees\"]\n ],\n- \"Debugging MultiNode tests\": [\n- [23, \"debugging-multinode-tests\"]\n+ \"Deploy Action Reference\": [\n+ [2, \"deploy-action-reference\"]\n ],\n- \"Simplify your MultiNode test\": [\n- [23, \"simplify-your-multinode-test\"]\n+ \"Deploy action roles\": [\n+ [2, \"deploy-action-roles\"]\n ],\n- \"Check that your message ID labels are consistent\": [\n- [23, \"check-that-your-message-id-labels-are-consistent\"]\n+ \"Required parameters\": [\n+ [2, \"required-parameters\"]\n ],\n- \"A failed test is not necessarily a bug in the test\": [\n- [23, \"a-failed-test-is-not-necessarily-a-bug-in-the-test\"]\n+ \"Overlays\": [\n+ [2, \"overlays\"]\n ],\n- \"Writing Tests\": [\n- [26, \"writing-tests\"]\n+ \"Parameter List\": [\n+ [2, \"parameter-list\"]\n ],\n- \"Introduction to the LAVA Test Developer Guide\": [\n- [26, \"introduction-to-the-lava-test-developer-guide\"]\n+ \"to: docker\": [\n+ [2, \"to-docker\"]\n ],\n- \"Guide Contents\": [\n- [26, \"guide-contents\"]\n+ \"os\": [\n+ [2, \"os\"]\n ],\n- \"Assumptions at the start of this guide\": [\n- [26, \"assumptions-at-the-start-of-this-guide\"]\n+ \"image\": [\n+ [2, \"image\"]\n ],\n- \"Checking device availability\": [\n- [26, \"checking-device-availability\"]\n+ \"name\": [\n+ [2, \"name\"],\n+ [5, \"name\"],\n+ [5, \"id2\"],\n+ [5, \"id3\"]\n ],\n- \"Finding an image to run on the device\": [\n- [26, \"finding-an-image-to-run-on-the-device\"]\n+ \"local\": [\n+ [2, \"local\"]\n ],\n- \"Actions to be run for a LAVA test\": [\n- [26, \"actions-to-be-run-for-a-lava-test\"]\n+ \"to: download\": [\n+ [2, \"to-download\"]\n ],\n- \"Example of Lava Test\": [\n- [26, \"example-of-lava-test\"]\n+ \"images\": [\n+ [2, \"images\"],\n+ [2, \"deploy-to-fastboot-images\"],\n+ [2, \"deploy-to-fvp-images\"],\n+ [2, \"deploy-to-iso-installer-images\"],\n+ [2, \"id15\"],\n+ [2, \"deploy-to-tmpfs-images\"],\n+ [2, \"deploy-to-mps-recovery\"],\n+ [2, \"id70\"]\n ],\n- \"Deploying a pre-built QEMU image\": [\n- [26, \"deploying-a-pre-built-qemu-image\"]\n+ \"label\": [\n+ [2, \"label\"],\n+ [2, \"deploy-to-tmpfs-images-label\"]\n ],\n- \"Using device tags\": [\n- [26, \"using-device-tags\"]\n+ \"url *\": [\n+ [2, \"url\"],\n+ [2, \"id8\"],\n+ [2, \"deploy-to-musca-binary-url\"],\n+ [2, \"deploy-to-nbd-kernel-url\"],\n+ [2, \"deploy-to-nbd-dtb-url\"],\n+ [2, \"deploy-to-nbd-initrd-url\"],\n+ [2, \"deploy-to-nbd-nbdroot-url\"],\n+ [2, \"deploy-to-tftp-kernel-url\"],\n+ [2, \"deploy-to-tftp-dtb-url\"],\n+ [2, \"deploy-to-tftp-modules-url\"],\n+ [2, \"deploy-to-tftp-ramdisk-url\"],\n+ [2, \"deploy-to-tftp-nfsrootfs-url\"],\n+ [2, \"deploy-to-tmpfs-images-url\"],\n+ [2, \"deploy-to-vemsd-recovery-url\"],\n+ [2, \"deploy-to-mps-recovery-url\"],\n+ [2, \"deploy-to-mps-binary-url\"]\n ],\n- \"Using checksums\": [\n- [26, \"using-checksums\"]\n+ \"Supported schema\": [\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null]\n ],\n- \"Using Lava-Test Test Definition 1.0\": [\n- [26, \"using-lava-test-test-definition-1-0\"]\n+ \"compression\": [\n+ [2, \"compression\"],\n+ [2, \"deploy-to-fastboot-images-compression\"],\n+ [2, \"deploy-to-iso-installer-images-iso-compression\"],\n+ [2, \"deploy-to-nbd-nfsroot-compression\"],\n+ [2, \"deploy-to-tftp-modules-compression\"],\n+ [2, \"deploy-to-tftp-ramdisk-compression\"],\n+ [2, \"deploy-to-tftp-nfsrootfs-compression\"],\n+ [2, \"deploy-to-tmpfs-images-compression\"],\n+ [2, \"deploy-to-vemsd-recovery-compression\"],\n+ [2, \"deploy-to-mps-recovery-compression\"],\n+ [2, \"deploy-to-uuu-images-compression\"]\n ],\n- \"Permanency\": [\n- [31, \"permanency\"]\n+ \"Allowed values\": [\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null],\n+ [2, null]\n ],\n- \"Device sub-types\": [\n- [31, \"device-sub-types\"]\n+ \"archive\": [\n+ [2, \"archive\"],\n+ [2, \"deploy-to-fastboot-images-archive\"],\n+ [2, \"deploy-to-iso-installer-images-iso-archive\"],\n+ [2, \"deploy-to-nbd-nfsroot-archive\"],\n+ [2, \"deploy-to-tftp-modules-archive\"],\n+ [2, \"deploy-to-tftp-ramdisk-archive\"],\n+ [2, \"deploy-to-tftp-nfsrootfs-archive\"],\n+ [2, \"deploy-to-tmpfs-archive\"]\n ],\n- \"Choosing a name for a device type\": [\n- [31, \"choosing-a-name-for-a-device-type\"]\n+ \"md5sum\": [\n+ [2, \"md5sum\"],\n+ [2, \"deploy-to-fastboot-images-md5sum\"],\n+ [2, \"deploy-to-nbd-images-md5sum\"],\n+ [2, \"deploy-to-tmpfs-images-md5sum\"],\n+ [2, \"deploy-to-uuu-images-md5sum\"]\n ],\n- \"Matching the template\": [\n- [31, \"matching-the-template\"]\n+ \"sha256sum\": [\n+ [2, \"sha256sum\"],\n+ [2, \"deploy-to-fastboot-images-sha256sum\"],\n+ [2, \"deploy-to-nbd-images-sha256sum\"],\n+ [2, \"deploy-to-tmpfs-images-sha256sum\"],\n+ [2, \"deploy-to-uuu-images-sha256sum\"]\n ],\n- \"Example device types\": [\n- [31, \"example-device-types\"]\n+ \"sha512sum\": [\n+ [2, \"sha512sum\"],\n+ [2, \"id6\"],\n+ [2, \"id27\"],\n+ [2, \"id56\"],\n+ [2, \"id78\"]\n ],\n- \"Database elements for a device type\": [\n- [31, \"database-elements-for-a-device-type\"]\n+ \"to: fastboot\": [\n+ [2, \"to-fastboot\"]\n ],\n- \"Descriptive fields\": [\n- [31, \"descriptive-fields\"]\n+ \"partition\": [\n+ [2, \"partition\"],\n+ [2, \"id71\"]\n ],\n- \"First steps using LAVA\": [\n- [17, \"first-steps-using-lava\"]\n+ \"reboot\": [\n+ [2, \"reboot\"]\n ],\n- \"CI with LAVA\": [\n- [17, \"ci-with-lava\"]\n+ \"apply-overlay\": [\n+ [2, \"apply-overlay\"],\n+ [2, \"deploy-to-uuu-images-apply-overlay\"]\n ],\n- \"Writing tests for LAVA\": [\n- [17, \"writing-tests-for-lava\"]\n+ \"sparse\": [\n+ [2, \"sparse\"],\n+ [2, \"deploy-to-uuu-images-sparse\"]\n ],\n- \"LAVA administration guide\": [\n- [17, \"lava-administration-guide\"]\n+ \"to: fvp\": [\n+ [2, \"to-fvp\"]\n ],\n- \"LAVA device integration guide\": [\n- [17, \"lava-device-integration-guide\"]\n+ \"overlays\": [\n+ [2, \"id9\"]\n ],\n- \"Migrating to V2\": [\n- [17, \"migrating-to-v2\"]\n+ \"partition *\": [\n+ [2, \"id10\"]\n ],\n- \"Context help\": [\n- [17, \"context-help\"]\n+ \"ramdisk\": [\n+ [2, \"ramdisk\"],\n+ [2, \"deploy-to-sata-ramdisk\"],\n+ [2, \"deploy-to-tftp-ramdisk\"],\n+ [2, \"deploy-to-usb-ramdisk\"]\n ],\n- \"Device Capabilities Support\": [\n- [29, \"device-capabilities-support\"]\n+ \"to: iso-installer\": [\n+ [2, \"to-iso-installer\"]\n ],\n- \"Device owner abilities\": [\n- [29, \"device-owner-abilities\"]\n+ \"iso\": [\n+ [2, \"iso\"],\n+ [2, \"deploy-to-iso-installer-iso\"]\n ],\n- \"Developing new classes for LAVA V2\": [\n- [25, \"developing-new-classes-for-lava-v2\"]\n+ \"image_arg\": [\n+ [2, \"image-arg\"],\n+ [2, \"deploy-to-tmpfs-images-image-arg\"]\n ],\n- \"Test with simple scripts\": [\n- [25, \"test-with-simple-scripts\"]\n+ \"preseed\": [\n+ [2, \"preseed\"]\n ],\n- \"Start with new classes\": [\n- [25, \"start-with-new-classes\"]\n+ \"kernel\": [\n+ [2, \"kernel\"],\n+ [2, \"deploy-to-nbd-kernel\"],\n+ [2, \"deploy-to-tftp-kernel\"]\n ],\n- \"Add support files for unit tests\": [\n- [25, \"add-support-files-for-unit-tests\"]\n+ \"initrd\": [\n+ [2, \"initrd\"],\n+ [2, \"deploy-to-nbd-initrd\"]\n ],\n- \"Add unit tests\": [\n- [25, \"add-unit-tests\"]\n+ \"console\": [\n+ [2, \"console\"]\n ],\n- \"Run all the unit tests\": [\n- [25, \"run-all-the-unit-tests\"]\n+ \"installation_size\": [\n+ [2, \"installation-size\"]\n ],\n- \"Incorporate the test script into the classes\": [\n- [25, \"incorporate-the-test-script-into-the-classes\"]\n+ \"to: lxc\": [\n+ [2, \"to-lxc\"]\n ],\n- \"Check the new classes\": [\n- [25, \"check-the-new-classes\"]\n+ \"packages\": [\n+ [2, \"packages\"]\n ],\n- \"Startup achieved\": [\n- [25, \"startup-achieved\"]\n+ \"to: musca\": [\n+ [2, \"to-musca\"]\n ],\n- \"Exporting data out of LAVA\": [\n- [21, \"exporting-data-out-of-lava\"]\n+ \"test_binary\": [\n+ [2, \"test-binary\"],\n+ [2, \"deploy-to-mps-test-binary\"]\n ],\n- \"REST API\": [\n- [21, \"rest-api\"]\n+ \"to: nbd\": [\n+ [2, \"to-nbd\"]\n ],\n- \"v0.2\": [\n- [21, \"v0-2\"]\n+ \"type\": [\n+ [2, \"type\"],\n+ [2, \"deploy-to-tftp-kernel-type\"]\n ],\n- \"Extra actions\": [\n- [21, \"extra-actions\"]\n+ \"Supported types\": [\n+ [2, null],\n+ [2, null]\n ],\n- \"Filtering\": [\n- [21, \"filtering\"]\n+ \"dtb\": [\n+ [2, \"dtb\"],\n+ [2, \"deploy-to-tftp-dtb\"]\n ],\n- \"TestJob object\": [\n- [21, \"testjob-object\"]\n+ \"modules\": [\n+ [2, \"modules\"],\n+ [2, \"deploy-to-tftp-modules\"]\n ],\n- \"DeviceType object\": [\n- [21, \"devicetype-object\"]\n+ \"nbdroot\": [\n+ [2, \"nbdroot\"]\n ],\n- \"Architecture object\": [\n- [21, \"architecture-object\"]\n+ \"to: recovery\": [\n+ [2, \"to-recovery\"]\n ],\n- \"ProcessorFamily object\": [\n- [21, \"processorfamily-object\"]\n+ \"to: sata\": [\n+ [2, \"to-sata\"]\n ],\n- \"Alias object\": [\n- [21, \"alias-object\"]\n+ \"kernel *\": [\n+ [2, \"deploy-to-sata-kernel\"],\n+ [2, \"deploy-to-usb-kernel\"]\n ],\n- \"Core object\": [\n- [21, \"core-object\"]\n+ \"dtb *\": [\n+ [2, \"deploy-to-sata-dtb\"],\n+ [2, \"deploy-to-usb-dtb\"]\n ],\n- \"BitWidth object\": [\n- [21, \"bitwidth-object\"]\n+ \"UUID *\": [\n+ [2, \"uuid\"],\n+ [2, \"deploy-to-usb-uuid\"]\n ],\n- \"Device object\": [\n- [21, \"device-object\"]\n+ \"boot_part *\": [\n+ [2, \"boot-part\"],\n+ [2, \"deploy-to-usb-boot-part\"]\n ],\n- \"Worker object\": [\n- [21, \"worker-object\"]\n+ \"to: ssh\": [\n+ [2, \"to-ssh\"]\n ],\n- \"Tag object\": [\n- [21, \"tag-object\"]\n+ \"connection\": [\n+ [2, \"connection\"],\n+ [0, \"connection\"]\n ],\n- \"JobFailureTag object\": [\n- [21, \"jobfailuretag-object\"]\n+ \"protocols\": [\n+ [2, \"protocols\"]\n ],\n- \"User object\": [\n- [21, \"user-object\"]\n+ \"to: tftp\": [\n+ [2, \"to-tftp\"]\n ],\n- \"Group object\": [\n- [21, \"group-object\"]\n+ \"header\": [\n+ [2, \"header\"]\n ],\n- \"Nested filtering\": [\n- [21, \"nested-filtering\"]\n+ \"nfsrootfs\": [\n+ [2, \"nfsrootfs\"]\n ],\n- \"Sorting\": [\n- [21, \"sorting\"]\n+ \"persistent_nfs\": [\n+ [2, \"persistent-nfs\"]\n ],\n- \"Creating and modifying objects\": [\n- [21, \"creating-and-modifying-objects\"]\n+ \"Known Caveats\": [\n+ [2, null]\n ],\n- \"Submitting a test job\": [\n- [21, \"submitting-a-test-job\"]\n+ \"address *\": [\n+ [2, \"address\"]\n ],\n- \"Deprecated semi-REST API for retrieving results\": [\n- [21, \"deprecated-semi-rest-api-for-retrieving-results\"]\n+ \"to: tmpfs\": [\n+ [2, \"to-tmpfs\"]\n ],\n- \"Chunking test suite results\": [\n- [21, \"chunking-test-suite-results\"]\n+ \"to: usb\": [\n+ [2, \"to-usb\"]\n ],\n- \"XML-RPC\": [\n- [21, \"xml-rpc\"]\n+ \"to: vemsd\": [\n+ [2, \"to-vemsd\"]\n ],\n- \"User specified notifications\": [\n- [21, \"user-specified-notifications\"]\n+ \"recovery_image\": [\n+ [2, \"recovery-image\"],\n+ [2, \"id65\"]\n ],\n- \"Example test job notification\": [\n- [21, \"example-test-job-notification\"]\n+ \"to: mps\": [\n+ [2, \"to-mps\"]\n ],\n- \"Event notifications\": [\n- [21, \"event-notifications\"]\n+ \"rename\": [\n+ [2, \"rename\"]\n ],\n- \"Example metadata\": [\n- [21, \"example-metadata\"]\n+ \"to: uuu\": [\n+ [2, \"to-uuu\"]\n ],\n- \"Event notification types\": [\n- [21, \"event-notification-types\"]\n+ \"os *\": [\n+ [2, \"deploy-os\"]\n ],\n- \"Example device notification\": [\n- [21, \"example-device-notification\"]\n+ \"Repeat\": [\n+ [4, \"repeat\"]\n ],\n- \"Example testjob notification\": [\n- [21, \"example-testjob-notification\"]\n+ \"Handling repeats\": [\n+ [4, \"handling-repeats\"]\n ],\n- \"Example log event notification\": [\n- [21, \"example-log-event-notification\"]\n+ \"Repeating single actions\": [\n+ [4, \"repeating-single-actions\"]\n ],\n- \"Example test event notification\": [\n- [21, \"example-test-event-notification\"]\n+ \"Retry on failure\": [\n+ [4, \"retry-on-failure\"]\n ],\n- \"Write your own event notification client\": [\n- [21, \"write-your-own-event-notification-client\"]\n+ \"Retry interval on failure\": [\n+ [4, \"retry-interval-on-failure\"]\n ],\n- \"Submit a job and wait on notifications\": [\n- [21, \"submit-a-job-and-wait-on-notifications\"]\n+ \"Repeating blocks of actions\": [\n+ [4, \"repeating-blocks-of-actions\"]\n ],\n \"Advanced Installation Topics\": [\n [10, \"advanced-installation-topics\"]\n ],\n \"Laptops\": [\n [10, \"laptops\"]\n ],\n@@ -8561,70 +8597,136 @@\n ],\n \"Configuring log file display\": [\n [10, \"configuring-log-file-display\"]\n ],\n \"Extending the schema white list\": [\n [10, \"extending-the-schema-white-list\"]\n ],\n- \"User permissions and authorization\": [\n- [12, \"user-permissions-and-authorization\"]\n- ],\n- \"Global authorization\": [\n- [12, \"global-authorization\"]\n- ],\n- \"Per-object authorization\": [\n- [12, \"per-object-authorization\"]\n+ \"LAVA Software Community Project Code of Conduct\": [\n+ [15, \"lava-software-community-project-code-of-conduct\"]\n ],\n- \"Permission inheritance\": [\n- [12, \"permission-inheritance\"]\n+ \"Be respectful\": [\n+ [15, \"be-respectful\"]\n ],\n- \"Anonymous users vs authenticated users\": [\n- [12, \"anonymous-users-vs-authenticated-users\"]\n+ \"Assume good faith\": [\n+ [15, \"assume-good-faith\"]\n ],\n- \"Test job specifics on visibility\": [\n- [12, \"test-job-specifics-on-visibility\"]\n+ \"Be collaborative\": [\n+ [15, \"be-collaborative\"]\n ],\n- \"Setup\": [\n- [12, \"setup\"]\n+ \"Try to be concise\": [\n+ [15, \"try-to-be-concise\"]\n ],\n- \"Data migration\": [\n- [12, \"data-migration\"]\n+ \"Be open\": [\n+ [15, \"be-open\"]\n ],\n- \"Visibility decision trees\": [\n- [12, \"visibility-decision-trees\"]\n+ \"In case of problems\": [\n+ [15, \"in-case-of-problems\"]\n ],\n \"Configuring user authentication\": [\n [11, \"configuring-user-authentication\"]\n ],\n \"Using Lightweight Directory Access Protocol (LDAP)\": [\n [11, \"using-lightweight-directory-access-protocol-ldap\"]\n ],\n \"Using external authentication provider supported by django-allauth\": [\n [11, \"using-external-authentication-provider-supported-by-django-allauth\"]\n ],\n \"Using Open ID Connect (OIDC) authentication providers\": [\n [11, \"using-open-id-connect-oidc-authentication-providers\"]\n ],\n- \"Timeout Reference\": [\n- [6, \"timeout-reference\"]\n+ \"Bootloader/Firmware Testing and Recovery\": [\n+ [14, \"bootloader-firmware-testing-and-recovery\"]\n ],\n- \"Job timeout\": [\n- [6, \"job-timeout\"]\n+ \"What is recovery mode?\": [\n+ [14, \"what-is-recovery-mode\"]\n ],\n- \"Action timeout\": [\n- [6, \"action-timeout\"]\n+ \"Bootloader recovery criteria\": [\n+ [14, \"bootloader-recovery-criteria\"]\n ],\n- \"Individual action timeouts\": [\n- [6, \"individual-action-timeouts\"]\n+ \"Uniqueness\": [\n+ [14, \"uniqueness\"]\n ],\n- \"Connection timeout\": [\n- [6, \"connection-timeout\"]\n+ \"Deployment\": [\n+ [14, \"deployment\"]\n ],\n- \"Individual connection timeouts\": [\n- [6, \"individual-connection-timeouts\"]\n+ \"Comparison of barriers to bootloader testing and recovery\": [\n+ [14, \"comparison-of-barriers-to-bootloader-testing-and-recovery\"]\n+ ],\n+ \"Defensive testing\": [\n+ [14, \"defensive-testing\"]\n+ ],\n+ \"Problems with bootloader execution\": [\n+ [14, \"problems-with-bootloader-execution\"]\n+ ],\n+ \"Problems with bootloader storage\": [\n+ [14, \"problems-with-bootloader-storage\"]\n+ ],\n+ \"Problems with full system images\": [\n+ [14, \"problems-with-full-system-images\"]\n+ ],\n+ \"HiKey 6220\": [\n+ [14, \"hikey-6220\"]\n+ ],\n+ \"Recovery deployment\": [\n+ [14, \"id8\"],\n+ [14, \"id9\"],\n+ [14, \"id10\"]\n+ ],\n+ \"AOSP deployment\": [\n+ [14, \"aosp-deployment\"]\n+ ],\n+ \"OpenEmbedded deployment\": [\n+ [14, \"openembedded-deployment\"],\n+ [14, \"id11\"]\n+ ],\n+ \"Limits of HiKey 6220 recovery\": [\n+ [14, \"limits-of-hikey-6220-recovery\"]\n+ ],\n+ \"Juno\": [\n+ [14, \"juno\"]\n+ ],\n+ \"U-Boot boot action\": [\n+ [14, \"u-boot-boot-action\"]\n+ ],\n+ \"X15 GPEVM\": [\n+ [14, \"x15-gpevm\"]\n+ ],\n+ \"Command Action Reference\": [\n+ [1, \"command-action-reference\"]\n+ ],\n+ \"Admin Setup\": [\n+ [1, \"admin-setup\"]\n+ ],\n+ \"Deploying LXC devices\": [\n+ [8, \"deploying-lxc-devices\"]\n+ ],\n+ \"Prerequisite\": [\n+ [8, \"prerequisite\"]\n+ ],\n+ \"Android testing with LXC support\": [\n+ [8, \"android-testing-with-lxc-support\"]\n+ ],\n+ \"Arbitrary external devices needing LXC support\": [\n+ [8, \"arbitrary-external-devices-needing-lxc-support\"]\n+ ],\n+ \"USB attached devices\": [\n+ [8, \"usb-attached-devices\"]\n+ ],\n+ \"Other related devices\": [\n+ [8, \"other-related-devices\"]\n+ ],\n+ \"Persistent Containers\": [\n+ [8, \"persistent-containers\"]\n+ ],\n+ \"Unprivileged containers as root\": [\n+ [8, \"unprivileged-containers-as-root\"]\n+ ],\n+ \"Other resources\": [\n+ [8, \"other-resources\"]\n ],\n \"Enabling Secondary Media\": [\n [9, \"enabling-secondary-media\"]\n ],\n \"Device configuration\": [\n [9, \"device-configuration\"],\n [0, \"device-configuration\"]\n@@ -8656,14 +8758,57 @@\n ],\n \"Using UBoot with USB secondary media\": [\n [9, \"using-uboot-with-usb-secondary-media\"]\n ],\n \"USB UBoot Test Job submission\": [\n [9, \"usb-uboot-test-job-submission\"]\n ],\n+ \"Building and manipulating images for your devices\": [\n+ [13, \"building-and-manipulating-images-for-your-devices\"]\n+ ],\n+ \"Basics of building an image\": [\n+ [13, \"basics-of-building-an-image\"]\n+ ],\n+ \"Obtaining a kernel\": [\n+ [13, \"obtaining-a-kernel\"]\n+ ],\n+ \"Obtaining a bootloader\": [\n+ [13, \"obtaining-a-bootloader\"]\n+ ],\n+ \"Inspecting existing images\": [\n+ [13, \"inspecting-existing-images\"]\n+ ],\n+ \"Tools to install and get to know\": [\n+ [13, \"tools-to-install-and-get-to-know\"]\n+ ],\n+ \"Concepts behind boot images\": [\n+ [13, \"concepts-behind-boot-images\"]\n+ ],\n+ \"Find the offset\": [\n+ [13, \"find-the-offset\"]\n+ ],\n+ \"Mounting partitions using loop and offset\": [\n+ [13, \"mounting-partitions-using-loop-and-offset\"]\n+ ],\n+ \"Creating new images\": [\n+ [13, \"creating-new-images\"]\n+ ],\n+ \"Making a bootstrap rootfs usable\": [\n+ [13, \"making-a-bootstrap-rootfs-usable\"]\n+ ],\n+ \"Other steps which may be required\": [\n+ [13, \"other-steps-which-may-be-required\"]\n+ ],\n+ \"Increasing the number of loop devices\": [\n+ [13, \"increasing-the-number-of-loop-devices\"]\n+ ],\n+ \"Further information\": [\n+ [13, \"further-information\"],\n+ [77, \"further-information\"]\n+ ],\n \"Creating Backups\": [\n [7, \"creating-backups\"]\n ],\n \"Dependencies within backups\": [\n [7, \"dependencies-within-backups\"]\n ],\n \"Issues with the base suite\": [\n@@ -8680,87 +8825,14 @@\n ],\n \"Restoring a master from a backup\": [\n [7, \"restoring-a-master-from-a-backup\"]\n ],\n \"Restoring a worker from backups\": [\n [7, \"restoring-a-worker-from-backups\"]\n ],\n- \"Test Action Reference\": [\n- [5, \"test-action-reference\"]\n- ],\n- \"repository\": [\n- [5, \"repository\"]\n- ],\n- \"from\": [\n- [5, \"from\"]\n- ],\n- \"git\": [\n- [5, \"git\"]\n- ],\n- \"inline\": [\n- [5, \"inline\"]\n- ],\n- \"path\": [\n- [5, \"path\"]\n- ],\n- \"name\": [\n- [5, \"name\"],\n- [5, \"id2\"],\n- [5, \"id3\"],\n- [2, \"name\"]\n- ],\n- \"params\": [\n- [5, \"params\"]\n- ],\n- \"Skipping elements of test definitions\": [\n- [5, \"skipping-elements-of-test-definitions\"]\n- ],\n- \"deps\": [\n- [5, \"deps\"]\n- ],\n- \"keys\": [\n- [5, \"keys\"]\n- ],\n- \"sources\": [\n- [5, \"sources\"]\n- ],\n- \"steps\": [\n- [5, \"steps\"]\n- ],\n- \"all\": [\n- [5, \"all\"]\n- ],\n- \"Inline test definition example\": [\n- [5, \"inline-test-definition-example\"]\n- ],\n- \"Additional support\": [\n- [5, \"additional-support\"]\n- ],\n- \"Result checks\": [\n- [5, \"result-checks\"]\n- ],\n- \"TestSets\": [\n- [5, \"testsets\"]\n- ],\n- \"Interactive\": [\n- [5, \"interactive\"]\n- ],\n- \"prompts\": [\n- [5, \"prompts\"],\n- [0, \"prompts\"]\n- ],\n- \"echo\": [\n- [5, \"echo\"]\n- ],\n- \"script\": [\n- [5, \"script\"]\n- ],\n- \"Monitors\": [\n- [5, \"monitors\"]\n- ],\n \"Boot Action Reference\": [\n [0, \"boot-action-reference\"]\n ],\n \"auto_login\": [\n [0, \"auto-login\"]\n ],\n \"login_prompt\": [\n@@ -8774,17 +8846,17 @@\n ],\n \"password\": [\n [0, \"password\"]\n ],\n \"login_commands\": [\n [0, \"login-commands\"]\n ],\n- \"connection\": [\n- [0, \"connection\"],\n- [2, \"connection\"]\n+ \"prompts\": [\n+ [0, \"prompts\"],\n+ [5, \"prompts\"]\n ],\n \"connection-namespace\": [\n [0, \"connection-namespace\"]\n ],\n \"commands\": [\n [0, \"commands\"],\n [0, \"boot-method-u-boot-commands\"]\n@@ -8898,528 +8970,497 @@\n ],\n \"Using commands\": [\n [0, \"using-commands\"]\n ],\n \"BCU Integration\": [\n [0, \"bcu-integration\"]\n ],\n- \"Deploy Action Reference\": [\n- [2, \"deploy-action-reference\"]\n+ \"Test Action Reference\": [\n+ [5, \"test-action-reference\"]\n ],\n- \"Deploy action roles\": [\n- [2, \"deploy-action-roles\"]\n+ \"repository\": [\n+ [5, \"repository\"]\n ],\n- \"Required parameters\": [\n- [2, \"required-parameters\"]\n+ \"from\": [\n+ [5, \"from\"]\n ],\n- \"Overlays\": [\n- [2, \"overlays\"]\n+ \"git\": [\n+ [5, \"git\"]\n ],\n- \"Parameter List\": [\n- [2, \"parameter-list\"]\n+ \"inline\": [\n+ [5, \"inline\"]\n ],\n- \"to: docker\": [\n- [2, \"to-docker\"]\n+ \"path\": [\n+ [5, \"path\"]\n ],\n- \"os\": [\n- [2, \"os\"]\n+ \"params\": [\n+ [5, \"params\"]\n ],\n- \"image\": [\n- [2, \"image\"]\n+ \"Skipping elements of test definitions\": [\n+ [5, \"skipping-elements-of-test-definitions\"]\n ],\n- \"local\": [\n- [2, \"local\"]\n+ \"deps\": [\n+ [5, \"deps\"]\n ],\n- \"to: download\": [\n- [2, \"to-download\"]\n+ \"keys\": [\n+ [5, \"keys\"]\n ],\n- \"images\": [\n- [2, \"images\"],\n- [2, \"deploy-to-fastboot-images\"],\n- [2, \"deploy-to-fvp-images\"],\n- [2, \"deploy-to-iso-installer-images\"],\n- [2, \"id15\"],\n- [2, \"deploy-to-tmpfs-images\"],\n- [2, \"deploy-to-mps-recovery\"],\n- [2, \"id70\"]\n+ \"sources\": [\n+ [5, \"sources\"]\n ],\n- \"label\": [\n- [2, \"label\"],\n- [2, \"deploy-to-tmpfs-images-label\"]\n+ \"steps\": [\n+ [5, \"steps\"]\n ],\n- \"url *\": [\n- [2, \"url\"],\n- [2, \"id8\"],\n- [2, \"deploy-to-musca-binary-url\"],\n- [2, \"deploy-to-nbd-kernel-url\"],\n- [2, \"deploy-to-nbd-dtb-url\"],\n- [2, \"deploy-to-nbd-initrd-url\"],\n- [2, \"deploy-to-nbd-nbdroot-url\"],\n- [2, \"deploy-to-tftp-kernel-url\"],\n- [2, \"deploy-to-tftp-dtb-url\"],\n- [2, \"deploy-to-tftp-modules-url\"],\n- [2, \"deploy-to-tftp-ramdisk-url\"],\n- [2, \"deploy-to-tftp-nfsrootfs-url\"],\n- [2, \"deploy-to-tmpfs-images-url\"],\n- [2, \"deploy-to-vemsd-recovery-url\"],\n- [2, \"deploy-to-mps-recovery-url\"],\n- [2, \"deploy-to-mps-binary-url\"]\n+ \"all\": [\n+ [5, \"all\"]\n ],\n- \"Supported schema\": [\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null]\n+ \"Inline test definition example\": [\n+ [5, \"inline-test-definition-example\"]\n ],\n- \"compression\": [\n- [2, \"compression\"],\n- [2, \"deploy-to-fastboot-images-compression\"],\n- [2, \"deploy-to-iso-installer-images-iso-compression\"],\n- [2, \"deploy-to-nbd-nfsroot-compression\"],\n- [2, \"deploy-to-tftp-modules-compression\"],\n- [2, \"deploy-to-tftp-ramdisk-compression\"],\n- [2, \"deploy-to-tftp-nfsrootfs-compression\"],\n- [2, \"deploy-to-tmpfs-images-compression\"],\n- [2, \"deploy-to-vemsd-recovery-compression\"],\n- [2, \"deploy-to-mps-recovery-compression\"],\n- [2, \"deploy-to-uuu-images-compression\"]\n+ \"Additional support\": [\n+ [5, \"additional-support\"]\n ],\n- \"Allowed values\": [\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null],\n- [2, null]\n+ \"Result checks\": [\n+ [5, \"result-checks\"]\n ],\n- \"archive\": [\n- [2, \"archive\"],\n- [2, \"deploy-to-fastboot-images-archive\"],\n- [2, \"deploy-to-iso-installer-images-iso-archive\"],\n- [2, \"deploy-to-nbd-nfsroot-archive\"],\n- [2, \"deploy-to-tftp-modules-archive\"],\n- [2, \"deploy-to-tftp-ramdisk-archive\"],\n- [2, \"deploy-to-tftp-nfsrootfs-archive\"],\n- [2, \"deploy-to-tmpfs-archive\"]\n+ \"TestSets\": [\n+ [5, \"testsets\"]\n ],\n- \"md5sum\": [\n- [2, \"md5sum\"],\n- [2, \"deploy-to-fastboot-images-md5sum\"],\n- [2, \"deploy-to-nbd-images-md5sum\"],\n- [2, \"deploy-to-tmpfs-images-md5sum\"],\n- [2, \"deploy-to-uuu-images-md5sum\"]\n+ \"Interactive\": [\n+ [5, \"interactive\"]\n ],\n- \"sha256sum\": [\n- [2, \"sha256sum\"],\n- [2, \"deploy-to-fastboot-images-sha256sum\"],\n- [2, \"deploy-to-nbd-images-sha256sum\"],\n- [2, \"deploy-to-tmpfs-images-sha256sum\"],\n- [2, \"deploy-to-uuu-images-sha256sum\"]\n+ \"echo\": [\n+ [5, \"echo\"]\n ],\n- \"sha512sum\": [\n- [2, \"sha512sum\"],\n- [2, \"id6\"],\n- [2, \"id27\"],\n- [2, \"id56\"],\n- [2, \"id78\"]\n+ \"script\": [\n+ [5, \"script\"]\n ],\n- \"to: fastboot\": [\n- [2, \"to-fastboot\"]\n+ \"Monitors\": [\n+ [5, \"monitors\"]\n ],\n- \"partition\": [\n- [2, \"partition\"],\n- [2, \"id71\"]\n+ \"Timeout Reference\": [\n+ [6, \"timeout-reference\"]\n ],\n- \"reboot\": [\n- [2, \"reboot\"]\n+ \"Job timeout\": [\n+ [6, \"job-timeout\"]\n ],\n- \"apply-overlay\": [\n- [2, \"apply-overlay\"],\n- [2, \"deploy-to-uuu-images-apply-overlay\"]\n+ \"Action timeout\": [\n+ [6, \"action-timeout\"]\n ],\n- \"sparse\": [\n- [2, \"sparse\"],\n- [2, \"deploy-to-uuu-images-sparse\"]\n+ \"Individual action timeouts\": [\n+ [6, \"individual-action-timeouts\"]\n ],\n- \"to: fvp\": [\n- [2, \"to-fvp\"]\n+ \"Connection timeout\": [\n+ [6, \"connection-timeout\"]\n ],\n- \"overlays\": [\n- [2, \"id9\"]\n+ \"Individual connection timeouts\": [\n+ [6, \"individual-connection-timeouts\"]\n ],\n- \"partition *\": [\n- [2, \"id10\"]\n+ \"Correlating a test result with the source code\": [\n+ [92, \"correlating-a-test-result-with-the-source-code\"]\n ],\n- \"ramdisk\": [\n- [2, \"ramdisk\"],\n- [2, \"deploy-to-sata-ramdisk\"],\n- [2, \"deploy-to-tftp-ramdisk\"],\n- [2, \"deploy-to-usb-ramdisk\"]\n+ \"Problems within test suites\": [\n+ [92, \"problems-within-test-suites\"]\n ],\n- \"to: iso-installer\": [\n- [2, \"to-iso-installer\"]\n+ \"Avoid reliance on the total count\": [\n+ [92, \"avoid-reliance-on-the-total-count\"]\n ],\n- \"iso\": [\n- [2, \"iso\"],\n- [2, \"deploy-to-iso-installer-iso\"]\n+ \"Control the test operations\": [\n+ [92, \"control-the-test-operations\"]\n ],\n- \"image_arg\": [\n- [2, \"image-arg\"],\n- [2, \"deploy-to-tmpfs-images-image-arg\"]\n+ \"Control the output\": [\n+ [92, \"control-the-output\"]\n ],\n- \"preseed\": [\n- [2, \"preseed\"]\n+ \"Control the base system\": [\n+ [92, \"control-the-base-system\"]\n ],\n- \"kernel\": [\n- [2, \"kernel\"],\n- [2, \"deploy-to-nbd-kernel\"],\n- [2, \"deploy-to-tftp-kernel\"]\n+ \"Control the build system\": [\n+ [92, \"control-the-build-system\"]\n ],\n- \"initrd\": [\n- [2, \"initrd\"],\n- [2, \"deploy-to-nbd-initrd\"]\n+ \"Control the list of tests\": [\n+ [92, \"control-the-list-of-tests\"]\n ],\n- \"console\": [\n- [2, \"console\"]\n+ \"Distinguish between CI tests and functional tests\": [\n+ [92, \"distinguish-between-ci-tests-and-functional-tests\"]\n ],\n- \"installation_size\": [\n- [2, \"installation-size\"]\n+ \"Manage testing of complete software stacks\": [\n+ [92, \"manage-testing-of-complete-software-stacks\"]\n ],\n- \"to: lxc\": [\n- [2, \"to-lxc\"]\n+ \"Reproducing test jobs\": [\n+ [92, \"reproducing-test-jobs\"]\n ],\n- \"packages\": [\n- [2, \"packages\"]\n+ \"Administrator debugging\": [\n+ [80, \"administrator-debugging\"]\n ],\n- \"to: musca\": [\n- [2, \"to-musca\"]\n+ \"Debugging a LAVA instance\": [\n+ [80, \"debugging-a-lava-instance\"]\n ],\n- \"test_binary\": [\n- [2, \"test-binary\"],\n- [2, \"deploy-to-mps-test-binary\"]\n+ \"Components\": [\n+ [80, \"components\"]\n ],\n- \"to: nbd\": [\n- [2, \"to-nbd\"]\n+ \"Log files\": [\n+ [80, \"log-files\"],\n+ [97, \"log-files\"]\n ],\n- \"type\": [\n- [2, \"type\"],\n- [2, \"deploy-to-tftp-kernel-type\"]\n+ \"Command line debugging\": [\n+ [80, \"command-line-debugging\"]\n ],\n- \"Supported types\": [\n- [2, null],\n- [2, null]\n+ \"Configuration files\": [\n+ [80, \"configuration-files\"]\n ],\n- \"dtb\": [\n- [2, \"dtb\"],\n- [2, \"deploy-to-tftp-dtb\"]\n+ \"Check LAVA instance\": [\n+ [80, \"check-lava-instance\"]\n ],\n- \"modules\": [\n- [2, \"modules\"],\n- [2, \"deploy-to-tftp-modules\"]\n+ \"Displaying current settings\": [\n+ [80, \"displaying-current-settings\"]\n ],\n- \"nbdroot\": [\n- [2, \"nbdroot\"]\n+ \"Django support in 1.11\": [\n+ [80, \"django-support-in-1-11\"]\n ],\n- \"to: recovery\": [\n- [2, \"to-recovery\"]\n+ \"Setting up a LAVA instance\": [\n+ [83, \"setting-up-a-lava-instance\"]\n ],\n- \"to: sata\": [\n- [2, \"to-sata\"]\n+ \"Installing just lava-server\": [\n+ [83, \"installing-just-lava-server\"]\n ],\n- \"kernel *\": [\n- [2, \"deploy-to-sata-kernel\"],\n- [2, \"deploy-to-usb-kernel\"]\n+ \"Installing the full lava set\": [\n+ [83, \"installing-the-full-lava-set\"]\n ],\n- \"dtb *\": [\n- [2, \"deploy-to-sata-dtb\"],\n- [2, \"deploy-to-usb-dtb\"]\n+ \"Installing master without Recommends\": [\n+ [83, \"installing-master-without-recommends\"]\n ],\n- \"UUID *\": [\n- [2, \"uuid\"],\n- [2, \"deploy-to-usb-uuid\"]\n+ \"Installing lava-dispatcher\": [\n+ [83, \"installing-lava-dispatcher\"]\n ],\n- \"boot_part *\": [\n- [2, \"boot-part\"],\n- [2, \"deploy-to-usb-boot-part\"]\n+ \"Configuring apache2 on a worker\": [\n+ [83, \"configuring-apache2-on-a-worker\"]\n ],\n- \"to: ssh\": [\n- [2, \"to-ssh\"]\n+ \"Adding workers to the master\": [\n+ [83, \"adding-workers-to-the-master\"]\n ],\n- \"protocols\": [\n- [2, \"protocols\"]\n+ \"Adding devices to a worker\": [\n+ [83, \"adding-devices-to-a-worker\"]\n ],\n- \"to: tftp\": [\n- [2, \"to-tftp\"]\n+ \"LAVA schema\": [\n+ [82, \"lava-schema\"]\n ],\n- \"header\": [\n- [2, \"header\"]\n+ \"Job Submission Schema\": [\n+ [82, \"job-submission-schema\"]\n ],\n- \"nfsrootfs\": [\n- [2, \"nfsrootfs\"]\n+ \"Schema elements\": [\n+ [82, \"schema-elements\"]\n ],\n- \"persistent_nfs\": [\n- [2, \"persistent-nfs\"]\n+ \"Comments\": [\n+ [82, \"comments\"]\n ],\n- \"Known Caveats\": [\n- [2, null]\n+ \"Job Name\": [\n+ [82, \"job-name\"]\n ],\n- \"address *\": [\n- [2, \"address\"]\n+ \"Device Type\": [\n+ [82, \"device-type\"]\n ],\n- \"to: tmpfs\": [\n- [2, \"to-tmpfs\"]\n+ \"Timeouts\": [\n+ [82, \"timeouts\"],\n+ [106, \"timeouts\"],\n+ [70, \"timeouts\"]\n ],\n- \"to: usb\": [\n- [2, \"to-usb\"]\n+ \"Priority\": [\n+ [82, \"priority\"]\n ],\n- \"to: vemsd\": [\n- [2, \"to-vemsd\"]\n+ \"Context\": [\n+ [82, \"context\"],\n+ [100, \"context\"]\n ],\n- \"recovery_image\": [\n- [2, \"recovery-image\"],\n- [2, \"id65\"]\n+ \"Protocols\": [\n+ [82, \"protocols\"]\n ],\n- \"to: mps\": [\n- [2, \"to-mps\"]\n+ \"Actions\": [\n+ [82, \"actions\"],\n+ [70, \"actions\"]\n ],\n- \"rename\": [\n- [2, \"rename\"]\n+ \"Deploy Action\": [\n+ [82, \"deploy-action\"]\n ],\n- \"to: uuu\": [\n- [2, \"to-uuu\"]\n+ \"Boot Action\": [\n+ [82, \"boot-action\"]\n ],\n- \"os *\": [\n- [2, \"deploy-os\"]\n+ \"Test Action\": [\n+ [82, \"test-action\"]\n ],\n- \"Bootloader/Firmware Testing and Recovery\": [\n- [14, \"bootloader-firmware-testing-and-recovery\"]\n+ \"Test Writer use cases\": [\n+ [85, \"test-writer-use-cases\"]\n ],\n- \"What is recovery mode?\": [\n- [14, \"what-is-recovery-mode\"]\n+ \"Writing a LAVA job submission\": [\n+ [85, \"writing-a-lava-job-submission\"]\n ],\n- \"Bootloader recovery criteria\": [\n- [14, \"bootloader-recovery-criteria\"]\n+ \"General principles\": [\n+ [85, \"general-principles\"]\n ],\n- \"Uniqueness\": [\n- [14, \"uniqueness\"]\n+ \"API\": [\n+ [85, \"api\"]\n ],\n- \"Deployment\": [\n- [14, \"deployment\"]\n+ \"Validity checks\": [\n+ [85, \"validity-checks\"]\n ],\n- \"Comparison of barriers to bootloader testing and recovery\": [\n- [14, \"comparison-of-barriers-to-bootloader-testing-and-recovery\"]\n+ \"Results\": [\n+ [85, \"results\"]\n ],\n- \"Defensive testing\": [\n- [14, \"defensive-testing\"]\n+ \"Job submission data\": [\n+ [85, \"job-submission-data\"]\n ],\n- \"Problems with bootloader execution\": [\n- [14, \"problems-with-bootloader-execution\"]\n+ \"Writing a new TestJob\": [\n+ [85, \"writing-a-new-testjob\"]\n ],\n- \"Problems with bootloader storage\": [\n- [14, \"problems-with-bootloader-storage\"]\n+ \"YAML syntax\": [\n+ [85, \"yaml-syntax\"]\n ],\n- \"Problems with full system images\": [\n- [14, \"problems-with-full-system-images\"]\n+ \"Common YAML errors\": [\n+ [85, \"common-yaml-errors\"]\n ],\n- \"HiKey 6220\": [\n- [14, \"hikey-6220\"]\n+ \"Understanding available support\": [\n+ [85, \"understanding-available-support\"]\n ],\n- \"Recovery deployment\": [\n- [14, \"id8\"],\n- [14, \"id9\"],\n- [14, \"id10\"]\n+ \"Understanding a TestJob\": [\n+ [85, \"understanding-a-testjob\"]\n ],\n- \"AOSP deployment\": [\n- [14, \"aosp-deployment\"]\n+ \"Submissions using advanced features\": [\n+ [85, \"submissions-using-advanced-features\"]\n ],\n- \"OpenEmbedded deployment\": [\n- [14, \"openembedded-deployment\"],\n- [14, \"id11\"]\n+ \"Templating\": [\n+ [85, \"templating\"]\n ],\n- \"Limits of HiKey 6220 recovery\": [\n- [14, \"limits-of-hikey-6220-recovery\"]\n+ \"Including YAML\": [\n+ [85, \"including-yaml\"]\n ],\n- \"Juno\": [\n- [14, \"juno\"]\n+ \"Replacing VMGroups using Secondary Connections\": [\n+ [87, \"replacing-vmgroups-using-secondary-connections\"]\n ],\n- \"U-Boot boot action\": [\n- [14, \"u-boot-boot-action\"]\n+ \"Structure of an example job for a mustang\": [\n+ [87, \"structure-of-an-example-job-for-a-mustang\"]\n ],\n- \"X15 GPEVM\": [\n- [14, \"x15-gpevm\"]\n+ \"Notes\": [\n+ [87, \"notes\"]\n ],\n- \"LAVA Software Community Project Code of Conduct\": [\n- [15, \"lava-software-community-project-code-of-conduct\"]\n+ \"Running operations inside the guest VM\": [\n+ [87, \"running-operations-inside-the-guest-vm\"]\n ],\n- \"Be respectful\": [\n- [15, \"be-respectful\"]\n+ \"Introduction to Results in LAVA\": [\n+ [93, \"introduction-to-results-in-lava\"]\n ],\n- \"Assume good faith\": [\n- [15, \"assume-good-faith\"]\n+ \"Accessing results\": [\n+ [93, \"accessing-results\"]\n ],\n- \"Be collaborative\": [\n- [15, \"be-collaborative\"]\n+ \"Accessing specific test results\": [\n+ [93, \"accessing-specific-test-results\"]\n ],\n- \"Try to be concise\": [\n- [15, \"try-to-be-concise\"]\n+ \"Test Suite\": [\n+ [93, \"test-suite\"]\n ],\n- \"Be open\": [\n- [15, \"be-open\"]\n+ \"Test Set\": [\n+ [93, \"test-set\"]\n ],\n- \"In case of problems\": [\n- [15, \"in-case-of-problems\"]\n+ \"Test Case\": [\n+ [93, \"test-case\"]\n ],\n- \"Building and manipulating images for your devices\": [\n- [13, \"building-and-manipulating-images-for-your-devices\"]\n+ \"Test Raise\": [\n+ [93, \"test-raise\"]\n ],\n- \"Basics of building an image\": [\n- [13, \"basics-of-building-an-image\"]\n+ \"Accessing the test job logs from results\": [\n+ [93, \"accessing-the-test-job-logs-from-results\"]\n ],\n- \"Obtaining a kernel\": [\n- [13, \"obtaining-a-kernel\"]\n+ \"Multiple occurrences\": [\n+ [93, \"multiple-occurrences\"]\n ],\n- \"Obtaining a bootloader\": [\n- [13, \"obtaining-a-bootloader\"]\n+ \"Accessing associated sections of test job logs\": [\n+ [93, \"accessing-associated-sections-of-test-job-logs\"]\n ],\n- \"Inspecting existing images\": [\n- [13, \"inspecting-existing-images\"]\n+ \"Sample output for lava-test-case shell\": [\n+ [93, \"sample-output-for-lava-test-case-name-shell\"]\n ],\n- \"Tools to install and get to know\": [\n- [13, \"tools-to-install-and-get-to-know\"]\n+ \"LAVA review criteria\": [\n+ [94, \"lava-review-criteria\"]\n ],\n- \"Concepts behind boot images\": [\n- [13, \"concepts-behind-boot-images\"]\n+ \"Keep the dispatcher dumb\": [\n+ [94, \"keep-the-dispatcher-dumb\"]\n ],\n- \"Find the offset\": [\n- [13, \"find-the-offset\"]\n+ \"Avoid defaults in dispatcher code\": [\n+ [94, \"avoid-defaults-in-dispatcher-code\"]\n ],\n- \"Mounting partitions using loop and offset\": [\n- [13, \"mounting-partitions-using-loop-and-offset\"]\n+ \"Let the test fail and diagnose later\": [\n+ [94, \"let-the-test-fail-and-diagnose-later\"]\n ],\n- \"Creating new images\": [\n- [13, \"creating-new-images\"]\n+ \"Treat the deployment as a black box\": [\n+ [94, \"treat-the-deployment-as-a-black-box\"]\n ],\n- \"Making a bootstrap rootfs usable\": [\n- [13, \"making-a-bootstrap-rootfs-usable\"]\n+ \"Only protect the essential components\": [\n+ [94, \"only-protect-the-essential-components\"]\n ],\n- \"Other steps which may be required\": [\n- [13, \"other-steps-which-may-be-required\"]\n+ \"Give the test writer enough rope\": [\n+ [94, \"give-the-test-writer-enough-rope\"]\n ],\n- \"Increasing the number of loop devices\": [\n- [13, \"increasing-the-number-of-loop-devices\"]\n+ \"Guidance\": [\n+ [94, \"guidance\"]\n ],\n- \"Further information\": [\n- [13, \"further-information\"],\n- [77, \"further-information\"]\n+ \"QEMU options\": [\n+ [91, \"qemu-options\"]\n ],\n- \"Command Action Reference\": [\n- [1, \"command-action-reference\"]\n+ \"Virtualization testing\": [\n+ [91, \"virtualization-testing\"]\n ],\n- \"Admin Setup\": [\n- [1, \"admin-setup\"]\n+ \"Emulation testing\": [\n+ [91, \"emulation-testing\"]\n ],\n- \"Deploying LXC devices\": [\n- [8, \"deploying-lxc-devices\"]\n+ \"Substitution support\": [\n+ [91, \"substitution-support\"]\n ],\n- \"Prerequisite\": [\n- [8, \"prerequisite\"]\n+ \"Mandatory support\": [\n+ [91, \"mandatory-support\"]\n ],\n- \"Android testing with LXC support\": [\n- [8, \"android-testing-with-lxc-support\"]\n+ \"Specific support\": [\n+ [91, \"specific-support\"]\n ],\n- \"Arbitrary external devices needing LXC support\": [\n- [8, \"arbitrary-external-devices-needing-lxc-support\"]\n+ \"Example command lines\": [\n+ [91, \"example-command-lines\"]\n ],\n- \"USB attached devices\": [\n- [8, \"usb-attached-devices\"]\n+ \"How to override variables\": [\n+ [91, \"how-to-override-variables\"]\n ],\n- \"Other related devices\": [\n- [8, \"other-related-devices\"]\n+ \"How to specify QEMU environment options\": [\n+ [91, \"how-to-specify-qemu-environment-options\"]\n ],\n- \"Persistent Containers\": [\n- [8, \"persistent-containers\"]\n+ \"Host architecture support\": [\n+ [91, \"host-architecture-support\"]\n ],\n- \"Unprivileged containers as root\": [\n- [8, \"unprivileged-containers-as-root\"]\n+ \"LAVA test storage\": [\n+ [91, \"lava-test-storage\"]\n ],\n- \"Other resources\": [\n- [8, \"other-resources\"]\n+ \"HTTP proxies\": [\n+ [89, \"http-proxies\"]\n ],\n- \"Repeat\": [\n- [4, \"repeat\"]\n+ \"Using the HTTP proxy\": [\n+ [89, \"using-the-http-proxy\"]\n ],\n- \"Handling repeats\": [\n- [4, \"handling-repeats\"]\n+ \"Using the HTTP cache\": [\n+ [89, \"using-the-http-cache\"]\n ],\n- \"Repeating single actions\": [\n- [4, \"repeating-single-actions\"]\n+ \"Handling bots\": [\n+ [89, \"handling-bots\"]\n ],\n- \"Retry on failure\": [\n- [4, \"retry-on-failure\"]\n+ \"Advanced Use Cases\": [\n+ [84, \"advanced-use-cases\"]\n ],\n- \"Retry interval on failure\": [\n- [4, \"retry-interval-on-failure\"]\n+ \"Pipeline Design\": [\n+ [81, \"pipeline-design\"]\n ],\n- \"Repeating blocks of actions\": [\n- [4, \"repeating-blocks-of-actions\"]\n+ \"Principles of the LAVA design\": [\n+ [81, \"principles-of-the-lava-design\"]\n ],\n- \"Protocol Reference\": [\n- [3, \"protocol-reference\"]\n+ \"Test Writer aspects\": [\n+ [81, \"test-writer-aspects\"]\n ],\n- \"Using protocols from actions\": [\n- [3, \"using-protocols-from-actions\"]\n+ \"Administrator aspects\": [\n+ [81, \"administrator-aspects\"]\n ],\n- \"MultiNode Protocol\": [\n- [3, \"multinode-protocol\"]\n+ \"State machine\": [\n+ [95, \"state-machine\"]\n ],\n- \"lava-start API call\": [\n- [3, \"lava-start-api-call\"]\n+ \"Devices\": [\n+ [95, \"devices\"]\n ],\n- \"Passing data at startup\": [\n- [3, \"passing-data-at-startup\"]\n+ \"TestJobs\": [\n+ [95, \"testjobs\"]\n ],\n- \"Managing flow using inline definitions\": [\n- [3, \"managing-flow-using-inline-definitions\"]\n+ \"Scheduler\": [\n+ [95, \"scheduler\"]\n ],\n- \"Marking some roles as essential\": [\n- [3, \"marking-some-roles-as-essential\"]\n+ \"Health-checks\": [\n+ [95, \"health-checks\"]\n ],\n- \"Protocol requests from actions\": [\n- [3, \"protocol-requests-from-actions\"],\n- [3, \"vland-protocol-requests\"],\n- [3, \"lxc-protocol-requests\"]\n+ \"Test jobs\": [\n+ [95, \"test-jobs\"]\n ],\n- \"VLANd protocol\": [\n- [3, \"vland-protocol\"]\n+ \"Development process\": [\n+ [88, \"development-process\"]\n ],\n- \"LXC protocol\": [\n- [3, \"lxc-protocol\"]\n+ \"Design meeting\": [\n+ [88, \"design-meeting\"]\n+ ],\n+ \"Release process\": [\n+ [88, \"release-process\"]\n+ ],\n+ \"Reporting Bugs\": [\n+ [88, \"reporting-bugs\"]\n+ ],\n+ \"Writing jobs using Secondary Connections\": [\n+ [86, \"writing-jobs-using-secondary-connections\"]\n+ ],\n+ \"Secure Shell connections (ssh)\": [\n+ [86, \"secure-shell-connections-ssh\"]\n+ ],\n+ \"Delaying the start of a job using Multinode\": [\n+ [86, \"delaying-the-start-of-a-job-using-multinode\"]\n+ ],\n+ \"Picking up the data in the guest role\": [\n+ [86, \"picking-up-the-data-in-the-guest-role\"]\n+ ],\n+ \"Test definition for the host role\": [\n+ [86, \"test-definition-for-the-host-role\"]\n+ ],\n+ \"Test definition for the guest role\": [\n+ [86, \"test-definition-for-the-guest-role\"]\n+ ],\n+ \"Complete Multinode test definition\": [\n+ [86, \"complete-multinode-test-definition\"]\n+ ],\n+ \"Publishing artifacts\": [\n+ [90, \"publishing-artifacts\"]\n+ ],\n+ \"Linaro LAVA-lab\": [\n+ [90, \"linaro-lava-lab\"]\n+ ],\n+ \"Standard test job for QEMU - Stretch amd64\": [\n+ [100, \"standard-test-job-for-qemu-stretch-amd64\"]\n+ ],\n+ \"arch\": [\n+ [100, \"arch\"]\n+ ],\n+ \"netdevice\": [\n+ [100, \"netdevice\"]\n+ ],\n+ \"Test\": [\n+ [100, \"test\"],\n+ [98, \"test\"],\n+ [70, \"test\"]\n+ ],\n+ \"Next steps\": [\n+ [100, \"next-steps\"]\n+ ],\n+ \"Using Jinja2 to generate LAVA test job submissions\": [\n+ [104, \"using-jinja2-to-generate-lava-test-job-submissions\"]\n+ ],\n+ \"Starting with templates\": [\n+ [104, \"starting-with-templates\"]\n+ ],\n+ \"Output\": [\n+ [104, \"output\"]\n+ ],\n+ \"Extending templates with contexts\": [\n+ [104, \"extending-templates-with-contexts\"]\n+ ],\n+ \"Templates can extend templates\": [\n+ [104, \"templates-can-extend-templates\"]\n+ ],\n+ \"Logic control within templates\": [\n+ [104, \"logic-control-within-templates\"]\n+ ],\n+ \"Template best practice\": [\n+ [104, \"template-best-practice\"]\n+ ],\n+ \"Using templates for test jobs\": [\n+ [104, \"using-templates-for-test-jobs\"]\n ],\n \"Test definitions in version control\": [\n [105, \"test-definitions-in-version-control\"]\n ],\n \"Job definitions in version control\": [\n [105, \"job-definitions-in-version-control\"]\n ],\n@@ -9449,70 +9490,97 @@\n ],\n \"Login\": [\n [105, \"login\"]\n ],\n \"stdout\": [\n [105, \"stdout\"]\n ],\n- \"Gold standard test jobs\": [\n- [101, \"gold-standard-test-jobs\"]\n+ \"VLANd support in LAVA test jobs\": [\n+ [108, \"vland-support-in-lava-test-jobs\"]\n ],\n- \"User notifications in LAVA\": [\n- [107, \"user-notifications-in-lava\"]\n+ \"What is a VLAN?\": [\n+ [108, \"what-is-a-vlan\"]\n ],\n- \"Notification recipients\": [\n- [107, \"notification-recipients\"]\n+ \"VLANd and LAVA\": [\n+ [108, \"vland-and-lava\"]\n ],\n- \"Notification callbacks\": [\n- [107, \"notification-callbacks\"]\n+ \"VLANd test shell helpers\": [\n+ [108, \"vland-test-shell-helpers\"]\n ],\n- \"Debugging notification callbacks\": [\n- [107, \"debugging-notification-callbacks\"]\n+ \"lava-vland-self\": [\n+ [108, \"lava-vland-self\"]\n ],\n- \"Using profile settings\": [\n- [107, \"using-profile-settings\"]\n+ \"lava-vland-tags\": [\n+ [108, \"lava-vland-tags\"]\n ],\n- \"Direct listing of recipients\": [\n- [107, \"direct-listing-of-recipients\"]\n+ \"lava-vland-names\": [\n+ [108, \"lava-vland-names\"]\n ],\n- \"Result comparison in notifications\": [\n- [107, \"result-comparison-in-notifications\"]\n+ \"Identifying interface names\": [\n+ [108, \"vland-identify-interface-names\"]\n ],\n- \"Standard test job for beaglebone-black\": [\n- [98, \"standard-test-job-for-beaglebone-black\"],\n- [98, \"standard-armmp-bbb\"]\n+ \"VLANd Restrictions\": [\n+ [108, \"vland-restrictions\"]\n ],\n- \"Standard test jobs for other devices\": [\n- [98, \"standard-test-jobs-for-other-devices\"]\n+ \"VLANd Design goals and considerations\": [\n+ [108, \"vland-design-goals-and-considerations\"]\n ],\n- \"Features of a ramdisk test job\": [\n- [98, \"features-of-a-ramdisk-test-job\"]\n+ \"LAVA and VLANd Device considerations\": [\n+ [108, \"lava-and-vland-device-considerations\"]\n ],\n- \"Features of an NFS test job\": [\n- [98, \"features-of-an-nfs-test-job\"]\n+ \"Requirement for multiple interfaces\": [\n+ [108, \"requirement-for-multiple-interfaces\"]\n ],\n- \"Specific options\": [\n- [98, \"specific-options\"]\n+ \"LAVA and locked switch/port combinations\": [\n+ [108, \"lava-and-locked-switch-port-combinations\"]\n ],\n- \"Test\": [\n- [98, \"test\"],\n- [100, \"test\"],\n- [70, \"test\"]\n+ \"VLANd and MultiNode\": [\n+ [108, \"vland-and-multinode\"]\n ],\n- \"Standard test job for QEMU - Stretch amd64\": [\n- [100, \"standard-test-job-for-qemu-stretch-amd64\"]\n+ \"LAVA VLANd database support\": [\n+ [108, \"lava-vland-database-support\"]\n ],\n- \"arch\": [\n- [100, \"arch\"]\n+ \"Interfaces and link speeds\": [\n+ [108, \"interfaces-and-link-speeds\"]\n ],\n- \"netdevice\": [\n- [100, \"netdevice\"]\n+ \"VLANd and interface tags in LAVA\": [\n+ [108, \"vland-and-interface-tags-in-lava\"]\n ],\n- \"Next steps\": [\n- [100, \"next-steps\"]\n+ \"Assigning roles to a VLAN\": [\n+ [108, \"assigning-roles-to-a-vlan\"]\n+ ],\n+ \"Example vland protocol YAML\": [\n+ [108, \"example-vland-protocol-yaml\"]\n+ ],\n+ \"Example YAML for the protocols\": [\n+ [108, \"example-yaml-for-the-protocols\"]\n+ ],\n+ \"Getting support\": [\n+ [102, \"getting-support\"]\n+ ],\n+ \"Guidelines\": [\n+ [102, \"guidelines\"]\n+ ],\n+ \"Mailing lists\": [\n+ [102, \"mailing-lists\"]\n+ ],\n+ \"lava-users\": [\n+ [102, \"lava-users\"]\n+ ],\n+ \"lava-devel\": [\n+ [102, \"lava-devel\"]\n+ ],\n+ \"lava-announce\": [\n+ [102, \"lava-announce\"]\n+ ],\n+ \"IRC\": [\n+ [102, \"irc\"]\n+ ],\n+ \"Pastebins\": [\n+ [102, \"pastebins\"]\n ],\n \"Automation and Timeouts\": [\n [106, \"automation-and-timeouts\"]\n ],\n \"Why must timeouts exist?\": [\n [106, \"why-must-timeouts-exist\"]\n ],\n@@ -9554,14 +9622,33 @@\n ],\n \"Action block overrides\": [\n [106, \"action-block-overrides\"]\n ],\n \"Skipping a test shell timeout\": [\n [106, \"skipping-a-test-shell-timeout\"]\n ],\n+ \"Standard test job for beaglebone-black\": [\n+ [98, \"standard-test-job-for-beaglebone-black\"],\n+ [98, \"standard-armmp-bbb\"]\n+ ],\n+ \"Standard test jobs for other devices\": [\n+ [98, \"standard-test-jobs-for-other-devices\"]\n+ ],\n+ \"Features of a ramdisk test job\": [\n+ [98, \"features-of-a-ramdisk-test-job\"]\n+ ],\n+ \"Features of an NFS test job\": [\n+ [98, \"features-of-an-nfs-test-job\"]\n+ ],\n+ \"Specific options\": [\n+ [98, \"specific-options\"]\n+ ],\n+ \"Gold standard test jobs\": [\n+ [101, \"gold-standard-test-jobs\"]\n+ ],\n \"Media limitations of test devices\": [\n [96, \"media-limitations-of-test-devices\"]\n ],\n \"Primary media and primary bootloaders\": [\n [96, \"primary-media-and-primary-bootloaders\"]\n ],\n \"Bootloader limitations\": [\n@@ -9584,14 +9671,98 @@\n ],\n \"Deploy commands\": [\n [96, \"deploy-commands\"]\n ],\n \"Boot commands\": [\n [96, \"boot-commands\"]\n ],\n+ \"Using tables in LAVA\": [\n+ [103, \"using-tables-in-lava\"]\n+ ],\n+ \"Table search support\": [\n+ [103, \"table-search-support\"]\n+ ],\n+ \"Simple text search\": [\n+ [103, \"simple-text-search\"]\n+ ],\n+ \"Custom table queries\": [\n+ [103, \"custom-table-queries\"]\n+ ],\n+ \"Exclusive table searches\": [\n+ [103, \"exclusive-table-searches\"]\n+ ],\n+ \"Other filters\": [\n+ [103, \"other-filters\"]\n+ ],\n+ \"Resetting a table\": [\n+ [103, \"resetting-a-table\"]\n+ ],\n+ \"Unavailable entries\": [\n+ [103, \"unavailable-entries\"]\n+ ],\n+ \"User notifications in LAVA\": [\n+ [107, \"user-notifications-in-lava\"]\n+ ],\n+ \"Notification recipients\": [\n+ [107, \"notification-recipients\"]\n+ ],\n+ \"Notification callbacks\": [\n+ [107, \"notification-callbacks\"]\n+ ],\n+ \"Debugging notification callbacks\": [\n+ [107, \"debugging-notification-callbacks\"]\n+ ],\n+ \"Using profile settings\": [\n+ [107, \"using-profile-settings\"]\n+ ],\n+ \"Direct listing of recipients\": [\n+ [107, \"direct-listing-of-recipients\"]\n+ ],\n+ \"Result comparison in notifications\": [\n+ [107, \"result-comparison-in-notifications\"]\n+ ],\n+ \"Administering VLANd support in LAVA\": [\n+ [109, \"administering-vland-support-in-lava\"]\n+ ],\n+ \"Mandatory Constraints\": [\n+ [109, \"mandatory-constraints\"]\n+ ],\n+ \"Single set of switches\": [\n+ [109, \"single-set-of-switches\"]\n+ ],\n+ \"Switches must have drivers in vland\": [\n+ [109, \"switches-must-have-drivers-in-vland\"]\n+ ],\n+ \"Accurate map of network topology\": [\n+ [109, \"accurate-map-of-network-topology\"]\n+ ],\n+ \"Identification of primary interfaces\": [\n+ [109, \"identify-primary-interfaces\"]\n+ ],\n+ \"Additional advice\": [\n+ [109, \"additional-advice\"]\n+ ],\n+ \"Example device dictionary\": [\n+ [109, \"example-device-dictionary\"]\n+ ],\n+ \"Viewing the network map\": [\n+ [109, \"viewing-the-network-map\"]\n+ ],\n+ \"Standard test job for QEMU - Sid arm64\": [\n+ [99, \"standard-test-job-for-qemu-sid-arm64\"]\n+ ],\n+ \"QEMU with kernel and initramfs\": [\n+ [99, \"qemu-with-kernel-and-initramfs\"]\n+ ],\n+ \"Job context\": [\n+ [99, \"job-context\"]\n+ ],\n+ \"Deploying the kernel\": [\n+ [99, \"deploying-the-kernel\"]\n+ ],\n \"Writing MultiNode tests\": [\n [110, \"writing-multinode-tests\"]\n ],\n \"Writing a MultiNode job file\": [\n [110, \"writing-a-multinode-job-file\"]\n ],\n \"Defining MultiNode roles\": [\n@@ -9644,62 +9815,14 @@\n ],\n \"Writing jobs using MultiNode and LXC\": [\n [110, \"writing-jobs-using-multinode-and-lxc\"]\n ],\n \"Adding test actions\": [\n [110, \"adding-test-actions\"]\n ],\n- \"Using Jinja2 to generate LAVA test job submissions\": [\n- [104, \"using-jinja2-to-generate-lava-test-job-submissions\"]\n- ],\n- \"Starting with templates\": [\n- [104, \"starting-with-templates\"]\n- ],\n- \"Output\": [\n- [104, \"output\"]\n- ],\n- \"Extending templates with contexts\": [\n- [104, \"extending-templates-with-contexts\"]\n- ],\n- \"Templates can extend templates\": [\n- [104, \"templates-can-extend-templates\"]\n- ],\n- \"Logic control within templates\": [\n- [104, \"logic-control-within-templates\"]\n- ],\n- \"Template best practice\": [\n- [104, \"template-best-practice\"]\n- ],\n- \"Using templates for test jobs\": [\n- [104, \"using-templates-for-test-jobs\"]\n- ],\n- \"Using tables in LAVA\": [\n- [103, \"using-tables-in-lava\"]\n- ],\n- \"Table search support\": [\n- [103, \"table-search-support\"]\n- ],\n- \"Simple text search\": [\n- [103, \"simple-text-search\"]\n- ],\n- \"Custom table queries\": [\n- [103, \"custom-table-queries\"]\n- ],\n- \"Exclusive table searches\": [\n- [103, \"exclusive-table-searches\"]\n- ],\n- \"Other filters\": [\n- [103, \"other-filters\"]\n- ],\n- \"Resetting a table\": [\n- [103, \"resetting-a-table\"]\n- ],\n- \"Unavailable entries\": [\n- [103, \"unavailable-entries\"]\n- ],\n \"Writing a Lava-Test Test Definition 1.0\": [\n [111, \"writing-a-lava-test-test-definition-1-0\"]\n ],\n \"Writing a test definition YAML file\": [\n [111, \"writing-a-test-definition-yaml-file\"]\n ],\n \"Optional metadata\": [\n@@ -9848,53 +9971,14 @@\n ],\n \"Problems with output\": [\n [111, \"problems-with-output\"]\n ],\n \"Control the number of test cases reported\": [\n [111, \"control-the-number-of-test-cases-reported\"]\n ],\n- \"Administering VLANd support in LAVA\": [\n- [109, \"administering-vland-support-in-lava\"]\n- ],\n- \"Mandatory Constraints\": [\n- [109, \"mandatory-constraints\"]\n- ],\n- \"Single set of switches\": [\n- [109, \"single-set-of-switches\"]\n- ],\n- \"Switches must have drivers in vland\": [\n- [109, \"switches-must-have-drivers-in-vland\"]\n- ],\n- \"Accurate map of network topology\": [\n- [109, \"accurate-map-of-network-topology\"]\n- ],\n- \"Identification of primary interfaces\": [\n- [109, \"identify-primary-interfaces\"]\n- ],\n- \"Additional advice\": [\n- [109, \"additional-advice\"]\n- ],\n- \"Example device dictionary\": [\n- [109, \"example-device-dictionary\"]\n- ],\n- \"Viewing the network map\": [\n- [109, \"viewing-the-network-map\"]\n- ],\n- \"Standard test job for QEMU - Sid arm64\": [\n- [99, \"standard-test-job-for-qemu-sid-arm64\"]\n- ],\n- \"QEMU with kernel and initramfs\": [\n- [99, \"qemu-with-kernel-and-initramfs\"]\n- ],\n- \"Job context\": [\n- [99, \"job-context\"]\n- ],\n- \"Deploying the kernel\": [\n- [99, \"deploying-the-kernel\"]\n- ],\n \"Simple Administration\": [\n [97, \"simple-administration\"]\n ],\n \"Outline\": [\n [97, \"outline\"]\n ],\n \"Debian system administration\": [\n@@ -9990,158 +10074,149 @@\n ],\n \"Owners and physical access\": [\n [97, \"owners-and-physical-access\"]\n ],\n \"Setting owners and physical access\": [\n [97, \"setting-owners-and-physical-access\"]\n ],\n- \"Getting support\": [\n- [102, \"getting-support\"]\n- ],\n- \"Guidelines\": [\n- [102, \"guidelines\"]\n- ],\n- \"Mailing lists\": [\n- [102, \"mailing-lists\"]\n- ],\n- \"lava-users\": [\n- [102, \"lava-users\"]\n- ],\n- \"lava-devel\": [\n- [102, \"lava-devel\"]\n- ],\n- \"lava-announce\": [\n- [102, \"lava-announce\"]\n+ \"Migrating to LAVA V2\": [\n+ [71, \"migrating-to-lava-v2\"]\n ],\n- \"IRC\": [\n- [102, \"irc\"]\n+ \"Basics\": [\n+ [71, \"basics\"]\n ],\n- \"Pastebins\": [\n- [102, \"pastebins\"]\n+ \"Specific information and guides\": [\n+ [71, \"specific-information-and-guides\"]\n ],\n- \"VLANd support in LAVA test jobs\": [\n- [108, \"vland-support-in-lava-test-jobs\"]\n+ \"Test Writers\": [\n+ [71, \"test-writers\"]\n ],\n- \"What is a VLAN?\": [\n- [108, \"what-is-a-vlan\"]\n+ \"Administrators\": [\n+ [71, \"administrators\"]\n ],\n- \"VLANd and LAVA\": [\n- [108, \"vland-and-lava\"]\n+ \"Understanding test job objectives\": [\n+ [71, \"understanding-test-job-objectives\"]\n ],\n- \"VLANd test shell helpers\": [\n- [108, \"vland-test-shell-helpers\"]\n+ \"Pipeline support\": [\n+ [71, \"pipeline-support\"]\n ],\n- \"lava-vland-self\": [\n- [108, \"lava-vland-self\"]\n+ \"Viewing the available support\": [\n+ [71, \"viewing-the-available-support\"]\n ],\n- \"lava-vland-tags\": [\n- [108, \"lava-vland-tags\"]\n+ \"Deployments\": [\n+ [71, \"deployments\"]\n ],\n- \"lava-vland-names\": [\n- [108, \"lava-vland-names\"]\n+ \"Protocol support\": [\n+ [71, \"protocol-support\"]\n ],\n- \"Identifying interface names\": [\n- [108, \"vland-identify-interface-names\"]\n+ \"MultiNode API\": [\n+ [74, \"multinode-api\"]\n ],\n- \"VLANd Restrictions\": [\n- [108, \"vland-restrictions\"]\n+ \"Guidance in using the API\": [\n+ [74, \"guidance-in-using-the-api\"]\n ],\n- \"VLANd Design goals and considerations\": [\n- [108, \"vland-design-goals-and-considerations\"]\n+ \"lava-self\": [\n+ [74, \"lava-self\"]\n ],\n- \"LAVA and VLANd Device considerations\": [\n- [108, \"lava-and-vland-device-considerations\"]\n+ \"Usage:\": [\n+ [74, \"usage\"],\n+ [74, \"id4\"],\n+ [74, \"id5\"],\n+ [74, \"id7\"],\n+ [74, \"id8\"],\n+ [74, \"id10\"],\n+ [74, \"id12\"],\n+ [74, \"id15\"]\n ],\n- \"Requirement for multiple interfaces\": [\n- [108, \"requirement-for-multiple-interfaces\"]\n+ \"lava-role\": [\n+ [74, \"lava-role\"]\n ],\n- \"LAVA and locked switch/port combinations\": [\n- [108, \"lava-and-locked-switch-port-combinations\"]\n+ \"lava-group\": [\n+ [74, \"lava-group\"]\n ],\n- \"VLANd and MultiNode\": [\n- [108, \"vland-and-multinode\"]\n+ \"lava-send\": [\n+ [74, \"lava-send\"]\n ],\n- \"LAVA VLANd database support\": [\n- [108, \"lava-vland-database-support\"]\n+ \"lava-wait\": [\n+ [74, \"lava-wait\"]\n ],\n- \"Interfaces and link speeds\": [\n- [108, \"interfaces-and-link-speeds\"]\n+ \"lava-wait-all\": [\n+ [74, \"lava-wait-all\"]\n ],\n- \"VLANd and interface tags in LAVA\": [\n- [108, \"vland-and-interface-tags-in-lava\"]\n+ \"lava-wait-all \": [\n+ [74, \"lava-wait-all-message-id\"]\n ],\n- \"Assigning roles to a VLAN\": [\n- [108, \"assigning-roles-to-a-vlan\"]\n+ \"lava-wait-all \": [\n+ [74, \"lava-wait-all-message-id-role\"]\n ],\n- \"Example vland protocol YAML\": [\n- [108, \"example-vland-protocol-yaml\"]\n+ \"lava-sync\": [\n+ [74, \"lava-sync\"]\n ],\n- \"Example YAML for the protocols\": [\n- [108, \"example-yaml-for-the-protocols\"]\n+ \"Example 1: Simple client-server MultiNode test\": [\n+ [74, \"example-1-simple-client-server-multinode-test\"]\n ],\n- \"Continuous Integration\": [\n- [67, \"continuous-integration\"]\n+ \"Example 2: iperf client-server test\": [\n+ [74, \"example-2-iperf-client-server-test\"]\n ],\n- \"Summary of CI best practices\": [\n- [67, \"summary-of-ci-best-practices\"]\n+ \"Example 3: variable number of clients\": [\n+ [74, \"example-3-variable-number-of-clients\"]\n ],\n- \"LAVA and CI\": [\n- [67, \"lava-and-ci\"]\n+ \"Example 4: peer-to-peer application\": [\n+ [74, \"example-4-peer-to-peer-application\"]\n ],\n- \"Automation & CI\": [\n- [67, \"automation-ci\"]\n+ \"Using a flow table to plan the job\": [\n+ [74, \"using-a-flow-table-to-plan-the-job\"]\n ],\n- \"How does this affect testing with LAVA?\": [\n- [67, \"how-does-this-affect-testing-with-lava\"]\n+ \"Device type information in LAVA Scheduler\": [\n+ [64, \"device-type-information-in-lava-scheduler\"]\n ],\n- \"Worked example of migrating a known device\": [\n- [70, \"worked-example-of-migrating-a-known-device\"]\n+ \"Static device-type information\": [\n+ [64, \"static-device-type-information\"]\n ],\n- \"Writing a device configuration in YAML\": [\n- [70, \"writing-a-device-configuration-in-yaml\"]\n+ \"Device type template\": [\n+ [64, \"device-type-template\"]\n ],\n- \"Migrating a mustang\": [\n- [70, \"migrating-a-mustang\"]\n+ \"Dynamic device-type information\": [\n+ [64, \"dynamic-device-type-information\"]\n ],\n- \"Complete device YAML\": [\n- [70, \"complete-device-yaml\"]\n+ \"Device-type metadata\": [\n+ [64, \"device-type-metadata\"]\n ],\n- \"Writing a job submission in YAML\": [\n- [70, \"writing-a-job-submission-in-yaml\"]\n+ \"Health Job Summary\": [\n+ [64, \"health-job-summary\"]\n ],\n- \"Migrating a job for the mustang\": [\n- [70, \"migrating-a-job-for-the-mustang\"]\n+ \"Devices Overview\": [\n+ [64, \"devices-overview\"]\n ],\n- \"Identifying the elements of the job\": [\n- [70, \"identifying-the-elements-of-the-job\"]\n+ \"Jobs for devices of this type\": [\n+ [64, \"jobs-for-devices-of-this-type\"]\n ],\n- \"Complete YAML submission\": [\n- [70, \"complete-yaml-submission\"]\n+ \"MultiNode LAVA\": [\n+ [73, \"multinode-lava\"]\n ],\n- \"Writing a device type template\": [\n- [70, \"writing-a-device-type-template\"]\n+ \"Using LAVA MultiNode synchronization\": [\n+ [73, \"using-lava-multinode-synchronization\"]\n ],\n- \"Starting a new device type template\": [\n- [70, \"starting-a-new-device-type-template\"]\n+ \"MultiNode Results\": [\n+ [73, \"multinode-results\"]\n ],\n- \"Completed mustang template\": [\n- [70, \"completed-mustang-template\"]\n+ \"LAVA MultiNode timeout behavior\": [\n+ [73, \"lava-multinode-timeout-behavior\"]\n ],\n- \"Creating a device dictionary for the device\": [\n- [70, \"creating-a-device-dictionary-for-the-device\"],\n- [79, \"creating-a-device-dictionary-for-the-device\"]\n+ \"Recommendations on timeouts for MultiNode\": [\n+ [73, \"recommendations-on-timeouts-for-multinode\"]\n ],\n- \"Testing the template and dictionary\": [\n- [70, \"testing-the-template-and-dictionary\"]\n+ \"Running a server on the device-under-test\": [\n+ [73, \"running-a-server-on-the-device-under-test\"]\n ],\n- \"Adapting the base commands to the device type\": [\n- [70, \"adapting-the-base-commands-to-the-device-type\"]\n+ \"Making use of third party servers\": [\n+ [73, \"making-use-of-third-party-servers\"]\n ],\n- \"Completing the migration\": [\n- [70, \"completing-the-migration\"]\n+ \"Using wrapper scripts\": [\n+ [73, \"using-wrapper-scripts\"]\n ],\n \"Lava-Test Test Definition 1.0\": [\n [68, \"lava-test-test-definition-1-0\"]\n ],\n \"Quick start to Test Definition 1.0\": [\n [68, \"quick-start-to-test-definition-1-0\"]\n ],\n@@ -10189,100 +10264,41 @@\n ],\n \"Install Steps\": [\n [68, \"install-steps\"]\n ],\n \"Parse patterns\": [\n [68, \"parse-patterns\"]\n ],\n- \"Job submission failure help\": [\n- [66, \"job-submission-failure-help\"]\n- ],\n- \"Device type X is not available\": [\n- [66, \"device-type-x-is-not-available\"]\n- ],\n- \"No devices of type X are currently available to user Y\": [\n- [66, \"no-devices-of-type-x-are-currently-available-to-user-y\"]\n- ],\n- \"Device type information in LAVA Scheduler\": [\n- [64, \"device-type-information-in-lava-scheduler\"]\n- ],\n- \"Static device-type information\": [\n- [64, \"static-device-type-information\"]\n- ],\n- \"Device type template\": [\n- [64, \"device-type-template\"]\n- ],\n- \"Dynamic device-type information\": [\n- [64, \"dynamic-device-type-information\"]\n- ],\n- \"Device-type metadata\": [\n- [64, \"device-type-metadata\"]\n- ],\n- \"Health Job Summary\": [\n- [64, \"health-job-summary\"]\n- ],\n- \"Devices Overview\": [\n- [64, \"devices-overview\"]\n- ],\n- \"Jobs for devices of this type\": [\n- [64, \"jobs-for-devices-of-this-type\"]\n- ],\n- \"MultiNode LAVA\": [\n- [73, \"multinode-lava\"]\n- ],\n- \"Using LAVA MultiNode synchronization\": [\n- [73, \"using-lava-multinode-synchronization\"]\n- ],\n- \"MultiNode Results\": [\n- [73, \"multinode-results\"]\n- ],\n- \"LAVA MultiNode timeout behavior\": [\n- [73, \"lava-multinode-timeout-behavior\"]\n- ],\n- \"Recommendations on timeouts for MultiNode\": [\n- [73, \"recommendations-on-timeouts-for-multinode\"]\n- ],\n- \"Running a server on the device-under-test\": [\n- [73, \"running-a-server-on-the-device-under-test\"]\n- ],\n- \"Making use of third party servers\": [\n- [73, \"making-use-of-third-party-servers\"]\n- ],\n- \"Using wrapper scripts\": [\n- [73, \"using-wrapper-scripts\"]\n- ],\n- \"Migrating to LAVA V2\": [\n- [71, \"migrating-to-lava-v2\"]\n- ],\n- \"Basics\": [\n- [71, \"basics\"]\n+ \"PDUDaemon\": [\n+ [78, \"pdudaemon\"]\n ],\n- \"Specific information and guides\": [\n- [71, \"specific-information-and-guides\"]\n+ \"lavacli\": [\n+ [69, \"lavacli\"]\n ],\n- \"Test Writers\": [\n- [71, \"test-writers\"]\n+ \"Installing lavacli\": [\n+ [69, \"installing-lavacli\"]\n ],\n- \"Administrators\": [\n- [71, \"administrators\"]\n+ \"Using lavacli\": [\n+ [69, \"using-lavacli\"],\n+ [79, \"using-lavacli\"]\n ],\n- \"Understanding test job objectives\": [\n- [71, \"understanding-test-job-objectives\"]\n+ \"Continuous Integration\": [\n+ [67, \"continuous-integration\"]\n ],\n- \"Pipeline support\": [\n- [71, \"pipeline-support\"]\n+ \"Summary of CI best practices\": [\n+ [67, \"summary-of-ci-best-practices\"]\n ],\n- \"Viewing the available support\": [\n- [71, \"viewing-the-available-support\"]\n+ \"LAVA and CI\": [\n+ [67, \"lava-and-ci\"]\n ],\n- \"Deployments\": [\n- [71, \"deployments\"]\n+ \"Automation & CI\": [\n+ [67, \"automation-ci\"]\n ],\n- \"Protocol support\": [\n- [71, \"protocol-support\"]\n+ \"How does this affect testing with LAVA?\": [\n+ [67, \"how-does-this-affect-testing-with-lava\"]\n ],\n \"Understanding the Pipeline - an administrator guide\": [\n [79, \"understanding-the-pipeline-an-administrator-guide\"]\n ],\n \"Device type templates\": [\n [79, \"device-type-templates\"]\n ],\n@@ -10324,94 +10340,81 @@\n ],\n \"Obtaining configuration of a known device\": [\n [79, \"obtaining-configuration-of-a-known-device\"]\n ],\n \"Creating a new device entry for a known device type\": [\n [79, \"creating-a-new-device-entry-for-a-known-device-type\"]\n ],\n+ \"Creating a device dictionary for the device\": [\n+ [79, \"creating-a-device-dictionary-for-the-device\"],\n+ [70, \"creating-a-device-dictionary-for-the-device\"]\n+ ],\n \"Based upon an existing device\": [\n [79, \"based-upon-an-existing-device\"]\n ],\n \"Viewing current device dictionary content\": [\n [79, \"viewing-current-device-dictionary-content\"]\n ],\n \"Updating a device dictionary\": [\n [79, \"updating-a-device-dictionary\"]\n ],\n \"Using the command line\": [\n [79, \"using-the-command-line\"]\n ],\n- \"Using lavacli\": [\n- [79, \"using-lavacli\"],\n- [69, \"using-lavacli\"]\n- ],\n \"Using XML-RPC\": [\n [79, \"using-xml-rpc\"]\n ],\n- \"MultiNode API\": [\n- [74, \"multinode-api\"]\n- ],\n- \"Guidance in using the API\": [\n- [74, \"guidance-in-using-the-api\"]\n- ],\n- \"lava-self\": [\n- [74, \"lava-self\"]\n- ],\n- \"Usage:\": [\n- [74, \"usage\"],\n- [74, \"id4\"],\n- [74, \"id5\"],\n- [74, \"id7\"],\n- [74, \"id8\"],\n- [74, \"id10\"],\n- [74, \"id12\"],\n- [74, \"id15\"]\n+ \"Worked example of migrating a known device\": [\n+ [70, \"worked-example-of-migrating-a-known-device\"]\n ],\n- \"lava-role\": [\n- [74, \"lava-role\"]\n+ \"Writing a device configuration in YAML\": [\n+ [70, \"writing-a-device-configuration-in-yaml\"]\n ],\n- \"lava-group\": [\n- [74, \"lava-group\"]\n+ \"Migrating a mustang\": [\n+ [70, \"migrating-a-mustang\"]\n ],\n- \"lava-send\": [\n- [74, \"lava-send\"]\n+ \"Complete device YAML\": [\n+ [70, \"complete-device-yaml\"]\n ],\n- \"lava-wait\": [\n- [74, \"lava-wait\"]\n+ \"Writing a job submission in YAML\": [\n+ [70, \"writing-a-job-submission-in-yaml\"]\n ],\n- \"lava-wait-all\": [\n- [74, \"lava-wait-all\"]\n+ \"Migrating a job for the mustang\": [\n+ [70, \"migrating-a-job-for-the-mustang\"]\n ],\n- \"lava-wait-all \": [\n- [74, \"lava-wait-all-message-id\"]\n+ \"Identifying the elements of the job\": [\n+ [70, \"identifying-the-elements-of-the-job\"]\n ],\n- \"lava-wait-all \": [\n- [74, \"lava-wait-all-message-id-role\"]\n+ \"Complete YAML submission\": [\n+ [70, \"complete-yaml-submission\"]\n ],\n- \"lava-sync\": [\n- [74, \"lava-sync\"]\n+ \"Writing a device type template\": [\n+ [70, \"writing-a-device-type-template\"]\n ],\n- \"Example 1: Simple client-server MultiNode test\": [\n- [74, \"example-1-simple-client-server-multinode-test\"]\n+ \"Starting a new device type template\": [\n+ [70, \"starting-a-new-device-type-template\"]\n ],\n- \"Example 2: iperf client-server test\": [\n- [74, \"example-2-iperf-client-server-test\"]\n+ \"Completed mustang template\": [\n+ [70, \"completed-mustang-template\"]\n ],\n- \"Example 3: variable number of clients\": [\n- [74, \"example-3-variable-number-of-clients\"]\n+ \"Testing the template and dictionary\": [\n+ [70, \"testing-the-template-and-dictionary\"]\n ],\n- \"Example 4: peer-to-peer application\": [\n- [74, \"example-4-peer-to-peer-application\"]\n+ \"Adapting the base commands to the device type\": [\n+ [70, \"adapting-the-base-commands-to-the-device-type\"]\n ],\n- \"Using a flow table to plan the job\": [\n- [74, \"using-a-flow-table-to-plan-the-job\"]\n+ \"Completing the migration\": [\n+ [70, \"completing-the-migration\"]\n ],\n \"Naming conventions and LAVA architecture\": [\n [75, \"naming-conventions-and-lava-architecture\"]\n ],\n+ \"Other Topics\": [\n+ [76, \"other-topics\"]\n+ ],\n \"LAVA job failures, errors, comments and tags\": [\n [65, \"lava-job-failures-errors-comments-and-tags\"]\n ],\n \"Dispatcher error or test failure\": [\n [65, \"dispatcher-error-or-test-failure\"]\n ],\n \"Job failure tags\": [\n@@ -10434,35 +10437,14 @@\n ],\n \"Viewing reports of job failures\": [\n [65, \"viewing-reports-of-job-failures\"]\n ],\n \"Unreported test failures\": [\n [65, \"unreported-test-failures\"]\n ],\n- \"PDUDaemon\": [\n- [78, \"pdudaemon\"]\n- ],\n- \"Writing a monitors test action\": [\n- [72, \"writing-a-monitors-test-action\"]\n- ],\n- \"Restrictions\": [\n- [72, \"restrictions\"]\n- ],\n- \"Example test monitors job\": [\n- [72, \"example-test-monitors-job\"]\n- ],\n- \"lavacli\": [\n- [69, \"lavacli\"]\n- ],\n- \"Installing lavacli\": [\n- [69, \"installing-lavacli\"]\n- ],\n- \"Other Topics\": [\n- [76, \"other-topics\"]\n- ],\n \"Packaging lava-server for distributions\": [\n [77, \"packaging-lava-server-for-distributions\"]\n ],\n \"Apache distribution support\": [\n [77, \"apache-distribution-support\"]\n ],\n \"Instance name\": [\n@@ -10472,14 +10454,32 @@\n [77, \"lava-components\"]\n ],\n \"Package dependencies\": [\n [77, \"package-dependencies\"]\n ],\n \"Daemon renaming\": [\n [77, \"daemon-renaming\"]\n+ ],\n+ \"Job submission failure help\": [\n+ [66, \"job-submission-failure-help\"]\n+ ],\n+ \"Device type X is not available\": [\n+ [66, \"device-type-x-is-not-available\"]\n+ ],\n+ \"No devices of type X are currently available to user Y\": [\n+ [66, \"no-devices-of-type-x-are-currently-available-to-user-y\"]\n+ ],\n+ \"Writing a monitors test action\": [\n+ [72, \"writing-a-monitors-test-action\"]\n+ ],\n+ \"Restrictions\": [\n+ [72, \"restrictions\"]\n+ ],\n+ \"Example test monitors job\": [\n+ [72, \"example-test-monitors-job\"]\n ]\n },\n \"indexentries\": {\n \"auto login\": [\n [0, \"index-0\"]\n ],\n \"auto login login commands\": [\n"}]}]}]}]}]}